Merge branch 'onelab' of ssh://git.onelab.eu/git/myslice into onelab
[myslice.git] / manifoldapi / static / js / manifold.js
index f75ae20..d0d314e 100644 (file)
@@ -516,7 +516,7 @@ function QueryStore() {
     this.recount = function(query_uuid)
     {
         var query_ext;
-        var is_reserved, is_pending, in_set,  is_unconfigured;
+        var is_reserved, is_pending, in_set, is_unconfigured, is_unavailable, is_available;
 
         query_ext = manifold.query_store.find_analyzed_query_ext(query_uuid);
         query_ext.num_pending = 0;
@@ -525,6 +525,8 @@ function QueryStore() {
         this.iter_records(query_uuid, function(record_key, record) {
             var record_state = manifold.query_store.get_record_state(query_uuid, record_key, STATE_SET);
             var record_warnings = manifold.query_store.get_record_state(query_uuid, record_key, STATE_WARNINGS);
+            is_unavailable = (record.available == 'false'); 
+            is_available = (record.available == 'true'); 
 
             is_reserved = (record_state == STATE_SET_IN) 
                        || (record_state == STATE_SET_OUT_PENDING)
@@ -564,7 +566,7 @@ function QueryStore() {
         // Adapted from querytable._querytable_filter()
 
         this.iter_records(query_uuid, function(record_key, record) {
-            var is_reserved, is_pending, in_set,  is_unconfigured;
+            var is_reserved, is_pending, in_set, is_unconfigured, is_unavailable, is_available;
 
             /* By default, a record is visible unless a filter says the opposite */
             var visible = true;
@@ -572,6 +574,9 @@ function QueryStore() {
             var record_state = manifold.query_store.get_record_state(query_uuid, record_key, STATE_SET);
             var record_warnings = manifold.query_store.get_record_state(query_uuid, record_key, STATE_WARNINGS);
 
+            is_unavailable = (record.available == 'false'); 
+            is_available = (record.available == 'true'); 
+
             is_reserved = (record_state == STATE_SET_IN) 
                        || (record_state == STATE_SET_OUT_PENDING)
                        || (record_state == STATE_SET_IN_SUCCESS)
@@ -610,6 +615,12 @@ function QueryStore() {
                             // false => ~ break
                             visible = is_reserved;
                             return visible;
+                        case 'available':
+                            visible = is_available;
+                            return visible;
+                        case 'unavailable':
+                            visible = is_unavailable;
+                            return visible;
                         case 'unconfigured':
                             visible = is_unconfigured;
                             return visible;
@@ -1691,7 +1702,10 @@ case TYPE_LIST_OF_VALUES:
         var query, data;
 
         query = query_ext.query;
-
+        var testbeds_with_sla = Array();
+        if(localStorage.getItem("sla_testbeds")!=null){
+            testbeds_with_sla = localStorage.getItem("sla_testbeds").split(",");
+        }
         switch(query.object) {
 
             case 'resource':
@@ -1701,7 +1715,7 @@ case TYPE_LIST_OF_VALUES:
                 // 
                 // +) If a reservable node is added to the slice, then it should have a corresponding lease
                 // XXX Not always a resource
-                var is_reservable = (record.exclusive == true);
+                var is_reservable = (record.exclusive == 'true');
                 if (is_reservable) {
                     // var warnings = manifold.query_store.get_record_state(query.query_uuid, record_key, STATE_WARNINGS);
 
@@ -1737,9 +1751,9 @@ case TYPE_LIST_OF_VALUES:
                     }
                 }
 
-                /*var urn_regexp = /\+(.*?)\+/;
+                var urn_regexp = /\+(.*?)\+/;
                 var testbed_urn = urn_regexp.exec(record.urn)[1];
-                var has_sla = $.inArray(testbed_urn, localStorage.getItem("sla_testbeds").split(",")) != -1;
+                var has_sla = $.inArray(testbed_urn, testbeds_with_sla) != -1;
 
                 if (has_sla) {
                     // var warnings = manifold.query_store.get_record_state(query.query_uuid, record_key, STATE_WARNINGS);
@@ -1750,7 +1764,7 @@ case TYPE_LIST_OF_VALUES:
                     } else {
                         delete warnings[CONSTRAINT_SLA];
                     }
-                }*/
+                }
 
                 manifold.query_store.set_record_state(query.query_uuid, record_key, STATE_WARNINGS, warnings);
                 // Signal the change to plugins (even if the constraint does not apply, so that the plugin can display a checkmark)