Filter status: All, Available, Unavailable, Unconfigured, Pending, Reserved
[myslice.git] / plugins / querytable / static / js / querytable.js
index 3c1aab2..76934e7 100644 (file)
@@ -10,14 +10,6 @@ QUERYTABLE_BGCOLOR_REMOVED = 2;
 
 (function($){
 
-    
-    var QUERYTABLE_MAP = {
-        'Facility': 'facility_name',
-        'Testbed': 'testbed_name',
-        'Resource name': 'hostname',
-        'Type': 'type',
-    };
-
     var debug=false;
 //    debug=true
 
@@ -166,23 +158,37 @@ QUERYTABLE_BGCOLOR_REMOVED = 2;
             
             // resource info
             var sTable = this.table;
+            var oSettings = this.table.fnSettings();
+            var cols = oSettings.aoColumns;
+            var self = this;
             $('table.dataTable').delegate('a.resource-info','click',function() {
                 var aPos = sTable.fnGetPosition( this.parentNode );
                 var aData = sTable.fnGetData( aPos[0] );
-                //console.log(aData);
-                
-                var network_hrn = aData[18];
+                console.log(aData);
+
+                var index = {}
+                // XXX Loic @ Hardcoded !!! Maybe a loop over all fields would be better 
+                index['network_hrn'] = self.getColIndex('network_hrn',cols);
+                var network_hrn = aData[index['network_hrn']];
+
+                index['hostname'] = self.getColIndex('hostname',cols);
+                index['urn'] = self.getColIndex('urn',cols);
+                index['type'] = self.getColIndex('type',cols);
+                //index['status'] = self.getColIndex('boot_state',cols);
+                index['available'] = self.getColIndex('available',cols);
+                index['testbed'] = self.getColIndex('testbed_name',cols);
+                index['facility'] = self.getColIndex('facility_name',cols);
                 var resourceData = {
-                    'hostname' : strip(aData[2]),
-                    'urn' : aData[6],
-                    'type' : aData[3],
-                    'status' : aData[10],
-                    'testbed' : aData[4],
-                    'facility' : aData[5],
+                    'hostname' : strip(aData[index['hostname']]),
+                    'urn' : aData[index['urn']],
+                    'type' : aData[index['type']],
+                    //'status' : aData[index['status']],
+                    'available' : aData[index['available']],
+                    'testbed' : aData[index['testbed']],
+                    'facility' : aData[index['facility']],
                 };
                 
-                
-                console.log(network_hrn);
+                /*
                 //Greece: 37.6687092,22.2282404
                 if (network_hrn == 'omf.nitos') {
                     var logo = 'nitos';
@@ -192,24 +198,27 @@ QUERYTABLE_BGCOLOR_REMOVED = 2;
                     };
                     var coordinates = resourceLocation['latitude']+','+resourceLocation['longitude'];
                 } else if (network_hrn == 'iotlab') {
+                */
+                if (network_hrn == 'iotlab') {
                     var logo = network_hrn;
                     var s = resourceData['hostname'].split(".");
                     var n = s[0].split("-");
                     resourceData['type'] = 'node ( Hardware: <a target="_blank" href="https://www.iot-lab.info/hardware/'+n[0]+'/">'+n[0]+'</a> )';
                     var coordinates = resourceData['testbed'];
                 } else {
-                    var logo = network_hrn;
+                    var logo = resourceData['testbed'];
                     var resourceLocation = {
-                        'longitude' : aData[13],
-                        'latitude' : aData[23],
+                        'longitude' : aData[20],
+                        'latitude' : aData[17],
                     };
                     var coordinates = resourceLocation['latitude']+','+resourceLocation['longitude'];
+                    console.log(coordinates);
                 }
                 
                 var modal = $('#resource-info-modal');
                 modal.find('.modal-title').text(resourceData['testbed'] + ': ' +resourceData['hostname']);
                 table = modal.find('.modal-resource-info');
-                table.html('<tr><td colspan="2"><img class="img-responsive" src="/static/img/testbeds/'+logo+'.png" alt="'+resourceData['facility']+' - '+resourceData['testbed']+'" /></td></tr>');
+                table.html('<tr><td colspan="2"><center><img class="img-responsive" src="/static/img/testbeds/'+logo+'.png" alt="'+resourceData['facility']+' - '+resourceData['testbed']+'" /></center></td></tr>');
                 for (var j in resourceData) {
                     table.append('<tr><td>' + j + '</td><td>' + resourceData[j] + '</td></tr>');
                 }
@@ -527,11 +536,11 @@ QUERYTABLE_BGCOLOR_REMOVED = 2;
                             this.set_bgcolor(data.value, QUERYTABLE_BGCOLOR_RESET);
                             break;
                         case STATE_SET_IN_PENDING:
-                            this.set_checkbox_from_data(data.key, true);
+                            this.set_checkbox_from_data(data.value, true);
                             this.set_bgcolor(data.value, QUERYTABLE_BGCOLOR_ADDED);
                             break;  
                         case STATE_SET_OUT_PENDING:
-                            this.set_checkbox_from_data(data.key, false);
+                            this.set_checkbox_from_data(data.value, false);
                             this.set_bgcolor(data.value, QUERYTABLE_BGCOLOR_REMOVED);
                             break;
                     }