| Server IP : 104.21.28.229 / Your IP : 216.73.216.142 Web Server : Apache/2 System : Linux hosting8537.lvs 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : mienphi ( 1014) PHP Version : 8.2.14 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/mienphi/public_html/wp-content/plugins/learnpress/assets/src/js/admin/ |
Upload File : |
/**
* Script handle admin notices.
*
* @since 4.1.7.3.2
* @version 1.0.2
*/
import { lpOnElementReady } from '../utils.js';
import API from '../api.js';
let elLPAdminNotices = null;
let dataHtml = null;
const queryString = window.location.search;
const urlParams = new URLSearchParams( queryString );
const tab = urlParams.get( 'tab' );
const notifyAddonsNewVersion = () => {
try {
const elAdminMenu = document.querySelector( '#adminmenu' );
if ( ! elAdminMenu ) {
return;
}
const elTabLP = elAdminMenu.querySelector( '#toplevel_page_learn_press' );
if ( ! elTabLP ) {
return;
}
const elTabLPName = elTabLP.querySelector( '.wp-menu-name' );
if ( ! elTabLPName ) {
return;
}
const elAddonsNewVerTotal = document.querySelector( 'input[name=lp-addons-new-version-totals]' );
if ( ! elAddonsNewVerTotal ) {
return;
}
const htmlNotifyLP = `<span class="tab-lp-admin-notice"></span>`;
elTabLPName.insertAdjacentHTML( 'beforeend', htmlNotifyLP );
const elTabLPAddons = elTabLP.querySelector( 'a[href="admin.php?page=learn-press-addons"]' );
if ( ! elTabLPAddons ) {
return;
}
const total = elAddonsNewVerTotal.value;
const html = `<span style="margin-left: 5px" class="update-plugins">${ total }</span>`;
elTabLPAddons.setAttribute( 'href', 'admin.php?page=learn-press-addons&tab=update' );
elTabLPAddons.insertAdjacentHTML( 'beforeend', html );
} catch ( e ) {
console.log( e );
}
};
const callAdminNotices = ( set = '' ) => {
if ( ! lpGlobalSettings.is_admin ) {
return;
}
let params = tab ? `?tab=${ tab }` : '';
params += set ? ( tab ? '&' : '?' ) + `${ set }` : '';
fetch( API.admin.apiAdminNotice + params, {
method: 'POST',
headers: {
'X-WP-Nonce': lpGlobalSettings.nonce,
},
} ).then( ( res ) =>
res.json()
).then( ( res ) => {
// console.log(data);
const { status, message, data } = res;
if ( status === 'success' ) {
if ( 'Dismissed!' !== message ) {
dataHtml = data.content;
if ( dataHtml.length === 0 ) {
elLPAdminNotices.style.display = 'none';
} else {
elLPAdminNotices.innerHTML = dataHtml;
elLPAdminNotices.style.display = 'block';
// Handle notify addons new version.
notifyAddonsNewVersion();
}
}
} else {
dataHtml = message;
}
} ).catch( ( err ) => {
console.log( err );
} );
};
// Listen element ready
lpOnElementReady( '.lp-admin-notices', () => {
elLPAdminNotices = document.querySelector( '.lp-admin-notices' );
callAdminNotices();
} );
/*** Events ***/
document.addEventListener( 'click', ( e ) => {
const el = e.target;
if ( el.classList.contains( 'btn-lp-notice-dismiss' ) ) {
e.preventDefault();
// eslint-disable-next-line no-alert
if ( confirm( 'Are you sure you want to dismiss this notice?' ) ) {
const parent = el.closest( '.lp-notice' );
callAdminNotices( `dismiss=${ el.getAttribute( 'data-dismiss' ) }` );
parent.remove();
if ( elLPAdminNotices.querySelectorAll( '.lp-notice' ).length === 0 ) {
elLPAdminNotices.style.display = 'none';
}
}
}
} );