Merge branch 'dmp-refactoring' of https://code-repo.d4science.org/MaDgiK-CITE/argos into dmp-refactoring
This commit is contained in:
commit
c0aaa00eb5
|
@ -181,6 +181,7 @@ public class DescriptionServiceImpl implements DescriptionService {
|
||||||
|
|
||||||
data.setLabel(model.getLabel());
|
data.setLabel(model.getLabel());
|
||||||
data.setStatus(model.getStatus());
|
data.setStatus(model.getStatus());
|
||||||
|
if (model.getStatus() == DescriptionStatus.Finalized) data.setFinalizedAt(Instant.now());
|
||||||
data.setDescription(model.getDescription());
|
data.setDescription(model.getDescription());
|
||||||
data.setDescriptionTemplateId(model.getDescriptionTemplateId());
|
data.setDescriptionTemplateId(model.getDescriptionTemplateId());
|
||||||
data.setUpdatedAt(Instant.now());
|
data.setUpdatedAt(Instant.now());
|
||||||
|
@ -355,6 +356,7 @@ public class DescriptionServiceImpl implements DescriptionService {
|
||||||
}
|
}
|
||||||
|
|
||||||
data.setStatus(model.getStatus());
|
data.setStatus(model.getStatus());
|
||||||
|
if (model.getStatus() == DescriptionStatus.Finalized) data.setFinalizedAt(Instant.now());
|
||||||
data.setUpdatedAt(Instant.now());
|
data.setUpdatedAt(Instant.now());
|
||||||
this.entityManager.merge(data);
|
this.entityManager.merge(data);
|
||||||
|
|
||||||
|
|
|
@ -666,6 +666,10 @@ export class DescriptionEditorComponent extends BaseEditor<DescriptionEditorMode
|
||||||
this.formService.validateAllFormFields(this.formGroup);
|
this.formService.validateAllFormFields(this.formGroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
backToDmp() {
|
||||||
|
this.router.navigate(['/plans', 'edit', this.formGroup.get('dmpId').value]);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// Misc
|
// Misc
|
||||||
|
@ -977,9 +981,9 @@ export class DescriptionEditorComponent extends BaseEditor<DescriptionEditorMode
|
||||||
const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
|
const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
|
||||||
restoreFocus: false,
|
restoreFocus: false,
|
||||||
data: {
|
data: {
|
||||||
message: this.language.instant('GENERAL.CONFIRMATION-DIALOG.FINALIZE-ITEM'),
|
message: this.language.instant('DESCRIPTION-OVERVIEW.FINALIZE-DIALOG.TITLE'),
|
||||||
confirmButton: this.language.instant('QUICKWIZARD.SAVE-DIALOG.ACTIONS.AFFIRMATIVE'),
|
confirmButton: this.language.instant('DESCRIPTION-OVERVIEW.FINALIZE-DIALOG.CONFIRM'),
|
||||||
cancelButton: this.language.instant('QUICKWIZARD.SAVE-DIALOG.ACTIONS.NEGATIVE'),
|
cancelButton: this.language.instant('DESCRIPTION-OVERVIEW.FINALIZE-DIALOG.NEGATIVE'),
|
||||||
isDeleteConfirmation: false
|
isDeleteConfirmation: false
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -141,7 +141,7 @@
|
||||||
<p class="authors-role">{{ enumUtils.toDmpUserRoleString(dmpUser.role) }}</p>
|
<p class="authors-role">{{ enumUtils.toDmpUserRoleString(dmpUser.role) }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button *ngIf="canInviteDmpUsers && description.dmp?.status === dmpStatusEnum.Draft && dmpUser.role === dmpUserRoleEnum.Owner" (click)="removeUserFromDmp(dmpUser)" class="remove-btn">{{ 'DESCRIPTION-OVERVIEW.ACTIONS.REMOVE-AUTHOR' | translate}}</button>
|
<button *ngIf="canInviteDmpUsers && description.dmp?.status === dmpStatusEnum.Draft && dmpUser.role != dmpUserRoleEnum.Owner" (click)="removeUserFromDmp(dmpUser)" class="remove-btn">{{ 'DESCRIPTION-OVERVIEW.ACTIONS.REMOVE-AUTHOR' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="canInviteDmpUsers" class="row mt-3 mb-3 d-flex align-items-center justify-content-center">
|
<div *ngIf="canInviteDmpUsers" class="row mt-3 mb-3 d-flex align-items-center justify-content-center">
|
||||||
|
|
|
@ -34,6 +34,7 @@ import { nameof } from 'ts-simple-nameof';
|
||||||
import { DescriptionCopyDialogComponent } from '../description-copy-dialog/description-copy-dialog.component';
|
import { DescriptionCopyDialogComponent } from '../description-copy-dialog/description-copy-dialog.component';
|
||||||
import { ReferenceType } from '@app/core/model/reference-type/reference-type';
|
import { ReferenceType } from '@app/core/model/reference-type/reference-type';
|
||||||
import { AppPermission } from '@app/core/common/enum/permission.enum';
|
import { AppPermission } from '@app/core/common/enum/permission.enum';
|
||||||
|
import { DescriptionValidationOutput } from '@app/ui/dmp/dmp-finalize-dialog/dmp-finalize-dialog.component';
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
@ -391,22 +392,37 @@ export class DescriptionOverviewComponent extends BaseComponent implements OnIni
|
||||||
|
|
||||||
finalize(description: Description) {
|
finalize(description: Description) {
|
||||||
|
|
||||||
this.dialog.open(ConfirmationDialogComponent, {
|
this.descriptionService.validate([description.id]).pipe(takeUntil(this._destroyed)
|
||||||
data: {
|
).subscribe(result => {
|
||||||
message: this.language.instant('DESCRIPTION-OVERVIEW.FINALISE-POPUP.MESSAGE'),
|
if (result[0].result == DescriptionValidationOutput.Invalid){
|
||||||
confirmButton: this.language.instant('DESCRIPTION-OVERVIEW.FINALISE-POPUP.CONFIRM'),
|
|
||||||
cancelButton: this.language.instant('DESCRIPTION-OVERVIEW.FINALISE-POPUP.CANCEL'),
|
|
||||||
},
|
|
||||||
maxWidth: '30em'
|
|
||||||
})
|
|
||||||
.afterClosed()
|
|
||||||
.pipe(
|
|
||||||
filter(x => x),
|
|
||||||
takeUntil(this._destroyed)
|
|
||||||
)
|
|
||||||
.subscribe(_ => {
|
|
||||||
this.router.navigate(['descriptions/edit/' + description.id + '/finalize']);
|
this.router.navigate(['descriptions/edit/' + description.id + '/finalize']);
|
||||||
})
|
}else{
|
||||||
|
const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
|
||||||
|
restoreFocus: false,
|
||||||
|
data: {
|
||||||
|
message: this.language.instant('DESCRIPTION-OVERVIEW.FINALIZE-DIALOG.TITLE'),
|
||||||
|
confirmButton: this.language.instant('DESCRIPTION-OVERVIEW.FINALIZE-DIALOG.CONFIRM'),
|
||||||
|
cancelButton: this.language.instant('DESCRIPTION-OVERVIEW.FINALIZE-DIALOG.NEGATIVE'),
|
||||||
|
isDeleteConfirmation: false
|
||||||
|
}
|
||||||
|
});
|
||||||
|
dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => {
|
||||||
|
if (result) {
|
||||||
|
const descriptionStatusPersist: DescriptionStatusPersist = {
|
||||||
|
id: description.id,
|
||||||
|
status: DescriptionStatus.Finalized,
|
||||||
|
hash: description.hash
|
||||||
|
};
|
||||||
|
this.descriptionService.persistStatus(descriptionStatusPersist).pipe(takeUntil(this._destroyed))
|
||||||
|
.subscribe(data => {
|
||||||
|
this.reloadPage();
|
||||||
|
this.onUpdateCallbackSuccess()
|
||||||
|
}, (error: any) => {
|
||||||
|
this.onUpdateCallbackError(error)
|
||||||
|
});
|
||||||
|
}});
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
hasReversableStatus(description: Description): boolean {
|
hasReversableStatus(description: Description): boolean {
|
||||||
|
|
|
@ -1028,6 +1028,11 @@
|
||||||
"COPY": "Copy",
|
"COPY": "Copy",
|
||||||
"CANCEL": "Cancel"
|
"CANCEL": "Cancel"
|
||||||
},
|
},
|
||||||
|
"FINALIZE-DIALOG": {
|
||||||
|
"TITLE": "Finalize this item?",
|
||||||
|
"CONFIRM": "Confirm",
|
||||||
|
"NEGATIVE": "Cancel"
|
||||||
|
},
|
||||||
"UNDO-FINALIZATION-DIALOG": {
|
"UNDO-FINALIZATION-DIALOG": {
|
||||||
"TITLE": "Undo Finalization?",
|
"TITLE": "Undo Finalization?",
|
||||||
"CONFIRM": "Yes",
|
"CONFIRM": "Yes",
|
||||||
|
|
Loading…
Reference in New Issue