HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux newsites.squeezer-software.com 6.8.0-90-generic #91-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 18 14:14:30 UTC 2025 x86_64
User: www-data (33)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/sites/ileskneiss/wp-content/plugins/learnpress/assets/src/js/admin/admin-notices.js
/**
 * 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';
			}
		}
	}
} );