List of testbeds based on the resources all_query
authorLoic Baron <loic.baron@lip6.fr>
Tue, 17 Jun 2014 13:07:18 +0000 (08:07 -0500)
committerLoic Baron <loic.baron@lip6.fr>
Tue, 17 Jun 2014 13:07:18 +0000 (08:07 -0500)
plugins/testbeds/__init__.py
plugins/testbeds/static/js/testbeds.js
portal/sliceresourceview.py

index 6b2b89d..a7dd15e 100644 (file)
@@ -7,9 +7,6 @@ class TestbedsPlugin(Plugin):
 
         # Until we have a proper way to access queries in Python
         self.query              = query
-        self.query_network      = query_network
-        self.query_network_uuid = query_network.query_uuid if query_network else None
-
         self.query_all          = query_all
         self.query_all_uuid     = query_all.query_uuid if query_all else None
 
@@ -31,7 +28,7 @@ class TestbedsPlugin(Plugin):
         # query_uuid will pass self.query results to the javascript
         # and will be available as "record" in :
         # on_new_record: function(record)
-        return ['plugin_uuid', 'domid', 'query_uuid', 'query_all_uuid', 'query_network_uuid']
+        return ['plugin_uuid', 'domid', 'query_uuid', 'query_all_uuid']
 
     def export_json_settings (self):
         return True
index b977127..5f990b9 100644 (file)
@@ -29,7 +29,7 @@
 
             /* Member variables */
             this.filters = Array();
-
+            this.testbeds = Array();
             /* Plugin events */
 
             /* Setup query and record handlers */
@@ -39,7 +39,6 @@
             // Some can be less efficient
             this.listen_query(options.query_uuid);
             this.listen_query(options.query_all_uuid, 'all');
-            this.listen_query(options.query_network_uuid, 'network');
 
             /* GUI setup and event binding */
             // call function
         // ... be sure to list all events here
 
         /* RECORD HANDLERS */
-        on_network_new_record: function(record)
+        on_all_new_record: function(record)
         {
-            row  = '<a href="#" class="list-group-item sl-platform" id="testbeds-filter_'+record["network_hrn"]+'" data-platform="'+record["network_hrn"]+'">';
-            row += '<span class="list-group-item-heading">'+record["platform"]+'</span>';
-            //row += '<span class="list-group-item-heading">'+record["network_hrn"]+'</span></a>';
-            row += '<p class="list-group-item-text">'+record["network_hrn"]+'</p></a>';
-            $('#testbeds-filter').append(row);
+            var self = this;
+            // If the resource has a network_hrn
+            if(record["network_hrn"]!="None" && record["network_hrn"]!="" && record["network_hrn"]!=null){
+                // If this network_hrn is not listed yet
+                if(jQuery.inArray(record["network_hrn"],self.testbeds)==-1){
+                    row  = '<a href="#" class="list-group-item sl-platform" id="testbeds-filter_'+record["network_hrn"]+'" data-platform="'+record["network_hrn"]+'">';
+                    //row += '<span class="list-group-item-heading">'+record["platform"]+'</span>';
+                    //row += '<span class="list-group-item-heading">'+record["network_hrn"]+'</span></a>';
+                    row += '<p class="list-group-item-heading">'+record["network_hrn"]+'</p></a>';
+                    $('#testbeds-filter').append(row);
+                    self.testbeds.push(record["network_hrn"]);
+                }
+            }
         },
 
-        /* When the network query is done, add the click event to the elements  */
-        on_network_query_done: function() {
+        /* When the query is done, add the click event to the elements  */
+        on_all_query_done: function() {
             var self = this;
             console.log('query network DONE');
             $("[id^='testbeds-filter_']").on('click',function(e) {
index 1ea6ead..5b8ce0f 100644 (file)
@@ -202,8 +202,8 @@ class SliceResourceView (LoginRequiredView, ThemeView):
         network_md = metadata.details_by_object('network')
         network_fields = [column['name'] for column in network_md['column']]
 
-        query_network = Query.get('network').select(network_fields)
-        page.enqueue_query(query_network)
+        #query_network = Query.get('network').select(network_fields)
+        #page.enqueue_query(query_network)
 
         filter_testbeds = TestbedsPlugin(
             page          = page,
@@ -211,7 +211,7 @@ class SliceResourceView (LoginRequiredView, ThemeView):
             title         = 'Filter by testbeds',
             query         = sq_resource,
             query_all     = query_resource_all,
-            query_network = query_network,
+            #query_network = query_network,
             init_key      = "network_hrn",
             checkboxes    = True,
             datatables_options = {