OwlCyberSecurity - MANAGER
Edit File: admin-notifications.js
/** * Duplicator Admin Notifications. * * @since 1.6.0 */ 'use strict'; var DupAdminNotifications = window.DupAdminNotifications || (function (document, window, $) { /** * Elements holder. * * @since 1.6.0 * * @type {object} */ var el = { $notifications: $('#dup-notifications'), $nextButton: $('#dup-notifications .navigation .next'), $prevButton: $('#dup-notifications .navigation .prev'), $adminBarCounter: $('#wp-admin-bar-dup-menu .dup-menu-notification-counter'), $adminBarMenuItem: $('#wp-admin-bar-dup-notifications'), }; /** * Public functions and properties. * * @since 1.6.0 * * @type {object} */ var app = { /** * Start the engine. * * @since 1.6.0 */ init: function () { $(app.ready); }, /** * Document ready. * * @since 1.6.0 */ ready: function () { app.updateNavigation(); app.events(); }, /** * Register JS events. * * @since 1.6.0 */ events: function () { el.$notifications .on('click', '.dismiss', app.dismiss) .on('click', '.next', app.navNext) .on('click', '.prev', app.navPrev); }, /** * Click on the Dismiss notification button. * * @since 1.6.0 * * @param {object} event Event object. */ dismiss: function (event) { if (el.$currentMessage.length === 0) { return; } // Update counter. var count = parseInt(el.$adminBarCounter.text(), 10); if (count > 1) { --count; el.$adminBarCounter.html(count); } else { el.$adminBarCounter.remove(); el.$adminBarMenuItem.remove(); } // Remove notification. var $nextMessage = el.$nextMessage.length < 1 ? el.$prevMessage : el.$nextMessage, messageId = el.$currentMessage.data('message-id'); if ($nextMessage.length === 0) { el.$notifications.fadeOut(300); } else { el.$currentMessage.remove(); $nextMessage.addClass('current'); app.updateNavigation(); } // AJAX call - update option. var data = { action: 'duplicator_notification_dismiss', nonce: dup_admin_notifications.nonce, id: messageId, }; $.post(dup_admin_notifications.ajax_url, data, function (res) { if (!res.success) { console.log(res); } }).fail(function (xhr, textStatus, e) { console.log(xhr.responseText); }); }, /** * Click on the Next notification button. * * @since 1.6.0 * * @param {object} event Event object. */ navNext: function (event) { if (el.$nextButton.hasClass('disabled')) { return; } el.$currentMessage.removeClass('current'); el.$nextMessage.addClass('current'); app.updateNavigation(); }, /** * Click on the Previous notification button. * * @since 1.6.0 * * @param {object} event Event object. */ navPrev: function (event) { if (el.$prevButton.hasClass('disabled')) { return; } el.$currentMessage.removeClass('current'); el.$prevMessage.addClass('current'); app.updateNavigation(); }, /** * Update navigation buttons. * * @since 1.6.0 */ updateNavigation: function () { if (el.$notifications.find('.dup-notifications-message.current').length === 0) { el.$notifications.find('.dup-notifications-message:first-child').addClass('current'); } el.$currentMessage = el.$notifications.find('.dup-notifications-message.current'); el.$nextMessage = el.$currentMessage.next('.dup-notifications-message'); el.$prevMessage = el.$currentMessage.prev('.dup-notifications-message'); if (el.$nextMessage.length === 0) { el.$nextButton.addClass('disabled'); } else { el.$nextButton.removeClass('disabled'); } if (el.$prevMessage.length === 0) { el.$prevButton.addClass('disabled'); } else { el.$prevButton.removeClass('disabled'); } }, }; return app; }(document, window, jQuery)); // Initialize. DupAdminNotifications.init();