From d2d5278c52650cb90f1d77ac748f0a73f401bf5a Mon Sep 17 00:00:00 2001 From: Adam Young Date: Mon, 20 Jun 2011 21:20:13 -0400 Subject: optional uid Make the uid field optional --- install/ui/dialog.js | 19 +++++++++++++++++++ install/ui/test/data/ipa_init.json | 1 + install/ui/user.js | 9 ++++++++- ipalib/plugins/internal.py | 1 + 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/install/ui/dialog.js b/install/ui/dialog.js index efbf84ec4..f4aa71828 100644 --- a/install/ui/dialog.js +++ b/install/ui/dialog.js @@ -188,6 +188,23 @@ IPA.dialog = function(spec) { var span = $('', { 'name': field.name }).appendTo(td); field.create(span); + field.field_span = span; + + if (field.optional){ + span.css('display','none'); + td.append( + $('',{ + text: IPA.messages.widget.optional, + href:'', + click: function(){ + var span = $(this).prev(); + span.css('display','inline'); + $(this).css('display','none'); + return false; + } + })); + } + } var sections = that.sections.values; @@ -327,6 +344,8 @@ IPA.dialog = function(spec) { var factory = field_spec.factory || IPA.text_widget; field = factory(field_spec); + field.optional = field_spec.optional || false; + /* This is a bit of a hack, and is here to support ACI permissions. The target section is a group of several widgets together. It makes more sense to do them as a diff --git a/install/ui/test/data/ipa_init.json b/install/ui/test/data/ipa_init.json index 914240367..47ae571c2 100644 --- a/install/ui/test/data/ipa_init.json +++ b/install/ui/test/data/ipa_init.json @@ -15609,6 +15609,7 @@ "sudo": "Sudo" }, "widget": { + "optional": "Optional field: click to show", "validation_error": "Text does not match field pattern" } } diff --git a/install/ui/user.js b/install/ui/user.js index 0a13a546d..ce925d8e0 100644 --- a/install/ui/user.js +++ b/install/ui/user.js @@ -119,7 +119,14 @@ IPA.entity_factories.user = function() { link: link }). adder_dialog({ - fields: ['uid', 'givenname', 'sn'] + fields: [ + { + factory : IPA.text_widget, + undo: false, + optional: true, + name:'uid' + }, + 'givenname', 'sn'] }); return builder.build(); diff --git a/ipalib/plugins/internal.py b/ipalib/plugins/internal.py index 06f07dbd8..5dde0732e 100644 --- a/ipalib/plugins/internal.py +++ b/ipalib/plugins/internal.py @@ -365,6 +365,7 @@ class i18n_messages(Command): "remove":_("Remove ${other_entity} from ${entity} ${primary_key}"), }, "widget":{ + "optional":_("Optional field: click to show"), "validation_error":_("Text does not match field pattern"), }, "ajax":{ -- cgit