r151 - in trunk/faxtomail-ui-web/src/main/webapp: WEB-INF/content/admin css js
Author: echatellier Date: 2014-06-08 16:30:45 +0200 (Sun, 08 Jun 2014) New Revision: 151 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/151 Log: D?\195?\169but de gestion des valeurs par d?\195?\169faut des noeuds parents Modified: trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp trunk/faxtomail-ui-web/src/main/webapp/css/faxtomail.css 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-06-08 13:21:04 UTC (rev 150) +++ trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp 2014-06-08 14:30:45 UTC (rev 151) @@ -252,9 +252,10 @@ <input type="radio" ng-model="selectedMailFolder.allowMoveDemandIntoFolder" ng-value="false"> non </label> - <label class="radio-inline"> + <label class="radio-inline" ng-if="selectedMailFolder.$parent"> <input type="radio" - ng-model="selectedMailFolder.allowMoveDemandIntoFolder" ng-value="undefined"> valeur du noeud parent + ng-model="selectedMailFolder.allowMoveDemandIntoFolder" ng-value="undefined"> hériter du dossier parent + ({{parentScopeValues.allowMoveDemandIntoFolder ? 'Oui' : 'Non'}}) </label> </div> <div class="form-group"> @@ -267,9 +268,10 @@ <input type="radio" ng-model="selectedMailFolder.allowCreateDemandIntoFolder" ng-value="false"> non </label> - <label class="radio-inline"> + <label class="radio-inline" ng-if="selectedMailFolder.$parent"> <input type="radio" - ng-model="selectedMailFolder.allowCreateDemandIntoFolder" ng-value="undefined"> valeur du noeud parent + ng-model="selectedMailFolder.allowCreateDemandIntoFolder" ng-value="undefined"> hériter du dossier parent + ({{parentScopeValues.allowCreateDemandIntoFolder ? 'Oui' : 'Non'}}) </label> </div> <div class="form-group"> @@ -282,9 +284,10 @@ <input type="radio" ng-model="selectedMailFolder.printActionEqualTakeAction" ng-value="false"> non </label> - <label class="radio-inline"> + <label class="radio-inline" ng-if="selectedMailFolder.$parent"> <input type="radio" - ng-model="selectedMailFolder.printActionEqualTakeAction" ng-value="undefined"> valeur du noeud parent + ng-model="selectedMailFolder.printActionEqualTakeAction" ng-value="undefined"> hériter du dossier parent + ({{parentScopeValues.printActionEqualTakeAction ? 'Oui' : 'Non'}}) </label> </div> @@ -298,9 +301,10 @@ <input type="radio" ng-model="selectedMailFolder.openAttachmentReportNoTaken" ng-value="false"> non </label> - <label class="radio-inline"> + <label class="radio-inline" ng-if="selectedMailFolder.$parent"> <input type="radio" - ng-model="selectedMailFolder.openAttachmentReportNoTaken" ng-value="undefined"> valeur du noeud parent + ng-model="selectedMailFolder.openAttachmentReportNoTaken" ng-value="undefined"> hériter du dossier parent + ({{parentScopeValues.openAttachmentReportNoTaken ? 'Oui' : 'Non'}}) </label> </div> @@ -314,9 +318,10 @@ <input type="radio" ng-model="selectedMailFolder.rejectUnknownSender" ng-value="false"> non </label> - <label class="radio-inline"> + <label class="radio-inline" ng-if="selectedMailFolder.$parent"> <input type="radio" - ng-model="selectedMailFolder.rejectUnknownSender" ng-value="undefined"> valeur du noeud parent + ng-model="selectedMailFolder.rejectUnknownSender" ng-value="undefined"> hériter du dossier parent + ({{parentScopeValues.rejectUnknownSender ? 'Oui' : 'Non'}}) </label> </div> @@ -563,7 +568,7 @@ </div> <!-- Droits --> - <div class="panel panel-default" ng-controller="ConfigurationRigthsController"> + <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapse4"> @@ -582,24 +587,24 @@ </tr> </thead> <tbody> - <tr ng-repeat="user in parentsWriteRightUsers"> + <tr ng-repeat="user in parentScopeValues.parentsWriteRightUsers" class="parentInfos"> <td> - <span class="fa fa-user"></span> <em>{{user.firstName}} {{user.lastName}}</em> + <span class="fa fa-user"></span> {{user.firstName}} {{user.lastName}} </td> <td> - <label><input type="checkbox"> Lecture</label> - <label><input type="checkbox"> Écriture</label> - <label><input type="checkbox"> Déplacement</label> + <label><input type="checkbox" disabled> Lecture</label> + <label><input type="checkbox" disabled> Écriture</label> + <label><input type="checkbox" disabled> Déplacement</label> </td> </tr> - <tr ng-repeat="group in parentsWriteRightGroups"> + <tr ng-repeat="group in parentScopeValues.parentsWriteRightGroups" class="parentInfos"> <td> - <span class="fa fa-users"></span> <em>{{group.fullPath}}</em> + <span class="fa fa-users"></span> {{group.fullPath}} </td> <td> - <label><input type="checkbox"> Lecture</label> - <label><input type="checkbox"> Écriture</label> - <label><input type="checkbox"> Déplacement</label> + <label><input type="checkbox" disabled> Lecture</label> + <label><input type="checkbox" disabled> Écriture</label> + <label><input type="checkbox" disabled> Déplacement</label> </td> </tr> </tbody> @@ -633,22 +638,28 @@ </tbody> </table> - <div class="form-group"> - Nouveau utilisateur : - <select ng-model="newWriteRightUser" ng-options="user as user.firstName + ' ' + user.lastName for user in users"></select> - <a class="btn btn-success btn-xs" ng-click="addWriteRightUser()" ng-disabled="!newWriteRightUser"> - <span class="glyphicon glyphicon-plus"></span> - </a> + <div class="form-inline"> + <div class="form-group"> + <label for="newRightUserField" class="control-label">Nouveau utilisateur :</label> + <select id="newRightUserField" class="form-control" + ng-model="newWriteRightUser" ng-options="user as user.firstName + ' ' + user.lastName for user in users"> + </select> + <a class="btn btn-success btn-xs" ng-click="addWriteRightUser()" ng-disabled="!newWriteRightUser"> + <span class="glyphicon glyphicon-plus"></span> + </a> + </div> </div> - <div class="form-group"> - Nouveau groupe : - <select ng-model="newWriteRightGroup" ng-options="group as group.fullPath for group in groups"> - <option></option> - </select> - <a class="btn btn-success btn-xs" ng-click="addWriteRightGroup()" ng-disabled="!newWriteRightGroup"> - <span class="glyphicon glyphicon-plus"></span> - </a> + <div class="form-inline"> + <div class="form-group"> + <label for="newRightGroupField" class="control-label">Nouveau groupe :</label> + <select id="newRightGroupField" class="form-control" + ng-model="newWriteRightGroup" ng-options="group as group.fullPath for group in groups"> + </select> + <a class="btn btn-success btn-xs" ng-click="addWriteRightGroup()" ng-disabled="!newWriteRightGroup"> + <span class="glyphicon glyphicon-plus"></span> + </a> + </div> </div> </div> </div> Modified: trunk/faxtomail-ui-web/src/main/webapp/css/faxtomail.css =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/css/faxtomail.css 2014-06-08 13:21:04 UTC (rev 150) +++ trunk/faxtomail-ui-web/src/main/webapp/css/faxtomail.css 2014-06-08 14:30:45 UTC (rev 151) @@ -39,6 +39,11 @@ font-style: italic; } +table tr.parentInfos td { + background-color: #F5F5F5; + font-style: italic; +} + .angular-ui-tree-handle { background: #f8faff; border: 1px solid #dae2ea; Modified: trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js 2014-06-08 13:21:04 UTC (rev 150) +++ trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js 2014-06-08 14:30:45 UTC (rev 151) @@ -227,9 +227,9 @@ */ ConfigurationModule.controller('ConfigurationTreeController', ['$scope', '$window', 'ConfigurationData', function($scope, $window, ConfigurationData) { - //{Array} Users + //{Array} All application users $scope.users = ConfigurationData.users; - // {Array} Groups + // {Array} All application groups $scope.groups = ConfigurationData.groups; // {Object} selected mail folder $scope.selectedMailFolder; @@ -241,6 +241,8 @@ $scope.newReplyDomain; // {Array} Colonnes selectionnées pour le dossier courant $scope.folderTableColumns; + // {Object} Global parent wide configuration and values + $scope.parentScopeValues; // creation d'un nouveau noeud racine $scope.newRoot = function() { @@ -321,6 +323,82 @@ }); }; + // on doit faire ca par l'ordre des watch angular et ne pas l'appeler dans le edit + // sinon, les champs $ ne sont pas valués + $scope.$watch("selectedMailFolder", function(newValue, oldValue) { + if (newValue) { + // initialise default values pour le noeud racines + if (!$scope.selectedMailFolder.$parent) { + $scope.selectedMailFolder.allowCreateDemandIntoFolder = $scope.selectedMailFolder.allowCreateDemandIntoFolder || false; + $scope.selectedMailFolder.allowMoveDemandIntoFolder = $scope.selectedMailFolder.allowMoveDemandIntoFolder || false; + $scope.selectedMailFolder.openAttachmentReportNoTaken = $scope.selectedMailFolder.openAttachmentReportNoTaken || false; + $scope.selectedMailFolder.printActionEqualTakeAction = $scope.selectedMailFolder.printActionEqualTakeAction || false; + $scope.selectedMailFolder.refuseMail = $scope.selectedMailFolder.refuseMail || false; + $scope.selectedMailFolder.rejectUnknownSender = $scope.selectedMailFolder.rejectUnknownSender || false; + } + + // initilaisation des valeurs du parent + $scope.parentScopeValues = { + parentsReadRightUsers: [], + parentsReadRightGroups: [], + parentsWriteRightUsers: [], + parentsWriteRightGroups: [], + parentsMoveRightUsers: [], + parentsMoveRightGroups: [] + }; + updateParentScopeValues($scope.selectedMailFolder.$parent); + } + }); + + var updateParentScopeValues = function(folder) { + if (folder) { + // take current folder first before parent values (warn about 'undefined' and 'false') + if (angular.isUndefined($scope.parentScopeValues.allowCreateDemandIntoFolder)) { + $scope.parentScopeValues.allowCreateDemandIntoFolder = folder.allowCreateDemandIntoFolder; + } + if (angular.isUndefined($scope.parentScopeValues.allowMoveDemandIntoFolder)) { + $scope.parentScopeValues.allowMoveDemandIntoFolder = folder.allowMoveDemandIntoFolder; + } + if (angular.isUndefined($scope.parentScopeValues.openAttachmentReportNoTaken)) { + $scope.parentScopeValues.openAttachmentReportNoTaken = folder.openAttachmentReportNoTaken; + } + if (angular.isUndefined($scope.parentScopeValues.printActionEqualTakeAction)) { + $scope.parentScopeValues.printActionEqualTakeAction = folder.printActionEqualTakeAction; + } + if (angular.isUndefined($scope.parentScopeValues.refuseMail)) { + $scope.parentScopeValues.refuseMail = folder.refuseMail; + } + if (angular.isUndefined($scope.parentScopeValues.rejectUnknownSender)) { + $scope.parentScopeValues.rejectUnknownSender = folder.rejectUnknownSender; + } + + // move to parent first to keed parent order for collection + if (folder.$parent) { + updateParentScopeValues(folder.$parent); + }; + + // manage rigths + if (folder.readRightUsers) { + $scope.parentScopeValues.parentsWriteRightUsers = $scope.parentScopeValues.parentsReadRightUsers.concat(folder.readRightUsers); + } + if (folder.readRightGroups) { + $scope.parentScopeValues.parentsWriteRightGroups = $scope.parentScopeValues.parentsReadRightGroups.concat(folder.readRightGroups); + } + if (folder.writeRightUsers) { + $scope.parentScopeValues.parentsWriteRightUsers = $scope.parentScopeValues.parentsWriteRightUsers.concat(folder.writeRightUsers); + } + if (folder.writeRightGroups) { + $scope.parentScopeValues.parentsWriteRightGroups = $scope.parentScopeValues.parentsWriteRightGroups.concat(folder.writeRightGroups); + } + if (folder.moveRightUsers) { + $scope.parentScopeValues.parentsMoveRightUsers = $scope.parentScopeValues.parentsMoveRightUsers.concat(folder.moveRightUsers); + } + if (folder.moveRightGroups) { + $scope.parentScopeValues.parentsMoveRightGroups = $scope.parentScopeValues.parentsMoveRightGroups.concat(folder.moveRightGroups); + } + } + }; + // utilisé pour mettre à jour $scope.selectedMailFolder.folderTableColumns si $scope.folderTableColumns change $scope.$watch("folderTableColumns", function(newValue, oldValue) { if (newValue != oldValue) { @@ -403,98 +481,32 @@ $scope.selectedMailFolder.folderActions.push(folderAction); } }; -}]); - -/** - * Right accordion tab controller. - */ -ConfigurationModule.controller('ConfigurationRigthsController', ['$scope', '$window', 'ConfigurationData', - function($scope, $window, ConfigurationData) { - // {Array} Parent folders write right users - $scope.parentsWriteRightUsers; - // {Array} Parent folders write rigth groups - $scope.parentsWriteRightGroups; - - // action specific aux droits pour l'editions d'un dossier - $scope.$watch("selectedMailFolder", function(newValue) { - if (newValue) { - if (!$scope.selectedMailFolder.writeRightUsers) { - $scope.selectedMailFolder.writeRightUsers = []; - } - if (!$scope.selectedMailFolder.writeRightGroups) { - $scope.selectedMailFolder.writeRightGroups = []; - } - - // on exclut le dossier courant - updateParentFolderRigths($scope.selectedMailFolder.$parent); - } - }); - - // met à jour les listes des droits des dossiers parents - var updateParentFolderRigths = function(folder) { - $scope.parentsWriteRightUsers = []; - $scope.parentsWriteRightGroups = []; - recParentFolderRigths(folder); - }; - var recParentFolderRigths = function(folder) { - if (folder) { - if (folder.$parent) { - recParentFolderRigths(folder.$parent); - }; - if (folder.writeRightUsers) { - $scope.parentsWriteRightUsers = $scope.parentsWriteRightUsers.concat(folder.writeRightUsers); - } - if (folder.writeRightGroups) { - $scope.parentsWriteRightGroups = $scope.parentsWriteRightGroups.concat(folder.writeRightGroups); - } - } - }; - - // add reply address + + // add user write right $scope.addWriteRightUser = function() { $scope.selectedMailFolder.writeRightUsers.push($scope.newWriteRightUser); delete $scope.newWriteRightUser; }; - // remove customer responsible + // remove user write right $scope.removeWriteRightUser = function(index) { if ($window.confirm("Êtes-vous sur de vouloir supprimer les droits de cet utilisateur ?")) { $scope.selectedMailFolder.writeRightUsers.splice(index, 1); } }; - // add reply address + // add group write right $scope.addWriteRightGroup = function() { $scope.selectedMailFolder.writeRightGroups.push($scope.newWriteRightGroup); delete $scope.newWriteRightGroup; }; - // remove customer responsible + // remove group write right $scope.removeWriteRightGroup = function(index) { if ($window.confirm("Êtes-vous sur de vouloir supprimer les droits de ce groupe ?")) { $scope.selectedMailFolder.writeRightGroups.splice(index, 1); } }; - - // selection/deselection d'un état d'attente possible pour ce dossier - $scope.changeFolderEtatAttente = function(etatAttente) { - var index = $scope.selectedMailFolder.etatAttente.indexOf(etatAttente); - if (index != -1) { - $scope.selectedMailFolder.etatAttente.splice(index, 1); - } else { - $scope.selectedMailFolder.etatAttente.push(etatAttente); - } - }; - - // selection/deselection d'une action possible du menu contextuel pour ce dossier - $scope.changeFolderAction = function(folderAction) { - var index = $scope.selectedMailFolder.folderActions.indexOf(folderAction); - if (index != -1) { - $scope.selectedMailFolder.folderActions.splice(index, 1); - } else { - $scope.selectedMailFolder.folderActions.push(folderAction); - } - }; }]);
participants (1)
-
echatellier@users.forge.codelutin.com