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 | } |