X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=manifoldapi%2Fstatic%2Fjs%2Fmanifold.js;h=d0d314ea4b09afffb5da0a0535db0446e6b75d9d;hb=75b26254fbc898b1adb7aab4eb654b2ef5dcb375;hp=d6f09320b98bf8cdd99ae78a6b2685aad2b1de48;hpb=6eb98c83dccb555e576740d8000d6fad8044763f;p=myslice.git diff --git a/manifoldapi/static/js/manifold.js b/manifoldapi/static/js/manifold.js index d6f09320..d0d314ea 100644 --- a/manifoldapi/static/js/manifold.js +++ b/manifoldapi/static/js/manifold.js @@ -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; @@ -1085,7 +1096,7 @@ var manifold = { * \param array results results corresponding to query */ publish_result: function(query, result) { - if (typeof result === 'undefined') + if (result == null || typeof result === 'undefined') result = []; // NEW PLUGIN API @@ -1116,29 +1127,31 @@ var manifold = { }, store_records: function(query, records) { - // Store records - var query_ext = manifold.query_store.find_analyzed_query_ext(query.query_uuid); - if (query_ext.set_query_ext) { - // We have a domain query - // The results are stored in the corresponding set_query - manifold.query_store.set_records(query_ext.set_query_ext.query.query_uuid, records); - - } else if (query_ext.domain_query_ext) { - // We have a set query, it is only used to determine which objects are in the set, we should only retrieve the key - // Has it a domain query, and has it completed ? - $.each(records, function(i, record) { - var key = manifold.metadata.get_key(query.object); - if ( typeof record === "string" ){ - var record_key = record; - }else{ - var record_key = manifold.record_get_value(record, key); - } - manifold.query_store.set_record_state(query.query_uuid, record_key, STATE_SET, STATE_SET_IN); - }); + if(records != null && records.length != 0){ + // Store records + var query_ext = manifold.query_store.find_analyzed_query_ext(query.query_uuid); + if (query_ext.set_query_ext) { + // We have a domain query + // The results are stored in the corresponding set_query + manifold.query_store.set_records(query_ext.set_query_ext.query.query_uuid, records); + + } else if (query_ext.domain_query_ext) { + // We have a set query, it is only used to determine which objects are in the set, we should only retrieve the key + // Has it a domain query, and has it completed ? + $.each(records, function(i, record) { + var key = manifold.metadata.get_key(query.object); + if ( typeof record === "string" ){ + var record_key = record; + }else{ + var record_key = manifold.record_get_value(record, key); + } + manifold.query_store.set_record_state(query.query_uuid, record_key, STATE_SET, STATE_SET_IN); + }); - } else { - // We have a normal query - manifold.query_store.set_records(query.query_uuid, records, STATE_SET_IN); + } else { + // We have a normal query + manifold.query_store.set_records(query.query_uuid, records, STATE_SET_IN); + } } }, @@ -1689,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': @@ -1699,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); @@ -1735,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); @@ -1748,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)