diff --git a/.gitattributes b/.gitattributes index dea7eb753ef494c745ef9b3a35c6e747ff42da03..9aa2f4e262ceecde1917d71b70115449a982235a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4750,7 +4750,8 @@ SAS/ResourceAssignment/ResourceAssignmentEditor/lib/CMakeLists.txt -text SAS/ResourceAssignment/ResourceAssignmentEditor/lib/__init__.py -text SAS/ResourceAssignment/ResourceAssignmentEditor/lib/fakedata.py -text SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/app.js -text -SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/controller.js -text +SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js -text +SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js -text SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/css/bootstrap.min.css -text SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/css/main.css -text SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/favicon.ico -text diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/CMakeLists.txt b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/CMakeLists.txt index d9733020e796dbdef77be2dff2adc50e4faf85e5..dc5e40eb93a7c34f95a090662069b9678438a7a2 100644 --- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/CMakeLists.txt +++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/CMakeLists.txt @@ -17,6 +17,14 @@ file(GLOB_RECURSE angular_moment_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} stat file(GLOB_RECURSE moment_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} static/js/moment/*) file(GLOB_RECURSE bootstrap_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} static/css/bootstrap.min.css) +set(app_files + static/favicon.ico + static/app/app.js + static/app/controllers/datacontroller.js + static/app/controllers/gridcontroller.js + static/css/main.css + templates/index.html) + set(web_files ${jquery_files} ${angular_files} @@ -27,11 +35,7 @@ set(web_files ${angular_moment_files} ${moment_files} ${bootstrap_files} - static/favicon.ico - static/app/app.js - static/app/controllers/controller.js - static/css/main.css - templates/index.html) + ${app_files}) install(FILES ${web_files} DESTINATION ${PYTHON_INSTALL_DIR}/resourceassignementeditor) diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/app.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/app.js index 7c7602794b87df5f7d6de18dfaba2d5fa6cba7ca..537d013649ee926c9f7cf0ff30ded34d323ae3b8 100644 --- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/app.js +++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/app.js @@ -1,3 +1,18 @@ // $Id$ -var app = angular.module('raeApp', ['ngTouch', 'ui.grid', 'gantt', 'gantt.table', 'gantt.movable', 'gantt.tooltips']); +var app = angular.module('raeApp', + ['ngTouch', + 'ui.grid', + 'gantt', + 'gantt.table', + 'gantt.movable', + 'gantt.tooltips', + 'DataControllerMod', + 'GridControllerMod']); + +app.factory("dataService", function(){ + var self = this; + self.tasks = []; + self.resources = []; + return self; +}); diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/controller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/controller.js deleted file mode 100644 index 466676343959f4138ff2660148876de0076459e5..0000000000000000000000000000000000000000 --- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/controller.js +++ /dev/null @@ -1,33 +0,0 @@ -// $Id$ -angular.module('raeApp').controller('DataController', ['$http', '$scope', function($http, $scope) { - var store = this; - this.tasks = []; - this.gtasks = []; - - function getTasks() { - $http.get('/rest/tasks').success(function(result) { -// for(var key in result.data) { -// var elem = result.tasks[key]; -// elem.from = new Date(elem.from); -// elem.to = new Date(elem.to); -// } - - store.tasks = result.tasks; - store.gtasks = result.tasks; - }); - }; - - getTasks(); - - this.test = [ - {name: 'row1', tasks: [ - {name: 'task1', from: new Date(2013, 10, 26, 8, 0, 0), to: new Date(2013, 10, 26, 8, 0, 0)}, - {name: 'task2', from: new Date(2013, 11, 26, 8, 0, 0), to: new Date(2013, 11, 26, 9, 0, 0)} - ] - }, - {name: 'row2', tasks: [ - {name: 'task3', from: new Date(2013, 10, 26, 8, 0, 0), to: new Date(2013, 13, 26, 8, 0, 0)} - ] - }]; - } -]); diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js new file mode 100644 index 0000000000000000000000000000000000000000..97bd51e6bdda791472f22a236f2efc02657215e9 --- /dev/null +++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js @@ -0,0 +1,33 @@ +// $Id$ + + +var dataControllerMod = angular.module('DataControllerMod', []); + +dataControllerMod.controller('DataController', ['$http', '$scope', 'dataService', function($http, $scope, dataService) { + var self = this; + self.dataService = dataService; + + function getTasks() { + $http.get('/rest/tasks').success(function(result) { + self.dataService.tasks = result.tasks; + }); + }; + + function getResources() { + $http.get('/rest/resourceitems').success(function(result) { + +// for(var key in result.resourceitems) { +// var elem = result.tasks[key]; +// elem.from = new Date(elem.from); +// elem.to = new Date(elem.to); +// } + + self.dataService.resources = result.resourceitems; + }); + }; + + getTasks(); + getResources(); + + } +]); diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js new file mode 100644 index 0000000000000000000000000000000000000000..68cbe5b07af59d8cfa1257973b86cee4f210184e --- /dev/null +++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js @@ -0,0 +1,23 @@ +// $Id: controller.js 32761 2015-11-02 11:50:21Z schaap $ + +var gridControllerMod = angular.module('GridControllerMod', ['DataControllerMod']); + +gridControllerMod.controller('GridController', ['$scope', 'dataService', function($scope, dataService) { + + $scope.dataService = dataService; + + $scope.$watch('dataService.tasks', function() { + if('tasks' in $scope.dataService && $scope.dataService.tasks.length > 0) + $scope.gridOptions.data = $scope.dataService.tasks[0]['tasks']; + else + $scope.gridOptions.data = [] + }, true); + + $scope.columns = [{ field: 'name' }, { field: 'from' }, { field: 'to' }]; + $scope.gridOptions = { + enableSorting: true, + columnDefs: $scope.columns, + data: [] + }; +} +]); diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/templates/index.html b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/templates/index.html index eed5be2ab1db3a0c2641392eb134cb572fb13317..aecbc30fd2bc8b50467f3475881d8cbd1187c0f6 100644 --- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/templates/index.html +++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/templates/index.html @@ -19,17 +19,20 @@ <script src="/static/js/angular-gantt/angular-gantt.js"></script> <script src="/static/js/angular-gantt/angular-gantt-plugins.js"></script> <script src="/static/app/app.js"></script> - <script src="/static/app/controllers/controller.js"></script> + <script src="/static/app/controllers/datacontroller.js"></script> + <script src="/static/app/controllers/gridcontroller.js"></script> </head> <body> {% raw %} - <div ng-controller="DataController as dataCtrl"> + <div ng-controller="GridController as gridCtrl"> <strong>Tasks:</strong> - <div id="grid1" ui-grid="{ data: dataCtrl.tasks }" ui-grid-move-columns class="grid"></div> - <br/> - <br/> - <br/> - <div gantt "{ data= dataCtrl.gtasks }" style="min-height:300px"> + <div id="grid1" ui-grid="gridOptions" ui-grid-move-columns class="grid"></div> + </div> + <br/> + <br/> + <br/> + <div ng-controller="DataController as dataCtrl"> + <div gantt "{ data= dataCtrl.dataService.resources }" style="min-height:300px"> <gantt-table></gantt-table> <gantt-movable></gantt-movable> <gantt-tooltips></gantt-tooltips>