diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/dataset-profile.module.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/dataset-profile.module.ts index aa5e2aad6..08cef2311 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/dataset-profile.module.ts +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/dataset-profile.module.ts @@ -47,6 +47,11 @@ import { DatasetProfileTableOfContents } from './table-of-contents/table-of-cont import { DatasetProfileTableOfContentsInternalSection } from './table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section'; import { VisibilityRulesService } from '@app/ui/misc/dataset-description-form/visibility-rules/visibility-rules.service'; import {DragDropModule} from '@angular/cdk/drag-drop'; + + +//matrial +import {MatBadgeModule} from '@angular/material/badge'; + @NgModule({ imports: [ CommonUiModule, @@ -58,7 +63,8 @@ import {DragDropModule} from '@angular/cdk/drag-drop'; FormProgressIndicationModule, DatasetModule, AngularStickyThingsModule, - DragDropModule + DragDropModule, + MatBadgeModule ], declarations: [ DatasetProfileListingComponent, diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.html index fce151234..31b4751a9 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.html +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.html @@ -46,12 +46,12 @@ -
+ @@ -78,13 +78,13 @@ [formControl]="this.form.get('description')">
-
+
-
+
@@ -121,12 +121,12 @@
-
- {{form.get('fields').get(''+i).get('id').value}} + -
+ - + + + + + + Extended Description + + + + + + Additional Information + + + + + + + + +

Input settings

diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.scss b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.scss index 694ac521d..b4fded778 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.scss +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.scss @@ -29,7 +29,7 @@ $blue-color-light: #5cf7f2; box-shadow: 0px 1px 2px rgb(173, 173, 173) ; padding: 3em; border-radius: .3em; - border-left: 0.3em solid yellow; + // border-left: 0.3em solid yellow; padding-bottom: 2em; margin-bottom: 2em; diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.ts index 9e36b2528..61fe30c7d 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.ts +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/composite-field/dataset-profile-editor-composite-field.component.ts @@ -24,6 +24,8 @@ export class DatasetProfileEditorCompositeFieldComponent implements OnInit, OnCh @Input() numbering: string; + showAdditionalInfo: boolean = false; + showExtendedDescription: boolean = false; previewForm: FormGroup; // isComposite = false; @@ -37,6 +39,8 @@ export class DatasetProfileEditorCompositeFieldComponent implements OnInit, OnCh ngOnChanges(){ this.setTargetField(null); + this.showExtendedDescription = !!this.form.get('extendedDescription').value; + this.showAdditionalInfo = !!this.form.get('additionalInformation').value; } get isMultiplicityEnabled(){ @@ -71,6 +75,9 @@ export class DatasetProfileEditorCompositeFieldComponent implements OnInit, OnCh this.targetField = (this.form.get('fields') as FormArray).at(0) as FormGroup; } + this.showExtendedDescription = !!this.form.get('extendedDescription').value; + this.showAdditionalInfo = !!this.form.get('additionalInformation').value; + } @@ -149,7 +156,11 @@ export class DatasetProfileEditorCompositeFieldComponent implements OnInit, OnCh field.ordinal = (this.form.get('fields') as FormArray).length; - (this.form.get('fields')).push(field.buildForm()); + const fieldForm = field.buildForm(); + + (this.form.get('fields')).push(fieldForm); + this.setTargetField(fieldForm); + } DeleteField(index) { diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.html index 130897616..822183de1 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.html +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.html @@ -169,7 +169,7 @@
-
+
Preview
-
+

{{'DATASET-PROFILE-EDITOR.TITLE.NEW-PROFILE' | translate}}

@@ -119,7 +119,7 @@
+ [viewOnly]="viewOnly" + (dataNeedsRefresh)="onDataNeedsRefresh()">
@@ -172,7 +173,7 @@ + (fieldsetAdded)="displayItem(_findTocEntryById($event, getTocEntries())); onDataNeedsRefresh();"> @@ -299,11 +300,11 @@ - +

diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/dataset-profile-editor.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/dataset-profile-editor.component.ts index 5db3683de..96f7c5a08 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/dataset-profile-editor.component.ts +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/dataset-profile-editor.component.ts @@ -181,6 +181,7 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn setTimeout(() => { this.steps = this.stepper.steps; }); + this.refreshToCEntries(); } }); @@ -205,9 +206,8 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn setTimeout(() => { this.steps = this.stepper.steps; }); - //SHOW THE FIRST PAGE - const tocentries = this.getTocEntries(); + const tocentries = this.refreshToCEntries(); if(tocentries && tocentries.length){ this.selectedTocEntry = tocentries[0]; } @@ -525,6 +525,20 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn // }); } + private refreshToCEntries(): ToCEntry[]{ + this.toCEntries = this.getTocEntries(); + //update selected tocentry + if(this.selectedTocEntry){ + this.selectedTocEntry = this._findTocEntryById(this.selectedTocEntry.id, this.toCEntries); + } + + + + return this.toCEntries; + } + + toCEntries:ToCEntry[]; + getTocEntries(): ToCEntry[] { if (this.form == null) { return []; } const result: ToCEntry[] = []; @@ -741,7 +755,7 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn break; } - + this.refreshToCEntries(); } @@ -922,6 +936,8 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn } } + this.refreshToCEntries(); + } tocEntryIsChildOf(testingChild: ToCEntry,parent: ToCEntry): boolean{ @@ -1197,4 +1213,7 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn } previewForm:FormGroup; + onDataNeedsRefresh(){ + this.refreshToCEntries(); + } } \ No newline at end of file diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section.html b/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section.html index bc6b9b984..768da1644 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section.html +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section.html @@ -4,21 +4,47 @@ -->
- -
- - -->
-
\ No newline at end of file diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section.scss b/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section.scss index 224a669bc..5872e6c41 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section.scss +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section.scss @@ -96,7 +96,64 @@ .link-info{ // display: inline-block; cursor: pointer; + // padding-top: .6em; + // padding-left: .6em; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; +} + + +// .border-left-active{ +// border-left: 1px solid #000; +// } + + +.cdk-link-list { + display: block; + // background: white; + overflow: hidden; +} + +.link-box { + padding: 20px 10px; + border-bottom: solid 1px #ccc; + color: rgba(0, 0, 0, 0.87); + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + box-sizing: border-box; + cursor: move; + background: white; + font-size: 14px; +} + +.cdk-drag-preview { + background-color: #FFF; + box-sizing: border-box; + border-radius: 4px; + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), + 0 8px 10px 1px rgba(0, 0, 0, 0.14), + 0 3px 14px 2px rgba(0, 0, 0, 0.12); + + .add-new-entry{ + display: none; + } +} + +.cdk-drag-placeholder { + opacity: 0; +} + +.cdk-drag-animating { + transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); +} + +.link-box:last-child { + border: none; +} + +.cdk-link-list.cdk-drop-list-dragging .link-box:not(.cdk-drag-placeholder) { + transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); } \ No newline at end of file diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section.ts index 6bc4eafb6..16af6cb2d 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section.ts +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section.ts @@ -1,5 +1,7 @@ +import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop'; import { DOCUMENT } from '@angular/common'; import { Component, EventEmitter, Inject, Input, OnInit, Output, SimpleChanges } from '@angular/core'; +import { FormArray } from '@angular/forms'; import { BaseComponent } from '@common/base/base.component'; import { Foo, ToCEntry, ToCEntryType } from '../table-of-contents-entry'; @@ -17,6 +19,10 @@ export class DatasetProfileTableOfContentsInternalSection extends BaseComponent @Output() createFooEntry = new EventEmitter(); + @Output() dataNeedsRefresh = new EventEmitter(); + + + @Input() parentLink: ToCEntry; @Input() itemSelected: ToCEntry; @@ -70,4 +76,54 @@ export class DatasetProfileTableOfContentsInternalSection extends BaseComponent } return false; } + + get selectedItemInLinks(){ + if(!this.links || !this.itemSelected) return false; + + const link = this.links.find(l=>l.id === this.itemSelected.id); + + if(link) return true; + return false; + } + + + drop(event: CdkDragDrop) { + if(!this.links || !this.links.length) return; + + + moveItemInArray(this.links, event.previousIndex, event.currentIndex); + + let arrayToUpdate: FormArray = this.links[0].form.parent as FormArray; + // if(this.parentLink && this.parentLink.form){ + // switch(this.parentLink.subEntriesType){ + // case this.tocEntryType.Field: + // arrayToUpdate = (this.parentLink.form.get('fields') as FormArray); + // break; + // case this.tocEntryType.FieldSet: + // arrayToUpdate = (this.parentLink.form.get('fieldSets') as FormArray); + // break; + // case this.tocEntryType.Section: + // arrayToUpdate = (this.parentLink.form.get('sections') as FormArray); + // break + // } + + // } + if(arrayToUpdate.controls){ + moveItemInArray(arrayToUpdate.controls, event.previousIndex, event.currentIndex); + //update ordinality + arrayToUpdate.controls.forEach((element,idx ) => { + element.get('ordinal').setValue(idx); + element.updateValueAndValidity(); + }); + } + + this.dataNeedsRefresh.emit(); + // moveItemInArray(this.links, event.previousIndex, event.currentIndex); + + // console.log('dropped'); + } + + onDataNeedsRefresh(){ + this.dataNeedsRefresh.emit(); + } } \ No newline at end of file diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents.html b/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents.html index c9a1868dc..da670d299 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents.html +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/table-of-contents/table-of-contents.html @@ -12,6 +12,7 @@ [parentLink]="{ subEntriesType: tocEntryType.Page, subEntries : links }" [itemSelected]="itemSelected" [viewOnly]="viewOnly" + (dataNeedsRefresh)="onDataNeedsRefresh()" >