var SchedulerTotalVisibleCells;\r
//Help Variables\r
var _schedulerCurrentCellPosition = 0;\r
+var _leasesDone = false;\r
+var _resourcesDone = false;\r
//Enable Debug\r
-var schedulerDebug = true;\r
+var schedulerDebug = false;\r
+//tmp to delete\r
+var tmpSchedulerLeases = [];\r
\r
(function ($) {\r
var scheduler2 = Plugin.extend({\r
schedulerCtrlPressed = false;\r
}\r
});\r
- //$("#" + schedulerTblId).on('mousedown', 'td', rangeMouseDown).on('mouseup', 'td', rangeMouseUp).on('mousemove', 'td', rangeMouseMove);\r
+ $("#" + schedulerTblId).on('mousedown', 'td', rangeMouseDown).on('mouseup', 'td', rangeMouseUp).on('mousemove', 'td', rangeMouseMove);\r
\r
// Explain this will allow query events to be handled\r
// What happens when we don't define some events ?\r
//data is empty on load\r
},\r
on_all_resources_new_record: function (data) {\r
+ //alert(data.toSource());\r
if (SchedulerData.length < schedulerMaxRows)\r
- SchedulerData.push({ name: data.hrn, leases: schedulerGetLeases(schedulerSlotsPerHour), urn: data.urn, type: data.type });\r
+ SchedulerData.push({ id: data.urn, name: data.hrn, leases: schedulerGetLeases(60 / schedulerSlotsPerHour), type: data.type });\r
//alert(data.toSource());\r
},\r
on_all_resources_query_done: function (data) {\r
- /* GUI setup and event binding */\r
- this._initUI();\r
- //this.loadWithDate();\r
+ _resourcesDone = true;\r
+ this._initScheduler();\r
},\r
//another plugin has modified something, that requires you to update your display. \r
on_all_resources_field_state_changed: function (data) {\r
/* lease QUERY HANDLERS Start */\r
on_lease_clear_records: function (data) { console.log('clear_records'); },\r
on_lease_query_in_progress: function (data) { console.log('lease_query_in_progress'); },\r
- on_lease_new_record: function (data) { alert(data.toSource()); console.log('lease_new_record'); },\r
- on_lease_query_done: function (data) { console.log('lease_query_done'); },\r
+ on_lease_new_record: function (data) {\r
+ tmpSchedulerLeases.push({\r
+ id: schedulerGetSlotId(data.start_time, data.duration, data.granularity),\r
+ slice: data.slice,\r
+ status: 'reserved',\r
+ resource: data.resource,\r
+ network: data.network,\r
+ start_time: data.start_time,\r
+ lease_type: data.lease_type,\r
+ granularity: data.granularity,\r
+ duration: data.duration\r
+ });\r
+ //console.log(data.toSource()); console.log('lease_new_record');\r
+ },\r
+ on_lease_query_done: function (data) {\r
+ _leasesDone = true;\r
+ this._initScheduler();\r
+ // console.log('lease_query_done');\r
+ },\r
//another plugin has modified something, that requires you to update your display. \r
on_lease_field_state_changed: function (data) { console.log('lease_field_state_changed'); },\r
/* lease QUERY HANDLERS End */\r
},\r
\r
/* INTERNAL FUNCTIONS */\r
- _initUI: function () {\r
+ _initScheduler: function () {\r
+ if (_resourcesDone && _leasesDone)\r
+ {\r
+ /* GUI setup and event binding */\r
+ this._FixLeases();\r
+ this._initUI();\r
+ }\r
+ },\r
+\r
+ _initUI : function () {\r
if (schedulerDebug) console.time("_initUI");\r
//init DatePicker Start\r
$("#DateToRes").datepicker({\r
//$("#" + schedulerTblId + " td:not([class])").addClass("free");\r
if (schedulerDebug) console.timeEnd("_initUI");\r
},\r
+\r
+ _FixLeases : function () {\r
+ for (var i = 0; i < tmpSchedulerLeases.length; i++) {\r
+ var tmpLea = tmpSchedulerLeases[i];\r
+ var tmpRes = schedulerFindResourceById(SchedulerData, tmpLea.resource);\r
+ if (tmpRes != null) {\r
+ alert(tmpLea.id + '-' + tmpLea.start_time);\r
+ tmpRes.leases[tmpLea.id] = tmpLea;\r
+ }\r
+ }\r
+ },\r
+\r
_FixTable: function () {\r
var colWidth = 50;\r
SchedulerTotalCells = SchedulerSlots.length;\r
var tblwidth = $('#scheduler-tab').parent().outerWidth();\r
SchedulerTotalVisibleCells = parseInt((tblwidth - schedulerTblFirstColWidth) / colWidth);\r
\r
- if (SchedulerData.length == 0) {\r
- //puth some test data\r
- SchedulerData.push({ name: 'xyz+aaa', leases: schedulerGetLeases(60 / schedulerSlotsPerHour), urn: 'xyz+aaa', type: 'node' });\r
- SchedulerData.push({ name: 'xyz+bbb', leases: schedulerGetLeases(60 / schedulerSlotsPerHour), urn: 'xyz+bbb', type: 'node' });\r
- SchedulerData.push({ name: 'xyz+ccc', leases: schedulerGetLeases(60 / schedulerSlotsPerHour), urn: 'xyz+ccc', type: 'node' });\r
- SchedulerData.push({ name: 'nitos1', leases: schedulerGetLeases(60 / schedulerSlotsPerHour), urn: 'nitos1', type: 'node' });\r
- }\r
+ //if (SchedulerData.length == 0) {\r
+ // //puth some test data\r
+ // SchedulerData.push({ name: 'xyz+aaa', leases: schedulerGetLeases(60 / schedulerSlotsPerHour), urn: 'xyz+aaa', type: 'node' });\r
+ // SchedulerData.push({ name: 'xyz+bbb', leases: schedulerGetLeases(60 / schedulerSlotsPerHour), urn: 'xyz+bbb', type: 'node' });\r
+ // SchedulerData.push({ name: 'xyz+ccc', leases: schedulerGetLeases(60 / schedulerSlotsPerHour), urn: 'xyz+ccc', type: 'node' });\r
+ // SchedulerData.push({ name: 'nitos1', leases: schedulerGetLeases(60 / schedulerSlotsPerHour), urn: 'nitos1', type: 'node' });\r
+ //}\r
angular.element(document.getElementById('SchedulerCtrl')).scope().initSlots(0, SchedulerTotalVisibleCells);\r
},\r
_SetPeriodInPage: function (start, end) {\r