description template update

This commit is contained in:
Sofia Papacharalampous 2024-04-09 13:19:32 +03:00
parent ab010026a7
commit 5523ca2fe1
4 changed files with 18 additions and 8 deletions

View File

@ -262,8 +262,8 @@ public class DescriptionServiceImpl implements DescriptionService {
throw new MyValidationException("New version not found"); throw new MyValidationException("New version not found");
if (latestVersionDescriptionTemplates.size() > 1) if (latestVersionDescriptionTemplates.size() > 1)
throw new MyValidationException("Multiple template found"); throw new MyValidationException("Multiple template found");
if (!latestVersionDescriptionTemplates.getFirst().getVersion().equals(oldDescriptionTemplateEntity.getVersion())) if (latestVersionDescriptionTemplates.getFirst().getVersion().equals(oldDescriptionTemplateEntity.getVersion()))
throw new MyValidationException(this.errors.getDescriptionTemplateNewVersionConflict().getCode(), this.errors.getDescriptionTemplateNewVersionConflict().getMessage()); throw new MyValidationException("Description already upgraded");
data.setDescriptionTemplateId(latestVersionDescriptionTemplates.getFirst().getId()); data.setDescriptionTemplateId(latestVersionDescriptionTemplates.getFirst().getId());

View File

@ -9,6 +9,7 @@ import { DescriptionTemplateType } from "../description-template-type/descriptio
import { ReferenceType } from "../reference-type/reference-type"; import { ReferenceType } from "../reference-type/reference-type";
import { User } from "../user/user"; import { User } from "../user/user";
import { Reference } from "../reference/reference"; import { Reference } from "../reference/reference";
import { DescriptionTemplateVersionStatus } from "@app/core/common/enum/description-template-version-status";
export interface DescriptionTemplate extends BaseEntity { export interface DescriptionTemplate extends BaseEntity {
@ -21,6 +22,7 @@ export interface DescriptionTemplate extends BaseEntity {
status?: DescriptionTemplateStatus; status?: DescriptionTemplateStatus;
definition?: DescriptionTemplateDefinition; definition?: DescriptionTemplateDefinition;
users?: UserDescriptionTemplate[]; users?: UserDescriptionTemplate[];
versionStatus?: DescriptionTemplateVersionStatus;
} }
export interface UserDescriptionTemplate extends BaseEntity { export interface UserDescriptionTemplate extends BaseEntity {

View File

@ -12,6 +12,8 @@ import { DmpBlueprintService } from '@app/core/services/dmp/dmp-blueprint.servic
import { BaseComponent } from '@common/base/base.component'; import { BaseComponent } from '@common/base/base.component';
import { takeUntil } from 'rxjs/operators'; import { takeUntil } from 'rxjs/operators';
import { DeprecatedDescriptionTemplateDialog } from './dialog-description-template/deprecated-description-template-dialog.component'; import { DeprecatedDescriptionTemplateDialog } from './dialog-description-template/deprecated-description-template-dialog.component';
import { DescriptionTemplateVersionStatus } from '@app/core/common/enum/description-template-version-status';
import { DescriptionStatus } from '@app/core/common/enum/description-status';
@Component({ @Component({
selector: 'app-description-base-fields-editor-component', selector: 'app-description-base-fields-editor-component',
@ -41,17 +43,22 @@ export class DescriptionBaseFieldsEditorComponent extends BaseComponent {
} }
private loadDescriptionTemplates(): void { private loadDescriptionTemplates(): void {
const dmpDescriptionTemplates: DmpDescriptionTemplate[] = this.description.dmp.dmpDescriptionTemplates.filter(x => x.sectionId == this.description.dmpDescriptionTemplate.sectionId && x.isActive == IsActive.Active); const isPreviousVersion: boolean = this.description.descriptionTemplate.versionStatus === DescriptionTemplateVersionStatus.Previous;
const currentVersionsOfDescriptionTemplates = dmpDescriptionTemplates.map(x => x.currentDescriptionTemplate); if (isPreviousVersion === true) {
//Check if the used tempalte in included in the current list. If not add it. if (this.description.status === DescriptionStatus.Draft) {
if (this.description.descriptionTemplate && currentVersionsOfDescriptionTemplates.find(x => x.id == this.description?.descriptionTemplate?.id) == null) {
if (this.description.status === 0) {
this.openDeprecatedDescriptionTemplateDialog(); this.openDeprecatedDescriptionTemplateDialog();
} else { } else {
this.availableDescriptionTemplates.push(this.description.descriptionTemplate); this.availableDescriptionTemplates.push(this.description.descriptionTemplate);
} }
} else {
this.availableDescriptionTemplates.push(this.description.descriptionTemplate);
} }
this.availableDescriptionTemplates.push(...currentVersionsOfDescriptionTemplates);
// const dmpDescriptionTemplates: DmpDescriptionTemplate[] = this.description.dmp.dmpDescriptionTemplates.filter(x => x.sectionId == this.description.dmpDescriptionTemplate.sectionId && x.isActive == IsActive.Active);
// // const currentVersionsOfDescriptionTemplates = dmpDescriptionTemplates.map(x => x.currentDescriptionTemplate);
// //Check if the used tempalte in included in the current list. If not add it.
// this.availableDescriptionTemplates.push(...currentVersionsOfDescriptionTemplates);
} }
private openDeprecatedDescriptionTemplateDialog(): void { private openDeprecatedDescriptionTemplateDialog(): void {

View File

@ -95,6 +95,7 @@ export class DescriptionEditorResolver extends BaseEditorResolver {
(prefix ? prefix + '.' : '') + [nameof<DescriptionTemplate>(x => x.id)].join('.'), (prefix ? prefix + '.' : '') + [nameof<DescriptionTemplate>(x => x.id)].join('.'),
(prefix ? prefix + '.' : '') + [nameof<DescriptionTemplate>(x => x.label)].join('.'), (prefix ? prefix + '.' : '') + [nameof<DescriptionTemplate>(x => x.label)].join('.'),
(prefix ? prefix + '.' : '') + [nameof<DescriptionTemplate>(x => x.version)].join('.'), (prefix ? prefix + '.' : '') + [nameof<DescriptionTemplate>(x => x.version)].join('.'),
(prefix ? prefix + '.' : '') + [nameof<DescriptionTemplate>(x => x.versionStatus)].join('.'),
(prefix ? prefix + '.' : '') + [nameof<DescriptionTemplate>(x => x.groupId)].join('.'), (prefix ? prefix + '.' : '') + [nameof<DescriptionTemplate>(x => x.groupId)].join('.'),
(prefix ? prefix + '.' : '') + [nameof<DescriptionTemplate>(x => x.isActive)].join('.'), (prefix ? prefix + '.' : '') + [nameof<DescriptionTemplate>(x => x.isActive)].join('.'),
(prefix ? prefix + '.' : '') + [nameof<DescriptionTemplate>(x => x.definition), nameof<DescriptionTemplateDefinition>(x => x.pages), nameof<DescriptionTemplatePage>(x => x.id)].join('.'), (prefix ? prefix + '.' : '') + [nameof<DescriptionTemplate>(x => x.definition), nameof<DescriptionTemplateDefinition>(x => x.pages), nameof<DescriptionTemplatePage>(x => x.id)].join('.'),