}\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
do_resize: function()\r
{\r
var scope = this._get_scope();\r
+ var num_hidden_cells, new_max;\r
\r
$('#' + schedulerTblId + ' thead tr th:eq(0)').css("width", SCHEDULER_FIRST_COLWIDTH);\r
//self get width might need fix depending on the template \r
scope.lcm_colspan = this._lcm_colspan;\r
\r
// Slider max value\r
-\r
if ($('#tblSlider').data('slider') != undefined) {\r
- var new_max = (this._all_slots.length - this._num_visible_cells) / this._lcm_colspan;\r
- $('#tblSlider').slider('setAttribute', 'max', new_max);\r
+ num_hidden_cells = this._all_slots.length - this._num_visible_cells;\r
+\r
+ $('#tblSlider').slider('setAttribute', 'max', num_hidden_cells);\r
+ $('#tblSlider').slider('setValue', scope.from, true);\r
+ this._get_scope().$apply();\r
}\r
\r
+\r
},\r
\r
on_show: function(e)\r
\r
_scope_clear_leases: function()\r
{\r
+ var time, now;\r
var self = this;\r
var scope = this._get_scope();\r
\r
+ now = new Date().getTime();\r
+\r
// Setup leases with a default free status...\r
$.each(this.scope_resources_by_key, function(resource_key, resource) {\r
resource.leases = [];\r
var colspan_lease = resource.granularity / self._granularity; //eg. 3600 / 1800 => 2 cells\r
+ time = SchedulerDateSelected.getTime();\r
for (i=0; i < self._all_slots.length / colspan_lease; i++) { // divide by granularity\r
resource.leases.push({\r
id: 'coucou',\r
- status: 'free', // 'selected', 'reserved', 'maintenance' XXX pending ??\r
+ status: (time < now) ? 'disabled': 'free', // 'selected', 'reserved', 'maintenance' XXX pending ??\r
});\r
+ time += resource.granularity * 1000;\r
}\r
});\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
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
_initUI: function() \r
{\r
var self = this;\r
+ var scope = self._get_scope();\r
+\r
+ var num_hidden_cells;\r
\r
$("#DateToRes").datepicker({\r
onRender: function(date) {\r
SchedulerDateSelected = new Date(ev.date);\r
SchedulerDateSelected.setHours(0,0,0,0);\r
// Set slider to origin\r
- $('#tblSlider').slider('setValue', 0); // XXX\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
\r
//init Slider\r
+ num_hidden_cells = self._all_slots.length - self._num_visible_cells;\r
+ init_cell = (new Date().getHours() - 1) * 3600 / self._granularity;\r
+ if (init_cell > num_hidden_cells)\r
+ init_cell = num_hidden_cells;\r
+ \r
$('#tblSlider').slider({\r
min: 0,\r
- max: (self._all_slots.length - self._num_visible_cells) / self._lcm_colspan,\r
- value: 0,\r
+ max: num_hidden_cells, // / self._lcm_colspan,\r
+ value: init_cell,\r
}).on('slide', function(ev) {\r
var scope = self._get_scope();\r
scope.from = ev.value * self._lcm_colspan;\r
scope.$apply();\r
});\r
+ scope.from = init_cell;\r
+ scope.$apply();\r
\r
$("#plugin-scheduler-loader").hide();\r
$("#plugin-scheduler").show();\r