From f657970a35326d22623a86882d8c8f2994a76e43 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Mon, 14 Sep 2020 17:12:51 -0400 Subject: [PATCH 1/2] feat: Delete an account --- .../scope/auth-methods/auth-method/accounts.js | 17 +++++++++++++++++ .../auth-method/accounts/account.js | 3 +-- .../auth-method/accounts/account/-actions.hbs | 9 +++++++++ ui/core/translations/en-us.yaml | 1 + 4 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 ui/core/app/templates/scopes/scope/auth-methods/auth-method/accounts/account/-actions.hbs diff --git a/ui/core/app/routes/scopes/scope/auth-methods/auth-method/accounts.js b/ui/core/app/routes/scopes/scope/auth-methods/auth-method/accounts.js index 54ac54e9f..2de991ee2 100644 --- a/ui/core/app/routes/scopes/scope/auth-methods/auth-method/accounts.js +++ b/ui/core/app/routes/scopes/scope/auth-methods/auth-method/accounts.js @@ -48,4 +48,21 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsRoute extends Route this.notify.error(error.message, { closeAfter: null }); } } + + /** + * Delete an account in current scope and redirect to index + * @param {AccountModel} account + */ + @action + async delete(account) { + try { + await account.destroyRecord(); + this.refresh(); + this.notify.success(this.intl.t('notify.delete-success')); + this.transitionTo('scopes.scope.auth-methods.auth-method.accounts'); + } catch (error) { + //TODO: replace with translated strings + this.notify.error(error.message, { closeAfter: null }); + } + } } diff --git a/ui/core/app/routes/scopes/scope/auth-methods/auth-method/accounts/account.js b/ui/core/app/routes/scopes/scope/auth-methods/auth-method/accounts/account.js index 9b848945a..c314b5e2d 100644 --- a/ui/core/app/routes/scopes/scope/auth-methods/auth-method/accounts/account.js +++ b/ui/core/app/routes/scopes/scope/auth-methods/auth-method/accounts/account.js @@ -26,8 +26,7 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsAccountRoute extend outlet: 'header' }); - this.render('-empty', { - // this.render('scopes/scope/auth-methods/auth-method/accounts/account/-actions', { + this.render('scopes/scope/auth-methods/auth-method/accounts/account/-actions', { into: 'scopes/scope/auth-methods/auth-method', outlet: 'actions' }); diff --git a/ui/core/app/templates/scopes/scope/auth-methods/auth-method/accounts/account/-actions.hbs b/ui/core/app/templates/scopes/scope/auth-methods/auth-method/accounts/account/-actions.hbs new file mode 100644 index 000000000..90b6d2189 --- /dev/null +++ b/ui/core/app/templates/scopes/scope/auth-methods/auth-method/accounts/account/-actions.hbs @@ -0,0 +1,9 @@ + + + {{t 'actions.delete-account'}} + + \ No newline at end of file diff --git a/ui/core/translations/en-us.yaml b/ui/core/translations/en-us.yaml index b648f9971..563e5d898 100644 --- a/ui/core/translations/en-us.yaml +++ b/ui/core/translations/en-us.yaml @@ -21,6 +21,7 @@ actions: delete-host-set: Delete host set delete-host: Delete host delete-target: Delete target + delete-account: Delete account add-host-set: Create Host Set add-host: Create Host add-host-sets: Add Host Sets From 2f8a5b96076464aeb6b96d38369ef5d2cf25df95 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Tue, 15 Sep 2020 11:20:29 -0400 Subject: [PATCH 2/2] refactor: Wait for page transition before a notification --- .../routes/scopes/scope/auth-methods/auth-method/accounts.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/core/app/routes/scopes/scope/auth-methods/auth-method/accounts.js b/ui/core/app/routes/scopes/scope/auth-methods/auth-method/accounts.js index 2de991ee2..d5fbc41ef 100644 --- a/ui/core/app/routes/scopes/scope/auth-methods/auth-method/accounts.js +++ b/ui/core/app/routes/scopes/scope/auth-methods/auth-method/accounts.js @@ -38,11 +38,11 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsRoute extends Route async save(account) { try { await account.save(); + await this.transitionTo('scopes.scope.auth-methods.auth-method.accounts.account', account); this.refresh(); this.notify.success( this.intl.t('notify.save-success') ); - this.transitionTo('scopes.scope.auth-methods.auth-method.accounts.account', account); } catch (error) { // TODO: replace with translated strings this.notify.error(error.message, { closeAfter: null }); @@ -57,9 +57,9 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsRoute extends Route async delete(account) { try { await account.destroyRecord(); + await this.transitionTo('scopes.scope.auth-methods.auth-method.accounts'); this.refresh(); this.notify.success(this.intl.t('notify.delete-success')); - this.transitionTo('scopes.scope.auth-methods.auth-method.accounts'); } catch (error) { //TODO: replace with translated strings this.notify.error(error.message, { closeAfter: null });