Chrysostomos for scheduler
[unfold.git] / plugins / scheduler2 / static / js / scheduler2.js
index 6297ec9..10eaa9a 100755 (executable)
@@ -93,10 +93,10 @@ var tmpSchedulerLeases = [];
                 /* Listening to queries */\r
 \r
                 this.listen_query(options.query_uuid);\r
-                this.listen_query(options.query_all_uuid, 'all');\r
+                //this.listen_query(options.query_all_uuid, 'all');\r
                 this.listen_query(options.query_all_resources_uuid, 'all_resources');\r
                 this.listen_query(options.query_lease_uuid, 'lease');\r
-                //this.listen_query(options.query_lease_uuid, 'lease');\r
+                this.listen_query(options.query_all_leases_uuid, 'all_leases');\r
                 if (schedulerDebug) console.timeEnd("Listening_to_queries");\r
 \r
             },\r
@@ -160,7 +160,7 @@ var tmpSchedulerLeases = [];
             /* 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) {\r
+            on_all_leases_new_record: function(data) {\r
                 if (data.resource.indexOf("nitos") > -1) {\r
                     tmpSchedulerLeases.push({\r
                         id: schedulerGetSlotId(data.start_time, data.duration, data.granularity),\r
@@ -180,7 +180,7 @@ var tmpSchedulerLeases = [];
                 }\r
                 //console.log(data.toSource()); console.log('lease_new_record');\r
             },\r
-            on_lease_query_done: function(data) {\r
+            on_all_leases_query_done: function(data) {\r
                 _leasesDone = true;\r
                 this._initScheduler();\r
                 // console.log('lease_query_done');\r
@@ -242,6 +242,10 @@ var tmpSchedulerLeases = [];
                 }\r
             },\r
 \r
+            on_all_leases_filter_added: function(filter) {\r
+                console.log("Filter on Leases added !");\r
+            },\r
+\r
             // ... be sure to list all events here\r
 \r
             /* RECORD HANDLERS */\r
@@ -284,6 +288,21 @@ var tmpSchedulerLeases = [];
                         $('#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
@@ -319,12 +338,15 @@ var tmpSchedulerLeases = [];
 \r
                 //btn Submit leases\r
                 $('#btnSchedulerSubmit').click(function () {\r
+                    console.log("click btnSchedulerSubmit");\r
                     var leasesForCommit = new Array();\r
-                    var newLeaseStarted = false;\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
@@ -334,13 +356,14 @@ var tmpSchedulerLeases = [];
                                 //add lease object\r
                                 leasesForCommit.push({\r
                                     resource: tpmR.id,\r
-                                    granularity: tpmR.granularity,\r
-                                    lease_type: null,\r
-                                    slice: null,\r
+                                    //granularity: tpmR.granularity,\r
+                                    //lease_type: null,\r
+                                    //slice: null,\r
                                     start_time: unixStartTime,\r
                                     end_time: null,\r
-                                    duration: 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
@@ -349,14 +372,14 @@ var tmpSchedulerLeases = [];
                                 //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
+                                //tmpCL.duration = schedulerFindDuration(tmpCL.start_time, tmpCL.end_time, tmpCL.granularity);\r
                                 newLeaseStarted = false;\r
                             }\r
                         }\r
                     }\r
-\r
+                    console.log(leasesForCommit);\r
                     for (var i = 0; i < leasesForCommit.length; i++) {\r
-                        //manifold.raise_event(scheduler.options.query_lease_uuid, SET_ADD, leasesForCommit[i]);\r
+                        manifold.raise_event(scheduler2Instance.options.query_lease_uuid, SET_ADD, leasesForCommit[i]);\r
                     }\r
                 });\r
                 //\r