From d2d5278c52650cb90f1d77ac748f0a73f401bf5a Mon Sep 17 00:00:00 2001 From: Adam Young Date: Jun 27 2011 20:33:35 +0000 Subject: optional uid Make the uid field optional --- diff --git a/install/ui/dialog.js b/install/ui/dialog.js index efbf84e..f4aa718 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 9142403..47ae571 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 0a13a54..ce925d8 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 06f07db..5dde073 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":{