bug fixes

This commit is contained in:
Bernaldo Mihasi 2023-10-02 09:34:58 +03:00
parent d644b1dc91
commit 53b61853e1
4 changed files with 20 additions and 13 deletions

View File

@ -82,7 +82,7 @@
<mat-form-field> <mat-form-field>
<mat-label>System fields</mat-label> <mat-label>System fields</mat-label>
<mat-select multiple [disabled]="viewOnly" [value]="systemFieldListPerSection[sectionIndex]"> <mat-select multiple [disabled]="viewOnly" [value]="systemFieldListPerSection[sectionIndex]">
<mat-option *ngFor="let f of fieldList" [disabled]="systemFieldDisabled(f.type, sectionIndex)" [value]="f.type" (click)="selectedFieldType(f.label, f.type, sectionIndex)">{{f.label}}</mat-option> <mat-option *ngFor="let f of fieldList" [disabled]="systemFieldDisabled(f.type, sectionIndex)" [value]="f.type" (click)="selectedFieldType(f.type, sectionIndex)">{{f.label}}</mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="fieldsArray(sectionIndex).hasError('required')"> <mat-error *ngIf="fieldsArray(sectionIndex).hasError('required')">
{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error> {{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>

View File

@ -74,7 +74,6 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie
{label: 'License', type: SystemFieldType.LICENSE}, {label: 'License', type: SystemFieldType.LICENSE},
{label: 'Access Rights', type: SystemFieldType.ACCESS_RIGHTS} {label: 'Access Rights', type: SystemFieldType.ACCESS_RIGHTS}
]; ];
selectedSystemFields: string[] = [];
systemFieldListPerSection: Array<Array<any>> = new Array(); systemFieldListPerSection: Array<Array<any>> = new Array();
descriptionTemplatesPerSection: Array<Array<DatasetProfileModel>> = new Array<Array<DatasetProfileModel>>(); descriptionTemplatesPerSection: Array<Array<DatasetProfileModel>> = new Array<Array<DatasetProfileModel>>();
@ -195,9 +194,11 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie
section.ordinal = this.sectionsArray().length + 1; section.ordinal = this.sectionsArray().length + 1;
section.hasTemplates = false; section.hasTemplates = false;
this.sectionsArray().push(section.buildForm()); this.sectionsArray().push(section.buildForm());
this.systemFieldListPerSection.push(new Array());
} }
removeSection(sectionIndex: number): void { removeSection(sectionIndex: number): void {
this.systemFieldListPerSection.splice(sectionIndex, 1);
this.sectionsArray().removeAt(sectionIndex); this.sectionsArray().removeAt(sectionIndex);
} }
@ -245,14 +246,14 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie
return this.fieldList.find(f => f.type == type).label; return this.fieldList.find(f => f.type == type).label;
} }
selectedFieldType(systemField: string, type: SystemFieldType, sectionIndex: number): void { selectedFieldType(type: SystemFieldType, sectionIndex: number): void {
let index = this.selectedSystemFields.indexOf(systemField); let index = this.systemFieldListPerSection[sectionIndex].indexOf(type);
if (index == -1) { if (index == -1) {
this.selectedSystemFields.push(systemField); this.systemFieldListPerSection[sectionIndex].push(type);
this.addSystemField(sectionIndex, type); this.addSystemField(sectionIndex, type);
} }
else { else {
this.selectedSystemFields.splice(index, 1); this.systemFieldListPerSection[sectionIndex].splice(index, 1);
this.removeSystemField(sectionIndex, type); this.removeSystemField(sectionIndex, type);
} }
} }
@ -273,6 +274,9 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie
} }
removeSystemFieldWithIndex(sectionIndex: number, fieldIndex: number): void { removeSystemFieldWithIndex(sectionIndex: number, fieldIndex: number): void {
let type: SystemFieldType = this.fieldsArray(sectionIndex).at(fieldIndex).get('type').value;
let index = this.systemFieldListPerSection[sectionIndex].indexOf(type);
this.systemFieldListPerSection[sectionIndex] = this.systemFieldListPerSection[sectionIndex].filter(types => types != type);
this.fieldsArray(sectionIndex).removeAt(fieldIndex); this.fieldsArray(sectionIndex).removeAt(fieldIndex);
} }
@ -337,6 +341,9 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie
dropSections(event: CdkDragDrop<string[]>) { dropSections(event: CdkDragDrop<string[]>) {
moveItemInArray(this.sectionsArray().controls, event.previousIndex, event.currentIndex); moveItemInArray(this.sectionsArray().controls, event.previousIndex, event.currentIndex);
moveItemInArray(this.sectionsArray().value, event.previousIndex, event.currentIndex); moveItemInArray(this.sectionsArray().value, event.previousIndex, event.currentIndex);
this.sectionsArray().controls.forEach((section, index) => {
section.get('ordinal').setValue(index + 1);
});
} }
moveItemInFormArray(formArray: FormArray, fromIndex: number, toIndex: number): void { moveItemInFormArray(formArray: FormArray, fromIndex: number, toIndex: number): void {
@ -430,12 +437,12 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie
hasTitle(): boolean { hasTitle(): boolean {
const dmpBlueprint: DmpBlueprint = this.formGroup.value; const dmpBlueprint: DmpBlueprint = this.formGroup.value;
return dmpBlueprint.definition.sections.some(section => section.fields.some(field => field.category as unknown === 'SYSTEM' && field.type === SystemFieldType.TEXT)); return dmpBlueprint.definition.sections.some(section => section.fields.some(field => (field.category === FieldCategory.SYSTEM || field.category as unknown === 'SYSTEM') && field.type === SystemFieldType.TEXT));
} }
hasDescription(): boolean { hasDescription(): boolean {
const dmpBlueprint: DmpBlueprint = this.formGroup.value; const dmpBlueprint: DmpBlueprint = this.formGroup.value;
return dmpBlueprint.definition.sections.some(section => section.fields.some(field => field.category as unknown === 'SYSTEM' && field.type === SystemFieldType.HTML_TEXT)); return dmpBlueprint.definition.sections.some(section => section.fields.some(field => (field.category === FieldCategory.SYSTEM || field.category as unknown === 'SYSTEM') && field.type === SystemFieldType.HTML_TEXT));
} }
hasDescriptionTemplates(): boolean { hasDescriptionTemplates(): boolean {

View File

@ -473,7 +473,7 @@ export class DmpEditorBlueprintComponent extends CheckDeactivateBaseComponent im
} }
hasProfile(sectionIndex: number): boolean { hasProfile(sectionIndex: number): boolean {
return this.formGroup.get('profiles') && this.formGroup.get('profiles').value && this.formGroup.get('profiles').value.filter(x => x.data.dmpSectionIndex.includes(sectionIndex)).length > 0; return this.formGroup.get('profiles') && this.formGroup.get('profiles').value && this.formGroup.get('profiles').value.some(x => x.data.dmpSectionIndex.includes(sectionIndex));
} }
addDataset(dmpSectionIndex: number) { addDataset(dmpSectionIndex: number) {
@ -893,7 +893,7 @@ export class DmpEditorBlueprintComponent extends CheckDeactivateBaseComponent im
else { else {
section.descriptionTemplates.forEach(template => { section.descriptionTemplates.forEach(template => {
this.sectionTemplates[section.ordinal - 1].push({id: template.descriptionTemplateId, label: template.label, description: ""}) this.sectionTemplates[section.ordinal - 1].push({id: template.descriptionTemplateId, label: template.label, description: ""})
let found: DmpDatasetProfile = templates.find(dmpDatasetProfile => dmpDatasetProfile.id == template.descriptionTemplateId); let found: DmpDatasetProfile = templates.find(dmpDatasetProfile => dmpDatasetProfile.descriptionTemplateId == template.descriptionTemplateId);
if (found === undefined) { if (found === undefined) {
let data: DmpDatasetProfileSectionsFormModel= new DmpDatasetProfileSectionsFormModel(); let data: DmpDatasetProfileSectionsFormModel= new DmpDatasetProfileSectionsFormModel();
data.dmpSectionIndex.push(section.ordinal - 1); data.dmpSectionIndex.push(section.ordinal - 1);

View File

@ -30,14 +30,14 @@
<input class="hidden" #fileInput type="file" onClick="this.form.reset()" (change)="uploadFile($event)" accept="text/xml, application/json"> <input class="hidden" #fileInput type="file" onClick="this.form.reset()" (change)="uploadFile($event)" accept="text/xml, application/json">
</form> </form>
</div> </div>
<div class="upload-form col-sm-12 col-md-12"> <!-- <div class="upload-form col-sm-12 col-md-12">
<mat-form-field> <mat-form-field>
<mat-label>{{'DMP-EDITOR.FIELDS.DATASET-TEMPLATES' | translate}}</mat-label> <mat-label>{{'DMP-EDITOR.FIELDS.DATASET-TEMPLATES' | translate}}</mat-label>
<app-multiple-auto-complete [(ngModel)]="dmpProfiles" [configuration]="profilesAutoCompleteConfiguration" (optionActionClicked)="onPreviewTemplate($event)"> <app-multiple-auto-complete [(ngModel)]="dmpProfiles" [configuration]="profilesAutoCompleteConfiguration" (optionActionClicked)="onPreviewTemplate($event)">
<!-- <app-multiple-auto-complete required='true' [(ngModel)]="dmpProfiles" placeholder="{{'DMP-EDITOR.FIELDS.DATASET-TEMPLATES' | translate}}" [configuration]="profilesAutoCompleteConfiguration" (optionActionClicked)="onPreviewTemplate($event)"> --> <app-multiple-auto-complete required='true' [(ngModel)]="dmpProfiles" placeholder="{{'DMP-EDITOR.FIELDS.DATASET-TEMPLATES' | translate}}" [configuration]="profilesAutoCompleteConfiguration" (optionActionClicked)="onPreviewTemplate($event)">
</app-multiple-auto-complete> </app-multiple-auto-complete>
</mat-form-field> </mat-form-field>
</div> </div> -->
</div> </div>
<div class="row mt-3"> <div class="row mt-3">
<div class="col-auto ml-auto"> <div class="col-auto ml-auto">