Advertisement
eqeqwan21

Untitled

Jun 16th, 2024
473
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function capitalizeFirstLetter(string) {
  2.     return string.charAt(0).toUpperCase() + string.slice(1);
  3. }
  4.  
  5. $(async function() {
  6.     $('#notificationBell').hide();
  7.     $('#loader').show();
  8.     let town;
  9.     if (environment.login_name.indexOf("_") !== -1) {
  10.         town = '&town='+capitalizeFirstLetter(environment.login_name.split('_')[0])
  11.     }
  12.     else{
  13.         town = ''
  14.     }
  15.     let previousTotal = localStorage.getItem('previousTotal') ? parseInt(localStorage.getItem('previousTotal') - 1) : 0;
  16.     let soundEnabled = false;
  17.  
  18.     function updateEventData() {
  19.         $.ajax({
  20.             url: environment.base_url+"/"+'?do=api&fn=last_statistic'+town,
  21.             type: 'GET',
  22.             dataType: "json",
  23.             success: function(data) {
  24.                 let eventData = data.rows[0]
  25.                 var eventList = $('#eventList');
  26.                 eventList.empty();
  27.                 eventList.append('<li>'+i18next.t("Power Failure")+': ' + eventData.PowerFailureCount + '</li>');
  28.                 eventList.append('<li>Device Alarm: ' + eventData.EquipmentFailureCount + '</li>');
  29.                 eventList.append('<li>SIP: ' + eventData.SipFailureCount + '</li>');
  30.                 eventList.append('<li>IP: ' + eventData.IpFailureCount + '</li>');
  31.                 eventList.append('<li>Time Alert Count: ' + eventData.TimeAlertFailureCount + '</li>');
  32.                 eventList.append('<li>Controller Count: ' + eventData.ControllerFailureCount + '</li>');
  33.                 eventList.append('<li>Door Open Count: ' + eventData.DoorOpenCount + '</li>');
  34.                 eventList.append('<li>Sync Failure Count: ' + eventData.SyncFailureCount + '</li>');
  35.                 const total = eventData.PowerFailureCount + eventData.EquipmentFailureCount + eventData.SipFailureCount + eventData.IpFailureCount + eventData.TimeAlertFailureCount + eventData.ControllerFailureCount + eventData.DoorOpenCount + eventData.SyncFailureCount;
  36.                 $('#eventCount').text(total)
  37.                 $('#loader').hide();
  38.                 $('#notificationBell').show();
  39.                 if(total > 100){
  40.                     $('.notification-container').addClass('large')
  41.                 }
  42.                 console.log(total,previousTotal)
  43.                 if (total > previousTotal && soundEnabled) {
  44.                     $('#notificationSound')[0].play();
  45.                 }
  46.  
  47.                 previousTotal = total;
  48.                 localStorage.setItem('previousTotal', previousTotal);
  49.             }
  50.         });
  51.     }
  52.  
  53.     setInterval(updateEventData, 2000);
  54.  
  55.     $('#eventCount').click(function() {
  56.         $('#eventDropdown').toggle();
  57.     });
  58.  
  59.     $('#notificationBell').click(function() {
  60.         soundEnabled = true;
  61.         $('#notificationBell').removeClass('disabled').addClass('active');
  62.     });
  63.  
  64.     $(document).click(function(event) {
  65.         if (!$(event.target).closest('#eventCount').length) {
  66.             if ($('#eventDropdown').is(":visible")) {
  67.                 $('#eventDropdown').hide();
  68.             }
  69.         }
  70.     });
  71. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement