Refactor composite Title, description and delete button for improved styling
This commit is contained in:
parent
eafcf80e10
commit
47650abfa0
|
@ -1,26 +1,26 @@
|
|||
<div *ngIf="parseFinished" class="language-editor">
|
||||
<form (ngSubmit)="updateLang()" [formGroup]="formGroup">
|
||||
<div class="row">
|
||||
<mat-card class="col-md-8 offset-md-2">
|
||||
<mat-card-title><div [innerHTML]="currentLang"></div></mat-card-title>
|
||||
<mat-card-content>
|
||||
<div *ngFor="let key of keys">
|
||||
<mat-form-field >
|
||||
<mat-label>{{key}} :</mat-label>
|
||||
<textarea matInput class="language-area"
|
||||
[formControl]="formGroup.get(key)"
|
||||
cdkTextareaAutosize
|
||||
#autosize="cdkTextareaAutosize"
|
||||
cdkAutosizeMinRows="1"
|
||||
cdkAutosizeMaxRows="5"></textarea>
|
||||
</mat-form-field >
|
||||
</div>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
<button mat-fab class="mat-fab-bottom-right save-btn" type="submit">
|
||||
<mat-icon class="mat-24" title="save">save</mat-icon>
|
||||
</button>
|
||||
</div>
|
||||
<div class="row">
|
||||
<mat-card class="col-md-8 offset-md-2">
|
||||
<mat-card-title><div [innerHTML]="currentLang"></div></mat-card-title>
|
||||
<mat-card-content>
|
||||
<div *ngFor="let key of keys">
|
||||
<mat-form-field >
|
||||
<mat-label>{{key}} :</mat-label>
|
||||
<textarea matInput class="language-area"
|
||||
[formControl]="formGroup.get(key)"
|
||||
cdkTextareaAutosize
|
||||
#autosize="cdkTextareaAutosize"
|
||||
cdkAutosizeMinRows="1"
|
||||
cdkAutosizeMaxRows="5"></textarea>
|
||||
</mat-form-field >
|
||||
</div>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
<button mat-fab class="mat-fab-bottom-right save-btn" type="submit">
|
||||
<mat-icon class="mat-24" title="save">save</mat-icon>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -2,25 +2,20 @@
|
|||
|
||||
<div *ngIf="form.get('fields').length === 1 && this.visibilityRulesService.checkElementVisibility(form.get('fields')['controls'][0].get('id').value)" class="col-12">
|
||||
<div class="row">
|
||||
<h5 *ngIf="form.get('title').value && !isChild" class="col-auto copositeField toc-copositeField-header" [id]="this.form.get('id').value">
|
||||
{{form.get('numbering').value}}
|
||||
{{form.get('title').value}}
|
||||
<!-- <a *ngIf="this.markForConsiderationService.exists(compositeField)" (click)="markForConsideration()" style="cursor: pointer">
|
||||
Mark For Consideration
|
||||
</a> -->
|
||||
</h5>
|
||||
<mat-icon class="col-auto" *ngIf="this.form.get('additionalInformation').value && !isChild"
|
||||
matTooltip="{{this.form.get('additionalInformation').value}}">info</mat-icon>
|
||||
|
||||
|
||||
<h6 *ngIf="form.get('description').value && !isChild" class="col-12">{{form.get('description').value}}</h6>
|
||||
<h6 *ngIf="form.get('extendedDescription').value && !isChild" class="col-12">
|
||||
<i>{{form.get('extendedDescription').value}}</i>
|
||||
</h6>
|
||||
|
||||
<app-form-field class="col-12" [form]="form.get('fields')['controls'][0]"
|
||||
[datasetProfileId]="datasetProfileId" [isChild]="isChild"></app-form-field>
|
||||
|
||||
<div class="col-12">
|
||||
<app-form-composite-title class="row" [form]="form" [isChild]="isChild"></app-form-composite-title>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<div class="row">
|
||||
<app-form-field class="align-self-center col" [form]="form.get('fields')['controls'][0]"
|
||||
[datasetProfileId]="datasetProfileId" [isChild]="isChild"></app-form-field>
|
||||
<div *ngIf="showDelete" class="col-auto align-self-center">
|
||||
<button mat-icon-button type="button" class="deleteBtn" (click)="deleteCompositeField();">
|
||||
<mat-icon>delete</mat-icon>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <button mat-icon-button type="button" *ngIf="!isChild" class="deleteBtn col-auto" (click)="DeleteField();">
|
||||
<mat-icon>delete</mat-icon>
|
||||
</button> -->
|
||||
|
@ -29,33 +24,34 @@
|
|||
</div>
|
||||
<div *ngIf="form.get('fields').length > 1" class="col-12">
|
||||
<div class="row">
|
||||
<h5 *ngIf="form.get('title').value && !isChild" class="col-auto copositeField toc-copositeField-header" [id]="this.form.get('id').value">
|
||||
{{form.get('numbering').value}}
|
||||
{{form.get('title').value}}</h5>
|
||||
<mat-icon class="col-auto" *ngIf="this.form.get('additionalInformation').value && !isChild"
|
||||
matTooltip="{{this.form.get('additionalInformation').value}}">info</mat-icon>
|
||||
|
||||
<h6 *ngIf="form.get('description').value && !isChild" class="col-12">{{form.get('description').value}}</h6>
|
||||
<h6 *ngIf="form.get('extendedDescription').value && !isChild" class="col-12">
|
||||
<i>{{form.get('extendedDescription').value}}</i></h6>
|
||||
<div *ngFor="let fieldFormGroup of form.get('fields')['controls']; let i = index;" class="col-12">
|
||||
<!-- <div class="row">
|
||||
<div class="col-12" *ngIf="(fieldFormGroup.get('multiplicity')?.value?.max - 1) > (fieldFormGroup.get('multiplicityItems')?.length)">
|
||||
<a (click)="addMultipleField(i+1)" style="cursor: pointer">
|
||||
Add one more field +
|
||||
</a>
|
||||
</div> -->
|
||||
<app-form-field [form]="fieldFormGroup" class="col-12" [datasetProfileId]="datasetProfileId"
|
||||
[isChild]="true"></app-form-field>
|
||||
<!-- <div *ngIf="fieldFormGroup" class="col-12">
|
||||
<div *ngFor="let multipleField of fieldFormGroup.get('multiplicityItems')['controls']; let j = index" class="row">
|
||||
<app-form-field class="col-12" [form]="multipleField" [datasetProfileId]="datasetProfileId" [isChild]="true"></app-form-field>
|
||||
<button mat-icon-button type="button" *ngIf="isChild" class="deleteBtn col-auto" (click)="DeleteField(i);">
|
||||
<mat-icon>delete</mat-icon>
|
||||
</button>
|
||||
<div class="col-12">
|
||||
<app-form-composite-title class="row" [form]="form" [isChild]="isChild"></app-form-composite-title>
|
||||
</div>
|
||||
<div class="col align-self-center">
|
||||
<div *ngFor="let fieldFormGroup of form.get('fields')['controls']; let i = index;" class="col-12 copositeField">
|
||||
<!-- <div class="row">
|
||||
<div class="col-12" *ngIf="(fieldFormGroup.get('multiplicity')?.value?.max - 1) > (fieldFormGroup.get('multiplicityItems')?.length)">
|
||||
<a (click)="addMultipleField(i+1)" style="cursor: pointer">
|
||||
Add one more field +
|
||||
</a>
|
||||
</div> -->
|
||||
<app-form-field [form]="fieldFormGroup" class="col-12 copositeField" [datasetProfileId]="datasetProfileId"
|
||||
[isChild]="true"></app-form-field>
|
||||
<!-- <div *ngIf="fieldFormGroup" class="col-12">
|
||||
<div *ngFor="let multipleField of fieldFormGroup.get('multiplicityItems')['controls']; let j = index" class="row">
|
||||
<app-form-field class="col-12" [form]="multipleField" [datasetProfileId]="datasetProfileId" [isChild]="true"></app-form-field>
|
||||
<button mat-icon-button type="button" *ngIf="isChild" class="deleteBtn col-auto" (click)="DeleteField(i);">
|
||||
<mat-icon>delete</mat-icon>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="showDelete" class="col-auto align-self-center">
|
||||
<button mat-icon-button type="button" class="deleteBtn" (click)="deleteCompositeField();">
|
||||
<mat-icon>delete</mat-icon>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
.copositeField {
|
||||
font-weight: bold;
|
||||
color: #3a3737;
|
||||
max-width: 100%;
|
||||
padding-top: 1em;
|
||||
padding-left: 0em !important;
|
||||
padding-top: 2em !important;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { Component, Input, OnInit } from '@angular/core';
|
||||
import { FormArray, FormGroup } from '@angular/forms';
|
||||
import { FormArray, FormGroup, AbstractControl } from '@angular/forms';
|
||||
import { DatasetDescriptionCompositeFieldEditorModel, DatasetDescriptionFieldEditorModel } from '../../dataset-description-form.model';
|
||||
import { VisibilityRulesService } from '../../visibility-rules/visibility-rules.service';
|
||||
|
||||
|
@ -13,6 +13,7 @@ export class FormCompositeFieldComponent {
|
|||
@Input() datasetProfileId: String;
|
||||
@Input() form: FormGroup;
|
||||
@Input() isChild: Boolean = false;
|
||||
@Input() showDelete: Boolean = false;
|
||||
|
||||
constructor(
|
||||
public visibilityRulesService: VisibilityRulesService,
|
||||
|
@ -32,4 +33,28 @@ export class FormCompositeFieldComponent {
|
|||
// markForConsideration() {
|
||||
// this.markForConsiderationService.markForConsideration(this.compositeField);
|
||||
// }
|
||||
|
||||
deleteCompositeField() {
|
||||
if (this.isChild) {
|
||||
this.deleteMultipeFieldFromCompositeFormGroup();
|
||||
} else {
|
||||
this.deleteCompositeFieldFormGroup();
|
||||
}
|
||||
}
|
||||
|
||||
deleteCompositeFieldFormGroup() {
|
||||
const numberOfItems = this.form.get('multiplicityItems').get('' + 0).get('fields').value.length;
|
||||
for (let i = 0; i < numberOfItems; i++) {
|
||||
const multiplicityItem = this.form.get('multiplicityItems').get('' + 0).get('fields').get('' + i).value;
|
||||
this.form.get('fields').get('' + i).patchValue(multiplicityItem);
|
||||
}
|
||||
(<FormArray>(this.form.get('multiplicityItems'))).removeAt(0);
|
||||
}
|
||||
|
||||
deleteMultipeFieldFromCompositeFormGroup() {
|
||||
const parent = this.form.parent;
|
||||
const index = (parent as FormArray).controls.indexOf(this.form);
|
||||
(parent as FormArray).removeAt(index);
|
||||
// (<FormArray>(this.form as AbstractControl)).removeAt(fildIndex);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
<div class="col-12">
|
||||
<div class="row">
|
||||
<h5 *ngIf="form.get('title').value && !isChild" class="col-auto copositeField toc-copositeField-header" [id]="this.form.get('id').value">
|
||||
{{form.get('numbering').value}}
|
||||
{{form.get('title').value}}
|
||||
<!-- <a *ngIf="this.markForConsiderationService.exists(compositeField)" (click)="markForConsideration()" style="cursor: pointer">
|
||||
Mark For Consideration
|
||||
</a> -->
|
||||
</h5>
|
||||
<mat-icon class="col-auto" *ngIf="this.form.get('additionalInformation').value && !isChild"
|
||||
matTooltip="{{this.form.get('additionalInformation').value}}">info</mat-icon>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<h6 *ngIf="form.get('description').value && !isChild" class="col-12">{{form.get('description').value}}</h6>
|
||||
<h6 *ngIf="form.get('extendedDescription').value && !isChild" class="col-12">
|
||||
<i>{{form.get('extendedDescription').value}}</i>
|
||||
</h6>
|
|
@ -0,0 +1,6 @@
|
|||
.copositeField {
|
||||
font-weight: bold;
|
||||
color: #3a3737;
|
||||
max-width: 100%;
|
||||
padding-top: 1em;
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
import { Component, OnInit, Input } from '@angular/core';
|
||||
import { FormGroup } from '@angular/forms';
|
||||
|
||||
@Component({
|
||||
selector: 'app-form-composite-title',
|
||||
templateUrl: './form-composite-title.component.html',
|
||||
styleUrls: ['./form-composite-title.component.scss']
|
||||
})
|
||||
export class FormCompositeTitleComponent implements OnInit {
|
||||
|
||||
@Input() form: FormGroup;
|
||||
@Input() isChild: Boolean = false;
|
||||
|
||||
constructor() { }
|
||||
|
||||
ngOnInit() {
|
||||
}
|
||||
|
||||
}
|
|
@ -17,12 +17,7 @@
|
|||
<div class="col-12">
|
||||
<div class="row">
|
||||
<app-form-composite-field class="align-self-center col" [form]="compositeFieldFormGroup" [datasetProfileId]="datasetProfileId"
|
||||
[isChild]="false"></app-form-composite-field>
|
||||
<div *ngIf="(compositeFieldFormGroup.get('multiplicityItems').length) > 0" class="col-auto align-self-center mt-auto pb-2">
|
||||
<button mat-icon-button type="button" class="deleteBtn" (click)="deleteCompositeFieldFormGroup(i);">
|
||||
<mat-icon>delete</mat-icon>
|
||||
</button>
|
||||
</div>
|
||||
[isChild]="false" [showDelete]="(compositeFieldFormGroup.get('multiplicityItems').length) > 0"></app-form-composite-field>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -31,12 +26,7 @@
|
|||
<div class="col-12" *ngFor="let multipleCompositeFieldFormGroup of compositeFieldFormGroup.get('multiplicityItems')['controls']; let j = index">
|
||||
<div class="row">
|
||||
<app-form-composite-field class=" align-self-center col" [form]="multipleCompositeFieldFormGroup" [datasetProfileId]="datasetProfileId"
|
||||
[isChild]="true"></app-form-composite-field>
|
||||
<div class="col-auto align-self-center">
|
||||
<button mat-icon-button type="button" class="deleteBtn" (click)="deleteMultipeFieldFromCompositeFormGroup(i,j);">
|
||||
<mat-icon>delete</mat-icon>
|
||||
</button>
|
||||
</div>
|
||||
[isChild]="true" [showDelete]="true"></app-form-composite-field>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="(compositeFieldFormGroup.get('multiplicity').value.max - 1) > (compositeFieldFormGroup.get('multiplicityItems').length)"
|
||||
|
|
|
@ -9,6 +9,7 @@ import { FormFocusService } from '@app/ui/misc/dataset-description-form/form-foc
|
|||
import { VisibilityRulesService } from '@app/ui/misc/dataset-description-form/visibility-rules/visibility-rules.service';
|
||||
import { CommonFormsModule } from '@common/forms/common-forms.module';
|
||||
import { CommonUiModule } from '@common/ui/common-ui.module';
|
||||
import { FormCompositeTitleComponent } from './components/form-composite-title/form-composite-title.component';
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
|
@ -21,7 +22,8 @@ import { CommonUiModule } from '@common/ui/common-ui.module';
|
|||
FormProgressIndicationComponent,
|
||||
FormSectionComponent,
|
||||
FormCompositeFieldComponent,
|
||||
FormFieldComponent
|
||||
FormFieldComponent,
|
||||
FormCompositeTitleComponent
|
||||
],
|
||||
exports: [
|
||||
DatasetDescriptionFormComponent
|
||||
|
|
Loading…
Reference in New Issue