Sid Gifari File Manager
🏠 Root
/
home
/
ailwtbdh
/
public_html
/
wp-content
/
plugins
/
wpforo
/
assets
/
js
/
Editing: widgets.js
jQuery(document).ready(function ($) { if (parseInt(wpforo_widgets.is_live_notifications_on) && typeof wpforo_check_notifications === 'function') { setTimeout(wpforo_check_notifications, parseInt(wpforo_widgets.live_notifications_start), parseInt(wpforo_widgets.live_notifications_interval)); } $(document).on('keydown', function (e) { if (e.code === 'Escape') $('.wpf-notifications').slideUp(250, 'linear'); }); $(document).on('click', '.wpf-alerts:not(.wpf-processing)', function () { var notifications = $('.wpforo-subtop').find('.wpf-notifications'); $('.wpf-notifications').not(notifications).slideUp(250, 'linear'); if (notifications.is(':visible')) { notifications.slideUp(250, 'linear'); } else { wpforo_load_notifications($(this)); notifications.slideDown(250, 'linear'); } }); $(document).on('click', '.wpf-widget-alerts:not(.wpf-processing)', function () { var notifications = $('.wpf-widget-alerts').parents('.wpf-prof-wrap').find('.wpf-notifications'); $('.wpf-notifications').not(notifications).slideUp(250, 'linear'); if (notifications.is(':visible')) { notifications.slideUp(250, 'linear'); } else { wpforo_load_notifications($(this)); notifications.slideDown(250, 'linear'); } }); $(document).on('click', '.wpf-action.wpf-notification-action-clear-all', function () { var foro_n = $(this).data('foro_n'); if (foro_n) { $('.wpf-notifications').slideUp(250, 'linear'); $.ajax({ type: 'POST', url: wpforo_widgets.ajax_url, data: { foro_n: foro_n, action: 'wpforo_clear_all_notifications', }, }).done(function (r) { if (r) { $('.wpf-notifications .wpf-notification-actions').hide(); $('.wpf-notifications .wpf-notification-content').html(r); wpforo_bell(0); } wpforo_trigger_custom_event(document, 'wpforo_clear_all_notifications', { r }); }); } }); function do_wpforo_ajax_widget (elem, is_on_load) { var j = elem.data('json'); if (j) { if (typeof j !== 'object') j = JSON.parse(j); if (j['instance'] !== undefined && typeof j['instance'] !== 'object') j['instance'] = JSON.parse(j['instance']); if (j['topic_args'] !== undefined && typeof j['topic_args'] !== 'object') j['topic_args'] = JSON.parse(j['topic_args']); if (j['post_args'] !== undefined && typeof j['post_args'] !== 'object') j['post_args'] = JSON.parse(j['post_args']); if (j['boardid'] !== undefined) { var ajax_url = wpforo_widgets.ajax_url.replace(/[&?]wpforo_boardid=\d*/i, ''); ajax_url += (/\?/.test(ajax_url) ? '&' : '?') + 'wpforo_boardid=' + j['boardid']; if (j['instance'] !== undefined && j['instance']['refresh_interval'] !== undefined) { var interval = parseInt(j['instance']['refresh_interval']); } if (j['instance'] !== undefined) j['instance'] = JSON.stringify(j['instance']); if (j['topic_args'] !== undefined) j['topic_args'] = JSON.stringify(j['topic_args']); if (j['post_args'] !== undefined) j['post_args'] = JSON.stringify(j['post_args']); var do_ajax = true; if (is_on_load && elem.hasClass('wpforo-ajax-widget-onload-false')) do_ajax = false; if (do_ajax) { $.ajax({ type: 'POST', url: ajax_url, data: j, }).done(function (r) { if (r.success) elem.html(r.data['html']); if (!isNaN(interval) && interval > 0) { setTimeout(function () { do_wpforo_ajax_widget(elem); }, interval * 1000); } }); } else { if (!isNaN(interval) && interval > 0) { setTimeout(function () { do_wpforo_ajax_widget(elem); }, interval * 1000); } } } } } function do_wpforo_ajax_widgets () { var wdgts = $('.wpforo-widget-wrap .wpforo-ajax-widget[data-json]'); if (wdgts.length) { wdgts.each(function (k, v) { do_wpforo_ajax_widget($(v), true); }); } } do_wpforo_ajax_widgets(); }); function wpforo_bell (wpf_alerts) { wpf_alerts = parseInt(wpf_alerts); if (wpf_alerts > 0) { var wpforo_bell = ''; var wpf_tooltip = ''; if (typeof window.wpforo_phrase === 'function') { var wpforo_notification_phrase = wpforo_phrase('You have a new notification'); if (wpf_alerts > 1) wpforo_notification_phrase = wpforo_phrase('You have new notifications'); wpf_tooltip = 'wpf-tooltip="' + wpforo_notification_phrase + '" wpf-tooltip-size="middle"'; } wpforo_bell = '<div class="wpf-bell" ' + wpf_tooltip + '><svg height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z"/></svg> <span class="wpf-alerts-count">' + wpf_alerts + '</span></div>'; jQuery('.wpf-alerts').addClass('wpf-new'); jQuery('.wpf-widget-alerts').addClass('wpf-new'); } else { wpforo_bell = '<div class="wpf-bell"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v25.4c0 45.4-15.5 89.5-43.8 124.9L5.3 377c-5.8 7.2-6.9 17.1-2.9 25.4S14.8 416 24 416H424c9.2 0 17.6-5.3 21.6-13.6s2.9-18.2-2.9-25.4l-14.9-18.6C399.5 322.9 384 278.8 384 233.4V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm0 96c61.9 0 112 50.1 112 112v25.4c0 47.9 13.9 94.6 39.7 134.6H72.3C98.1 328 112 281.3 112 233.4V208c0-61.9 50.1-112 112-112zm64 352H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z"/></svg></div>'; jQuery('.wpf-alerts').removeClass('wpf-new'); jQuery('.wpf-widget-alerts').removeClass('wpf-new'); } jQuery('.wpf-alerts').html(wpforo_bell); jQuery('.wpf-widget-alerts').html(wpforo_bell); } var wpforo_check_notifications_timeout; var wpforo_last_alert_count = -1; var wpforo_idle_polls = 0; var wpforo_max_interval = 300000; // 5 minutes max backoff function wpforo_check_notifications (wpforo_check_interval) { wpforo_check_interval = parseInt(wpforo_check_interval); if (isNaN(wpforo_check_interval)) wpforo_check_interval = 60000; // Skip poll when page is not visible (browser tab in background) if (document.hidden) { wpforo_check_notifications_timeout = setTimeout(wpforo_check_notifications, wpforo_check_interval, wpforo_check_interval); return; } var getdata = jQuery('.wpf-notifications').is(':visible'); jQuery.ajax({ type: 'POST', url: wpforo_widgets.ajax_url, data: { getdata: getdata, action: 'wpforo_notifications', }, success: function (response) { wpforo_notifications_ui_update(response); var current_alerts = parseInt(response.data.alerts); if (current_alerts !== wpforo_last_alert_count) { // Alert count changed — reset to base interval wpforo_idle_polls = 0; wpforo_last_alert_count = current_alerts; } else { // No change — increase backoff wpforo_idle_polls++; } }, complete: function () { // Exponential backoff: double interval every 3 idle polls, cap at 5 min var backoff = Math.min(wpforo_check_interval * Math.pow(2, Math.floor(wpforo_idle_polls / 3)), wpforo_max_interval); wpforo_check_notifications_timeout = setTimeout(wpforo_check_notifications, backoff, wpforo_check_interval); }, error: function () { clearTimeout(wpforo_check_notifications_timeout); }, }); } function wpforo_load_notifications ($this) { $this.addClass('wpf-processing'); jQuery('.wpf-notifications .wpf-notification-content').html('<div class="wpf-nspin"><svg width="24" height="24" viewBox="0 0 24 24">\n' + ' <g stroke="currentColor">\n' + ' <circle cx="12" cy="12" r="9.5" fill="none" stroke-linecap="round" stroke-width="3">\n' + ' <animate attributeName="stroke-dasharray" calcMode="spline" dur="1.5s" keySplines="0.42,0,0.58,1;0.42,0,0.58,1;0.42,0,0.58,1" keyTimes="0;0.475;0.95;1"\n' + ' repeatCount="indefinite" values="0 150;42 150;42 150;42 150"></animate>\n' + ' <animate attributeName="stroke-dashoffset" calcMode="spline" dur="1.5s" keySplines="0.42,0,0.58,1;0.42,0,0.58,1;0.42,0,0.58,1" keyTimes="0;0.475;0.95;1"\n' + ' repeatCount="indefinite" values="0;-16;-59;-59"></animate>\n' + ' </circle>\n' + ' <animateTransform attributeName="transform" dur="2s" repeatCount="indefinite" type="rotate" values="0 12 12;360 12 12"></animateTransform>\n' + ' </g>\n' + ' </svg></div>'); jQuery.ajax({ type: 'POST', url: wpforo_widgets.ajax_url, data: { getdata: 1, action: 'wpforo_notifications', }, success: wpforo_notifications_ui_update, error: function () { clearTimeout(wpforo_check_notifications_timeout); }, }).always(function () { $this.removeClass('wpf-processing'); }); } function wpforo_notifications_ui_update (response) { var wpf_alerts = parseInt(response.data.alerts); if (wpf_alerts > 0) { jQuery('.wpf-notifications .wpf-notification-actions').show(); } else { jQuery('.wpf-notifications .wpf-notification-actions').hide(); } if (response.data.notifications) jQuery('.wpf-notifications .wpf-notification-content').html(response.data.notifications); wpforo_bell(wpf_alerts); wpforo_trigger_custom_event(document, 'wpforo_notifications_ui_update', { response }); } if (typeof wpforo_trigger_custom_event !== 'function') { /** * Trigger a custom event. * * @param {Element|Document} target HTML element to dispatch the event on. * @param {string} name Event name. * @param [detail = null] Event addintional data information. */ function wpforo_trigger_custom_event (target, name, detail) { if (typeof detail === 'undefined') detail = null; var event; if (typeof CustomEvent === 'function') { event = new CustomEvent(name, { bubbles: true, cancelable: true, detail: detail }); } else { event = document.createEvent('Event'); event.initEvent(name, true, true); event.detail = detail; } target.dispatchEvent(event); window['wpforo_break_after_custom_event_'.name] = false; } }
Save
Cancel