create dictionary resource from metadata tab
enable the user to add source from the UI
Issue-ID: CCSDK-3083
Signed-off-by: Ahmedeldeeb50 <ahmed.eldeeb.ext@orange.com>
Change-Id: I1f656fe303863373723a1285d5e1a473a9a47dec
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/metaData.model.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/metaData.model.ts
index 92e6bce..89a83a1 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/metaData.model.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/model/metaData.model.ts
@@ -27,12 +27,14 @@
@JsonProperty('updated-by')
public updatedBy: string;
public property: Property;
+ public sources: any;
constructor() {
this.name = '';
this.tags = '';
this.updatedBy = '';
this.property = new Property();
+ this.sources = {};
}
}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.html
index add21e9..8e35544 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.html
@@ -78,7 +78,7 @@
<div class="single-line-model">
<label class="label-name">Tags</label>
<div class="label-input">
- <input type="input" (keyup.enter)="addTag($event)" [(ngModel)]="metaDataTab.tags"
+ <input type="input" (keyup.enter)="addTag($event)"
placeholder="Ex., vDNS-CDS">
</div>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.ts
index 631a0ff..01df118 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/dictionary-metadata/dictionary-metadata.component.ts
@@ -37,8 +37,6 @@
errorMessage: string;
constructor(
- private route: ActivatedRoute,
- private dictionaryCreationService: DictionaryCreationService,
private dictionaryCreationStore: DictionaryCreationStore
) { }
@@ -67,6 +65,7 @@
removeTag(value) {
this.tags.delete(value);
+ this.mergeTags();
}
@@ -74,15 +73,22 @@
const value = event.target.value;
console.log(value);
if (value && value.trim().length > 0) {
- let tag = '';
event.target.value = '';
this.tags.add(value);
- this.tags.forEach(val => {
- tag += val + ', ';
- });
+ // merge
+ this.mergeTags();
}
}
+ mergeTags() {
+ let tag = '';
+ this.tags.forEach((val, index) => {
+ tag += val + ', ';
+ });
+ this.metaDataTab.tags = tag.trim();
+ this.saveMetaDataToStore();
+ }
+
saveMetaDataToStore() {
console.log(this.metaDataTab);
this.dictionaryCreationStore.changeMetaData(this.metaDataTab);
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.html
index b274ce9..f6150c9 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.html
@@ -18,68 +18,59 @@
* ============LICENSE_END=========================================================
*/-->
<div class="col-11">
- <div class= "row ">
- <div class="card creat-card source1">
- <h5 class="label-name"> Sources Options</h5>
- <div class="searchBox row"><i class="searchButton1 col-1" aria-hidden="true"></i>
- <input class="searchText col-8" [(ngModel)]="searchText" type="input" placeholder="filter sources">
- </div>
-
- <div class="example-container">
- <div
- cdkDropList
- #todoList="cdkDropList"
- [cdkDropListData]="option"
- [cdkDropListConnectedTo]="[doneList]"
- class="example-list"
- (cdkDropListDropped)="drop($event)">
+ <div class="row ">
+ <div class="card creat-card source1">
+ <h5 class="label-name"> Sources Options</h5>
+ <div class="searchBox row"><i class="searchButton1 col-1" aria-hidden="true"></i>
+ <input class="searchText col-8" [(ngModel)]="searchText" type="input" placeholder="filter sources">
+ </div>
+
+ <div class="example-container">
+ <div cdkDropList #todoList="cdkDropList" [cdkDropListData]="option" [cdkDropListConnectedTo]="[doneList]"
+ class="example-list" (cdkDropListDropped)="drop($event)">
<div class="example-box card creat-card" *ngFor="let item of option| search :searchText" cdkDrag>
- <input type="checkbox" class="checkbox" [(ngModel)]="checked" (change)="onChange(item, $event.target.checked)">
+ <input type="checkbox" class="checkbox" [(ngModel)]="checked"
+ (change)="onChange(item, $event.target.checked)">
{{item.name}}
</div>
-
+
</div>
-
+
</div>
<div class="footer row">
<a class="select-button col-sm-05">Select all</a>
- <button class="action-button1 col-sm-04" >Add to list</button>
+ <button class="action-button1 col-sm-04">Add to list</button>
</div>
- </div>
-
- <div class="card creat-card source">
- <h5 class="label-name">Sources List</h5>
- <div class="example-container2 card creat-card">
- <div
- cdkDropList
- #doneList="cdkDropList"
- [cdkDropListData]="sourcesOptions"
- [cdkDropListConnectedTo]="[todoList]"
- class="example-list1"
- (cdkDropListDropped)="drop($event)">
-
- <div class="example-box1" *ngFor="let item of sourcesOptions" cdkDrag>
- <input type="checkbox" value="item.name">
- <mat-expansion-panel class="expansion-panel">
- <mat-expansion-panel-header [collapsedHeight]="'23px'" [expandedHeight]="'23px'">
- <mat-panel-title>
- {{item.name}}
- </mat-panel-title>
- </mat-expansion-panel-header>
- <br>
- <ace-editor [(text)]=item.value [mode]="'javascript'" [autoUpdateContent]="true"
- [durationBeforeCallback]="1000" (textChanged)="textChanged($event,item)" [theme]="'tomorrow_night_bright'" #editor style="height:300px;">
- </ace-editor>
- </mat-expansion-panel>
- </div>
-
- </div>
-
- </div>
- <div>
- <a type="submit" class="delete">Delete</a>
- </div>
- </div>
-</div>
-</div>
+ </div>
+ <div class="card creat-card source">
+ <h5 class="label-name">Sources List</h5>
+ <div class="example-container2 card creat-card">
+ <div cdkDropList #doneList="cdkDropList" [cdkDropListData]="sourcesOptions"
+ [cdkDropListConnectedTo]="[todoList]" class="example-list1" (cdkDropListDropped)="drop($event)">
+
+ <div class="example-box1" *ngFor="let item of sourcesOptions" cdkDrag>
+ <input type="checkbox" value="item.name">
+ <mat-expansion-panel class="expansion-panel">
+ <mat-expansion-panel-header [collapsedHeight]="'23px'" [expandedHeight]="'23px'">
+ <mat-panel-title>
+ {{item.name}}
+ </mat-panel-title>
+ </mat-expansion-panel-header>
+ <br>
+ <ace-editor [mode]="'json'" [autoUpdateContent]="true" [durationBeforeCallback]="1000"
+ (textChanged)="textChanged($event,item)" [theme]="'tomorrow_night_bright'" #editor
+ style="height:300px;">
+ </ace-editor>
+ </mat-expansion-panel>
+ </div>
+
+ </div>
+
+ </div>
+ <div>
+ <a type="submit" class="delete">Delete</a>
+ </div>
+ </div>
+ </div>
+</div>
\ No newline at end of file
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.ts
index bec8c4b..1a95016 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/resource-dictionary/resource-dictionary-creation/sources-template/sources-template.component.ts
@@ -21,6 +21,8 @@
import { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';
import { SourcesStore } from './sources.store';
import { DictionaryCreationService } from '../dictionary-creation.service';
+import { DictionaryCreationStore } from '../dictionary-creation.store';
+import { MetaData } from '../../model/metaData.model';
@Component({
selector: 'app-sources-template',
@@ -40,9 +42,12 @@
searchText = '';
text = '';
selectedArray = [];
+ metaDataTab: MetaData = new MetaData();
+
constructor(
private sourcesStore: SourcesStore,
- private dictionaryCreationService: DictionaryCreationService
+ private dictionaryCreationService: DictionaryCreationService,
+ private dictionaryCreationStore: DictionaryCreationStore
) {
}
@@ -66,16 +71,44 @@
}
});
+
+ this.dictionaryCreationStore.state$.subscribe(element => {
+ console.log('################');
+ console.log(this.metaDataTab);
+ if (element && element.metaData) {
+ this.metaDataTab = element.metaData;
+ this.addSourcesInUI();
+ }
+ });
+ }
+
+ addSourcesInUI() {
+ // add sources from json to UI
+ const originalSources = this.sourcesOptions;
+ // for (const key of this.sourcesOptions) {
+ // this.sourcesOptions;
+ for (const source in this.metaDataTab.sources) {
+ if (source) {
+ console.log(source);
+ }
+ }
}
saveSorcesDataToStore() {
- this.sourcesStore.saveSources(this.ddSource);
+ console.log(this.ddSource);
+ this.metaDataTab.sources = {};
+ for (const obj of this.ddSource) {
+ this.metaDataTab.sources = { ...this.metaDataTab.sources, ...obj };
+ }
+ // this.metaDataTab.sources = { ...this.ddSource }
+ console.log(this.metaDataTab.sources);
+ this.dictionaryCreationStore.changeMetaData(this.metaDataTab);
}
drop(event: CdkDragDrop<string[]>) {
console.log('-------------');
- console.log(event);
- this.ddSource = [];
+ // console.log(event);
+
if (event.previousContainer === event.container) {
moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
} else {
@@ -85,18 +118,24 @@
event.currentIndex);
}
- for (const key2 in this.sources) {
- if (key2) {
- const originalSources = this.sourcesOptions;
- for (const key of originalSources) {
- /* tslint:disable:no-string-literal */
- if (key.name === key2['name']) {
- const obj = `{${key.name}: ${key.value}}`;
- this.ddSource.push(obj);
- }
+ console.log(this.sourcesOptions);
+ console.log(this.sources);
+
+ this.ddSource = [];
+
+ const originalSources = this.sourcesOptions;
+ for (const key of originalSources) {
+ /* tslint:disable:no-string-literal */
+ this.ddSource.push({
+ [key.name]: {
+ type: key.value,
+ properties: {}
}
- }
+ });
+
}
+
+ this.saveSorcesDataToStore();
}
searchDictionary(event: any) {
@@ -113,15 +152,20 @@
}
textChanged(event, item) {
- const editedData = JSON.parse(event);
- const originalSources = this.sources;
- for (const key in originalSources) {
- if (key === item.name) {
- this.sources[key] = editedData;
- }
- }
- this.option = [];
- this.sourcesStore.changeSources(this.sources);
+ // const editedData = JSON.parse(event);
+ // const originalSources = this.sources;
+ // for (const key in originalSources) {
+ // if (key === item.name) {
+ // this.sources[key] = editedData;
+ // }
+ // }
+ // this.option = [];
+ // this.sourcesStore.changeSources(this.sources);
+
+ console.log(item);
+ console.log(event);
+
+ // this.metaDataTab.sources[item.name].properties = editedData;
}
}