X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Fquerytable%2Fstatic%2Fjs%2Fquerytable.js;h=c22dbd2cbd175e6cce8173f8da6fc617f514e0df;hb=e283fe2eb8fc83942da4c7e5055f0d3969fefa22;hp=c1b19235c993ad11179f7cc84129661d9dd0ab14;hpb=6d197d7242b86bf96af689af3530971838fc557d;p=myslice.git diff --git a/plugins/querytable/static/js/querytable.js b/plugins/querytable/static/js/querytable.js index c1b19235..c22dbd2c 100644 --- a/plugins/querytable/static/js/querytable.js +++ b/plugins/querytable/static/js/querytable.js @@ -90,7 +90,7 @@ QUERYTABLE_BGCOLOR_REMOVED = 2; sPaginationType: 'bootstrap', // Handle the null values & the error : Datatables warning Requested unknown parameter // http://datatables.net/forums/discussion/5331/datatables-warning-...-requested-unknown-parameter/p2 - aoColumnDefs: [{sDefaultContent: '', aTargets: [ '_all' ]}], + aoColumnDefs: [{sDefaultContent: '', aTargets: [ '_all' ], "sType": "mysort"}], // WARNING: this one causes tables in a 'tabs' that are not exposed at the time this is run to show up empty // sScrollX: '100%', /* Horizontal scrolling */ bProcessing: true, /* Loading */ @@ -164,7 +164,7 @@ QUERYTABLE_BGCOLOR_REMOVED = 2; $('table.dataTable').delegate('a.resource-info','click',function() { var aPos = sTable.fnGetPosition( this.parentNode ); var aData = sTable.fnGetData( aPos[0] ); - //console.log(aData); + console.log(aData); var index = {} // XXX Loic @ Hardcoded !!! Maybe a loop over all fields would be better @@ -174,14 +174,16 @@ QUERYTABLE_BGCOLOR_REMOVED = 2; 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['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[index['hostname']]), 'urn' : aData[index['urn']], 'type' : aData[index['type']], - 'status' : aData[index['status']], + //'status' : aData[index['status']], + 'available' : aData[index['available']], 'testbed' : aData[index['testbed']], 'facility' : aData[index['facility']], }; @@ -206,16 +208,17 @@ QUERYTABLE_BGCOLOR_REMOVED = 2; } else { 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(''+resourceData['facility']+' - '+resourceData['testbed']+''); + table.html('
'+resourceData['facility']+' - '+resourceData['testbed']+'
'); for (var j in resourceData) { table.append('' + j + '' + resourceData[j] + ''); } @@ -666,6 +669,66 @@ QUERYTABLE_BGCOLOR_REMOVED = 2; return result=$('td:eq('+iColumn+') input', tr).prop('checked') ? '1' : '0'; }); }; + + // use sType: "mysort" for any columns you wish to use these routines + // http://datatables.net/forums/discussion/7546/alpha-numeric-sort + jQuery.fn.dataTableExt.oSort['mysort-asc'] = function(a,b) { + var r = new RegExp("<([a-zA-Z]+).*?>(.*?)"); + if (r.exec(a) != null){ + a = r.exec(a)[2]; + } + if (r.exec(b) != null){ + b = r.exec(b)[2]; + } + a = a.replace(/[^A-Za-z0-9]/, ""); + b = b.replace(/[^A-Za-z0-9]/, ""); + var re = new RegExp("^([a-zA-Z]*)(.*)"); + var x = re.exec(a); + var y = re.exec(b); + + // you might want to force the first portion to lowercase + // for case insensitive matching + // x[1] = x[1].toLowerCase(); + // y[1] = y[1].toLowerCase(); + + if (x[1] > y[1]) return 1; + if (x[1] < y[1]) return -1; + + // if you want to force the 2nd part to only be numeric: + x[2] = parseInt(x[2]); + y[2] = parseInt(y[2]); + + return ((x[2] < y[2]) ? -1 : ((x[2] > y[2]) ? 1 : 0)); + }; + + jQuery.fn.dataTableExt.oSort['mysort-desc'] = function(a,b) { + var r = new RegExp("<([a-zA-Z]+).*?>(.*?)"); + if (r.exec(a) != null){ + a = r.exec(a)[2]; + } + if (r.exec(b) != null){ + b = r.exec(b)[2]; + } + a = a.replace(/[^A-Za-z0-9]/, ""); + b = b.replace(/[^A-Za-z0-9]/, ""); + var re = new RegExp("^([a-zA-Z]*)(.*)"); + var x = re.exec(a); + var y = re.exec(b); + + // you might want to force the first portion to lowercase + // for case insensitive matching + // x[1] = x[1].toLowerCase(); + // y[1] = y[1].toLowerCase(); + + if (x[1] > y[1]) return -1; + if (x[1] < y[1]) return 1; + + // if you want to force the 2nd part to only be numeric: + x[2] = parseInt(x[2]); + y[2] = parseInt(y[2]); + + return ((x[2] < y[2]) ? 1 : ((x[2] > y[2]) ? -1 : 0)); + };