mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-10 03:23:07 +00:00
69110: Failure notification on edit eperson
This commit is contained in:
@@ -222,6 +222,8 @@
|
|||||||
|
|
||||||
"admin.access-control.epeople.form.notification.created.failure.emailInUse": "Failed to create EPerson \"{{name}}\", email \"{{email}}\" already in use.",
|
"admin.access-control.epeople.form.notification.created.failure.emailInUse": "Failed to create EPerson \"{{name}}\", email \"{{email}}\" already in use.",
|
||||||
|
|
||||||
|
"admin.access-control.epeople.form.notification.edited.failure.emailInUse": "Failed to edit EPerson \"{{name}}\", email \"{{email}}\" already in use.",
|
||||||
|
|
||||||
"admin.access-control.epeople.form.notification.edited.success": "Successfully edited EPerson \"{{name}}\"",
|
"admin.access-control.epeople.form.notification.edited.success": "Successfully edited EPerson \"{{name}}\"",
|
||||||
|
|
||||||
"admin.access-control.epeople.form.notification.edited.failure": "Failed to edit EPerson \"{{name}}\"",
|
"admin.access-control.epeople.form.notification.edited.failure": "Failed to edit EPerson \"{{name}}\"",
|
||||||
|
@@ -244,13 +244,13 @@ export class EPersonFormComponent implements OnInit, OnDestroy {
|
|||||||
this.notificationsService.error(this.translateService.get(this.labelPrefix + 'notification.created.failure', { name: ePersonToCreate.name }));
|
this.notificationsService.error(this.translateService.get(this.labelPrefix + 'notification.created.failure', { name: ePersonToCreate.name }));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.showNotificationIfEmailInUse(ePersonToCreate);
|
this.showNotificationIfEmailInUse(ePersonToCreate, 'created');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Edits existing EPerson based on given values from form and old EPerson
|
* Edits existing EPerson based on given values from form and old EPerson
|
||||||
* @param ePerson
|
* @param ePerson ePerson to edit
|
||||||
* @param values
|
* @param values new ePerson values (of form)
|
||||||
*/
|
*/
|
||||||
editEPerson(ePerson: EPerson, values) {
|
editEPerson(ePerson: EPerson, values) {
|
||||||
const editedEperson = Object.assign(new EPerson(), {
|
const editedEperson = Object.assign(new EPerson(), {
|
||||||
@@ -280,24 +280,33 @@ export class EPersonFormComponent implements OnInit, OnDestroy {
|
|||||||
this.notificationsService.success(this.translateService.get(this.labelPrefix + 'notification.edited.success', { name: editedEperson.name }));
|
this.notificationsService.success(this.translateService.get(this.labelPrefix + 'notification.edited.success', { name: editedEperson.name }));
|
||||||
this.submitForm.emit(editedEperson);
|
this.submitForm.emit(editedEperson);
|
||||||
} else {
|
} else {
|
||||||
this.notificationsService.error(this.translateService.get(this.labelPrefix + 'notification.created.failure', { name: editedEperson.name }));
|
this.notificationsService.error(this.translateService.get(this.labelPrefix + 'notification.edited.failure', { name: editedEperson.name }));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.showNotificationIfEmailInUse(editedEperson);
|
|
||||||
|
if (values.email != null && values.email !== ePerson.email) {
|
||||||
|
this.showNotificationIfEmailInUse(editedEperson, 'edited');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private showNotificationIfEmailInUse(ePersonToCreate: EPerson) {
|
/**
|
||||||
|
* Checks for the given ePerson if there is already an ePerson in the system with that email
|
||||||
|
* and shows notification if this is the case
|
||||||
|
* @param ePerson ePerson values to check
|
||||||
|
* @param notificationSection whether in create or edit
|
||||||
|
*/
|
||||||
|
private showNotificationIfEmailInUse(ePerson: EPerson, notificationSection: string) {
|
||||||
// Relevant message for email in use
|
// Relevant message for email in use
|
||||||
// TODO: should be changed to email scope, but byEmail currently not in backend
|
// TODO: should be changed to email scope, but byEmail currently not in backend
|
||||||
this.subs.push(this.epersonService.searchByScope(null, ePersonToCreate.email, {
|
this.subs.push(this.epersonService.searchByScope(null, ePerson.email, {
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
elementsPerPage: 0
|
elementsPerPage: 0
|
||||||
}).pipe(getSucceededRemoteData(), getRemoteDataPayload())
|
}).pipe(getSucceededRemoteData(), getRemoteDataPayload())
|
||||||
.subscribe((list: PaginatedList<EPerson>) => {
|
.subscribe((list: PaginatedList<EPerson>) => {
|
||||||
if (list.totalElements > 0) {
|
if (list.totalElements > 0) {
|
||||||
this.notificationsService.error(this.translateService.get(this.labelPrefix + 'notification.created.failure.emailInUse', {
|
this.notificationsService.error(this.translateService.get(this.labelPrefix + 'notification.' + notificationSection + '.failure.emailInUse', {
|
||||||
name: ePersonToCreate.name,
|
name: ePerson.name,
|
||||||
email: ePersonToCreate.email
|
email: ePerson.email
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
Reference in New Issue
Block a user