312 lines
13 KiB
HTML
312 lines
13 KiB
HTML
<!-- View Only : {{viewOnly}} -->
|
|
|
|
<div class="main-content">
|
|
<div class="container-fluid dataset-profile-editor" *ngIf="form" [formGroup]='form'>
|
|
<h3 *ngIf="isNew && !isClone && !isNewVersion">{{'DATASET-PROFILE-EDITOR.TITLE.NEW-PROFILE' | translate}}</h3>
|
|
<h3 *ngIf="isNew && isClone">
|
|
<span *ngIf="isClone">{{'DATASET-PROFILE-EDITOR.TITLE.NEW-PROFILE-CLONE' | translate}}</span>
|
|
{{form.get('label').value}}
|
|
</h3>
|
|
<h3 *ngIf="isNew && isNewVersion">
|
|
<span *ngIf="isNewVersion">{{'DATASET-PROFILE-EDITOR.TITLE.NEW-PROFILE-VERSION' | translate}}</span>
|
|
{{form.get('label').value}}
|
|
</h3>
|
|
|
|
<h3 *ngIf="!isNew">{{form.get('label').value}}</h3>
|
|
|
|
<div class="d-flex justify-content-end pb-3" *ngIf="form.get('status').value==1">
|
|
<button mat-raised-button color="primary" (click)="downloadXML();" type="button">{{
|
|
'DATASET-WIZARD.ACTIONS.DOWNLOAD-XML' | translate }}</button>
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Total steps: {{stepper.steps.length}} -->
|
|
|
|
<!-- Steps Navigation -->
|
|
<div class="row" style="padding: 2em;" *ngIf="steps">
|
|
|
|
<div class="col-7 bg-white" style="overflow: hidden; padding: 0px" id="progress-container">
|
|
<div id="progress" [ngStyle]="progressStyle"></div>
|
|
<div class="row p-1">
|
|
<div class="col text-center align-self-center" *ngFor="let step of steps; index as idx">
|
|
<span (click)="stepper.selectedIndex=idx" style="cursor: pointer">
|
|
{{step.label}}
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col d-flex justify-content-end">
|
|
<button mat-button class="navigate-btn" (click)="stepper.previous()">
|
|
Previous
|
|
</button>
|
|
<button mat-button class="navigate-btn ml-2" (click)="stepper.next()">
|
|
Next
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<mat-horizontal-stepper [linear]="true" #stepper class="stepper" (selectionChange)="onMatStepperSelectionChange($event)">
|
|
|
|
<mat-step [label]="'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.TITLE' | translate">
|
|
<!-- <ng-template matStepLabel>{{'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.TITLE' | translate}}
|
|
</ng-template> -->
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="heading">1.1 {{'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.DATASET-TEMPLATE-NAME'| translate}} *</div>
|
|
<div class="hint">{{'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.DATASET-TEMPLATE-NAME-HINT'| translate}}</div>
|
|
<mat-form-field class="full-width">
|
|
<input matInput formControlName="label"
|
|
placeholder="{{'DATASET-PROFILE-EDITOR.FIELDS.DATASET-TITLE' | translate}}" required>
|
|
<mat-error *ngIf="form.get('label').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' |
|
|
translate}}
|
|
</mat-error>
|
|
</mat-form-field>
|
|
</div>
|
|
<div class="col-12">
|
|
<div class="heading">1.2 {{'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.DATASET-TEMPLATE-DESCRIPTION'| translate}} *</div>
|
|
<!-- <div class="hint">{{'DMP-EDITOR.MAIN-INFO.HINT' | translate}}</div> -->
|
|
<div class="hint">{{'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.DATASET-TEMPLATE-DESCRIPTION-HINT'| translate}}</div>
|
|
<mat-form-field class="full-width">
|
|
<textarea matInput formControlName="description" cdkTextareaAutosize cdkAutosizeMinRows="3" cdkAutosizeMaxRows="5"
|
|
placeholder="{{'DATASET-PROFILE-EDITOR.FIELDS.DATASET-DESCRIPTION' | translate}}" required>
|
|
</textarea>
|
|
<mat-error *ngIf="form.get('description').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED'
|
|
| translate}}
|
|
</mat-error>
|
|
</mat-form-field>
|
|
</div>
|
|
|
|
<div class="col-12">
|
|
<!-- <div class="heading">1.3 {{'DMP-EDITOR.FIELDS.LANGUAGE' | translate}}</div> -->
|
|
<div class="heading">1.3 {{'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.DATASET-TEMPLATE-LANGUAGE'| translate}}</div>
|
|
<mat-form-field class="full-width">
|
|
<!-- <input matInput formControlName="description" placeholder="{{'DATASET-PROFILE-EDITOR.FIELDS.DATASET-DESCRIPTION' | translate}}" required> -->
|
|
<mat-select formControlName="language">
|
|
<mat-option *ngFor="let lang of getLanguageInfos()" [value]="lang.code">
|
|
{{ lang.name }}
|
|
</mat-option>
|
|
</mat-select>
|
|
<mat-error *ngIf="form.get('language').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' |
|
|
translate}}
|
|
</mat-error>
|
|
</mat-form-field>
|
|
</div>
|
|
|
|
<!-- <div class="col-12">
|
|
<button mat-button class="full-width" (click)="addPage()"
|
|
[disabled]="viewOnly">{{'DATASET-PROFILE-EDITOR.ACTIONS.NEXT' | translate}}</button>
|
|
</div> -->
|
|
</div>
|
|
</mat-step>
|
|
<!-- <mat-step>
|
|
<ng-template matStepLabel>{{'DATASET-PROFILE-EDITOR.STEPS.PAGES.TITLE' | translate}}</ng-template>
|
|
<div class="row">
|
|
<app-dataset-profile-editor-page-component class="col-12" [form]="form.get('pages')"
|
|
[viewOnly]="viewOnly"></app-dataset-profile-editor-page-component>
|
|
<div class="col-12">
|
|
<button mat-button class="full-width" (click)="addPage()"
|
|
[disabled]="viewOnly">{{'DATASET-PROFILE-EDITOR.ACTIONS.ADD-PAGE' | translate}}</button>
|
|
</div>
|
|
</div>
|
|
</mat-step> -->
|
|
<mat-step [label]="'DATASET-PROFILE-EDITOR.STEPS.FORM.TITLE' | translate">
|
|
<!-- <ng-template matStepLabel>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.TITLE' | translate}}</ng-template> -->
|
|
<div class="row">
|
|
|
|
<!-- TABLE -->
|
|
<div class="col-3">
|
|
<dataset-profile-table-of-contents class="toc-pane-container"
|
|
[links]="toCEntries"
|
|
(stepFound)="onStepFound($event)"
|
|
(currentLinks)="getLinks($event)"
|
|
(itemClick)="displayItem($event)"
|
|
(newEntry)="addNewEntry($event)"
|
|
(createEntry) = "addNewEntry($event)"
|
|
(removeEntry)="onRemoveEntry($event)"
|
|
[itemSelected]="selectedTocEntry"
|
|
[viewOnly]="viewOnly"
|
|
(dataNeedsRefresh)="onDataNeedsRefresh()">
|
|
</dataset-profile-table-of-contents>
|
|
</div>
|
|
|
|
|
|
<!-- DISPLAYER -->
|
|
<div class="col">
|
|
<div class="row content-displayer" *ngIf="selectedTocEntry">
|
|
|
|
<!-- PAGE INFO -->
|
|
<div class="col-12" *ngIf="selectedTocEntry.type === tocEntryEnumValues.Page">
|
|
<form [formGroup]="selectedTocEntry.form">
|
|
<div class="row">
|
|
<!-- PAGE NAME -->
|
|
<div class="col">
|
|
<div class="heading">{{'DATASET-PROFILE-EDITOR.STEPS.PAGE-INFO.PAGE-NAME' | translate}} *</div>
|
|
<div class="hint">{{'DATASET-PROFILE-EDITOR.STEPS.PAGE-INFO.PAGE-NAME-HINT' | translate}}</div>
|
|
<mat-form-field>
|
|
<input type="text" matInput formControlName="title">
|
|
</mat-form-field>
|
|
</div>
|
|
|
|
<!-- PAGE ID -->
|
|
<!-- <div class="col">
|
|
<div class="heading">Page id *</div>
|
|
<mat-form-field>
|
|
<input type="text" matInput formControlName="id">
|
|
</mat-form-field>
|
|
</div> -->
|
|
</div>
|
|
<!-- <div class="row">
|
|
<div class="col">
|
|
<div class="heading">Ordinal *</div>
|
|
<mat-form-field>
|
|
<input type="text" matInput formControlName="ordinal">
|
|
</mat-form-field>
|
|
</div>
|
|
</div> -->
|
|
</form>
|
|
</div>
|
|
|
|
<!-- SECTION INFO -->
|
|
<app-dataset-profile-editor-section-component class="col-12"
|
|
*ngIf="selectedTocEntry.type === tocEntryEnumValues.Section"
|
|
[form]="selectedTocEntry.form" [indexPath]="'tbd'" [viewOnly]="viewOnly"
|
|
(fieldsetAdded)="displayItem(_findTocEntryById($event, getTocEntries())); onDataNeedsRefresh();">
|
|
</app-dataset-profile-editor-section-component>
|
|
|
|
<!-- FIELDSET INFO -->
|
|
<div class="col-12" *ngIf="selectedTocEntry.type === tocEntryEnumValues.FieldSet">
|
|
<!-- <h4 style="font-weight: bold" class="col-12">
|
|
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.SECTION.FIELDS.FIELDS-TITLE' |
|
|
translate}}</h4> -->
|
|
<!-- <div class="col-12"> -->
|
|
|
|
<!-- <mat-card-title class="col">{{i + 1}}. {{getFieldTile(fieldControl, i)}}
|
|
</mat-card-title> -->
|
|
<!-- <button mat-icon-button type="button" class="deleteBtn col-auto"
|
|
(click)="deleteFieldSet(selectedTocEntry.form, i);" [disabled]="viewOnly">
|
|
<mat-icon>delete</mat-icon>
|
|
</button> -->
|
|
|
|
<app-dataset-profile-editor-composite-field-component class="p-0"
|
|
[form]="selectedTocEntry.form" [indexPath]="'indexPath' + 'cf' + 'i'"
|
|
[viewOnly]="viewOnly"
|
|
[numbering]="selectedTocEntry.numbering">
|
|
</app-dataset-profile-editor-composite-field-component>
|
|
<!-- </div> -->
|
|
|
|
<!-- <div class="col-12"><button mat-button class="full-width" (click)="addField()"
|
|
[disabled]="viewOnly">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.SECTION.ACTIONS.ADD-FIELD'
|
|
| translate}}</button></div> -->
|
|
</div>
|
|
</div>
|
|
|
|
<div class="content-displayer row justify-content-center" *ngIf="!numOfPages">
|
|
<div class="col-auto align-self-center text-center">
|
|
{{'DATASET-PROFILE-EDITOR.STEPS.PAGE-INFO.ACTIONS.NOTHING-HERE-HINT'| translate}}
|
|
<br>
|
|
{{'DATASET-PROFILE-EDITOR.STEPS.PAGE-INFO.ACTIONS.START-CREATING-PAGE-START'| translate}}
|
|
|
|
<strong style="cursor: pointer;" (click)="addNewEntry({childType: tocEntryEnumValues.Page,parent: null})">
|
|
<em>
|
|
{{'DATASET-PROFILE-EDITOR.STEPS.PAGE-INFO.ACTIONS.START-CREATING-PAGE-END'| translate}}
|
|
</em>
|
|
<mat-icon color="accent">add</mat-icon>
|
|
</strong>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!--
|
|
<mat-accordion class="col-12" [multi]="true">
|
|
<mat-expansion-panel *ngFor="let section of dataModel.sections; let i=index;" #panel>
|
|
<mat-expansion-panel-header>
|
|
<mat-panel-title class="toc-page-header">{{i + 1}}. {{form.get('sections').get(''+i).get('title').value}}
|
|
</mat-panel-title>
|
|
<button mat-icon-button type="button" class="deleteBtn" (click)="DeleteSection(i);"
|
|
[disabled]="viewOnly">
|
|
<mat-icon>delete</mat-icon>
|
|
</button>
|
|
</mat-expansion-panel-header>
|
|
<div id="{{'s' + i}}" class="row" *ngIf="panel.expanded">
|
|
<app-dataset-profile-editor-section-component class="col-12"
|
|
[form]="form.get('sections').get(''+i)" [dataModel]="section"
|
|
[indexPath]="'s' + i" [viewOnly]="viewOnly">
|
|
</app-dataset-profile-editor-section-component>
|
|
</div>
|
|
</mat-expansion-panel>
|
|
</mat-accordion> -->
|
|
</div>
|
|
|
|
<!-- <div class="col-12">
|
|
<button mat-button (click)="addSection()" class="full-width"
|
|
[disabled]="viewOnly">{{'DATASET-PROFILE-EDITOR.ACTIONS.ADD-SECTION' | translate}}</button>
|
|
</div> -->
|
|
</div>
|
|
</mat-step>
|
|
<mat-step label="Preview and Finalize">
|
|
Preview and finalize
|
|
<!-- <button (click)="generatePreviewForm()">foo</button> -->
|
|
<ng-container *ngIf="form.get('sections')?.length">
|
|
<app-dataset-description [form]="previewForm" [visibilityRules]="visibilityRules" *ngIf="previewForm">
|
|
|
|
</app-dataset-description>
|
|
</ng-container>
|
|
</mat-step>
|
|
|
|
</mat-horizontal-stepper>
|
|
|
|
|
|
|
|
<ng-container *ngIf="true">
|
|
|
|
<div class="d-flex">
|
|
<!-- SAVE BUTTON -->
|
|
<div class="col-6 d-flex" *ngIf="!viewOnly">
|
|
<div class="row mt-4">
|
|
<button mat-raised-button class="col-auto mr-2" color="primary" type="button col-auto"
|
|
(click)='checkFormValidation()'
|
|
[disabled]="form.valid">{{'DATASET-PROFILE-EDITOR.ACTIONS.VALIDATE' | translate}}</button>
|
|
<button mat-raised-button class="col-auto mr-2" color="primary" type="button col-auto"
|
|
(click)='onSubmit()' [disabled]="!form.valid">{{'DATASET-PROFILE-EDITOR.ACTIONS.SAVE' |
|
|
translate}}</button>
|
|
<button mat-raised-button class="col-auto" color="primary" type="button col-auto"
|
|
(click)='finalize()' [disabled]="!form.valid">{{'DATASET-PROFILE-EDITOR.ACTIONS.FINALIZE' |
|
|
translate}}</button>
|
|
</div>
|
|
</div>
|
|
<!-- SAVE BUTTON WHEN FINALIZED-->
|
|
<div class="col-6 d-flex" *ngIf="showUpdateButton()">
|
|
<div class="row mt-4">
|
|
<button mat-raised-button class="col-auto mr-2" color="primary" type="button col-auto"
|
|
(click)='checkFormValidation()'
|
|
[disabled]="form.valid">{{'DATASET-PROFILE-EDITOR.ACTIONS.VALIDATE' | translate}}</button>
|
|
<button mat-raised-button class="col-auto mr-2" color="primary" type="button col-auto"
|
|
(click)='updateFinalized()' [disabled]="!form.valid">{{'DATASET-PROFILE-EDITOR.ACTIONS.UPDATE' |
|
|
translate}}</button>
|
|
</div>
|
|
</div>
|
|
<!-- DELETE BUTTON -->
|
|
<div class="col-6 d-flex justify-content-end" *ngIf="!isNew">
|
|
<div class="row mt-4">
|
|
<button mat-raised-button color="primary" (click)="delete()">
|
|
<mat-icon>delete</mat-icon>{{'DATASET-PROFILE-EDITOR.ACTIONS.DELETE' | translate}}
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</ng-container>
|
|
|
|
<div class="row">
|
|
<button (click)="printForm()">
|
|
console form
|
|
</button>
|
|
</div>
|
|
<!-- <div class="row">
|
|
<button (click)="foo()">foo</button>
|
|
</div> -->
|
|
</div>
|
|
</div> |