Chrysostomos for scheduler
authorChrysostomos Kolovos <xrklvs@gmail.com>
Mon, 28 Apr 2014 02:58:48 +0000 (05:58 +0300)
committerChrysostomos Kolovos <xrklvs@gmail.com>
Mon, 28 Apr 2014 02:58:48 +0000 (05:58 +0300)
plugins/scheduler2/static/js/scheduler-SchedulerCtrl.js
plugins/scheduler2/static/js/scheduler2.js
plugins/scheduler2/templates/scheduler.html

index 30bf523..0bad9cc 100755 (executable)
@@ -30,6 +30,10 @@ myApp.factory('$exceptionHandler', function () {
         // Set up the default scope value.\r
         this.scope.errorMessage = null;\r
         this.scope.name = "";\r
+        //Pagin\r
+        this.scope.totalPages = 4;\r
+        this.scope.curPage = 0;\r
+        this.scope.pageSize = 25;\r
 \r
         $scope.resources = SchedulerDataViewData;\r
         $scope.slots = SchedulerSlotsViewData;\r
@@ -41,6 +45,45 @@ myApp.factory('$exceptionHandler', function () {
             //afterAngularRendered();\r
         });\r
 \r
+        $scope.initSchedulerResources = function (pageSize, filter) {\r
+            for (var k = 0; k < pageSize; k++) {\r
+                if ($scope.resources.length < SchedulerData.length)\r
+                    $scope.resources.push(jQuery.extend(true, {}, SchedulerData[k]));\r
+                $scope.resources[k].leases = [];\r
+            }\r
+            $scope.pageSize = pageSize;\r
+            $scope.curPage = 0;\r
+            $scope.totalPages = parseInt(Math.ceil(SchedulerData.length / $scope.pageSize));\r
+            $scope.initSlots(0, SchedulerTotalVisibleCells);\r
+        };\r
+\r
+        $scope.setPage = function(page) {\r
+            var tmpFrm = $scope.pageSize * page;\r
+            var tmpTo = tmpFrm + $scope.pageSize;\r
+            $scope.curPage = page;\r
+            $scope.resources = [];\r
+            for (var k = tmpFrm; k < tmpTo; k++) {\r
+                if ($scope.resources.length < SchedulerData.length)\r
+                    $scope.resources.push(jQuery.extend(true, {}, SchedulerData[k]));\r
+                $scope.resources[k].leases = [];\r
+            }\r
+            $scope.initSlots(0, SchedulerTotalVisibleCells);\r
+        };\r
+\r
+        $scope.initSlots = function (from, to) {\r
+            //init\r
+            $scope.slots = [];\r
+            //set\r
+            for (var i = from; i < to; i++) {\r
+                $scope.slots.push(SchedulerSlots[i]);\r
+                for (var j = 0; j < $scope.resources.length; j++) {\r
+                    $scope.resources[j].leases.push(SchedulerData[j].leases[i]);\r
+                }\r
+            }\r
+            //apply\r
+            $scope.$apply();\r
+        };\r
+\r
         $scope.moveFrontSlot = function(from, to) {\r
             //$scope.slots.shift();\r
             //$scope.slots.push(SchedulerSlots[to]);\r
@@ -74,30 +117,10 @@ myApp.factory('$exceptionHandler', function () {
             });\r
         };\r
 \r
-        $scope.SetSchedulerResources = function (start, to, filter) {\r
-            for (var k = start; k < to; k++) {\r
-                if ($scope.resources.length < SchedulerData.length)\r
-                    $scope.resources.push(jQuery.extend(true, {}, SchedulerData[k]));\r
-                $scope.resources[k].leases = [];\r
-            }\r
-            $scope.initSlots(0, SchedulerTotalVisibleCells);\r
+        $scope.getTimes = function (n) {\r
+            return new Array(n);\r
         };\r
 \r
-        $scope.initSlots = function(from, to) {\r
-            //init\r
-            $scope.slots = [];\r
-            //set\r
-            for (var i = from; i < to; i++) {\r
-                $scope.slots.push(SchedulerSlots[i]);\r
-                for (var j = 0; j < $scope.resources.length; j++) {\r
-                    $scope.resources[j].leases.push(SchedulerData[j].leases[i]);\r
-                }\r
-            }\r
-            //apply\r
-            $scope.$apply();\r
-        };\r
-\r
-\r
         // Return this object reference.\r
         return (this);\r
 \r
index f57774e..7c4a9c7 100755 (executable)
@@ -34,7 +34,7 @@ var schedulerTblId = "scheduler-reservation-table";
 var schedulerTblFirstColWidth = 150;\r
 //Some Data\r
 var schedulerSlotsPerHour = 6;\r
-var schedulerMaxRows = 25;\r
+var schedulerMaxRows = 12;\r
 var SchedulerData = [];\r
 var SchedulerSlots = [];\r
 var SchedulerDataViewData = [];\r
@@ -121,7 +121,7 @@ var tmpSchedulerLeases = [];
         },\r
         on_all_resources_new_record: function (data) {\r
             //alert(data.toSource());\r
-            if (SchedulerData.length < schedulerMaxRows)\r
+            if (data.exclusive == null)\r
                 SchedulerData.push({ id: data.urn, index: SchedulerData.length, name: data.hrn, granularity: data.granularity, leases: schedulerGetLeases(60 / schedulerSlotsPerHour), type: data.type });\r
             //alert(data.toSource());\r
 \r
@@ -165,7 +165,7 @@ var tmpSchedulerLeases = [];
         // no prefix\r
         on_filter_added: function (filter) {\r
             var tmpScope = angular.element(document.getElementById('SchedulerCtrl')).scope();\r
-            tmpScope.SetSchedulerResources(0, schedulerMaxRows, filter);\r
+            tmpScope.initSchedulerResources(schedulerMaxRows, filter);\r
         },\r
 \r
         // ... be sure to list all events here\r
@@ -218,10 +218,11 @@ var tmpSchedulerLeases = [];
                 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
-                        angular.element(document.getElementById('SchedulerCtrl')).scope().moveBackSlot(ui.value, ui.value + SchedulerTotalVisibleCells);\r
+                        angScope.moveBackSlot(ui.value, ui.value + SchedulerTotalVisibleCells);\r
                     else if (_schedulerCurrentCellPosition < ui.value)\r
-                        angular.element(document.getElementById('SchedulerCtrl')).scope().moveFrontSlot(ui.value, ui.value + SchedulerTotalVisibleCells);\r
+                        angScope.moveFrontSlot(ui.value, ui.value + SchedulerTotalVisibleCells);\r
                     _schedulerCurrentCellPosition = ui.value;\r
                 }\r
             });\r
