URL: https://github.com/freeipa/freeipa/pull/1464 Author: flo-renaud Title: #1464: [Backport][ipa-4-5] WebUI: fix for negative number in pagination size settings Action: opened
PR body: """ """ To pull the PR as Git branch: git remote add ghfreeipa https://github.com/freeipa/freeipa git fetch ghfreeipa pull/1464/head:pr1464 git checkout pr1464
From ef547267e79d8b0de44d40480837832a13680a38 Mon Sep 17 00:00:00 2001 From: Pavel Vomacka <pvoma...@redhat.com> Date: Tue, 11 Jul 2017 10:46:36 +0200 Subject: [PATCH 1/2] WebUI: Add positive number validator Add new validator which inherits from integer validator and checks whether the integer is positive. https://pagure.io/freeipa/issue/6980 Reviewed-By: Felipe Volpone <felipevolp...@gmail.com> --- install/ui/src/freeipa/field.js | 43 +++++++++++++++++++++++++++++++++++++++++ ipaserver/plugins/internal.py | 1 + 2 files changed, 44 insertions(+) diff --git a/install/ui/src/freeipa/field.js b/install/ui/src/freeipa/field.js index 76ce2533af..f998b578c3 100644 --- a/install/ui/src/freeipa/field.js +++ b/install/ui/src/freeipa/field.js @@ -1049,9 +1049,51 @@ field.validator = IPA.validator = function(spec) { return that.true_result(); }; + that.integer_validate = that.validate; + return that; }; + +/** + * Javascript positive integer validator + * + * It allows to insert only positive integer. + * + * @class + * @alternateClassName IPA.positive_integer_validator + * @extends IPA.validator + */ + field.positive_integer_validator = IPA.positive_integer_validator = function(spec) { + + var that = IPA.integer_validator(spec); + + /** + * @inheritDoc + */ + + that.validate = function(value) { + + var integer_check = that.integer_validate(value); + + if (!integer_check.valid) { + return integer_check; + } + + var num = parseInt(value); + + if (num <= 0) { + return that.false_result( + text.get('@i18n:widget.validation.positive_number')); + } + + return that.true_result(); + }; + + return that; + }; + + /** * Metadata validator * @@ -1871,6 +1913,7 @@ field.register = function() { v.register('unsupported', field.unsupported_validator); v.register('same_password', field.same_password_validator); v.register('integer', field.integer_validator); + v.register('positive_integer', field.positive_integer_validator); l.register('adapter', field.Adapter); l.register('object_adapter', field.ObjectAdapter); diff --git a/ipaserver/plugins/internal.py b/ipaserver/plugins/internal.py index ff239db07e..c293e0b5e0 100644 --- a/ipaserver/plugins/internal.py +++ b/ipaserver/plugins/internal.py @@ -982,6 +982,7 @@ class i18n_messages(Command): "min_value": _("Minimum value is ${value}"), "net_address": _("Not a valid network address (examples: 2001:db8::/64, 192.0.2.0/24)"), "parse": _("Parse error"), + "positive_number": _("Must be a positive number"), "port": _("'${port}' is not a valid port"), "required": _("Required field"), "unsupported": _("Unsupported value"), From 4527415ea277dc1f0d9828d9cc7e2b833c89f5ad Mon Sep 17 00:00:00 2001 From: Pavel Vomacka <pvoma...@redhat.com> Date: Tue, 11 Jul 2017 10:49:46 +0200 Subject: [PATCH 2/2] WebUI: change validator of page size settings Previously, this configuration field was validated by integer_validator which only checks that the input is number. Now new positive_integer_validator can also check that the inputed number positive. https://pagure.io/freeipa/issue/6980 Reviewed-By: Felipe Volpone <felipevolp...@gmail.com> --- install/ui/src/freeipa/Application_controller.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/ui/src/freeipa/Application_controller.js b/install/ui/src/freeipa/Application_controller.js index 5eb4e7a510..51f579e3cc 100644 --- a/install/ui/src/freeipa/Application_controller.js +++ b/install/ui/src/freeipa/Application_controller.js @@ -312,7 +312,7 @@ define([ $type: 'text', name: 'pagination_size', label: '@i18n:customization.table_pagination', - validators: ['integer'] + validators: ['positive_integer'] } ] });
_______________________________________________ FreeIPA-devel mailing list -- freeipa-devel@lists.fedorahosted.org To unsubscribe send an email to freeipa-devel-le...@lists.fedorahosted.org