@@ -11,7 +11,7 @@
{{parentLink?.numbering}} {{parentLink?.label? parentLink?.label : 'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.UNTITLED' | translate}}
-->
- -->
+
{{parentLink?.numbering}} {{parentLink?.form.get('title').value? parentLink?.form.get('title').value : 'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.UNTITLED' | translate}}
+
-
-
delete
+
+
+ {{parentLink.subEntries?.length}}
+
+
+
+
+ delete
+
+
+
+ (dataNeedsRefresh)="onDataNeedsRefresh()"
+ [dropListGroup]="dropListGroup"
+ [dragHoveringOver]="dragHoveringOver"
+ [dropListStruct]="dropListStruct"
+ [depth]="depth+1">
-
+
+
@@ -118,14 +146,16 @@
-
+
@@ -156,6 +186,9 @@
+
\ 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 5872e6c41..53d3424d6 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
@@ -144,6 +144,7 @@
.cdk-drag-placeholder {
opacity: 0;
+ // background-color: black;
}
.cdk-drag-animating {
@@ -156,4 +157,18 @@
.cdk-link-list.cdk-drop-list-dragging .link-box:not(.cdk-drag-placeholder) {
transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
+}
+
+
+$blue-color : #129D99;
+$blue-color-light: #5cf7f2;
+$yellow: #f7dd72;
+.badge-ball{
+ display: inline-block;
+ border-radius: 50%;
+ background-color: #FFF;
+ font-size: small;
+ font-weight: bold;
+ min-width: 2em;
+ text-align: center;
}
\ 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 16af6cb2d..621ba4fc5 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,6 +1,6 @@
-import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';
+import { CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';
import { DOCUMENT } from '@angular/common';
-import { Component, EventEmitter, Inject, Input, OnInit, Output, SimpleChanges } from '@angular/core';
+import { Component, EventEmitter, Inject, Input, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';
import { FormArray } from '@angular/forms';
import { BaseComponent } from '@common/base/base.component';
import { Foo, ToCEntry, ToCEntryType } from '../table-of-contents-entry';
@@ -27,6 +27,13 @@ export class DatasetProfileTableOfContentsInternalSection extends BaseComponent
@Input() itemSelected: ToCEntry;
@Input() viewOnly: boolean;
+ // @Input() dropListGroup: Set
= new Set();
+ @Input() dropListGroup: string[];
+
+ @Input() dragHoveringOver: boolean = false;
+ @Input() depth: number = 0;
+
+ @Input() dropListStruct: { id: string, depth: number}[] = [];
constructor(
@Inject(DOCUMENT) private _document: Document) {
@@ -35,14 +42,67 @@ export class DatasetProfileTableOfContentsInternalSection extends BaseComponent
tocEntryType = ToCEntryType;
- ngOnInit(): void {
-
+ showStructs(){
+ console.log(this.dropListStruct.sort(this.compareFn));
}
+ get orderedListGroup(){
+ return this.dropListStruct.sort(this.compareFn).map(element=> element.id);
+ }
+
+
+ compareFn(a, b){
+ if(a.depth> b.depth) return -1;
+ if(a.depth< b.depth) return 1;
+
+ return 0;
+ }
+
+ ngOnInit(): void {
+ // if(this.parentLink.id && this.dropListGroup){
+ // if(!this.dropListGroup.includes(this.parentLink.id)){
+ // this.dropListGroup.unshift(this.parentLink.id);//TODO
+ // }
+ // }
+
+ this.dropListStruct.push({
+ id: this.parentLink.id,
+ depth: this.depth
+ });
+
+ // if(this.links){
+ // this.links.forEach(link=>{
+ // this.dropListGroup.push(link.id);
+ // })
+ // }
+
+
+
+ // this.dropListGroup.add(this.parentLink.id)
+ }
+
+ showDroplists(){
+ console.log(this.dropListGroup);
+ }
+
+ hoveroverEnter(){
+ // console.log('user hovering drag over', this.parentLink.id, this.parentLink.label);
+ this.dragHoveringOver = true;
+ }
+ hoveroverLeft(){
+ this.dragHoveringOver = false;
+ }
+
+ fellowContainers(){
+ return this.dropListGroup.filter(dl=> dl != this.parentLink.id);
+ }
ngOnChanges(changes: SimpleChanges) {
}
+ // get grouListIds(){
+ // return Array.from(this.dropListGroup);
+ // }
itemClicked(item: ToCEntry) {
//leaf node
this.itemClick.emit(item);
@@ -86,41 +146,48 @@ export class DatasetProfileTableOfContentsInternalSection extends BaseComponent
return false;
}
+ // appendAndGetDroplists(dropList: CdkDropList){
+ // this.dropListGroup.push(dropList);
+ // return this.dropListGroup;
+ // }
drop(event: CdkDragDrop) {
- if(!this.links || !this.links.length) return;
+ // 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();
- });
+ if(event.container === event.previousContainer){
+ 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();
+ }else{
+ console.log('not same container');
}
- this.dataNeedsRefresh.emit();
- // moveItemInArray(this.links, event.previousIndex, event.currentIndex);
+ console.log(event.container.id);
- // console.log('dropped');
}
onDataNeedsRefresh(){
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 da670d299..d8faac803 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
@@ -9,10 +9,11 @@
+