Helix_Website/wp-content/plugins/wpforo/wpf-assets/js/widgets.js

135 lines
5.3 KiB
JavaScript

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.which === 27 ) $('.wpf-notifications').slideUp(250, 'linear');
});
$(document).on('click', '.wpf-alerts', function () {
if( $.active === 0 ){
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();
notifications.slideDown(250, 'linear');
}
}
});
$(document).on('click', '.wpf-widget-alerts', function () {
if( $.active === 0 ){
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();
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);
}
});
}
});
});
function wpforo_bell( wpf_alerts ){
wpf_alerts = parseInt(wpf_alerts);
if( wpf_alerts > 0 ){
var wpforo_bell = '';
var wpf_tooltip = '';
if (jQuery.isFunction(window.wpforo_phrase)) {
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 + '><i class="fas fa-bell"></i> <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"><i class="far fa-bell"></i></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;
function wpforo_check_notifications( wpforo_check_interval ) {
wpforo_check_interval = parseInt(wpforo_check_interval);
if( isNaN(wpforo_check_interval) ) wpforo_check_interval = 60000;
var getdata = jQuery('.wpf-notifications').is(':visible');
jQuery.ajax({
type: 'POST',
url: wpforo_widgets.ajax_url,
data:{
getdata: getdata,
action: 'wpforo_notifications'
},
success: wpforo_notifications_ui_update,
complete: function() {
wpforo_check_notifications_timeout = setTimeout(wpforo_check_notifications, wpforo_check_interval, wpforo_check_interval);
},
error: function () {
clearTimeout(wpforo_check_notifications_timeout);
}
});
}
function wpforo_load_notifications(){
jQuery('.wpf-notifications .wpf-notification-content').html('<div class="wpf-nspin"><i class="fas fa-spinner fa-spin"></i></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);
}
});
}
function wpforo_notifications_ui_update(data){
try{
data = jQuery.parseJSON(data);
if(typeof data === 'object' ){
var wpf_alerts = parseInt(data.alerts);
if( wpf_alerts > 0 ){
jQuery('.wpf-notifications .wpf-notification-actions').show();
} else {
jQuery('.wpf-notifications .wpf-notification-actions').hide();
}
if( data.notifications ) jQuery('.wpf-notifications .wpf-notification-content').html( data.notifications );
wpforo_bell( wpf_alerts );
}
}catch(e){
console.log(e);
}
}