selection of resources (pending), localstorage js enabled class
authorCiro Scognamiglio <ciro.scognamiglio@cslash.net>
Mon, 3 Mar 2014 18:56:38 +0000 (19:56 +0100)
committerCiro Scognamiglio <ciro.scognamiglio@cslash.net>
Mon, 3 Mar 2014 18:56:38 +0000 (19:56 +0100)
portal/static/css/onelab.css
portal/static/js/myslice-ui.js
portal/templates/onelab/onelab_slice-resource-view.html
rest/__init__.py
rest/templates/table-default.html
ui/templates/base.html

index 8147e1c..300fa93 100644 (file)
@@ -387,3 +387,6 @@ a.list-group-item p.list-group-item-text {
 }
 .slice-pending button.clear {
 }
+tr.active, tr.active td {
+    background-color:#FFFFCC !important;
+}
index 9522a94..7f740d3 100644 (file)
@@ -4,7 +4,6 @@ $(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>';
@@ -13,29 +12,17 @@ $(document).ready(function() {
                }
                $('#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);
-               // });
+               
        });
        
        /* Testbeds list */
-       $('div#testbed-list').ready(function() {
-               $('table#testbedList').load("/table/network/",{'fields' : ['platform'], 'options': ['checkbox']}, function() {
+       $("div#testbed-list").ready(function() {
+               $("table#testbedList").load("/table/network/", { "fields" : ["platform"], "options": ["checkbox"] }, function() {
                        
                });
        });
        
-       //{'columns' : ['hostname','country','type'], 'filters' : { 'country' : 'France' } }
-       oTable.load("/table/resource/", {'fields' : ['hostname','hrn','country','type'], 'options': ['checkbox'] }, 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 +34,41 @@ $(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++) {
+                                       $('*[data-key="'+myslice.pending[i]+'"]').addClass("active");
+                               }
+                   }
                } );
+               
+               
+               $("input[type=checkbox]").live('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
index a2971d1..2483b05 100644 (file)
@@ -26,7 +26,7 @@
                        <ul class="nav nav-pills">
                                <li><a href="">Unreserved</a></li>
                                <li><a href="">Reserved</a></li>
-                               <li><a href="">Pending<span class="badge">42</span></a></li>
+                               <li><a href="">Pending<span class="badge" id="badge-pending" style="display:none;"></span></a></li>
                                <li>
                                        <button type="button" class="btn btn-primary apply">Apply</button>
                                        <button type="button" class="btn btn-default clear">Clear</button>
index 39235b0..80438a2 100644 (file)
@@ -134,7 +134,7 @@ class ObjectRequest(object):
             for p in self.fields :
                 d.append(r[p])
             response_data['data'].append(d)
-         
+        
         return HttpResponse(json.dumps(response_data, cls=DecimalEncoder, default=DateEncoder), content_type="application/json")
 
 def error(msg):
index 18a943f..d971306 100644 (file)
@@ -7,8 +7,8 @@
 </thead>
 <tbody>
 {% for d in data %}
-<tr id="{{ d|key:id }}">
-       {% if "checkbox" in options %}<td class="checkbox"><input type="checkbox" name="{{ id }}" value="{{ d|key:id }}" /></td>{% endif %}
+<tr data-key="{{ d|key:id }}">
+       {% if "checkbox" in options %}<td><input type="checkbox" name="{{ id }}" value="{{ d|key:id }}" /></td>{% endif %}
        {% for f in fields %}<td><div class="line1">{{ d|key:f }}</div></td>{% endfor %}
 </tr>
 {% endfor %}
index 8b4e827..9732653 100644 (file)
@@ -8,6 +8,7 @@
 <script type="text/javascript"> {# raw js code - use {% insert prelude_js %} ... {% endinsert %} #} {% container prelude_js %}</script>
 <script src="{{ STATIC_URL }}js/jquery.dataTables.min.js"></script>
 <script src="{{ STATIC_URL }}js/bootstrap.datatables.js"></script>
+<script src="{{ STATIC_URL }}js/myslice.js"></script>
 <script src="{{ STATIC_URL }}js/myslice-ui.js"></script>
 <style type="text/css">{# In case we need to add raw css code #}{% container prelude_css %}</style>
 {{ header_prelude }}