From fea6ada3816e97bdc4d498b72d2d02ee5ea662d9 Mon Sep 17 00:00:00 2001 From: Loic Baron Date: Fri, 12 Jun 2015 19:57:59 +0200 Subject: [PATCH] ASAP plugin updated, taking only iotlab resources into account --- plugins/asap/static/js/asap.js | 96 ++++++++++++++++---------------- plugins/asap/templates/asap.html | 8 +-- 2 files changed, 50 insertions(+), 54 deletions(-) diff --git a/plugins/asap/static/js/asap.js b/plugins/asap/static/js/asap.js index dc619875..861f0cf9 100644 --- a/plugins/asap/static/js/asap.js +++ b/plugins/asap/static/js/asap.js @@ -60,17 +60,14 @@ var AsapDateSelected = new Date(); _initUI: function() { var self = this; + + /* dateToday = new Date(); $("#DateAsap").datepicker({ //dateFormat: "D, d M yy", minDate: dateToday, defaultDate: dateToday, - /* - onRender: function(date) { - return date.valueOf() < now.valueOf() ? 'disabled' : ''; - }, - */ }).on('changeDate', function(ev) { if(ev.date < dateToday){ $("#asap_msg").show(); @@ -82,43 +79,32 @@ var AsapDateSelected = new Date(); AsapDateSelected = ev.date; } }).datepicker('setValue', AsapDateSelected); - /* - .on('changeDate', function(ev) { - AsapDateSelected = new Date(ev.date); - AsapDateSelected.setHours(0,0,0,0); - // Set slider to origin - //$('#tblSlider').slider('setValue', 0); // XXX - // Refresh leases - self._scope_clear_leases(); - self._set_all_lease_slots(); - // Refresh display - self._get_scope().$apply(); - }).datepicker('setValue', AsapDateSelected); //.data('datepicker'); */ $("#asap_schedule").click(function() { - dateNow = new Date(); r = document.getElementById("resources"); if(r.childNodes.length == 0){ $("#asap_msg").show(); $("#asap_msg").css("color","orange"); - $("#asap_msg").html("Please select at least one resource"); + $("#asap_msg").html("Please select at least one IoTLab resource"); $("#asap_msg").fadeOut(4000); }else{ start_time = 0; - hours = $("#hours").val(); - minutes = $("#minutes").val(); - AsapDateSelected.setHours(hours,minutes,0,0); - if(AsapDateSelected <= dateNow){ + duration = $("#duration").val(); + if(!parseInt(duration)){ $("#asap_msg").show(); $("#asap_msg").css("color","red"); - $("#asap_msg").html("Please select a correct end time"); + $("#asap_msg").html("Please set the duration with a number"); $("#asap_msg").fadeOut(4000); }else{ - $.each(r.childNodes, function(i, el){ + elements = r.childNodes; + // length of elements changes during loop as we remove elements one by one + var size = elements.length; + for (i = 0; i < size; i++) { + // lets take the first element + el = elements[0]; t_id = el.id.split("_"); - console.log(t_id[1]); - self.send_lease(t_id[1], start_time, AsapDateSelected); - }); + self.send_lease(t_id[1], String(start_time), duration); + } } } }); @@ -126,7 +112,7 @@ var AsapDateSelected = new Date(); // a function to bind events here: click change // how to raise manifold events - send_lease: function(resource_urn, start_time, end_time) + send_lease: function(resource_urn, start_time, duration) { var lease_key, new_lease, data; @@ -135,7 +121,8 @@ var AsapDateSelected = new Date(); new_lease = { resource: resource_urn, start_time: start_time, - end_time: end_time.getTime()/1000, + duration: duration, + //end_time: end_time.getTime()/1000, }; // This is needed to create a hashable object @@ -188,29 +175,40 @@ var AsapDateSelected = new Date(); on_resources_field_state_changed: function(record) { - console.log("on_resources_field_state_changed ---- "); - console.log(record); - if(record['op']==2){ - var elm = document.createElement('div'); - elm.innerHTML = record['value']; - elm.id = "asap_"+record['value']; - r = document.getElementById("resources"); - r.appendChild(elm); - }else if(record['op']==1){ - this.remove("asap_"+record['value']); + if(record["op"] != null){ + resource = manifold.query_store.get_record(this.options.query_uuid,record['value']); + console.log(resource); + // TODO: Define which facilities support ASAP + if(resource["authority_id"]=="iotlab"){ + // TODO: use filters Pending or Unconfigured + if(record['op']==2){ + var elm = document.createElement('div'); + elm.innerHTML = record['value']; + elm.id = "asap_"+record['value']; + r = document.getElementById("resources"); + r.appendChild(elm); + }else if(record['op']==1){ + this.remove("asap_"+record['value']); + } + } } }, on_leases_field_state_changed: function(record) { - console.log(record); - if(record['op']==2){ - this.remove("asap_"+record['value']['resource']); - }else if(record['op']==1){ - var elm = document.createElement('div'); - elm.innerHTML = record['value']['resource']; - elm.id = "asap_"+record['value']['resource']; - r = document.getElementById("resources"); - r.appendChild(elm); + resource = manifold.query_store.get_record(this.options.query_uuid,record['value']['resource']); + console.log(resource); + // TODO: Define which facilities support ASAP + if(resource["authority_id"]=="iotlab"){ + // TODO: use filters Pending or Unconfigured + if(record['op']==2){ + this.remove("asap_"+record['value']['resource']); + }else if(record['op']==1){ + var elm = document.createElement('div'); + elm.innerHTML = record['value']['resource']; + elm.id = "asap_"+record['value']['resource']; + r = document.getElementById("resources"); + r.appendChild(elm); + } } }, diff --git a/plugins/asap/templates/asap.html b/plugins/asap/templates/asap.html index 35567b4f..3da60415 100644 --- a/plugins/asap/templates/asap.html +++ b/plugins/asap/templates/asap.html @@ -6,12 +6,10 @@
 
-
From:
-
To: - - : +
As soon as possible for + minutes
-
+
-- 2.43.0