From: Chrysostomos Kolovos Date: Mon, 28 Apr 2014 02:58:48 +0000 (+0300) Subject: Chrysostomos for scheduler X-Git-Tag: myslice-1.1~127^2 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=3ab2ec5471b46e77e82f30d00a29d5bd57195ff7;p=myslice.git Chrysostomos for scheduler --- diff --git a/plugins/scheduler2/static/js/scheduler-SchedulerCtrl.js b/plugins/scheduler2/static/js/scheduler-SchedulerCtrl.js index 30bf5232..0bad9cc4 100755 --- a/plugins/scheduler2/static/js/scheduler-SchedulerCtrl.js +++ b/plugins/scheduler2/static/js/scheduler-SchedulerCtrl.js @@ -30,6 +30,10 @@ myApp.factory('$exceptionHandler', function () { // Set up the default scope value. this.scope.errorMessage = null; this.scope.name = ""; + //Pagin + this.scope.totalPages = 4; + this.scope.curPage = 0; + this.scope.pageSize = 25; $scope.resources = SchedulerDataViewData; $scope.slots = SchedulerSlotsViewData; @@ -41,6 +45,45 @@ myApp.factory('$exceptionHandler', function () { //afterAngularRendered(); }); + $scope.initSchedulerResources = function (pageSize, filter) { + for (var k = 0; k < pageSize; k++) { + if ($scope.resources.length < SchedulerData.length) + $scope.resources.push(jQuery.extend(true, {}, SchedulerData[k])); + $scope.resources[k].leases = []; + } + $scope.pageSize = pageSize; + $scope.curPage = 0; + $scope.totalPages = parseInt(Math.ceil(SchedulerData.length / $scope.pageSize)); + $scope.initSlots(0, SchedulerTotalVisibleCells); + }; + + $scope.setPage = function(page) { + var tmpFrm = $scope.pageSize * page; + var tmpTo = tmpFrm + $scope.pageSize; + $scope.curPage = page; + $scope.resources = []; + for (var k = tmpFrm; k < tmpTo; k++) { + if ($scope.resources.length < SchedulerData.length) + $scope.resources.push(jQuery.extend(true, {}, SchedulerData[k])); + $scope.resources[k].leases = []; + } + $scope.initSlots(0, SchedulerTotalVisibleCells); + }; + + $scope.initSlots = function (from, to) { + //init + $scope.slots = []; + //set + for (var i = from; i < to; i++) { + $scope.slots.push(SchedulerSlots[i]); + for (var j = 0; j < $scope.resources.length; j++) { + $scope.resources[j].leases.push(SchedulerData[j].leases[i]); + } + } + //apply + $scope.$apply(); + }; + $scope.moveFrontSlot = function(from, to) { //$scope.slots.shift(); //$scope.slots.push(SchedulerSlots[to]); @@ -74,30 +117,10 @@ myApp.factory('$exceptionHandler', function () { }); }; - $scope.SetSchedulerResources = function (start, to, filter) { - for (var k = start; k < to; k++) { - if ($scope.resources.length < SchedulerData.length) - $scope.resources.push(jQuery.extend(true, {}, SchedulerData[k])); - $scope.resources[k].leases = []; - } - $scope.initSlots(0, SchedulerTotalVisibleCells); + $scope.getTimes = function (n) { + return new Array(n); }; - $scope.initSlots = function(from, to) { - //init - $scope.slots = []; - //set - for (var i = from; i < to; i++) { - $scope.slots.push(SchedulerSlots[i]); - for (var j = 0; j < $scope.resources.length; j++) { - $scope.resources[j].leases.push(SchedulerData[j].leases[i]); - } - } - //apply - $scope.$apply(); - }; - - // Return this object reference. return (this); diff --git a/plugins/scheduler2/static/js/scheduler2.js b/plugins/scheduler2/static/js/scheduler2.js index f57774e0..7c4a9c75 100755 --- a/plugins/scheduler2/static/js/scheduler2.js +++ b/plugins/scheduler2/static/js/scheduler2.js @@ -34,7 +34,7 @@ var schedulerTblId = "scheduler-reservation-table"; var schedulerTblFirstColWidth = 150; //Some Data var schedulerSlotsPerHour = 6; -var schedulerMaxRows = 25; +var schedulerMaxRows = 12; var SchedulerData = []; var SchedulerSlots = []; var SchedulerDataViewData = []; @@ -121,7 +121,7 @@ var tmpSchedulerLeases = []; }, on_all_resources_new_record: function (data) { //alert(data.toSource()); - if (SchedulerData.length < schedulerMaxRows) + if (data.exclusive == null) SchedulerData.push({ id: data.urn, index: SchedulerData.length, name: data.hrn, granularity: data.granularity, leases: schedulerGetLeases(60 / schedulerSlotsPerHour), type: data.type }); //alert(data.toSource()); @@ -165,7 +165,7 @@ var tmpSchedulerLeases = []; // no prefix on_filter_added: function (filter) { var tmpScope = angular.element(document.getElementById('SchedulerCtrl')).scope(); - tmpScope.SetSchedulerResources(0, schedulerMaxRows, filter); + tmpScope.initSchedulerResources(schedulerMaxRows, filter); }, // ... be sure to list all events here @@ -218,10 +218,11 @@ var tmpSchedulerLeases = []; slide: function (event, ui) { //$("#amount").val("$" + ui.values[0] + " - $" + ui.values[1]); //console.log(ui.value); + var angScope = angular.element(document.getElementById('SchedulerCtrl')).scope(); if (_schedulerCurrentCellPosition > ui.value) - angular.element(document.getElementById('SchedulerCtrl')).scope().moveBackSlot(ui.value, ui.value + SchedulerTotalVisibleCells); + angScope.moveBackSlot(ui.value, ui.value + SchedulerTotalVisibleCells); else if (_schedulerCurrentCellPosition < ui.value) - angular.element(document.getElementById('SchedulerCtrl')).scope().moveFrontSlot(ui.value, ui.value + SchedulerTotalVisibleCells); + angScope.moveFrontSlot(ui.value, ui.value + SchedulerTotalVisibleCells); _schedulerCurrentCellPosition = ui.value; } }); @@ -262,7 +263,7 @@ var tmpSchedulerLeases = []; // SchedulerData.push({ name: 'nitos1', leases: schedulerGetLeases(60 / schedulerSlotsPerHour), urn: 'nitos1', type: 'node' }); //} var tmpScope = angular.element(document.getElementById('SchedulerCtrl')).scope(); - tmpScope.SetSchedulerResources(0, schedulerMaxRows, null); + tmpScope.initSchedulerResources(schedulerMaxRows, null); }, _SetPeriodInPage: function (start, end) { } diff --git a/plugins/scheduler2/templates/scheduler.html b/plugins/scheduler2/templates/scheduler.html index 9127a9df..ee0e9c41 100755 --- a/plugins/scheduler2/templates/scheduler.html +++ b/plugins/scheduler2/templates/scheduler.html @@ -1,4 +1,4 @@ -
+
loading

Loading Data...

@@ -59,6 +59,13 @@ +
{% comment %}