summaryrefslogtreecommitdiffstats
path: root/install/ui/src/freeipa/automember.js
diff options
context:
space:
mode:
authorAna Krivokapic <akrivoka@redhat.com>2013-09-25 11:29:31 +0200
committerPetr Vobornik <pvoborni@redhat.com>2013-11-15 13:28:16 +0100
commitb7c7eaf8d9d2a131c642ff9b2b0681047af5d1fe (patch)
tree8f7f3b16879e8d62ca39450039376a88cc00fea5 /install/ui/src/freeipa/automember.js
parent6c9b3b02a4578f9985b343e4d6f716a7b829b8f0 (diff)
downloadfreeipa-b7c7eaf8d9d2a131c642ff9b2b0681047af5d1fe.tar.gz
freeipa-b7c7eaf8d9d2a131c642ff9b2b0681047af5d1fe.tar.xz
freeipa-b7c7eaf8d9d2a131c642ff9b2b0681047af5d1fe.zip
Add automember rebuild command to the web UI
Design: http://www.freeipa.org/page/V3/Automember_rebuild_membership https://fedorahosted.org/freeipa/ticket/3928
Diffstat (limited to 'install/ui/src/freeipa/automember.js')
-rw-r--r--install/ui/src/freeipa/automember.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/install/ui/src/freeipa/automember.js b/install/ui/src/freeipa/automember.js
index f8083b89e..2dff34227 100644
--- a/install/ui/src/freeipa/automember.js
+++ b/install/ui/src/freeipa/automember.js
@@ -699,12 +699,55 @@ IPA.automember.default_group_widget = function(spec) {
return that;
};
+IPA.automember.rebuild_action = function(spec) {
+
+ spec = spec || {};
+ spec.name = spec.name || 'automember_rebuild';
+ spec.label = spec.label || '@i18n:actions.automember_rebuild';
+
+ var that = IPA.action(spec);
+
+ that.execute_action = function(facet) {
+ var entity = facet.entity.name;
+ if (facet.name == 'search') {
+ var entries = facet.get_selected_values();
+ } else {
+ entries = facet.get_pkeys();
+ }
+
+ var options = {};
+ if (entries.length > 0) {
+ options[entity + 's'] = entries;
+ } else if (entity == 'user') {
+ options['type'] = 'group';
+ } else {
+ options['type'] = 'hostgroup';
+ }
+
+ var command = IPA.command({
+ entity: 'automember',
+ method: 'rebuild',
+ options: options,
+ on_success: function() {
+ IPA.notify_success('@i18n:actions.automember_rebuild_success');
+ },
+ on_error: function() {
+ }
+ });
+
+ command.execute();
+ };
+
+ return that;
+};
+
exp.entity_spec = make_spec();
exp.register = function() {
var e = reg.entity;
var w = reg.widget;
var f = reg.field;
+ var a = reg.action;
e.register({
type: 'automember',
@@ -713,6 +756,7 @@ exp.register = function() {
});
w.register('automember_condition', IPA.automember.condition_widget);
f.register('automember_condition', IPA.automember.condition_field);
+ a.register('automember_rebuild', exp.rebuild_action);
};
phases.on('registration', exp.register);