This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository pollen. See http://git.chorem.org/pollen.git commit 4e0a9079679dfd1d82bd0be0db73bf454a5322f5 Author: Adrien Garandel <a.garandel@dralagen.fr> Date: Tue Aug 26 16:15:02 2014 +0200 fixes #1059 check poll.maxChoiceNumber before submit poll --- pollen-ui-angular/src/main/webapp/i18n/en.js | 1 + pollen-ui-angular/src/main/webapp/i18n/fr.js | 1 + .../src/main/webapp/js/controllers/pollCtrl.js | 21 +++++++++++++++++++-- .../src/main/webapp/partials/poll-settings.html | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/pollen-ui-angular/src/main/webapp/i18n/en.js b/pollen-ui-angular/src/main/webapp/i18n/en.js index fe25db8..da8473a 100644 --- a/pollen-ui-angular/src/main/webapp/i18n/en.js +++ b/pollen-ui-angular/src/main/webapp/i18n/en.js @@ -139,6 +139,7 @@ var translateEN = { 'poll.info.limitedChoice' : 'This poll has limited the number of choices at {{nb}} choice(s)', 'poll.error.noResource' : 'No resource has send', 'poll.error.listEmpty' : 'No poll find', +'poll.error.notNumberValid' : 'Not a Number valid', 'vote.added' : 'Vote added.', 'vote.added.printLink' : 'You can modify your vote to using this address when you are not connected: {{url}}', diff --git a/pollen-ui-angular/src/main/webapp/i18n/fr.js b/pollen-ui-angular/src/main/webapp/i18n/fr.js index 923a402..9c49bb3 100644 --- a/pollen-ui-angular/src/main/webapp/i18n/fr.js +++ b/pollen-ui-angular/src/main/webapp/i18n/fr.js @@ -139,6 +139,7 @@ var translateFR = { 'poll.info.limitedChoice' : 'Le nombre de choix est limité à {{nb}} choix', 'poll.error.noResource' : 'Aucune ressource a envoyer', 'poll.error.listEmpty' : 'Aucun sondage trouvé', +'poll.error.notNumberValid' : 'N\'est pas un nombre valide', 'vote.added' : 'Vote effectué', 'vote.added.printLink' : 'Garder le lien suivant pour pouvoir modifier votre vote plus tard, lorsque vous n\'êtes pas connecté : {{url}}', diff --git a/pollen-ui-angular/src/main/webapp/js/controllers/pollCtrl.js b/pollen-ui-angular/src/main/webapp/js/controllers/pollCtrl.js index dafbc1e..ff0b922 100644 --- a/pollen-ui-angular/src/main/webapp/js/controllers/pollCtrl.js +++ b/pollen-ui-angular/src/main/webapp/js/controllers/pollCtrl.js @@ -826,6 +826,9 @@ angular.module('pollControllers', ['ngRoute', 'pollenServices', 'pascalprecht.tr if (! poll.limitedVote) { poll.maxChoiceNumber = 0; + } else { + poll.maxChoiceNumber = parseInt(poll.maxChoiceNumber, 10); + $scope.data.poll.maxChoiceNumber = poll.maxChoiceNumber; } Poll.add(poll, function (data) { @@ -879,8 +882,8 @@ angular.module('pollControllers', ['ngRoute', 'pollenServices', 'pascalprecht.tr // Admin edit poll controller // ////////////////////////////////// -.controller('PollEditCtrl', ['$scope', '$rootScope', '$controller', '$routeParams', '$location', '$timeout', '$translate', 'Poll', 'PollChoice', 'PollVote', 'PollVoterList', 'PollVoterListMember', 'FavoriteList', 'SessionStorage', 'Page', - function ( $scope, $rootScope, $controller, $routeParams, $location, $timeout, $translate, Poll, PollChoice, PollVote, PollVoterList, PollVoterListMember, FavoriteList, SessionStorage, Page) { +.controller('PollEditCtrl', ['$scope', '$rootScope', '$controller', '$routeParams', '$location', '$timeout', '$translate', '$filter', 'Poll', 'PollChoice', 'PollVote', 'PollVoterList', 'PollVoterListMember', 'FavoriteList', 'SessionStorage', 'Page', + function ( $scope, $rootScope, $controller, $routeParams, $location, $timeout, $translate, $filter, Poll, PollChoice, PollVote, PollVoterList, PollVoterListMember, FavoriteList, SessionStorage, Page) { $controller('PollAdminCtrl', {$scope:$scope}); Page.setTitle('title.poll.edit'); @@ -1140,6 +1143,17 @@ angular.module('pollControllers', ['ngRoute', 'pollenServices', 'pascalprecht.tr }); $scope.autoSavePoll = function () { if (!angular.equals(oldPoll, $scope.data.poll)) { + + if ($scope.data.poll.limitedVote && $scope.data.poll.maxChoiceNumber == 0 || $scope.data.poll.maxChoiceNumber == null) { + + if (angular.isUndefined($scope.restError)) { + $scope.restError = {} + } + + $scope.restError.maxChoiceNumber = [$filter('translate')('poll.error.notNumberValid')]; + return; + } + $scope.savePoll(); oldPoll = angular.copy($scope.data.poll); } @@ -1164,6 +1178,9 @@ angular.module('pollControllers', ['ngRoute', 'pollenServices', 'pascalprecht.tr if (! savePoll.limitedVote) { savePoll.maxChoiceNumber = 0; + } else { + savePoll.maxChoiceNumber = parseInt(savePoll.maxChoiceNumber, 10); + $scope.data.poll.maxChoiceNumber = savePoll.maxChoiceNumber; } Poll.update({permission:$scope.globalVariables.pollToken}, savePoll, function () { diff --git a/pollen-ui-angular/src/main/webapp/partials/poll-settings.html b/pollen-ui-angular/src/main/webapp/partials/poll-settings.html index f5fb775..7d156a2 100644 --- a/pollen-ui-angular/src/main/webapp/partials/poll-settings.html +++ b/pollen-ui-angular/src/main/webapp/partials/poll-settings.html @@ -189,7 +189,7 @@ <label class="col-sm-4 control-label" for="popMaxChoiceNumber">{{ 'poll.config.label.maxChoiceNumber' | translate }}</label> <div class="col-sm-6"> <input-error error="restError.maxChoiceNumber[0]" data="data.poll.maxChoiceNumber"> - <input type="number" min="0" step="1" class="form-control" id="popMaxChoiceNumber" ng-model="data.poll.maxChoiceNumber" auto-save="autoSavePoll()" /> + <input type="number" min="1" step="1" class="form-control" id="popMaxChoiceNumber" ng-model="data.poll.maxChoiceNumber" auto-save="autoSavePoll()" /> </input-error> </div> <div class="col-sm-2"> -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.