From a6cf44bd6538788a20fd6021b802443d4b0c63d9 Mon Sep 17 00:00:00 2001 From: Petr Vobornik Date: Wed, 24 Aug 2011 15:36:48 +0200 Subject: Validation of details facet before update https://fedorahosted.org/freeipa/ticket/1676 The ticket is a duplicate of server error, but it revealed few UI errors. Newly performs validation of details facet before update. If validation fails, notification dialog is shown and command isn't executed. Fixed integer minimum and maximum value checking. Read-only and non-writable fields are no longer considered required. --- install/ui/details.js | 31 +++++++++++++++++++++++++++++-- install/ui/test/data/ipa_init.json | 4 +++- install/ui/widget.js | 12 +++++++----- ipalib/plugins/internal.py | 6 ++++-- 4 files changed, 43 insertions(+), 10 deletions(-) diff --git a/install/ui/details.js b/install/ui/details.js index 564d848..4550c1a 100644 --- a/install/ui/details.js +++ b/install/ui/details.js @@ -128,6 +128,18 @@ IPA.details_section = function(spec) { return false; }; + that.is_valid = function() { + var fields = that.fields.values; + var valid = true; + for (var i=0; i meta.maxvalue) { + if (meta.maxvalue !== undefined && value > meta.maxvalue) { that.valid = false; message = IPA.messages.widget.validation.max_value; message = message.replace('${value}', meta.maxvalue); @@ -131,7 +131,9 @@ IPA.widget = function(spec) { if (!values || !values.length || values[0] === '' ) { if (that.param_info && that.param_info.required && - !that.optional) { + !that.optional && + !that.read_only && + that.writable) { that.valid = false; that.show_error(IPA.messages.widget.validation.required); return false; @@ -148,10 +150,10 @@ IPA.widget = function(spec) { that.valid = true; var values = that.save(); - if (!values){ + if (!values) { return; } - if (values.length ===0 ){ + if (values.length === 0) { return; } var value = values[0]; diff --git a/ipalib/plugins/internal.py b/ipalib/plugins/internal.py index 785dc16..0964d10 100644 --- a/ipalib/plugins/internal.py +++ b/ipalib/plugins/internal.py @@ -355,12 +355,14 @@ class i18n_messages(Command): "confirmation":_("Confirmation"), "dirty_message":_("This page has unsaved changes. Please save or revert."), "dirty_title":_("Unsaved Changes"), - "hide_details":_("Hide details"),\ + "hide_details":_("Hide details"), "redirection":_("Redirection"), "remove_empty":_("Select entries to be removed."), "remove_title":_("Remove ${entity}"), "prospective":_("Prospective"), - "show_details":_("Show details"),\ + "show_details":_("Show details"), + "validation_title":_("Validation error"), + "validation_message":_("Input form contains invalid or missing values."), }, "facet_groups": { "managedby":_("${primary_key} is managed by:"), -- cgit v1.1