diff --git a/resources/i18n/en.json5 b/resources/i18n/en.json5 index f4eab6329c..bdb62c1a70 100644 --- a/resources/i18n/en.json5 +++ b/resources/i18n/en.json5 @@ -293,11 +293,11 @@ "admin.access-control.groups.form.members-list.head": "EPeople", - "admin.access-control.groups.form.members-list.search.head": "Search EPeople", + "admin.access-control.groups.form.members-list.search.head": "Add EPeople", "admin.access-control.groups.form.members-list.button.see-all": "Browse All", - "admin.access-control.groups.form.members-list.headMembers": "Browse Members", + "admin.access-control.groups.form.members-list.headMembers": "Current Members", "admin.access-control.groups.form.members-list.search.scope.metadata": "Metadata", @@ -331,11 +331,11 @@ "admin.access-control.groups.form.subgroups-list.head": "Groups", - "admin.access-control.groups.form.subgroups-list.search.head": "Search Groups", + "admin.access-control.groups.form.subgroups-list.search.head": "Add Subgroup", "admin.access-control.groups.form.subgroups-list.button.see-all": "Browse All", - "admin.access-control.groups.form.subgroups-list.headSubgroups": "Browse Subgroups", + "admin.access-control.groups.form.subgroups-list.headSubgroups": "Current Subgroups", "admin.access-control.groups.form.subgroups-list.search.button": "Search", diff --git a/src/app/+admin/admin-access-control/group-registry/group-form/group-form.component.ts b/src/app/+admin/admin-access-control/group-registry/group-form/group-form.component.ts index d75e9eb1bf..056f659263 100644 --- a/src/app/+admin/admin-access-control/group-registry/group-form/group-form.component.ts +++ b/src/app/+admin/admin-access-control/group-registry/group-form/group-form.component.ts @@ -1,4 +1,4 @@ -import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core'; +import { Component, EventEmitter, HostListener, OnDestroy, OnInit, Output } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { ActivatedRoute, Router } from '@angular/router'; import { @@ -232,18 +232,14 @@ export class GroupFormComponent implements OnInit, OnDestroy { * @param groupId ID of group to set as active */ setActiveGroup(groupId: string) { - this.groupDataService.getActiveGroup().pipe(take(1)).subscribe((activeGroup: Group) => { - if (activeGroup === null) { - this.groupDataService.cancelEditGroup(); - this.groupDataService.findById(groupId) - .pipe( - getSucceededRemoteData(), - getRemoteDataPayload()) - .subscribe((group: Group) => { - this.groupDataService.editGroup(group); - }) - } - }); + this.groupDataService.cancelEditGroup(); + this.groupDataService.findById(groupId) + .pipe( + getSucceededRemoteData(), + getRemoteDataPayload()) + .subscribe((group: Group) => { + this.groupDataService.editGroup(group); + }); } /** @@ -268,6 +264,7 @@ export class GroupFormComponent implements OnInit, OnDestroy { /** * Cancel the current edit when component is destroyed & unsub all subscriptions */ + @HostListener('window:beforeunload') ngOnDestroy(): void { this.onCancel(); this.subs.filter((sub) => hasValue(sub)).forEach((sub) => sub.unsubscribe()); diff --git a/src/app/+admin/admin-access-control/group-registry/group-form/members-list/members-list.component.ts b/src/app/+admin/admin-access-control/group-registry/group-form/members-list/members-list.component.ts index 9529d099f6..b2e9ea75d6 100644 --- a/src/app/+admin/admin-access-control/group-registry/group-form/members-list/members-list.component.ts +++ b/src/app/+admin/admin-access-control/group-registry/group-form/members-list/members-list.component.ts @@ -140,11 +140,11 @@ export class MembersListComponent implements OnInit, OnDestroy { if (activeGroup != null) { const response = this.groupDataService.addMemberToGroup(activeGroup, ePerson); this.showNotifications('addMember', response, ePerson.name, activeGroup); - this.forceUpdateEPeople(activeGroup, ePerson); } else { this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure.noActiveGroup')); } }); + this.forceUpdateEPeople(this.groupBeingEdited, ePerson); } /** diff --git a/src/app/+admin/admin-access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts b/src/app/+admin/admin-access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts index b7092dd5e2..62927b74aa 100644 --- a/src/app/+admin/admin-access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts +++ b/src/app/+admin/admin-access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts @@ -130,7 +130,7 @@ export class SubgroupsListComponent implements OnInit, OnDestroy { map((listTotalGroups: PaginatedList) => listTotalGroups.page.filter((groupInList: Group) => groupInList.id === possibleSubgroup.id)), map((groups: Group[]) => groups.length > 0)) } - } else { + } else { return observableOf(false); } })); @@ -144,7 +144,7 @@ export class SubgroupsListComponent implements OnInit, OnDestroy { return this.groupDataService.getActiveGroup().pipe(take(1), mergeMap((activeGroup: Group) => { if (activeGroup != null && activeGroup.uuid === group.uuid) { - return observableOf(true); + return observableOf(true); } return observableOf(false); })); @@ -176,7 +176,6 @@ export class SubgroupsListComponent implements OnInit, OnDestroy { if (activeGroup.uuid !== subgroup.uuid) { const response = this.groupDataService.addSubGroupToGroup(activeGroup, subgroup); this.showNotifications('addSubgroup', response, subgroup.name, activeGroup); - this.forceUpdateGroups(activeGroup); } else { this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure.subgroupToAddIsActiveGroup')); } @@ -184,6 +183,7 @@ export class SubgroupsListComponent implements OnInit, OnDestroy { this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure.noActiveGroup')); } }); + this.forceUpdateGroups(this.groupBeingEdited); } /**