}\r
\r
$scope._create_new_lease(model_resource.urn, start_time, end_time);\r
- model_lease.status = 'pendingin'; \r
+ model_lease.status = (model_lease.status == 'free') ? 'pendingin' : 'selected';\r
// unless the exact same lease already existed (pending_out status for the lease, not the cell !!)\r
\r
break;\r
}\r
\r
// cf comment in previous switch case\r
- model_lease.status = 'pendingout'; \r
+ model_lease.status = (model_lease.status == 'selected') ? 'pendingout' : 'free';\r
\r
break;\r
\r
scope._leases_by_resource[lease.resource] = [];\r
scope._leases_by_resource[lease.resource].push(lease);\r
\r
- self._set_lease_slots(lease_key, lease);\r
+ });\r
\r
+ this._set_all_lease_slots();\r
+ },\r
+\r
+ _set_all_lease_slots: function()\r
+ {\r
+ var self = this;\r
+ \r
+ manifold.query_store.iter_records(this.options.query_lease_uuid, function(lease_key, lease) {\r
+ self._set_lease_slots(lease_key, lease);\r
});\r
},\r
\r
\r
resource = this.scope_resources_by_key[lease.resource];\r
day_timestamp = SchedulerDateSelected.getTime() / 1000;\r
- id_start = (lease.start_time - day_timestamp) / resource.granularity;\r
+ id_start = Math.floor((lease.start_time - day_timestamp) / resource.granularity);\r
\r
/* Some leases might be in the past */\r
if (id_start < 0)\r
if (id_start >= this._all_slots.length)\r
return true; // ~ continue\r
\r
- id_end = (lease.end_time - day_timestamp) / resource.granularity - 1;\r
+ id_end = Math.ceil((lease.end_time - day_timestamp) / resource.granularity);\r
colspan_lease = resource.granularity / this._granularity; //eg. 3600 / 1800 => 2 cells\r
if (id_end >= this._all_slots.length / colspan_lease) {\r
/* Limit the display to the current day */\r
id_end = this._all_slots.length / colspan_lease\r
}\r
\r
- for (i = id_start; i <= id_end; i++) {\r
+ for (i = id_start; i < id_end; i++) {\r
// the same slots might be affected multiple times.\r
// PENDING_IN + PENDING_OUT => IN \r
//\r
lease_success = '';\r
break;\r
case STATE_SET_OUT_PENDING:\r
- lease_class = 'pendingout';\r
+ // pending_in & pending_out == IN == replacement\r
+ if (resource.leases[i].status == 'pendingin')\r
+ lease_class = 'pendingin'\r
+ else\r
+ lease_class = 'pendingout';\r
lease_success = '';\r
break;\r
\r
$('#tblSlider').slider('setValue', 0); // XXX\r
// Refresh leases\r
self._scope_clear_leases();\r
- self._scope_set_leases();\r
+ self._set_all_lease_slots();\r
// Refresh display\r
self._get_scope().$apply();\r
}).datepicker('setValue', SchedulerDateSelected); //.data('datepicker');\r