summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--install/ui/host.js1
-rw-r--r--install/ui/widget.js17
2 files changed, 14 insertions, 4 deletions
diff --git a/install/ui/host.js b/install/ui/host.js
index d22f548..019d3f4 100644
--- a/install/ui/host.js
+++ b/install/ui/host.js
@@ -136,6 +136,7 @@ IPA.entity_factories.host = function () {
name: 'dnszone',
label: IPA.metadata.objects.dnszone.label_singular,
editable: true,
+ empty_option: false,
undo: false
},
{
diff --git a/install/ui/widget.js b/install/ui/widget.js
index 83cb4dc..f3559a3 100644
--- a/install/ui/widget.js
+++ b/install/ui/widget.js
@@ -1606,6 +1606,7 @@ IPA.combobox_widget = function(spec) {
that.editable = spec.editable;
that.searchable = spec.searchable;
that.list_size = spec.list_size || 5;
+ that.empty_option = spec.empty_option === undefined ? true : spec.empty_option;
that.create = function(container) {
that.widget_create(container);
@@ -1800,7 +1801,11 @@ IPA.entity_select_widget = function(spec) {
that.remove_options();
- that.create_option();
+ var selected_option = null;
+
+ if (that.empty_option) {
+ selected_option = that.create_option();
+ }
var filter = that.filter.val();
var entries = data.result.result;
@@ -1811,12 +1816,16 @@ IPA.entity_select_widget = function(spec) {
var option = that.create_option(value, value);
- if (filter === value) {
- option.attr('selected', 'selected');
+ if (!selected_option || filter === value) {
+ selected_option = option;
}
}
- that.set_dirty(that.test_dirty());
+ if (selected_option) {
+ selected_option.attr('selected', 'selected');
+ that.input.val(selected_option.val());
+ that.set_dirty(that.test_dirty());
+ }
};
command.execute();