1.fixed preview tab on finalize
2.fixed preview-tab field reference-type on description template editor
This commit is contained in:
parent
cb0d95fc3c
commit
e27babebfd
|
@ -57,7 +57,7 @@ export class DescriptionTemplateEditorCompositeFieldComponent extends BaseCompon
|
|||
previewFieldSet: DescriptionTemplateFieldSet = null;
|
||||
previewPropertiesFormGroup: UntypedFormGroup = null;
|
||||
descriptionTemplateFieldTypeEnum = DescriptionTemplateFieldType;
|
||||
private availableReferenceTypes: ReferenceType[] = [];
|
||||
@Input() availableReferenceTypes: ReferenceType[] = [];
|
||||
|
||||
constructor(
|
||||
private dialog: MatDialog,
|
||||
|
@ -87,9 +87,6 @@ export class DescriptionTemplateEditorCompositeFieldComponent extends BaseCompon
|
|||
this.showExtendedDescription = !!this.form.get('extendedDescription').value;
|
||||
this.showAdditionalInfo = !!this.form.get('additionalInformation').value;
|
||||
|
||||
// TODO: check network
|
||||
this.referenceTypeService.query(ReferenceTypeService.DefaultReferenceTypeLookup()).subscribe(referenceTypes => this.availableReferenceTypes = referenceTypes.items as ReferenceType[]);
|
||||
|
||||
this.form.valueChanges.pipe(takeUntil(this._destroyed)).subscribe(changes => {
|
||||
this.previewDirty = true;
|
||||
this.generatePreviewForm();
|
||||
|
|
|
@ -4,6 +4,7 @@ import { DescriptionTemplateFieldType } from '@app/core/common/enum/description-
|
|||
import { DescriptionTemplate, DescriptionTemplateBaseFieldData, DescriptionTemplateDefinition, DescriptionTemplateField, DescriptionTemplateFieldSet, DescriptionTemplateMultiplicity, DescriptionTemplatePage, DescriptionTemplateReferenceTypeData, DescriptionTemplateRule, DescriptionTemplateSection } from '@app/core/model/description-template/description-template';
|
||||
import { DescriptionTemplateBaseFieldDataPersist, DescriptionTemplateDefinitionPersist, DescriptionTemplateFieldPersist, DescriptionTemplateFieldSetPersist, DescriptionTemplateMultiplicityPersist, DescriptionTemplatePagePersist, DescriptionTemplatePersist, DescriptionTemplateReferenceTypeFieldPersist, DescriptionTemplateRulePersist, DescriptionTemplateSectionPersist } from '@app/core/model/description-template/description-template-persist';
|
||||
import { Description } from '@app/core/model/description/description';
|
||||
import { ReferenceType } from '@app/core/model/reference-type/reference-type';
|
||||
import { DescriptionEditorModel } from '@app/ui/description/editor/description-editor.model';
|
||||
import { VisibilityRulesService } from '@app/ui/description/editor/description-form/visibility-rules/visibility-rules.service';
|
||||
|
||||
|
@ -19,6 +20,8 @@ export class FinalPreviewComponent implements OnInit {
|
|||
|
||||
|
||||
@Input() descriptionTemplatePersist: DescriptionTemplatePersist;
|
||||
@Input() availableReferenceTypes: ReferenceType[] = [];
|
||||
|
||||
descriptionTemplate: DescriptionTemplate;
|
||||
|
||||
previewPropertiesFormGroup: UntypedFormGroup;
|
||||
|
@ -132,8 +135,10 @@ export class FinalPreviewComponent implements OnInit {
|
|||
|
||||
if (persist.data.fieldType === DescriptionTemplateFieldType.REFERENCE_TYPES) {
|
||||
convertedField.data = persist.data;
|
||||
let selectedReferenceType = this.availableReferenceTypes.find(referenceType => referenceType.id == (persist.data as DescriptionTemplateReferenceTypeFieldPersist).referenceTypeId);
|
||||
(convertedField.data as DescriptionTemplateReferenceTypeData).referenceType = {
|
||||
id: (persist.data as DescriptionTemplateReferenceTypeFieldPersist).referenceTypeId
|
||||
id: (persist.data as DescriptionTemplateReferenceTypeFieldPersist).referenceTypeId,
|
||||
name: selectedReferenceType?.name,
|
||||
};
|
||||
} else {
|
||||
convertedField.data = persist.data;
|
||||
|
|
|
@ -64,6 +64,7 @@
|
|||
</button>
|
||||
</mat-card-header>
|
||||
<app-description-template-editor-composite-field-component [reorderingMode]="reorderingMode" [form]="fieldset"
|
||||
[availableReferenceTypes]="availableReferenceTypes"
|
||||
[viewOnly]="viewOnly" [numbering]="numbering + '.'+ (i+1)"
|
||||
[hasFocus]="fieldset.get('id').value === selectedFieldSetId"
|
||||
[datasetProfileId]="datasetProfileId"
|
||||
|
|
|
@ -9,6 +9,7 @@ import { GENERAL_ANIMATIONS } from '../../animations/animations';
|
|||
import { DescriptionTemplateFieldEditorModel, DescriptionTemplateFieldSetEditorModel } from '../../description-template-editor.model';
|
||||
import { ToCEntry, ToCEntryType } from '../../table-of-contents/description-template-table-of-contents-entry';
|
||||
import { ValidationErrorModel } from '@common/forms/validation/error-model/validation-error-model';
|
||||
import { ReferenceType } from '@app/core/model/reference-type/reference-type';
|
||||
|
||||
@Component({
|
||||
selector: 'app-description-template-editor-section-fieldset-component',
|
||||
|
@ -31,6 +32,7 @@ export class DescriptionTemplateEditorSectionFieldSetComponent implements OnInit
|
|||
@Input() validationErrorModel: ValidationErrorModel;
|
||||
@Input() validationRootPath: string;
|
||||
|
||||
@Input() availableReferenceTypes: ReferenceType[] = [];
|
||||
|
||||
idprefix = "id";
|
||||
reorderingMode = false;
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<mat-horizontal-stepper [linear]="true" #stepper class="stepper" (selectionChange)="onMatStepperSelectionChange($event)" style="padding-left: 8px; padding-right: 15px;">
|
||||
<mat-horizontal-stepper [linear]="!isFinalized" #stepper class="stepper" (selectionChange)="onMatStepperSelectionChange($event)" style="padding-left: 8px; padding-right: 15px;">
|
||||
|
||||
<!-- IMPORTANT TO BE !INVALID (WHEN THE TEMPLATE IS FINALIZED THE CONTORLS ARE DISABLED) -->
|
||||
<!-- <ng-template matStepLabel>{{'DESCRIPTION-TEMPLATE-EDITOR.STEPS.GENERAL-INFO.TITLE' | translate}}
|
||||
|
@ -224,6 +224,7 @@
|
|||
[datasetProfileId]="datasetProfileId"
|
||||
[validationErrorModel]="editorModel.validationErrorModel"
|
||||
[validationRootPath]="selectedTocEntry.validationRootPath"
|
||||
[availableReferenceTypes]="availableReferenceTypes"
|
||||
(addNewFieldSet)="addNewEntry({childType: tocEntryEnumValues.FieldSet,parent: {formGroup: $event}})" (removeFieldSet)="onRemoveEntry(_findTocEntryById($event, toCEntries))" (cloneFieldSet)="cloneFieldSet($event, selectedTocEntry.validationRootPath)" (selectedEntryId)="displayItem(_findTocEntryById($event, toCEntries))" (dataNeedsRefresh)="onDataNeedsRefresh()"
|
||||
>
|
||||
|
||||
|
@ -254,7 +255,6 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -265,7 +265,7 @@
|
|||
<div class="col-9">
|
||||
<div class="col">
|
||||
<div class="col-12">
|
||||
<app-final-preview-component [descriptionTemplatePersist]="finalPreviewDescriptionTemplatePersist">
|
||||
<app-final-preview-component [descriptionTemplatePersist]="finalPreviewDescriptionTemplatePersist" [availableReferenceTypes]="availableReferenceTypes">
|
||||
|
||||
</app-final-preview-component>
|
||||
</div>
|
||||
|
|
|
@ -45,6 +45,8 @@ import { DescriptionTemplateEditorService } from './description-template-editor.
|
|||
import { NewEntryType, ToCEntry, ToCEntryType } from './table-of-contents/description-template-table-of-contents-entry';
|
||||
import { RouterUtilsService } from '@app/core/services/router/router-utils.service';
|
||||
import { DescriptionFormService } from '@app/ui/description/editor/description-form/components/services/description-form.service';
|
||||
import { ReferenceType } from '@app/core/model/reference-type/reference-type';
|
||||
import { ReferenceTypeService } from '@app/core/services/reference-type/reference-type.service';
|
||||
|
||||
|
||||
@Component({
|
||||
|
@ -60,6 +62,7 @@ export class DescriptionTemplateEditorComponent extends BaseEditor<DescriptionTe
|
|||
|
||||
isNew = true;
|
||||
isDeleted = false;
|
||||
isFinalized = false;
|
||||
formGroup: UntypedFormGroup = null;
|
||||
item: DescriptionTemplate;
|
||||
showInactiveDetails = false;
|
||||
|
@ -85,7 +88,7 @@ export class DescriptionTemplateEditorComponent extends BaseEditor<DescriptionTe
|
|||
previewFieldSet: DescriptionTemplate = null;
|
||||
previewPropertiesFormGroup: UntypedFormGroup = null;
|
||||
finalPreviewDescriptionTemplatePersist: DescriptionTemplatePersist;
|
||||
|
||||
availableReferenceTypes: ReferenceType[] = [];
|
||||
|
||||
get generalInfoStepperLabel(): string {
|
||||
return '1 ' + this.language.instant('DESCRIPTION-TEMPLATE-EDITOR.STEPS.GENERAL-INFO.TITLE');
|
||||
|
@ -96,7 +99,8 @@ export class DescriptionTemplateEditorComponent extends BaseEditor<DescriptionTe
|
|||
}
|
||||
|
||||
get previewLabel(): string {
|
||||
return '3 ' + this.language.instant('DESCRIPTION-TEMPLATE-EDITOR.ACTIONS.PREVIEW-AND-FINALIZE');
|
||||
const label = this.isFinalized ? this.language.instant('DESCRIPTION-TEMPLATE-EDITOR.ACTIONS.PREVIEW') : this.language.instant('DESCRIPTION-TEMPLATE-EDITOR.ACTIONS.PREVIEW-AND-FINALIZE');
|
||||
return '3 ' + label;
|
||||
}
|
||||
|
||||
protected get canDelete(): boolean {
|
||||
|
@ -111,7 +115,6 @@ export class DescriptionTemplateEditorComponent extends BaseEditor<DescriptionTe
|
|||
return !this.isDeleted && this.hasPermission(this.authService.permissionEnum.EditDescriptionTemplate);
|
||||
}
|
||||
|
||||
|
||||
private hasPermission(permission: AppPermission): boolean {
|
||||
return this.authService.hasPermission(permission) || this.editorModel?.permissions?.includes(permission);
|
||||
}
|
||||
|
@ -141,7 +144,8 @@ export class DescriptionTemplateEditorComponent extends BaseEditor<DescriptionTe
|
|||
public userService: UserService,
|
||||
public titleService: Title,
|
||||
private analyticsService: AnalyticsService,
|
||||
private routerUtils: RouterUtilsService
|
||||
private routerUtils: RouterUtilsService,
|
||||
private referenceTypeService: ReferenceTypeService,
|
||||
) {
|
||||
const descriptionLabel: string = route.snapshot.data['entity']?.label;
|
||||
if (descriptionLabel) {
|
||||
|
@ -157,7 +161,7 @@ export class DescriptionTemplateEditorComponent extends BaseEditor<DescriptionTe
|
|||
super.ngOnInit();
|
||||
this.singleAutocompleteDescriptionTemplateTypeConfiguration = this.descriptionTemplateTypeService.getSingleAutocompleteConfiguration([DescriptionTemplateTypeStatus.Finalized]);
|
||||
this.initModelFlags(this.route.snapshot.data['action']);
|
||||
}
|
||||
this.referenceTypeService.query(ReferenceTypeService.DefaultReferenceTypeLookup()).subscribe(referenceTypes => this.availableReferenceTypes = referenceTypes.items as ReferenceType[]); }
|
||||
|
||||
private initModelFlags(action: string): void {
|
||||
if (action == 'clone') {
|
||||
|
@ -209,7 +213,8 @@ export class DescriptionTemplateEditorComponent extends BaseEditor<DescriptionTe
|
|||
buildForm() {
|
||||
this.formGroup = this.editorModel.buildForm(null, this.isDeleted || !this.authService.hasPermission(AppPermission.EditDescriptionTemplate));
|
||||
this.descriptionTemplateEditorService.setValidationErrorModel(this.editorModel.validationErrorModel);
|
||||
if (this.editorModel.status == DescriptionTemplateStatus.Finalized || this.isDeleted) {
|
||||
this.isFinalized = this.editorModel.status == DescriptionTemplateStatus.Finalized;
|
||||
if (this.isFinalized || this.isDeleted) {
|
||||
this.formGroup.disable();
|
||||
}
|
||||
const action = this.route.snapshot.data['action'];
|
||||
|
@ -397,6 +402,8 @@ export class DescriptionTemplateEditorComponent extends BaseEditor<DescriptionTe
|
|||
}
|
||||
|
||||
isStepUnlocked(stepIndex: number): boolean {
|
||||
if (this.isFinalized) return true;
|
||||
|
||||
if (stepIndex === 0) return true;
|
||||
if (stepIndex < 0) return false;
|
||||
//if previous step is valid then unlock
|
||||
|
|
|
@ -627,6 +627,7 @@
|
|||
"UPDATE-AND-CONTINUE": "Update & Continue",
|
||||
"UPDATE-AND-CLOSE": "Update & Close",
|
||||
"PREVIEW-AND-FINALIZE": "Preview & Finalize",
|
||||
"PREVIEW": "Preview",
|
||||
"BACK-TO-TOP": "Back to top",
|
||||
"CLOSE": "Close",
|
||||
"PREVIOUS": "Previous",
|
||||
|
|
Loading…
Reference in New Issue