HEX
Server: Apache
System: Linux srv674466.hstgr.cloud 5.14.0-503.19.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jan 7 17:08:27 EST 2025 x86_64
User: rialindia (1055)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/rialindia/public_html/wp-content/plugins/nitropack/view/javascript/np_notices.js
(function () {
  function updateNotificationCount() {
    let notificationsCount = null;
    let notificationsCountContainer =
      document.getElementsByClassName("is-dismissible");

    if (notificationsCountContainer)
      notificationsCount = notificationsCountContainer.length;

    /* Admin bar update - NitroPack menu */
    let totalIssues = document.getElementById("nitro-total-issues-count");
    totalIssues.innerHTML = parseInt(totalIssues.innerHTML) - 1;
    if (parseInt(totalIssues.innerHTML) === 0) totalIssues.remove();

    /* settings sub menu count update */
    let notificationIssues = document.getElementById(
      "nitro-notification-issues-count"
    );
    notificationIssues.innerHTML = parseInt(notificationIssues.innerHTML) - 1;
    if (parseInt(notificationIssues.innerHTML) === 0)
      notificationIssues.remove();
  }

  /* Dismiss by setting a transient - used for notifications from the app */
  document.addEventListener(
    "click",
    function (e) {
      if (e.target.matches(".dismiss-by-transient .btn-dismiss")) {
        const xhr = new XMLHttpRequest();
        const data = new FormData();
        data.append("action", "nitropack_dismiss_notification_by_transient");
        data.append("nonce", nitropack_notices_vars.nonce);
        data.append("notification_id", e.target.dataset.notification_id);
        data.append("notification_end", e.target.dataset.notification_end);

        xhr.onreadystatechange = function () {
          if (xhr.readyState === XMLHttpRequest.DONE) {
            if (xhr.status === 200) {
              let response = JSON.parse(xhr.responseText);
              if (response.transient_status === true) {
                let notificationElement = e.target.closest(
                  ".nitro-notification"
                );

                if (notificationElement) notificationElement.remove();

                updateNotificationCount();
              }
            } else {
              console.log("Error: " + xhr.status);
            }
          }
        };
        xhr.open("POST", ajaxurl);
        xhr.send(data);
      }
    },
    true
  );
  /* Dismiss permanently notification by updating wp_options */
  document.addEventListener(
    "click",
    function (e) {
      if (e.target.matches(".dismiss-by-option .btn-dismiss")) {
        const dismissButton = e.target;
        const dismissId = dismissButton.dataset.dismissibleId;
        if (!dismissId) return;

        const noticeElement = dismissButton.closest(".nitro-notification");
        const data = new FormData();
        data.append("action", "nitropack_dismiss_permanently_notification");
        data.append("nonce", nitropack_notices_vars.nonce);
        data.append("notification_id", dismissId);

        const xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function () {
          if (xhr.readyState === XMLHttpRequest.DONE) {
            try {
              const response = JSON.parse(xhr.responseText);
              if (xhr.status === 200 && response.success) {
                noticeElement?.remove();
              } else {
                console.error(
                  "Dismiss failed:",
                  response?.data?.message || "Unknown error"
                );
              }
            } catch (err) {
              console.error("Failed to parse response:", err);
            }
          }
        };

        xhr.open("POST", ajaxurl);
        xhr.send(data);
      }
    },
    true
  );
})();