From b71d1b431d7393187de162c4c0d921a2dc4b3a49 Mon Sep 17 00:00:00 2001 From: Pavel Vomacka Date: Wed, 20 Apr 2016 18:43:35 +0200 Subject: [PATCH] Add ability to stage multiple users Add 'Stage' button on search page where preserved users are listed. https://fedorahosted.org/freeipa/ticket/5371 Reviewed-By: Petr Vobornik --- install/ui/ipa.css | 4 ++++ install/ui/src/freeipa/stageuser.js | 29 +++++++++++++++++++++++++++++ install/ui/test/data/ipa_init.json | 3 +++ ipaserver/plugins/internal.py | 3 +++ 4 files changed, 39 insertions(+) diff --git a/install/ui/ipa.css b/install/ui/ipa.css index f419eb224..2921f4360 100644 --- a/install/ui/ipa.css +++ b/install/ui/ipa.css @@ -174,6 +174,10 @@ div[name=settings].facet-group li a { float: right; } +.facet-controls-right .fa.fa-user { + color: #aaa; +} + .control-buttons { display: inline-block; } diff --git a/install/ui/src/freeipa/stageuser.js b/install/ui/src/freeipa/stageuser.js index 9d26ef1fa..12debed30 100644 --- a/install/ui/src/freeipa/stageuser.js +++ b/install/ui/src/freeipa/stageuser.js @@ -298,6 +298,9 @@ stageuser.search_preserved_facet_spec = { actions: [ { $type: 'batch_undel' + }, + { + $type: 'batch_stage' } ], control_buttons: [ @@ -305,6 +308,11 @@ stageuser.search_preserved_facet_spec = { name: 'undel', label: '@i18n:buttons.restore', icon: 'fa-heart' + }, + { + name: 'batch_stage', + label: '@i18n:buttons.stage', + icon: 'fa-user' } ], policies: [ @@ -320,6 +328,12 @@ mod_user.entity_spec.policies.push( dest_entity: 'stageuser', dest_facet: 'search' }, + { + $factory: IPA.facet_update_policy, + source_facet: 'search_preserved', + dest_entity: 'stageuser', + dest_facet: 'search' + }, { $factory: IPA.facet_update_policy, source_facet: 'search_preserved', @@ -385,6 +399,20 @@ stageuser.activate_action = function(spec) { return that; }; +stageuser.batch_stage_action = function(spec) { + + spec = spec || {}; + + spec.name = spec.name || 'batch_stage'; + spec.method = spec.method || 'stage'; + spec.needs_confirm = spec.needs_confirm === undefined ? true : spec.needs_confirm; + spec.enable_cond = spec.enable_cond || ['item-selected']; + spec.success_msg = spec.success_msg || '@i18n:objects.stageuser.stage_success'; + spec.confirm_msg = spec.confirm_msg || '@i18n:objects.stageuser.stage_confirm'; + + return IPA.batch_items_action(spec); +}; + /** * Stage user entity specification object * @member stageuser @@ -402,6 +430,7 @@ stageuser.register = function() { a.register('batch_activate', stageuser.batch_activate_action); a.register('batch_undel', stageuser.batch_undel_action); a.register('activate', stageuser.activate_action); + a.register('batch_stage', stageuser.batch_stage_action); e.register({type: 'stageuser', spec: stageuser.stageuser_spec}); f.register_from_spec('user_search_preserved', stageuser.search_preserved_facet_spec); }; diff --git a/install/ui/test/data/ipa_init.json b/install/ui/test/data/ipa_init.json index 6ed7e9824..da401d415 100644 --- a/install/ui/test/data/ipa_init.json +++ b/install/ui/test/data/ipa_init.json @@ -89,6 +89,7 @@ "save": "Save", "set": "Set", "show": "Show", + "stage": "Stage", "unapply": "Un-apply", "update": "Update", "view": "View" @@ -545,6 +546,8 @@ "activate_success": "${count} user(s) activated", "label": "Stage users", "preserved_label": "Preserved users", + "stage_confirm": "Are you sure you want to stage selected users?", + "stage_success": "${count} users(s) staged", "undel_confirm": "Are you sure you want to restore selected users?", "undel_success": "${count} user(s) restored", "user_categories": "User categories", diff --git a/ipaserver/plugins/internal.py b/ipaserver/plugins/internal.py index 99b0c04d1..91fdd4080 100644 --- a/ipaserver/plugins/internal.py +++ b/ipaserver/plugins/internal.py @@ -225,6 +225,7 @@ class i18n_messages(Command): "save": _("Save"), "set": _("Set"), "show": _("Show"), + "stage": _("Stage"), "unapply": ("Un-apply"), "update": _("Update"), "view": _("View"), @@ -684,6 +685,8 @@ class i18n_messages(Command): "activate_success": _("${count} user(s) activated"), "label": _("Stage users"), "preserved_label": _("Preserved users"), + "stage_confirm": _("Are you sure you want to stage selected users?"), + "stage_success": _("${count} users(s) staged"), "undel_confirm": _("Are you sure you want to restore selected users?"), "undel_success": _("${count} user(s) restored"), "user_categories": _("User categories"),