change pop up description finalize dialog

This commit is contained in:
amentis 2024-03-15 15:48:32 +02:00
parent 65d62b2849
commit f71bc64ce5
4 changed files with 46 additions and 19 deletions

View File

@ -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);

View File

@ -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
} }
}); });

View File

@ -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'), this.router.navigate(['descriptions/edit/' + description.id + '/finalize']);
cancelButton: this.language.instant('DESCRIPTION-OVERVIEW.FINALISE-POPUP.CANCEL'), }else{
}, const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
maxWidth: '30em' restoreFocus: false,
}) data: {
.afterClosed() message: this.language.instant('DESCRIPTION-OVERVIEW.FINALIZE-DIALOG.TITLE'),
.pipe( confirmButton: this.language.instant('DESCRIPTION-OVERVIEW.FINALIZE-DIALOG.CONFIRM'),
filter(x => x), cancelButton: this.language.instant('DESCRIPTION-OVERVIEW.FINALIZE-DIALOG.NEGATIVE'),
takeUntil(this._destroyed) isDeleteConfirmation: false
) }
.subscribe(_ => { });
this.router.navigate(['descriptions/edit/' + description.id + '/finalize']); 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 {

View File

@ -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",