diff --git a/ui/core/app/routes/scopes/scope/groups/group/members.js b/ui/core/app/routes/scopes/scope/groups/group/members.js index 7e2dc6658..eb3fe8eb2 100644 --- a/ui/core/app/routes/scopes/scope/groups/group/members.js +++ b/ui/core/app/routes/scopes/scope/groups/group/members.js @@ -1,6 +1,7 @@ import Route from '@ember/routing/route'; import { action } from '@ember/object'; import { inject as service } from '@ember/service'; +import { hash, all } from 'rsvp'; export default class ScopesScopeGroupsGroupMembersRoute extends Route { @@ -11,22 +12,19 @@ export default class ScopesScopeGroupsGroupMembersRoute extends Route { // =methods - /** - * Empty out all users before loading members. - */ - beforeModel() { - this.store.unloadAll('user'); - } - /** * Returns users associated with this group. - * @return {Promise{[UserModel]}} + * @return {Promise{group: GroupModel, members: Promise{[UserModel]}}} */ - async model() { + model() { const { id: scopeID } = this.modelFor('scopes.scope'); const group = this.modelFor('scopes.scope.groups.group'); - await this.store.findAll('user', { adapterOptions: { scopeID } }); - return group; + return hash({ + group, + members: all(group.member_ids.map(id => + this.store.findRecord('user', id, { adapterOptions: { scopeID } }) + )) + }); } // =actions @@ -40,6 +38,7 @@ export default class ScopesScopeGroupsGroupMembersRoute extends Route { async removeMember(group, member) { try { await group.removeMember(member.id); + await this.refresh(); this.notify.success(this.intl.t('notify.delete-success')); } catch (error) { // TODO: replace with translated strings diff --git a/ui/core/app/templates/scopes/scope/groups/group/members.hbs b/ui/core/app/templates/scopes/scope/groups/group/members.hbs index a2445b90d..fb562164b 100644 --- a/ui/core/app/templates/scopes/scope/groups/group/members.hbs +++ b/ui/core/app/templates/scopes/scope/groups/group/members.hbs @@ -29,7 +29,7 @@ > {{t "actions.remove"}}