060269a85a7a6235a6356f00b800c3d5546eca9e
[unfold.git] / portal / static / js / myslice-ui.js
1
2 /*
3  * Call it with level: success, info, warning, danger
4  */
5 function mysliceAlert(msg, level) {
6         level = typeof level !== 'undefined' ? level : 'success';
7         var el = $('#myslice-message');
8         el.find('.message').text(msg);
9         el.addClass('alert-' + level);
10         el.fadeIn('fast');
11 };
12 /* Table initialisation */
13 $(document).ready(function() {
14         
15         var platformParameters = {};
16         
17         
18         
19         
20         
21         $("#objectList").load("/table/resource/", {"fields" : ["hostname","hrn","country","type"], "options": ["checkbox"] }, function(data) {
22                 $(this).dataTable( {
23                         "sScrollY": window.innerHeight - 275,
24                         "sDom": "frtiS",
25                 "bScrollCollapse": true,
26                 "bStateSave": true,
27                 "bPaginate": false,
28                 "bLengthChange": false,
29                 "bFilter": false,
30                 "bSort": true,
31                 "bInfo": false,
32                 "bAutoWidth": true,
33                 "bAutoHeight": false,
34                 "fnInitComplete": function(oSettings, json) {
35                                 for(var i = 0; i < myslice.pending.length; i++) {
36                                         var el = $('*[data-key="'+myslice.pending[i]+'"]');
37                                         el.addClass("active");
38                                         el.find('input[type=checkbox]').prop('checked', true);
39                                         if (myslice.count() > 0) {
40                                                 $('#badge-pending').text(myslice.count());
41                                                 $('#badge-pending').show();
42                                         }
43                                 }
44                     }
45                 } );
46                 
47                 
48                 $("input[type=checkbox]").click(function() {
49                         var cnt = 0;
50                         var id = $(this).val();
51                         var row = $(this).parent().parent()
52                         if (row.hasClass("active")) {
53                                 row.removeClass("active");
54                                 myslice.del(id);
55                                 cnt = myslice.count();
56                                 $('#badge-pending').text(cnt);
57                                 if (cnt <= 0) {
58                                         $('#badge-pending').hide();
59                                 }
60                         } else {
61                                 row.addClass("active");
62                                 myslice.add(id);
63                                 cnt = myslice.count();
64                                 $('#badge-pending').text(cnt);
65                                 if (cnt > 0) {
66                                         $('#badge-pending').show();
67                                 }
68                         }
69                 });
70         });
71         
72         
73 });
74
75 //http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request
76 //make sure to expose csrf in our outcoming ajax/post requests
77 $.ajaxSetup({ 
78      beforeSend: function(xhr, settings) {
79          function getCookie(name) {
80              var cookieValue = null;
81              if (document.cookie && document.cookie != '') {
82                  var cookies = document.cookie.split(';');
83                  for (var i = 0; i < cookies.length; i++) {
84                      var cookie = jQuery.trim(cookies[i]);
85                      // Does this cookie string begin with the name we want?
86                  if (cookie.substring(0, name.length + 1) == (name + '=')) {
87                      cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
88                      break;
89                  }
90              }
91          }
92          return cookieValue;
93          }
94          if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
95              // Only send the token to relative URLs i.e. locally.
96              xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
97          }
98      } 
99 });