summaryrefslogtreecommitdiffstats
path: root/install/ui/dialog.js
diff options
context:
space:
mode:
Diffstat (limited to 'install/ui/dialog.js')
-rw-r--r--install/ui/dialog.js19
1 files changed, 19 insertions, 0 deletions
diff --git a/install/ui/dialog.js b/install/ui/dialog.js
index 17e78af6d..964d5f5fc 100644
--- a/install/ui/dialog.js
+++ b/install/ui/dialog.js
@@ -265,6 +265,25 @@ IPA.dialog = function(spec) {
that.dialog_setup = that.setup;
that.dialog_open = that.open;
+ var fields = spec.fields || [];
+ for (var i=0; i<fields.length; i++) {
+ var field_spec = fields[i];
+ var field;
+
+ if (field_spec instanceof Object) {
+ if (field_spec.factory) {
+ field = field_spec.factory(field_spec);
+ } else {
+ field = IPA.text_widget(field_spec);
+ }
+ } else {
+ var field_name = field_spec;
+ field = IPA.text_widget({ name: field_name, undo: false });
+ }
+
+ that.add_field(field);
+ }
+
return that;
};