summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2011-09-26 13:44:22 -0500
committerEndi S. Dewata <edewata@redhat.com>2011-09-27 14:43:48 +0000
commita2a42c3be8e7a0fb591af14b3da298b5ae35b6ac (patch)
treea3d2a77fdae34ca3d40a4d34e1036dd35b6cdcc5
parent8cf8870d3d11ace41cea1649d41f84341e0e94ac (diff)
downloadfreeipa-a2a42c3be8e7a0fb591af14b3da298b5ae35b6ac.tar.gz
freeipa-a2a42c3be8e7a0fb591af14b3da298b5ae35b6ac.tar.xz
freeipa-a2a42c3be8e7a0fb591af14b3da298b5ae35b6ac.zip
Fixed duplicate entries in enrollment dialog.
The IPA.association_adder_dialog has been modified not to show search results that are already selected to prevent duplicates. Ticket #1859
-rw-r--r--install/ui/association.js9
-rw-r--r--install/ui/dialog.js58
2 files changed, 22 insertions, 45 deletions
diff --git a/install/ui/association.js b/install/ui/association.js
index 3d75072a..47d8db17 100644
--- a/install/ui/association.js
+++ b/install/ui/association.js
@@ -177,14 +177,17 @@ IPA.association_adder_dialog = function(spec) {
var other_entity = IPA.get_entity(that.other_entity);
var pkey_attr = other_entity.metadata.primary_key;
+ var selected = that.get_selected_values();
+
var results = data.result;
for (var i=0; i<results.count; i++) {
var result = results.result[i];
var pkey = result[pkey_attr][0];
- if (that.exclude.indexOf(pkey) < 0) {
- that.add_available_value(result);
- }
+ if (that.exclude.indexOf(pkey) >= 0) continue;
+ if (selected.indexOf(pkey) >= 0) continue;
+
+ that.add_available_value(result);
}
}
diff --git a/install/ui/dialog.js b/install/ui/dialog.js
index b8d3afc7..f594a6c2 100644
--- a/install/ui/dialog.js
+++ b/install/ui/dialog.js
@@ -314,10 +314,13 @@ IPA.adder_dialog = function(spec) {
top_panel.append(' ');
- $('<input/>', {
- type: 'button',
+ that.find_button = IPA.button({
name: 'find',
- value: IPA.messages.buttons.find
+ label: IPA.messages.buttons.find,
+ click: function() {
+ that.search();
+ return false;
+ }
}).appendTo(top_panel);
top_panel.append(IPA.create_network_spinner());
@@ -370,54 +373,26 @@ IPA.adder_dialog = function(spec) {
}).appendTo(container);
var p = $('<p/>').appendTo(buttons_panel);
- $('<input />', {
- type: 'button',
+ that.add_button = IPA.button({
name: 'add',
- value: '>>'
- }).appendTo(p);
-
- p = $('<p/>').appendTo(buttons_panel);
- $('<input />', {
- type: 'button',
- name: 'remove',
- value: '<<'
- }).appendTo(p);
-
-
- that.filter_field = $('input[name=filter]', that.container);
-
- var button = $('input[name=find]', that.container);
- that.find_button = IPA.button({
- name: 'find',
- 'label': button.val(),
- 'click': function() {
- that.search();
+ label: '>>',
+ click: function() {
+ that.add();
return false;
}
- });
- button.replaceWith(that.find_button);
+ }).appendTo(p);
- button = $('input[name=remove]', that.container);
+ p = $('<p/>').appendTo(buttons_panel);
that.remove_button = IPA.button({
name: 'remove',
- 'label': button.val(),
- 'click': function() {
+ label: '<<',
+ click: function() {
that.remove();
return false;
}
- });
- button.replaceWith(that.remove_button);
+ }).appendTo(p);
- button = $('input[name=add]', that.container);
- that.add_button = IPA.button({
- name: 'add',
- 'label': button.val(),
- 'click': function() {
- that.add();
- return false;
- }
- });
- button.replaceWith(that.add_button);
+ that.filter_field = $('input[name=filter]', that.container);
if (that.external) {
container.addClass('adder-dialog-with-external');
@@ -440,7 +415,6 @@ IPA.adder_dialog = function(spec) {
type: 'text',
name: 'external'
}).appendTo(external_content);
-
}
that.search();