@@ -262,7 +263,7 @@ var tmpSchedulerLeases = [];
             //    SchedulerData.push({ name: 'nitos1', leases: schedulerGetLeases(60 / schedulerSlotsPerHour), urn: 'nitos1', type: 'node' });\r
             //}\r
             var tmpScope = angular.element(document.getElementById('SchedulerCtrl')).scope();\r
-            tmpScope.SetSchedulerResources(0, schedulerMaxRows, null);\r
+            tmpScope.initSchedulerResources(schedulerMaxRows, null);\r
         },\r
         _SetPeriodInPage: function (start, end) {\r
         }\r
index 9127a9d..ee0e9c4 100755 (executable)
@@ -1,4 +1,4 @@
-<div id="plugin-{{ domid }}-loader" style="text-align:center;">\r
+<div id="plugin-{{ domid }}-loader" style="text-align:center;">\r
     <img src="../../static/img/loading-7b6dc55620a355b55b835f6b4c300f9b.gif" alt="loading" style="width:100px;" />\r
     <h3>Loading Data...</h3>\r
 </div>\r
                     </tr>\r
                 </tbody>\r
             </table>\r
+            <div class="dataTables_paginate paging_bootstrap">\r
+                <ul class="pagination">\r
+                    <li class="prev disabled"><a href="#">← Previous</a></li>\r
+                    <li ng-cloak ng-repeat="t in getTimes(totalPages)"><a href="#" ng-click="setPage($index)">{[{$index+1}]}</a></li>\r
+                    <li class="next disabled"><a href="#">Next → </a></li>\r
+                </ul>\r
+            </div>\r
         </div>\r
         {% comment %}\r
         <div id="reservation-table-scroll-container">\r