From da8dff143cef6c085a781dc0965ff2e7c5749524 Mon Sep 17 00:00:00 2001 From: mabashian Date: Mon, 7 Aug 2017 17:01:27 -0400 Subject: [PATCH] Fixed group delete/promote message tense --- .../groups/list/groups-list.controller.js | 62 +++++++++++++++---- .../groups/list/groups-list.partial.html | 38 +++--------- .../inventory-hosts.strings.js | 33 ++++++++++ awx/ui/client/src/inventories-hosts/main.js | 4 +- 4 files changed, 94 insertions(+), 43 deletions(-) create mode 100644 awx/ui/client/src/inventories-hosts/inventory-hosts.strings.js diff --git a/awx/ui/client/src/inventories-hosts/inventories/related/groups/list/groups-list.controller.js b/awx/ui/client/src/inventories-hosts/inventories/related/groups/list/groups-list.controller.js index d0a16f11ea..017fc65081 100644 --- a/awx/ui/client/src/inventories-hosts/inventories/related/groups/list/groups-list.controller.js +++ b/awx/ui/client/src/inventories-hosts/inventories/related/groups/list/groups-list.controller.js @@ -7,9 +7,11 @@ ['$scope', '$rootScope', '$state', '$stateParams', 'GroupList', 'InventoryUpdate', 'GroupsService', 'CancelSourceUpdate', 'rbacUiControlService', 'GetBasePath', 'GetHostsStatusMsg', 'Dataset', 'Find', 'QuerySet', 'inventoryData', 'canAdd', + 'InventoryHostsStrings', function($scope, $rootScope, $state, $stateParams, GroupList, InventoryUpdate, GroupsService, CancelSourceUpdate, rbacUiControlService, GetBasePath, - GetHostsStatusMsg, Dataset, Find, qs, inventoryData, canAdd){ + GetHostsStatusMsg, Dataset, Find, qs, inventoryData, canAdd, + InventoryHostsStrings){ let list = GroupList; @@ -20,6 +22,10 @@ $scope.canAdhoc = inventoryData.summary_fields.user_capabilities.adhoc; $scope.canAdd = canAdd; + $scope.strings = { + deleteModal: {} + }; + // Search init $scope.list = list; $scope[`${list.iterator}_dataset`] = Dataset.data; @@ -89,26 +95,58 @@ }; $scope.deleteGroup = function(group){ $scope.toDelete = {}; + $scope.strings.deleteModal = {}; angular.extend($scope.toDelete, group); if($scope.toDelete.total_groups === 0 && $scope.toDelete.total_hosts === 0) { // This group doesn't have any child groups or hosts - the user is just trying to delete // the group $scope.deleteOption = "delete"; } + else { + $scope.strings.deleteModal.group = $scope.toDelete.total_groups === 1 ? InventoryHostsStrings.get('filter.GROUP') : InventoryHostsStrings.get('filter.GROUPS'); + $scope.strings.deleteModal.host = $scope.toDelete.total_hosts === 1 ? InventoryHostsStrings.get('filter.HOST') : InventoryHostsStrings.get('filter.HOSTS'); + + if($scope.toDelete.total_groups > 1 && $scope.toDelete.total_hosts > 1) { + $scope.strings.deleteModal.deleteGroupsHosts = InventoryHostsStrings.get('filter.DELETEGROUPSHOSTS'); + $scope.strings.deleteModal.promoteGroupsHosts = InventoryHostsStrings.get('filter.PROMOTEGROUPSHOSTS'); + } + else if($scope.toDelete.total_groups > 1 && $scope.toDelete.total_hosts === 1) { + $scope.strings.deleteModal.deleteGroupsHosts = InventoryHostsStrings.get('filter.DELETEGROUPSHOST'); + $scope.strings.deleteModal.promoteGroupsHosts = InventoryHostsStrings.get('filter.PROMOTEGROUPSHOST'); + } + else if($scope.toDelete.total_groups === 1 && $scope.toDelete.total_hosts > 1) { + $scope.strings.deleteModal.deleteGroupsHosts = InventoryHostsStrings.get('filter.DELETEGROUPHOSTS'); + $scope.strings.deleteModal.promoteGroupsHosts = InventoryHostsStrings.get('filter.PROMOTEGROUPHOSTS'); + } + else if($scope.toDelete.total_groups === 1 && $scope.toDelete.total_hosts === 1) { + $scope.strings.deleteModal.deleteGroupsHosts = InventoryHostsStrings.get('filter.DELETEGROUPHOST'); + $scope.strings.deleteModal.promoteGroupsHosts = InventoryHostsStrings.get('filter.PROMOTEGROUPHOST'); + } + else if($scope.toDelete.total_groups === 0) { + if($scope.toDelete.total_hosts > 1) { + $scope.strings.deleteModal.deleteGroupsHosts = InventoryHostsStrings.get('filter.DELETEHOSTS'); + $scope.strings.deleteModal.promoteGroupsHosts = InventoryHostsStrings.get('filter.PROMOTEHOSTS'); + } + else { + $scope.strings.deleteModal.deleteGroupsHosts = InventoryHostsStrings.get('filter.DELETEHOST'); + $scope.strings.deleteModal.promoteGroupsHosts = InventoryHostsStrings.get('filter.PROMOTEHOST'); + } + } + else if($scope.toDelete.total_hosts === 0) { + if($scope.toDelete.total_groups > 1) { + $scope.strings.deleteModal.deleteGroupsHosts = InventoryHostsStrings.get('filter.DELETEGROUPS'); + $scope.strings.deleteModal.promoteGroupsHosts = InventoryHostsStrings.get('filter.PROMOTEGROUPS'); + } + else { + $scope.strings.deleteModal.deleteGroupsHosts = InventoryHostsStrings.get('filter.DELETEGROUP'); + $scope.strings.deleteModal.promoteGroupsHosts = InventoryHostsStrings.get('filter.PROMOTEGROUP'); + } + } + } + $('#group-delete-modal').modal('show'); }; $scope.confirmDelete = function(){ - - // Bind an even listener for the modal closing. Trying to $state.go() before the modal closes - // will mean that these two things are running async and the modal may not finish closing before - // the state finishes transitioning. - $('#group-delete-modal').off('hidden.bs.modal').on('hidden.bs.modal', function () { - // Remove the event handler so that we don't end up with multiple bindings - $('#group-delete-modal').off('hidden.bs.modal'); - // Reload the inventory manage page and show that the group has been removed - $state.go('.', null, {reload: true}); - }); - let reloadListStateParams = null; if($scope.groups.length === 1 && $state.params.group_search && !_.isEmpty($state.params.group_search.page) && $state.params.group_search.page !== '1') { diff --git a/awx/ui/client/src/inventories-hosts/inventories/related/groups/list/groups-list.partial.html b/awx/ui/client/src/inventories-hosts/inventories/related/groups/list/groups-list.partial.html index 6b2a01a971..68056e0ed7 100644 --- a/awx/ui/client/src/inventories-hosts/inventories/related/groups/list/groups-list.partial.html +++ b/awx/ui/client/src/inventories-hosts/inventories/related/groups/list/groups-list.partial.html @@ -21,42 +21,20 @@

Deleting group {{ toDelete.name }}. - This group contains {{ toDelete.total_groups }} groups and {{ toDelete.total_hosts }} hosts. - This group contains {{ toDelete.total_hosts }} hosts. - This group contains {{ toDelete.total_groups }} groups. + This group contains {{ toDelete.total_groups }} {{strings.deleteModal.group}} and {{ toDelete.total_hosts }} {{strings.deleteModal.host}}. + This group contains {{ toDelete.total_hosts }} {{strings.deleteModal.host}}. + This group contains {{ toDelete.total_groups }} {{strings.deleteModal.group}}. Delete or promote the group's children?

-
+
-
+
-
- -
- -
-
- -
- -
- -
-
-
@@ -71,7 +49,7 @@
diff --git a/awx/ui/client/src/inventories-hosts/inventory-hosts.strings.js b/awx/ui/client/src/inventories-hosts/inventory-hosts.strings.js new file mode 100644 index 0000000000..5d62c5de95 --- /dev/null +++ b/awx/ui/client/src/inventories-hosts/inventory-hosts.strings.js @@ -0,0 +1,33 @@ +function InventoryHostsStrings (BaseString) { + BaseString.call(this, 'inventoryhosts'); + + let t = this.t; + let ns = this.inventoryhosts; + + ns.filter = { + GROUP: t('group'), + GROUPS: t('groups'), + HOST: t('host'), + HOSTS: t('hosts'), + PROMOTEGROUPSHOSTS: t('Promote groups and hosts'), + PROMOTEGROUPHOSTS: t('Promote group and hosts'), + PROMOTEGROUPSHOST: t('Promote groups and host'), + PROMOTEGROUPHOST: t('Promote group and host'), + DELETEGROUPSHOSTS: t('Delete groups and hosts'), + DELETEGROUPHOSTS: t('Delete group and hosts'), + DELETEGROUPSHOST: t('Delete groups and host'), + DELETEGROUPHOST: t('Delete group and host'), + PROMOTEGROUPS: t('Promote groups'), + PROMOTEGROUP: t('Promote group'), + DELETEGROUPS: t('Delete groups'), + DELETEGROUP: t('Delete group'), + PROMOTEHOSTS: t('Promote hosts'), + PROMOTEHOST: t('Promote host'), + DELETEHOSTS: t('Delete hosts'), + DELETEHOST: t('Delete host') + }; +} + +InventoryHostsStrings.$inject = ['BaseStringService']; + +export default InventoryHostsStrings; diff --git a/awx/ui/client/src/inventories-hosts/main.js b/awx/ui/client/src/inventories-hosts/main.js index be79ffa2e6..de837d2049 100644 --- a/awx/ui/client/src/inventories-hosts/main.js +++ b/awx/ui/client/src/inventories-hosts/main.js @@ -7,10 +7,12 @@ import hosts from './hosts/main'; import inventories from './inventories/main'; import shared from './shared/main'; + import InventoryHostsStrings from './inventory-hosts.strings'; export default angular.module('inventories-hosts', [ hosts.name, inventories.name, shared.name - ]); + ]) + .service('InventoryHostsStrings', InventoryHostsStrings);