Skip to content
Snippets Groups Projects
Commit 290faaef authored by Homada.Boumedane's avatar Homada.Boumedane
Browse files

fix(portal): deposit

Reserving a DOI on a deposit containing archive collections will make
the submit button disappear

Closes DLCM-1188
parent be1b8e45
No related branches found
No related tags found
No related merge requests found
......@@ -99,7 +99,6 @@ export class DepositDetailEditRoutable extends SharedAbstractDetailEditRoutable<
@Select(AppState.currentOrgUnitPersonRoleResId) currentPersonRoleObs: Observable<string[]>;
@Select(AppState.currentOrgUnitPerson) currentPersonObs: Observable<PersonRole>;
@Select(AppState.currentUserApplicationRolesResId) currentUserApplicationRoleObs: Observable<string[]>;
formPresentationalObs: Observable<DepositFormPresentational | undefined> = MemoizedUtil.select(this._store, DepositState, state => state.formPresentational);
@ViewChild("matTabGroup")
readonly matTabGroup: MatTabGroup;
......@@ -204,7 +203,7 @@ export class DepositDetailEditRoutable extends SharedAbstractDetailEditRoutable<
{
color: "primary",
icon: "edit",
displayCondition: current => !this.isEdit && /*(this.canDoAlterationActions || this.canDoValidatorActions) && */ !isNullOrUndefined(current) && (current.status === Deposit.StatusEnum.INVALIDATION || current.status === Deposit.StatusEnum.REJECTED || current.status === Deposit.StatusEnum.INERROR),
displayCondition: current => !this.isEdit && !isNullOrUndefined(current) && (current.status === Deposit.StatusEnum.INVALIDATION || current.status === Deposit.StatusEnum.REJECTED || current.status === Deposit.StatusEnum.INERROR),
callback: () => this.backToRevision(),
disableCondition: current => isNullOrUndefined(current),
labelToTranslate: TRANSLATE("deposit.backToEdit"),
......@@ -213,7 +212,7 @@ export class DepositDetailEditRoutable extends SharedAbstractDetailEditRoutable<
{
color: "primary",
icon: "library_books",
displayCondition: current => !this.isEdit && this.canDoAlterationActions && this.canReserveDoiAction,
displayCondition: current => this.displayReserveDOIButton(),
callback: () => this.reserveDOI(),
disableCondition: current => isNullOrUndefined(current),
labelToTranslate: TRANSLATE("deposit.reserveDOI"),
......@@ -223,7 +222,7 @@ export class DepositDetailEditRoutable extends SharedAbstractDetailEditRoutable<
{
color: "primary",
icon: "done_all",
displayCondition: current => !this.isEdit && this.canDoAlterationActions && isFalse(MemoizedUtil.isLoadingSnapshot(this._store, DepositState)) && this.canSubmitAction,
displayCondition: current => this.displaySubmitButton(),
callback: () => this.submit(),
disableCondition: current => isNullOrUndefined(current),
labelToTranslate: TRANSLATE("deposit.submit"),
......@@ -347,10 +346,12 @@ export class DepositDetailEditRoutable extends SharedAbstractDetailEditRoutable<
&& MemoizedUtil.selectSnapshot(this._store, DepositDataFileState, state => state.numberFilesExcluded === 0)
&& MemoizedUtil.selectSnapshot(this._store, DepositDataFileState, state => state.numberFilesNotReady > 0),
})).add(() => {
this.canSubmitAction = MemoizedUtil.selectSnapshot(this._store, DepositDataFileState, state => state.numberFilesInError === 0)
this.canSubmitAction =
(MemoizedUtil.selectSnapshot(this._store, DepositDataFileState, state => state.numberFilesInError === 0)
&& MemoizedUtil.selectSnapshot(this._store, DepositDataFileState, state => state.numberFiles > 0)
&& MemoizedUtil.selectSnapshot(this._store, DepositDataFileState, state => state.numberFilesExcluded === 0)
&& MemoizedUtil.selectSnapshot(this._store, DepositDataFileState, state => state.numberFilesIgnored === 0);
&& MemoizedUtil.selectSnapshot(this._store, DepositDataFileState, state => state.numberFilesIgnored === 0))
|| MemoizedUtil.selectSnapshot(this._store, DepositCollectionState, state => state.numberCollections > 0);
this.afterChangeInFiles = false;
});
}
......@@ -408,6 +409,14 @@ export class DepositDetailEditRoutable extends SharedAbstractDetailEditRoutable<
return !isNullOrUndefined(personRole) && !isNullOrUndefined(deposit) && personRole.orgUnitId === deposit.organizationalUnitId;
}
private displaySubmitButton(): boolean {
return !this.isEdit && this.canDoAlterationActions && isFalse(MemoizedUtil.isLoadingSnapshot(this._store, DepositState)) && this.canSubmitAction;
}
private displayReserveDOIButton(): boolean {
return !this.isEdit && this.canDoAlterationActions && this.canReserveDoiAction;
}
@Override()
edit(): void {
this._store.dispatch(new Navigate([RoutesEnum.deposit, this._orgUnitResId, DepositRoutesEnum.detail, this._resId, DepositRoutesEnum.metadata, DepositRoutesEnum.edit]));
......
......@@ -167,17 +167,12 @@ export class SecurityService {
if (isNullOrUndefined(applicationRoles)) {
return false;
}
if (applicationRoles.includes(UserApplicationRoleEnum.admin) || applicationRoles.includes(UserApplicationRoleEnum.root)) {
return true;
}
return false;
return applicationRoles.includes(UserApplicationRoleEnum.admin) || applicationRoles.includes(UserApplicationRoleEnum.root);
}
public isMemberOfOrgUnit(orgUnitId: string): boolean {
const listAuthorizedOrgUnitId = this._store.selectSnapshot(AppState.listAuthorizedOrganizationalUnitId);
if (listAuthorizedOrgUnitId.includes(orgUnitId)) {
return true;
}
return false;
return listAuthorizedOrgUnitId.includes(orgUnitId);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment