Files
acrib.es/wp-content/plugins/cookie-notice/js/admin-notice.js
Malin 6daabcab65 feat: caching, optimization, legal pages & footer
- WP Super Cache enabled (PHP mode, gzip, Nginx compatible)
- Autoptimize: CSS/HTML minification + deferred JS + Google Fonts optimization
- Cookie Notice: GDPR/LOPD banner styled with brand colors (navy/burgundy/gold)
- Legal pages: Aviso Legal, Política de Privacidad, Política de Cookies (ES)
- MU-plugin: custom footer with legal links + Cloud Host credit
- Footer: copyright, legal nav, Hosted & Maintained by Cloud Host (cloudhost.es)
- Security: X-Frame-Options, X-Content-Type, Referrer-Policy headers
- Security: XML-RPC disabled, REST user enumeration blocked
- Performance: emoji scripts removed, post revisions limited to 3
2026-05-19 19:58:11 +02:00

149 lines
3.5 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
( function() {
'use strict';
/**
* Build a form-encoded payload and send it without relying on jQuery.
*
* @param {string} action
* @param {Object} data
* @returns {void}
*/
const postNoticeAction = function( action, data ) {
if ( ! window.cnArgsNotice || ! cnArgsNotice.ajaxURL ) {
return;
}
const bodyParams = {
action: action,
notice_action: data.noticeAction,
nonce: data.nonce,
cn_network: cnArgsNotice.network ? 1 : 0
};
if ( typeof data.param !== 'undefined' ) {
bodyParams.param = data.param;
}
const encodeBody = function( params ) {
return Object.keys( params )
.map( function( key ) {
return encodeURIComponent( key ) + '=' + encodeURIComponent( params[ key ] );
} )
.join( '&' );
};
const body = encodeBody( bodyParams );
if ( window.fetch ) {
fetch( cnArgsNotice.ajaxURL, {
method: 'POST',
credentials: 'same-origin',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
body: body
} ).catch( function() {
// fail silently notice still closes
} );
} else {
// XHR fallback for older browsers.
var xhr = new XMLHttpRequest();
xhr.open( 'POST', cnArgsNotice.ajaxURL, true );
xhr.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
xhr.send( body );
}
};
const hideNotice = function( notice ) {
if ( notice ) {
notice.style.display = 'none';
}
};
document.addEventListener( 'DOMContentLoaded', function() {
// No cookie compliance notice.
document.addEventListener( 'click', function( event ) {
const target = event.target;
if ( ! target || typeof target.closest !== 'function' ) {
return;
}
const dismissButton = target.closest( '.cn-notice .cn-no-compliance .cn-notice-dismiss' );
if ( ! dismissButton ) {
return;
}
const notice = dismissButton.closest( '.cn-notice' );
if ( ! notice ) {
return;
}
event.preventDefault();
let noticeAction = 'dismiss';
let param = '';
if ( dismissButton.classList.contains( 'cn-approve' ) ) {
noticeAction = 'approve';
} else if ( dismissButton.classList.contains( 'cn-delay' ) ) {
noticeAction = 'delay';
} else if ( notice.classList.contains( 'cn-threshold' ) ) {
noticeAction = 'threshold';
const noticeText = notice.querySelector( '.cn-notice-text' );
const delay = noticeText && noticeText.dataset ? parseInt( noticeText.dataset.delay, 10 ) : NaN;
param = ! isNaN( delay ) && isFinite( delay ) ? delay : '';
}
postNoticeAction( 'cn_dismiss_notice', {
noticeAction: noticeAction,
nonce: cnArgsNotice.nonce,
param: param
} );
hideNotice( notice );
} );
// Review notice.
document.addEventListener( 'click', function( event ) {
const target = event.target;
if ( ! target || typeof target.closest !== 'function' ) {
return;
}
const link = target.closest( '.cn-notice .cn-review .button-link' );
if ( ! link ) {
return;
}
const notice = link.closest( '.cn-notice' );
if ( ! notice ) {
return;
}
event.preventDefault();
let noticeAction = 'dismiss';
if ( link.classList.contains( 'cn-notice-review' ) ) {
noticeAction = 'review';
} else if ( link.classList.contains( 'cn-notice-delay' ) ) {
noticeAction = 'delay';
}
postNoticeAction( 'cn_review_notice', {
noticeAction: noticeAction,
nonce: cnArgsNotice.reviewNonce
} );
hideNotice( notice );
} );
} );
} )();