Current path: home/webdevt/www/demo2/wp-content/plugins/cookiebot/assets/js/backend/
?? Go up: /home/webdevt/www/demo2/wp-content/plugins/cookiebot/assets/js
/**
* Load init function when the page is ready
*
* @since 1.8.0
*/
jQuery( document ).ready( init );
function init() {
ruleset_id();
show_ruleset_selector();
remove_account();
network_id_override();
language_toggle();
advanced_settings_toggle();
cookie_blocking_mode();
activeSettingsTab();
initialCheckActiveVendors();
closeSubmitMsg();
submitEnable();
googleConsentModeOptions();
tcfOptions();
vendorListRequire();
selectAllListItem();
deselectAllListItem();
onAddRestriction();
showRestrictionPurposes();
onVendorSelection();
removeRestriction();
generate_shortcode();
}
function ruleset_id(){
const cbidField = jQuery( '#cookiebot-cbid' );
const cbidCheck = jQuery( '.cookiebot-cbid-check' );
let fieldTimer;
let fieldInterval = 3000;
cbidField.on('keyup', function () {
clearTimeout(fieldTimer);
cbidField.addClass('check-progress');
cbidCheck.removeClass('check-pass').addClass('check-progress');
fieldTimer = setTimeout(show_ruleset_selector, fieldInterval);
});
cbidField.on('keydown', function () {
clearTimeout(fieldTimer);
});
}
function show_ruleset_selector() {
const cbidField = jQuery( '#cookiebot-cbid' );
const cbidCheck = jQuery( '.cookiebot-cbid-check' );
const cbidRulesetSelector = jQuery('#cookiebot-ruleset-id-selector');
const cbidError = jQuery('.cookiebot-cbid-error');
cbidCheck.removeClass('check-progress');
cbidField.removeClass('check-progress');
if(!cbidField.val()){
cbidCheck.removeClass('check-pass');
cbidRulesetSelector.addClass('hidden');
cbidError.addClass('hidden');
jQuery('.cookiebot-cbid-container p.submit #submit').addClass('disabled');
return;
}
// Validate that the field has exactly 9, 14 or 36 characters
const fieldLength = cbidField.val().length;
if(fieldLength !== 9 && fieldLength !== 14 && fieldLength !== 36){
cbidCheck.removeClass('check-pass');
cbidRulesetSelector.addClass('hidden');
cbidError.removeClass('hidden');
jQuery('.cookiebot-cbid-container p.submit #submit').addClass('disabled');
return;
}
// Valid input - hide error message
cbidError.addClass('hidden');
!check_id_frame() ? cbidRulesetSelector.removeClass('hidden') : cbidRulesetSelector.addClass('hidden');
jQuery('.cookiebot-cbid-container p.submit #submit').removeClass('disabled');
}
function check_id_frame(){
const cbFrameReg = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/;
return cbFrameReg.test(jQuery( '#cookiebot-cbid' ).val())
}
function language_toggle() {
jQuery( '#show_add_language_guide' ).on( 'click', function ( e ) {
e.preventDefault()
jQuery( '#add_language_guide' ).slideDown()
jQuery( this ).hide()
} )
jQuery( '#hide_add_language_guide' ).on( 'click', function ( e ) {
e.preventDefault()
jQuery( '#add_language_guide' ).slideUp()
jQuery( '#show_add_language_guide' ).show()
} )
jQuery( '#cookiebot-language' ).on( 'change', function () {
if ( this.value === '' ) {
jQuery( '#info_lang_autodetect' ).show()
jQuery( '#info_lang_specified' ).hide()
} else {
jQuery( '#info_lang_autodetect' ).hide()
jQuery( '#info_lang_specified' ).show()
}
} )
}
function advanced_settings_toggle() {
jQuery( '.cookiebot_fieldset_header' ).on( 'click', function ( e ) {
e.preventDefault()
jQuery( this ).next().slideToggle()
jQuery( this ).toggleClass( 'active' )
} )
}
function cookie_blocking_mode() {
let cookieBlockingMode = cookiebot_settings.cookieBlockingMode;
jQuery( 'input[type=radio][name=cookiebot-cookie-blocking-mode]' ).on( 'change', function () {
if ( this.value === 'auto' && cookieBlockingMode !== this.value ) {
jQuery( '#cookiebot-setting-async, #cookiebot-setting-hide-popup' ).css( 'opacity', 0.4 );
jQuery( '#declaration-tag, #cookie-popup, #gcm-cookie-categories, #gtm-cookie-categories').addClass('disabled__item');
if(jQuery( '#gcm-cookie-categories').is(':visible')){ jQuery( '#gcm-cookie-categories').hide() };
jQuery( 'input[type=radio][name=cookiebot-script-tag-uc-attribute], input[name=cookiebot-nooutput]' ).prop( 'disabled', true );
jQuery( '#cb-settings__gtm__cookie-types input[type=checkbox]' ).prop( 'disabled', true );
jQuery( '#cb-settings__gcm__cookie-types input[type=checkbox]' ).prop( 'disabled', true );
}
if ( this.value === 'manual' && cookieBlockingMode !== this.value ) {
jQuery( '#cookiebot-setting-async, #cookiebot-setting-hide-popup' ).css( 'opacity', 1 );
jQuery( '#declaration-tag, #cookie-popup, #gcm-cookie-categories, #gtm-cookie-categories').removeClass('disabled__item');
if(!jQuery( '#gcm-cookie-categories').is(':visible') && jQuery('input#gcm').is(':checked')){ jQuery( '#gcm-cookie-categories').show() };
jQuery( 'input[type=radio][name=cookiebot-script-tag-uc-attribute], input[name=cookiebot-nooutput]' ).prop( 'disabled', false );
jQuery( '#cb-settings__gtm__cookie-types input[type=checkbox]' ).prop( 'disabled', false );
jQuery( '#cb-settings__gcm__cookie-types input[type=checkbox]' ).prop( 'disabled', false );
}
cookieBlockingMode = this.value;
} )
if ( cookieBlockingMode === 'auto' ) {
jQuery( '#cookiebot-setting-async, #cookiebot-setting-hide-popup' ).css( 'opacity', 0.4 );
jQuery( 'input[type=radio][name=cookiebot-script-tag-uc-attribute], input[name=cookiebot-nooutput]' ).prop( 'disabled', true );
jQuery( '#cb-settings__gtm__cookie-types input[type=checkbox]' ).prop( 'disabled', true );
jQuery( '#cb-settings__gcm__cookie-types input[type=checkbox]' ).prop( 'disabled', true );
}
}
function activeSettingsTab() {
jQuery('.cb-settings__tabs__item').on('click', function(){
let currentTab = jQuery('.cb-settings__tabs__item.active-item').data('tab');
let tab = jQuery(this).data('tab');
let tabSelector = '#'+tab;
jQuery('.cb-settings__tabs__item.active-item, .cb-settings__tabs__content--item.active-item').removeClass('active-item');
jQuery(this).addClass('active-item');
jQuery(tabSelector).addClass('active-item');
window.history.replaceState(null, null, '?page=cookiebot_settings&tab='+tab );
let referrer = jQuery('input[name="_wp_http_referer"]');
let referrerVal = referrer.val();
if(referrerVal.indexOf('tab=')!==-1) {
referrerVal = referrerVal.replace(currentTab,tab);
}else{
referrerVal += '&tab=' + tab;
}
referrer.val(referrerVal);
});
}
function closeSubmitMsg() {
jQuery('.cb-submit__msg').on('click',function(){
jQuery(this).addClass('hidden');
});
}
function submitEnable() {
const initialValues = jQuery(':input[name!=_wp_http_referer]','form').serialize();
const events = {
change: 'input:not([type=text]), select',
input: 'input[type="text"], textarea'
};
Object.entries(events).forEach(entry => {
const [eventName, elements] = entry;
jQuery(document).on(eventName,elements,{initialValues: initialValues},function(event){
checkValues(event.data.initialValues)
});
});
}
function checkValues(initialValues){
let submitBtn = jQuery('.cb-settings__header p.submit #submit');
let newValues = jQuery(':input[name!=_wp_http_referer]','form').serialize();
if(newValues !== initialValues) {
submitBtn.addClass('enabled');
}else{
submitBtn.removeClass('enabled');
}
checkActiveVendors();
}
function googleConsentModeOptions() {
jQuery('input#gcm').on('change', function () {
const parent = jQuery(this).parents('#consent-mode');
parent.find('.cb-settings__config__item:has(input#gcm-url-pasthrough)').toggle();
const gcmCookiesCategoriesContainer = parent.find('.cb-settings__config__item:has(ul#cb-settings__gcm__cookie-types)');
if(!gcmCookiesCategoriesContainer.hasClass('disabled__item')){
gcmCookiesCategoriesContainer.is(':visible') ? gcmCookiesCategoriesContainer.hide() : gcmCookiesCategoriesContainer.show();
}else{
gcmCookiesCategoriesContainer.hide();
}
const passthroughInput = jQuery('input#gcm-url-pasthrough');
const passthroughLabel = passthroughInput.parents('label.switch-checkbox')[0];
if (!passthroughLabel || !passthroughLabel.childNodes.length)
return;
passthroughLabel.childNodes[passthroughLabel.childNodes.length - 1].textContent = 'URL passthrough' + ' ' +
(passthroughInput.is(':checked') ? 'enabled' : 'disabled');
});
jQuery('input#gcm, input#gcm-url-pasthrough').on('change', function () {
const input = jQuery(this);
const label = input.parents('label.switch-checkbox')[0];
if (!label || !label.childNodes.length)
return;
label.childNodes[label.childNodes.length - 1].textContent = (
(input.attr('id') === 'gcm' ? 'Google Consent Mode' : 'URL passthrough') + ' ' +
(input.is(':checked') ? 'enabled' : 'disabled')
);
});
}
function tcfOptions() {
jQuery('input#cookiebot-iab').on('change', function () {
const parent = jQuery(this).parents('#iab');
parent.find('.cb-settings__config__item:has(input.tcf-option)').toggle();
});
}
function checkIabActive() {
return jQuery('input#cookiebot-iab:checked').length;
}
function initialCheckActiveVendors() {
if(!checkIabActive()){
return;
}
const allVendorInputChecked = jQuery('input[name^="cookiebot-tcf-vendors"]:checked').length;
if(!allVendorInputChecked && check_id_frame()) {
jQuery('.vendor-selected-items-message').removeClass('hidden');
jQuery('.cb-vendor-alert__msg').removeClass('hidden');
}
}
function checkActiveVendors() {
if(!checkIabActive()){
return;
}
if(!check_id_frame()) {
return;
}
let submitBtn = jQuery('.cb-settings__header p.submit #submit');
const allVendorInputChecked = jQuery('input[name^="cookiebot-tcf-vendors"]:checked').length;
if(!allVendorInputChecked) {
jQuery('.vendor-selected-items-message').removeClass('hidden');
jQuery('.cb-vendor-alert__msg').removeClass('hidden');
submitBtn.removeClass('enabled');
}else{
jQuery('.vendor-selected-items-message').addClass('hidden');
jQuery('.cb-vendor-alert__msg').addClass('hidden');
if(!submitBtn.hasClass('enabled')) {
submitBtn.addClass('enabled');
}
}
}
function selectAllListItem(){
jQuery(document).on('click','.cb-settings__selector-all',function(){
const itemList = jQuery(this).siblings('.search-list');
itemList.children().each(function(){
jQuery(this).find('input').prop('checked', true);
})
checkActiveVendors();
})
}
function deselectAllListItem(){
jQuery(document).on('click','.cb-settings__selector-none',function(){
const itemList = jQuery(this).siblings('.search-list');
itemList.children().each(function(){
jQuery(this).find('input').prop('checked', false);
})
checkActiveVendors();
})
}
function vendorListRequire(){
jQuery( document ).on('change', 'input[name^="cookiebot-tcf-vendors"]', function () {
checkActiveVendors();
});
}
function onAddRestriction() {
jQuery('.restriction-vendor-add').on('click', function () {
const allCurrentVendors = jQuery( '.cb-settings__vendor__restrictions' ).length;
const baseElement = jQuery( '.cb-settings__vendor__restrictions:last' );
let newElement = baseElement.clone();
newElement.find('.vendor-selector').attr('name','');
newElement.find('option').removeAttr('selected');
newElement.find('.purpose-item').each(function(index){
const itemId = 'cookiebot-vendorx'+( allCurrentVendors + 1 )+'-purposes'+(index+1);
jQuery(this).attr('name','');
jQuery(this).attr('id',itemId);
jQuery(this).removeAttr('checked');
jQuery(this).parent().attr('for',itemId);
});
newElement.insertAfter(baseElement);
});
}
function showRestrictionPurposes() {
jQuery(document).on('click','.vendor-purposes-show', function () {
const parent = jQuery(this).parents('.cb-settings__vendor__restrictions');
parent.find('.vendor-purposes-restrictions').toggle();
});
}
function onVendorSelection() {
jQuery(document).on('change', '.cb-settings__selector__container-input', function () {
const vendorId = jQuery(this).val();
const parent = jQuery(this).parents('.cb-settings__vendor__restrictions');
const vendorPurposes = parent.find('.vendor-purposes-restrictions .purpose-item');
const fieldName = 'cookiebot-tcf-disallowed[$s]';
const purposeFieldName = '[purposes][]';
jQuery(this).attr('name', fieldName.replace('$s', vendorId));
vendorPurposes.each(function(index){
const purposeAttribute = fieldName.replace('$s', vendorId) + purposeFieldName;
const itemId = 'cookiebot-vendor' + vendorId + '-purposes' + (index+1);
jQuery(this).attr('name', purposeAttribute);
jQuery(this).attr('id', itemId);
jQuery(this).parent().attr('for',itemId);
});
});
}
function removeRestriction(){
const initialValues = jQuery(':input[name!=_wp_http_referer]','form').serialize();
let submitBtn = jQuery('.cb-settings__header p.submit #submit');
jQuery(document).on('click','.cb-settings__vendor__restrictions .remove__restriction', function(){
const restriction = jQuery(this).closest( '.cb-settings__vendor__restrictions' );
const allRestrictions = jQuery( '.cb-settings__vendor__restrictions' );
if(allRestrictions.length === 1){
const selector = restriction.find('.cb-settings__selector-selector');
selector.text(selector.data('placeholder'));
restriction.find('.cb-settings__selector__container-input').val('');
restriction.find('.cb-settings__selector__container-input').attr('name','');
restriction.find('.cb-settings__selector-list-item.selected').removeClass('selected');
const vendorPurposes = restriction.find('.purpose-item');
vendorPurposes.each(function(){
jQuery(this).prop( 'checked', false );
jQuery(this).attr( 'name', '' );
});
}else{
restriction.remove();
}
let newValues = jQuery(':input[name!=_wp_http_referer]','form').serialize();
if(newValues !== initialValues) {
submitBtn.addClass('enabled');
}else{
submitBtn.removeClass('enabled');
}
});
}
function generate_shortcode(){
jQuery('#cookiebot-embedding').on('change', function(){
const typeOptions = jQuery('#cookiebot-embedding-type option');
const className = jQuery(this).val();
typeOptions.each(function(){
if(jQuery(this).hasClass(className)){
jQuery(this).removeClass('hide-option');
}else{
jQuery(this).addClass('hide-option');
}
});
jQuery('#cookiebot-embedding-type option:not(.hide-option)').each(function(index){
if(index>0)
return;
jQuery(this).prop('selected', true);
});
});
jQuery('#cookiebot-embedding-type').on('change', function(){
const typeName = jQuery(this).val();
if(typeName==='service-specific'){
jQuery( '#cookiebot-embedding-single-service-container' ).removeClass('hide-container');
}else{
jQuery( '#cookiebot-embedding-single-service-container' ).addClass('hide-container');
jQuery( '#cookiebot-embedding-single-service' ).val('');
}
});
const embedInputs = jQuery('#cookiebot-tcf-toggle, #cookiebot-embedding, #cookiebot-embedding-type, #cookiebot-embedding-single-service');
embedInputs.each(function (){
jQuery(this).on('change keyup', function(){
let shortcode = '[uc_embedding';
const className = jQuery('#cookiebot-embedding').val();
const toggleEnabled = jQuery('#cookiebot-tcf-toggle');
const typeName = jQuery('#cookiebot-embedding-type').val();
const serviceName = jQuery('#cookiebot-embedding-single-service').val();
switch (className) {
case 'tcf' : shortcode += ' class="tcf"'; break;
default : shortcode += ' class="gdpr"';
}
switch (toggleEnabled.is(':checked')) {
case true : shortcode += ' show-toggle="true"'; break;
default : shortcode += ' show-toggle="false"';
}
switch (typeName) {
case 'category' : shortcode += ' type="category"'; break;
case 'category-only' : shortcode += ' type="category-only"'; break;
case 'service-specific' : shortcode += ' type="service-specific"'; break;
case 'purposes' : shortcode += ' type="purposes"'; break;
case 'vendors' : shortcode += ' type="vendors"'; break;
default : shortcode += ' type="all"';
}
if(serviceName.length > 0){
shortcode += ' service="' + serviceName + '"';
}
shortcode += ']';
jQuery('#embedding-shortcode').attr('value',shortcode);
});
});
}
function remove_account(){
const removeCta = jQuery('#cookiebot-cbid-reset-dialog');
const cbidAlert = jQuery('.cb-cbid-alert__msg');
const cbidOverrideAlert = jQuery('.cb-cbid-subsite-alert__msg');
const confirmCta = jQuery('#cookiebot-cbid-reset, #cookiebot-subsite-cbid-reset');
const cancelCta = jQuery('#cookiebot-cbid-cancel, #cookiebot-subsite-cbid-cancel');
removeCta.on('click', function(){
if(cbidOverrideAlert.length !== 0){
cbidOverrideAlert.removeClass('hidden');
}else{
cbidAlert.removeClass('hidden');
}
removeCta.addClass('disabled');
});
confirmCta.on('click', function(){
jQuery('#cookiebot-cbid').val('').removeClass('cbid-active');
jQuery('#cookiebot-cbid-override').prop('checked',false);
// If the account was disconnected set blocking mode to 'auto' and 'Hide cookie popup' to false.
jQuery('input[type=radio][name=cookiebot-cookie-blocking-mode][value=auto]').prop('checked', true);
jQuery('input[name=cookiebot-nooutput]').prop( 'checked', false )
jQuery('.cb-settings__header p.submit #submit').click();
});
cancelCta.on('click', function(){
cbidAlert.addClass('hidden');
cbidOverrideAlert.addClass('hidden');
jQuery('#cookiebot-cbid-override').prop('checked',true);
removeCta.removeClass('disabled');
});
}
function network_id_override() {
const overrideCheck = jQuery('#cookiebot-cbid-override');
overrideCheck.on('change', function(){
jQuery('.cb-settings__header p.submit #submit').addClass('disabled');
if(overrideCheck.is(':checked') && overrideCheck.hasClass('cb-no-network')){
jQuery('#cookiebot-cbid-network-dialog').addClass('hidden');
jQuery('.cookiebot-cbid-container p.submit #submit').addClass('disabled').removeClass('hidden');
jQuery('.cookiebot-cbid-container #cookiebot-cbid').removeClass('cbid-active').attr('placeholder', '').val('');
}
if(!overrideCheck.is(':checked')){
if(!overrideCheck.hasClass('cb-no-network')){
jQuery('.cb-cbid-subsite-alert__msg').removeClass('hidden');
}else{
jQuery('#cookiebot-cbid-network-dialog').removeClass('hidden');
jQuery('.cookiebot-cbid-container p.submit #submit').addClass('hidden');
jQuery('.cookiebot-cbid-container #cookiebot-cbid').addClass('cbid-active').val('').attr('placeholder', jQuery('.cookiebot-cbid-container #cookiebot-cbid').attr('data-network'));
}
}
});
}
function copyEmbedShortcode() {
const t = document.getElementById( 'embedding-shortcode' )
t.select()
t.setSelectionRange( 0, 99999 )
document.execCommand( 'copy' )
}
// Event Listeners
document.getElementById('banner-close-btn')?.addEventListener('click', async () => {
const banner = document.getElementById('banner-live-notice')
if (banner) banner.remove();
});