From b7c7eaf8d9d2a131c642ff9b2b0681047af5d1fe Mon Sep 17 00:00:00 2001 From: Ana Krivokapic Date: Wed, 25 Sep 2013 11:29:31 +0200 Subject: Add automember rebuild command to the web UI Design: http://www.freeipa.org/page/V3/Automember_rebuild_membership https://fedorahosted.org/freeipa/ticket/3928 --- install/ui/src/freeipa/automember.js | 44 ++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'install/ui/src/freeipa/automember.js') 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); -- cgit