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