r98 - in trunk/faxtomail-ui-web/src/main/webapp: WEB-INF/content/admin js
Author: echatellier Date: 2014-05-26 17:31:06 +0200 (Mon, 26 May 2014) New Revision: 98 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/98 Log: refs #4662: Sauvegarde colonnes ?\195?\160 afficher et actions possibles Modified: trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js Modified: trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp 2014-05-26 15:02:44 UTC (rev 97) +++ trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp 2014-05-26 15:31:06 UTC (rev 98) @@ -311,8 +311,8 @@ <div id="collapse5" class="panel-collapse collapse"> <div class="panel-body"> <label class="checkbox" ng-repeat="(etatAttenteAction,label) in etatAttenteActions"> - <input type="checkbox" ng-checked="selectedMailFolder.actions.indexOf(etatAttenteAction) != -1" - ng-click="changeEtatAttenteAction(etatAttenteAction)"> {{label}} + <input type="checkbox" ng-checked="selectedMailFolder.folderActions.indexOf(etatAttenteAction) != -1" + ng-click="changeFolderAction(etatAttenteAction)"> {{label}} </label> </div> </div> @@ -333,7 +333,7 @@ <label class="control-label" for="tableColumns">Champs à afficher dans le tableau (l'ordre peut être changé en faisant un glisser/déposer sur les champs)</label> <div class="controls"> - <input type="hidden" ui-select2-sortable ng-model="mailFolder.searchDisplayColumns" + <input type="hidden" ui-select2-sortable ng-model="folderTableColumns" simple-query="getObjectsData" multiple sortable> </div> @@ -342,7 +342,7 @@ <caption>Aperçu</caption> <thead> <tr> - <th ng-repeat="etatAttenteField in searchDisplayColumns">{{etatAttenteFields[etatAttenteField.id]}}</th> + <th ng-repeat="etatAttenteField in folderTableColumns">{{etatAttenteFields[etatAttenteField.id]}}</th> </tr> </thead> </table> Modified: trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js 2014-05-26 15:02:44 UTC (rev 97) +++ trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js 2014-05-26 15:31:06 UTC (rev 98) @@ -72,10 +72,14 @@ */ FaxToMailModule.controller('ConfigurationTreeController', ['$scope', '$http', '$window', 'ConfigurationData', function($scope, $http, $window, ConfigurationData) { - // selected mail folder + // {Object} selected mail folder $scope.selectedMailFolder; // {String} add new customer responsible form value $scope.newCustomerResponsible; + // {String} add new customer responsible form value + $scope.newReplyAddress; + // {Array} Colonnes selectionnées pour le dossier courant + $scope.folderTableColumns; // collapse all subnodes (called by init) $scope.collapseAll = function(scope) { @@ -98,8 +102,33 @@ if (!$scope.selectedMailFolder.replyAddresses) { $scope.selectedMailFolder.replyAddresses = []; } + if (!$scope.selectedMailFolder.folderActions) { + $scope.selectedMailFolder.folderActions = []; + } + if (!$scope.selectedMailFolder.folderTableColumns) { + $scope.selectedMailFolder.folderTableColumns = []; + } + + // initialise la liste des colonnes pour le dossier courant + $scope.folderTableColumns = []; + angular.forEach($scope.selectedMailFolder.folderTableColumns, function(folderTableColumn) { + $scope.folderTableColumns.push({ + id: folderTableColumn, + label: $scope.etatAttenteFields[folderTableColumn] + }); + }); }; + // utilisé pour mettre à jour $scope.selectedMailFolder.folderTableColumns si $scope.folderTableColumns change + $scope.$watch("folderTableColumns", function(newValue, oldValue) { + if (newValue != oldValue) { + $scope.selectedMailFolder.folderTableColumns = []; + angular.forEach(newValue, function(elem) { + $scope.selectedMailFolder.folderTableColumns.push(elem.id); + }); + } + }, true); + // new sub folder $scope.newSubFolder = function(scope) { var nodeData = scope.$modelValue; @@ -112,16 +141,16 @@ } }; - // get select2 init data + // fonction retournant l'ensemble des options disponibles $scope.getObjectsData = function(term, result) { - var result2 = []; - angular.forEach($scope.etatAttenteFields, function(v, k) { - result2.push({ - id: k, - label: v + var resultArray = []; + angular.forEach($scope.etatAttenteFields, function(label, field) { + resultArray.push({ + id: field, + label: label }); }); - result(result2); + result(resultArray); }; // add customer responsible @@ -145,6 +174,16 @@ $scope.removeReplyAddress = function(index) { $scope.selectedMailFolder.replyAddresses.splice(index, 1); }; + + // selection/deselection d'une action possible du menu contextuel pour ce dossier + $scope.changeFolderAction = function(etatAttenteAction) { + var index = $scope.selectedMailFolder.folderActions.indexOf(etatAttenteAction); + if (index != -1) { + $scope.selectedMailFolder.folderActions.splice(index, 1); + } else { + $scope.selectedMailFolder.folderActions.push(etatAttenteAction); + } + }; }]); /** @@ -210,11 +249,6 @@ */ FaxToMailModule.controller('ConfigurationSearchController', ['$scope', '$http', 'ConfigurationData', function($scope, $http, ConfigurationData) { - //{Object} Option select2 - $scope.searchSelectOptions = { - 'multiple': true/*, - 'tags': Object.keys($scope.etatAttenteFields)*/ - }; //{Array} Options actuelle $scope.searchDisplayColumns = []; angular.forEach(ConfigurationData.searchDisplayColumns, function(searchDisplayColumn) { @@ -223,16 +257,17 @@ label: $scope.etatAttenteFields[searchDisplayColumn] }); }); - + + // fonction retournant l'ensemble des options disponibles $scope.getObjectsData = function(term, result) { - var result2 = []; - angular.forEach($scope.etatAttenteFields, function(v, k) { - result2.push({ - id: k, - label: v + var resultArray = []; + angular.forEach($scope.etatAttenteFields, function(label, field) { + resultArray.push({ + id: field, + label: label }); }); - result(result2); + result(resultArray); }; }]);
participants (1)
-
echatellier@users.forge.codelutin.com