major updates to slice reservation page and plugins
[myslice.git] / portal / static / js / myslice-ui.js
index 0419986..de2ac74 100644 (file)
@@ -1,41 +1,31 @@
 
+/*
+ * Call it with level: success, info, warning, danger
+ */
+function mysliceAlert(msg, level, timeout) {
+       level = typeof level !== 'undefined' ? level : 'success';
+       timeout = typeof timeout !== 'undefined' ? timeout : false;
+       var el = $('#myslice-message');
+       el.find('.message').text(msg);
+       el.addClass('alert-' + level);
+       el.parent().fadeIn('fast');
+       if (timeout) {
+               setTimeout(function(){el.alert('close');},5000);
+       }
+};
 /* Table initialisation */
 $(document).ready(function() {
        
        var platformParameters = {};
        
-       var oTable = $("#objectList");
-               
-       $.get("/rest/platform", function(data) {
-               var list = '<div class="list-group-item sl-platfrom"><span class="list-group-item-heading">Testbeds</span></div>';
-               for(i=0; i<data.length;i++) {
-                       list += '<a href="#" class="list-group-item sl-platfrom" data-platform="'+data[i].platform+'"><span class="list-group-item-heading">'+data[i].platform_longname+'</span><p class="list-group-item-text">'+data[i].platform+'</p></a>';
-               }
-               $('#select-platform').html(list);
-       }).done(function() {
-               // $('a.sl-platfrom').click(function() {
-                       // console.log($(this).data('platform'));
-                       // platformParameters = { "platform" : $(this).data('platform') };
-                       // $('a.sl-platfrom').removeClass('active');
-                       // $(this).addClass('active');
-//                     
-                       // oTable.load("/list/resource", platformParameters, function(data) {
-                               // oTable.fnDraw();
-                       // });
-//                     
-                       // $('body').data('filters',platformParameters);
-               // });
+       $('#myslice-message').bind('closed.bs.alert', function () {
+               $(this).parent().hide();
        });
+
+       //mysliceAlert('hello','danger');
        
-       /* Testbeds list */
-       $('div#testbed-list').ready(function() {
-               $('table#testbedList').load("/table/testbed", function() {
-                       
-               });
-       });
        
-       //{'columns' : ['hostname','country','type'], 'filters' : { 'country' : 'France' } }
-       oTable.load("/table/resource/", {'columns' : ['hostname','country','type'] }, function(data) {
+       $("#objectList").load("/table/resource/", {"fields" : ["hostname","hrn","country","type"], "options": ["checkbox"] }, function(data) {
                $(this).dataTable( {
                        "sScrollY": window.innerHeight - 275,
                        "sDom": "frtiS",
@@ -47,14 +37,51 @@ $(document).ready(function() {
                "bSort": true,
                "bInfo": false,
                "bAutoWidth": true,
-               "bAutoHeight": false
+               "bAutoHeight": false,
+               "fnInitComplete": function(oSettings, json) {
+                               for(var i = 0; i < myslice.pending.length; i++) {
+                                       var el = $('*[data-key="'+myslice.pending[i]+'"]');
+                                       el.addClass("active");
+                                       el.find('input[type=checkbox]').prop('checked', true);
+                    /*
+                                       if (myslice.count() > 0) {
+                                               $('#badge-pending').text(myslice.count());
+                                               $('#badge-pending').show();
+                                       }
+                    */
+                               }
+                   }
                } );
+               
+               
+               $("input[type=checkbox]").click(function() {
+                       var cnt = 0;
+                       var id = $(this).val();
+                       var row = $(this).parent().parent()
+                       if (row.hasClass("active")) {
+                               row.removeClass("active");
+                               myslice.del(id);
+                               cnt = myslice.count();
+                /*
+                               $('#badge-pending').text(cnt);
+                               if (cnt <= 0) {
+                                       $('#badge-pending').hide();
+                               }*/
+                       } else {
+                               row.addClass("active");
+                               myslice.add(id);
+                /*
+                               cnt = myslice.count();
+                               $('#badge-pending').text(cnt);
+                               if (cnt > 0) {
+                                       $('#badge-pending').show();
+                               }*/
+                       }
+               });
        });
-} );
-
-function drawTable(data) {
        
-}
+       
+});
 
 //http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request
 //make sure to expose csrf in our outcoming ajax/post requests
@@ -80,4 +107,4 @@ $.ajaxSetup({
              xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
          }
      } 
-});
\ No newline at end of file
+});