PluginProbe ʕ •ᴥ•ʔ
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode / 4.2.11
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode v4.2.11
4.7.2 4.7.1 trunk 2.3.0 2.4.0 2.4.1 2.4.2 2.5.0 3.0.0 3.0.1 3.1.0 3.10.0 3.10.1 3.11.1 3.11.2 3.11.3 3.2.0 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.5 3.6.6 3.7.0 3.7.1 3.8.0 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.2.0 4.2.1 4.2.10 4.2.11 4.2.12 4.2.13 4.2.14 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.3.10 4.3.11 4.3.12 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.7.1 4.3.8 4.3.9 4.3.9.1 4.4.0 4.4.1 4.4.2 4.5.0 4.5.1 4.5.10 4.5.11 4.5.2 4.5.3 4.5.4 4.5.5 4.5.6 4.5.7 4.5.8 4.5.9 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 4.6.7 4.7.0
cookiebot / assets / js / backend / multiple-page.js
cookiebot / assets / js / backend Last commit date
gutenberg 3 years ago cookiebot-admin-script.js 3 years ago debug-page.js 3 years ago jquery.tipTip.js 3 years ago multiple-page.js 3 years ago network-settings-page.js 3 years ago prior-consent-settings.js 3 years ago settings-page.js 3 years ago support-page.js 3 years ago
multiple-page.js
174 lines
1 /**
2 * Load init function when the page is ready
3 *
4 * @since 1.8.0
5 */
6 jQuery( document ).ready( init );
7
8 function init() {
9 showMultipleConfig();
10 selectRegion();
11 toggleRegionSelector();
12 addBanner();
13 removeBanner();
14 }
15
16 function showMultipleConfig() {
17 jQuery('#multiple-config').on('change', function(){
18 if(jQuery(this).is(':checked')){
19 jQuery('.cb-multiple__container').removeClass('hidden');
20 }else{
21 jQuery('.cb-multiple__container').addClass('hidden');
22 }
23 });
24 }
25
26 function toggleRegionSelector() {
27 const initialValues = jQuery('form').serialize();
28 let submitBtn = jQuery('p.submit #submit');
29 jQuery(document).on('click','.cb-region__region__selector', function(){
30 jQuery('.cb-region__region__list').each(function(){
31 if(!jQuery(this).hasClass('hidden')){
32 jQuery(this).addClass('hidden');
33 }
34 });
35 jQuery(this).next('.cb-region__region__list').removeClass('hidden');
36 });
37
38 jQuery(document).on('click','.cb-region__veil', function(){
39 jQuery(this).closest('.cb-region__region__list').addClass('hidden');
40 let newValues = jQuery('form').serialize();
41 if(newValues !== initialValues) {
42 submitBtn.addClass('enabled');
43 }else{
44 submitBtn.removeClass('enabled');
45 }
46 });
47 }
48
49 function selectRegion() {
50 jQuery(document).on('click','.cb-region__region__item', function(){
51 let parent = jQuery(this).closest('.cb-region__table__item');
52 let code = jQuery(this).data('region');
53 let name = jQuery(this).text();
54 if(jQuery(this).hasClass('selected-region')){
55 jQuery(this).removeClass('selected-region');
56 toggleCode(code,name,parent);
57 }else{
58 jQuery(this).addClass('selected-region');
59 toggleCode(code,name,parent);
60 }
61 });
62 }
63
64 function toggleCode(code,name,parent) {
65 const regionInput = jQuery('.second-banner-regions',parent);
66 const regionVal = jQuery('.second-banner-regions',parent).val();
67 const ccpaInput = jQuery('#ccpa-compatibility');
68 const submitBtn = jQuery('p.submit #submit');
69 const selectedBox = jQuery('.selected-regions',parent);
70 const allRegionInputs = jQuery('.second-banner-regions');
71 let regionList = regionVal.split(', ');
72
73 if(regionList[0]==='')
74 regionList = [];
75
76 let ccpaExists = false;
77
78 if(regionList.indexOf(code)!==-1){
79 regionList.splice(regionList.indexOf(code),1);
80 }else{
81 regionList.push(code);
82 }
83
84 let itemSelector = '#'+code;
85 let selected = jQuery(itemSelector,parent);
86
87 if(selected.length<=0){
88 let newItem = document.createElement('div');
89 newItem.classList.add('selected-regions-item');
90 newItem.id = code;
91 newItem.innerText = name;
92 selectedBox.append(newItem);
93 }else{
94 selected.remove();
95 }
96
97 const newRegions = regionList.join(', ');
98 if(newRegions.length<=0){
99 jQuery('.default-none',parent).removeClass('hidden');
100 }else{
101 jQuery('.default-none',parent).addClass('hidden');
102 }
103 regionInput.val(newRegions);
104
105 allRegionInputs.each(function(){
106 const inputValue = jQuery(this).val();
107 if(inputValue.indexOf('US-06')!==-1){
108 ccpaExists = true;
109 }
110 });
111
112 if(!ccpaExists) {
113 ccpaInput.val('');
114 }else {
115 ccpaInput.val('1');
116 }
117
118 submitBtn.addClass('enabled');
119 }
120
121 function addBanner(){
122 jQuery('#cb-region__add__banner').on('click', function(){
123 let regionTableItems = jQuery( '.cb-region__table__item' ).length;
124 const data = jQuery( '.cb-region__table__item:last' );
125 let counter = (data.attr('data-next-banner')) ? parseInt(data.attr('data-next-banner'))+1 : 0;
126 let newBanner = document.createElement('div');
127 newBanner.classList.add('cb-region__table__item','cb-region__secondary__banner');
128 newBanner.setAttribute('data-next-banner',counter);
129 newBanner.innerHTML = data[0].innerHTML;
130 let closeCta = jQuery('.cb-region__remove__banner',newBanner);
131 if(closeCta.length===0){
132 closeCta = document.createElement('div');
133 closeCta.classList.add('cb-region__remove__banner','dashicons','dashicons-dismiss');
134 newBanner.appendChild(closeCta);
135 }
136 let group = jQuery('.cb-region__item__group input',newBanner);
137 let region = jQuery('.cb-region__item__region input.second-banner-regions',newBanner);
138 if( region.length===0 ){
139 let regionContainer = jQuery('.cb-region__item__region',newBanner)[0];
140 let regionInput = document.createElement('input');
141 regionInput.classList.add('second-banner-regions');
142 regionInput.setAttribute('type','hidden');
143 regionContainer.appendChild(regionInput);
144 region = jQuery('.cb-region__item__region input.second-banner-regions',newBanner);
145 }
146 jQuery('.cb-region__region__selector .default-none',newBanner).removeClass('hidden');
147 jQuery('.cb-region__region__selector .selected-regions',newBanner)[0].innerHTML = '';
148 jQuery('.selected-region',newBanner).each(function(){this.classList.remove('selected-region')});
149 if(regionTableItems<=1){
150 jQuery('.cb-region__item__region--primary',newBanner).remove();
151 group.prop('disabled', false);
152 group.attr('placeholder','1111-1111-1111-1111');
153 }
154 group.attr('name',`cookiebot-multiple-banners[${counter}][group]`);
155 group[0].value='';
156 region.attr('name',`cookiebot-multiple-banners[${counter}][region]`).val('');
157 jQuery( '.cb-region__table' ).append( newBanner );
158 });
159 }
160
161 function removeBanner(){
162 const initialValues = jQuery('form').serialize();
163 let submitBtn = jQuery('p.submit #submit');
164 jQuery(document).on('click','.cb-region__remove__banner', function(){
165 const banner = jQuery(this).closest( '.cb-region__table__item' );
166 banner.remove();
167 let newValues = jQuery('form').serialize();
168 if(newValues !== initialValues) {
169 submitBtn.addClass('enabled');
170 }else{
171 submitBtn.removeClass('enabled');
172 }
173 });
174 }