- lease_methods: {
-
- init_free: function (lease, unclick) {
- var o = lease.scheduler.options;
- lease.current="free";
- // set color
- lease.animate((lease.initial=="free") ? attr_lease_free_free : attr_lease_mine_free, o.anim_delay);
- // keep track of the current status
- // record action
- lease.click (lease_methods.click_free);
- if (unclick) lease.unclick(unclick);
- },
-
- // find out all the currently free leases that overlap this one
- click_free: function (event) {
- var scheduler = this.scheduler;
- lease_methods.init_mine(this,lease_methods.click_free);
- //publish
- //this.from_time
- //this.urn
- //this.until_time
- var urn = this.urn
- var start_time=new Date(this.from_time).getTime() / 1000;
- var end_time=new Date(this.until_time).getTime() / 1000;
- var duration=(end_time-start_time)/1800; // XXX HARDCODED LEASE GRAIN
-
- /* Add a new lease : XXX should be replaced by a dictionary */
- // Do we have a lease with the same urn just before or just after ?
- var removeIdBefore = null;
- var removeIdAfter = null;
- jQuery.each(scheduler.listLeases, function(i, lease) {
- if (lease[0] == urn) {
- if (lease[1] + lease[2] * 1800 == start_time) { // XXX HARDCODED LEASE GRAIN
- // Merge with previous lease
- removeIdBefore = i;
- start_time = lease[1];
- duration += lease[2];
- }
- if (lease[1] == end_time) {
- // Merge with following lease
- removeIdAfter = i;
- duration += lease[2];
- }
+ _lease_init_free: function (lease, unclick)
+ {
+ var o = lease.scheduler.options;
+ lease.current = "free";
+ // set color
+ lease.animate((lease.initial == "free") ? attr_lease_free_free : attr_lease_mine_free, o.anim_delay);
+ // keep track of the current status
+ // record action
+ lease.click(this._lease_click_free);
+ if (unclick) lease.unclick(unclick);
+ },
+
+ // find out all the currently free leases that overlap this one
+ _lease_click_free: function (event)
+ {
+ var scheduler = this.scheduler;
+
+ scheduler._lease_init_mine(this, scheduler._lease_click_free);
+ //publish
+ //this.from_time
+ //this.urn
+ //this.until_time
+ var urn = this.urn
+ var start_time = new Date(this.from_time).getTime() / 1000;
+ var end_time = new Date(this.until_time).getTime() / 1000;
+ var duration = (end_time - start_time) / 1800; // XXX HARDCODED LEASE GRAIN
+
+ /* Add a new lease : XXX should be replaced by a dictionary */
+ // Do we have a lease with the same urn just before or just after ?
+ //var removeIdBefore = null;
+ //var removeIdAfter = null;
+ var remove_lease_before = null;
+ var remove_lease_after = null;
+ // It is important to group leases, while this is technically
+ // equivalent, some testbeds such as IotLab limit the number of
+ // leases a user can have.
+ // XXX we might have several leases before or after if they have
+ // XXX not been grouped like this tool does
+ $.each(scheduler._leases, function(i, lease) {
+ if (lease[0] == urn) {
+ if (lease[1] + lease[2] * 1800 == start_time) { // XXX HARDCODED LEASE GRAIN
+ // Merge with previous lease
+ // removeIdBefore = i;
+ remove_lease_before = lease;
+ start_time = lease[1];
+ duration += lease[2];
+ }
+ if (lease[1] == end_time) {
+ // Merge with following lease
+ // removeIdAfter = i;
+ remove_lease_after = lease;
+ duration += lease[2];