+ },\r
+\r
+ /* INTERNAL FUNCTIONS */\r
+ _initScheduler: function() {\r
+ if (_resourcesDone && _leasesDone) {\r
+ SchedulerDataViewData = SchedulerData;\r
+ /* GUI setup and event binding */\r
+ this._FixLeases();\r
+ this._initUI();\r
+ }\r
+ },\r
+\r
+ _initUI: function() {\r
+ //alert(1);\r
+ if (schedulerDebug) console.time("_initUI");\r
+ //init DatePicker Start\r
+ $("#DateToRes").datepicker({\r
+ dateFormat: "yy-mm-dd",\r
+ minDate: 0,\r
+ numberOfMonths: 3\r
+ }).change(function() {\r
+ //Scheduler2.loadWithDate();\r
+ SchedulerDateSelected = $("#DateToRes").datepicker("getDate");\r
+ if (SchedulerDateSelected != null && SchedulerDateSelected != '') {\r
+ for (var i = 0; i < SchedulerData.length; i++) {\r
+ SchedulerData[i].leases = schedulerGetLeases(60 / schedulerSlotsPerHour, SchedulerData[i].granularity);\r
+ }\r
+ scheduler2Instance._FixLeases();\r
+ $('#tblSlider').slider('value', 0);\r
+ var tmpScope = angular.element(document.getElementById('SchedulerCtrl')).scope();\r
+ tmpScope.initSchedulerResources(schedulerMaxRows < SchedulerDataViewData.length ? schedulerMaxRows : SchedulerDataViewData.length);\r
+\r
+ console.log(SchedulerDateSelected);\r
+ console.log(SchedulerDateSelected.getTime()/1000);\r
+ var tomorrow = new Date(SchedulerDateSelected);\r
+ tomorrow.setDate(SchedulerDateSelected.getDate()+1);\r
+ console.log(tomorrow);\r
+ console.log(tomorrow.getTime()/1000);\r
+ \r
+ // Remove previous date interval\r
+ manifold.raise_event(scheduler2Instance.options.query_all_leases_uuid, FILTER_REMOVED, ['start_time', '>']);\r
+ manifold.raise_event(scheduler2Instance.options.query_all_leases_uuid, FILTER_REMOVED, ['start_time', '<']);\r
+\r
+ // Add new date interval\r
+ manifold.raise_event(scheduler2Instance.options.query_all_leases_uuid, FILTER_ADDED, ['start_time', '>', SchedulerDateSelected.getTime()/1000]);\r
+ manifold.raise_event(scheduler2Instance.options.query_all_leases_uuid, FILTER_ADDED, ['start_time', '<', tomorrow.getTime()/1000]);\r
+ } else {\r
+ alert("Please select a date, so the scheduler can reserve leases.");\r
+ }\r
+ }).datepicker('setDate', SchedulerDateSelected);\r
+ /*.click(function () {\r
+ $("#ui-datepicker-div").css("z-index", 5);\r
+ })*/\r
+ //End init DatePicker\r
+\r
+ //init Table\r
+ this._FixTable();\r
+ //End init Table\r
+\r
+ //init Slider\r
+ $('#tblSlider').slider({\r
+ min: 0,\r
+ max: SchedulerTotalCells - SchedulerTotalVisibleCells,\r
+ value: 0,\r
+ slide: function(event, ui) {\r
+ //$("#amount").val("$" + ui.values[0] + " - $" + ui.values[1]);\r
+ //console.log(ui.value);\r
+ var angScope = angular.element(document.getElementById('SchedulerCtrl')).scope();\r
+ if (_schedulerCurrentCellPosition > ui.value) {\r
+ angScope.moveBackSlot(ui.value, ui.value + SchedulerTotalVisibleCells);\r
+ } else if (_schedulerCurrentCellPosition < ui.value) {\r
+ angScope.moveFrontSlot(ui.value, ui.value + SchedulerTotalVisibleCells);\r
+ }\r
+ _schedulerCurrentCellPosition = ui.value;\r
+ }\r
+ });\r
+ //End init Slider\r
+\r
+\r
+ //btn Submit leases\r
+ $('#btnSchedulerSubmit').click(function () {\r
+ console.log("click btnSchedulerSubmit");\r
+ var leasesForCommit = new Array();\r
+ var tmpDateTime = SchedulerDateSelected;\r
+ console.log(SchedulerData);\r
+ for (var i = 0; i < SchedulerData.length; i++)\r
+ {\r
+ var tpmR = SchedulerData[i];\r
+ //for capturing start and end of the lease\r
+ var newLeaseStarted = false;\r
+ for (var j = 0; j < tpmR.leases.length; j++) {\r
+ var tpmL = tpmR.leases[j];\r
+ if (newLeaseStarted == false && tpmL.status == 'selected') {\r
+ //get date of the slot\r
+ tmpDateTime = schedulerGetDateTimeFromSlotId(tpmL.id, tmpDateTime);\r
+ var unixStartTime = tmpDateTime.getTime() / 1000;\r
+ //add lease object\r
+ leasesForCommit.push({\r
+ resource: tpmR.id,\r
+ //granularity: tpmR.granularity,\r
+ //lease_type: null,\r
+ //slice: null,\r
+ start_time: unixStartTime,\r
+ end_time: null,\r
+ //duration: null\r
+ });\r
+ console.log(tpmR.id);\r
+ newLeaseStarted = true;\r
+ } else if (newLeaseStarted == true && tpmL.status != 'selected') {\r
+ //get date of the slot\r
+ tmpDateTime = schedulerGetDateTimeFromSlotId(tpmL.id, tmpDateTime);\r
+ var unixEndTime = tmpDateTime.getTime() / 1000;\r
+ //upate end_time\r
+ var tmpCL = leasesForCommit[leasesForCommit.length - 1];\r
+ tmpCL.end_time = unixEndTime;\r
+ //tmpCL.duration = schedulerFindDuration(tmpCL.start_time, tmpCL.end_time, tmpCL.granularity);\r
+ newLeaseStarted = false;\r
+ }\r
+ }\r
+ }\r
+ console.log(leasesForCommit);\r
+ for (var i = 0; i < leasesForCommit.length; i++) {\r
+ manifold.raise_event(scheduler2Instance.options.query_lease_uuid, SET_ADD, leasesForCommit[i]);\r
+ }\r
+ });\r
+ //\r
+\r
+\r
+ //End btn Submit leases\r
+\r
+ //other stuff\r
+ $("#plugin-scheduler-loader").hide();\r
+ $("#plugin-scheduler").show();\r
+ //fixOddEvenClasses();\r
+ //$("#" + schedulerTblId + " td:not([class])").addClass("free");\r
+ if (schedulerDebug) console.timeEnd("_initUI");\r
+ },\r