cirandas.net

ref: master

plugins/admin_notifications/public/admin_notifications_plugin.js


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
(function($) {
  "use strict";

  var admin_notifications_plugin = {


    notificationBar: function() {
      var completeMessage = $(".notification-plugin-notification-bar").remove();
      $("#content-inner").before(completeMessage);
    },

    closeNotification: function(){
      var notification = $(this).parent();
      var id = notification.attr("data-notification");

      $.ajax({
        url: noosfero_root()+'/plugin/admin_notifications/public/close_notification',
        type: "POST",
        data: {notification_id: id},
        success: function(response) {
          notification.fadeOut();
        }
      });
    },

    hideNotification: function(){
      var notification = $(this).parent();
      var id = notification.attr("data-notification");

      $.ajax({
        url: noosfero_root()+'/plugin/admin_notifications/public/hide_notification',
        type: "POST",
        data: {notification_id: id},
        success: function(response) {
          notification.fadeOut();
        }
      });
    },

    hideUserNotification: function(){
      var ids = $.cookie('hide_notifications');
      if(ids === null) {
        return null;
      }

      if(ids.startsWith('[') && ids.endsWith(']')){
        ids = ids.substring(1, ids.length - 1);
        ids = ids.split(",");

        for(var i = 0; i < ids.length; i++) {
          $('[data-notification="' + ids[i] + '"]').fadeOut();
        }
      }
    },

    showPopup: function() {
      if($('.action-home-index').length > 0) {
        jQuery(function($){
          $.colorbox({href: noosfero_root()+'/plugin/admin_notifications/public/notifications_with_popup?previous_path=home'});
        });
      }
      else {
        jQuery(function($){
          $.colorbox({href: noosfero_root()+'/plugin/admin_notifications/public/notifications_with_popup'});
        });
      }
    },
  };

  $(document).ready(function(){
    admin_notifications_plugin.notificationBar();
    $(".notification-plugin-notification-bar .notification-close").on("click", admin_notifications_plugin.closeNotification);
    $(".notification-plugin-notification-bar .notification-hide").on("click", admin_notifications_plugin.hideNotification);

    if($('.notification-plugin-notification-bar').length > 0){
      admin_notifications_plugin.hideUserNotification();
    }

    if($('.notification-plugin-notification-bar [notification-display-popup="true"]').length > 0){
      admin_notifications_plugin.showPopup();
    }
  });

})($);