Merge "Sources template changes"
authorDan Timoney <dtimoney@att.com>
Sun, 31 Mar 2019 12:44:42 +0000 (12:44 +0000)
committerGerrit Code Review <gerrit@onap.org>
Sun, 31 Mar 2019 12:44:42 +0000 (12:44 +0000)
cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/sources-template/sources-template.component.html
cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/sources-template/sources-template.component.scss
cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/sources-template/sources-template.component.ts

index 903c6d3..91a22b8 100644 (file)
       [cdkDropListData]="sourcesOptions"
       class="sources-list"
       (cdkDropListDropped)="drop($event)">
-       <div class="sources-box" *ngFor="let item of sourcesOptions" cdkDrag>
+       <div class="sources-box" *ngFor="let item of sourcesOptions;let i = index" cdkDrag>
                <mat-expansion-panel class="expansion-panel">
                        <mat-expansion-panel-header>
                                <mat-panel-title>
                                        {{item}}
                                </mat-panel-title>
                        </mat-expansion-panel-header>
-                       <json-editor [options]="options" [data]="selected(item)" on-change="onChange()"></json-editor>
+                       <json-editor [options]="options" [data]="selected(item)" on-change="onChange(item,$event)"></json-editor>
                         </mat-expansion-panel>
+                        <button matSuffix mat-icon-button (click)="delete(item,i)"><mat-icon class="icon">delete</mat-icon></button>
        </div>
     </div>
   </div>
@@ -52,5 +53,8 @@
       (cdkDropListDropped)="drop($event)">
       <div class="options-box" *ngFor="let item of option | search :searchText" cdkDrag>{{item}}</div>
     </div>
-  </div>
+   </div>
+   <div> 
+       <button mat-button class="matStepNextBtn" (click)="UploadSourcesData()">Save Sources Data</button>
+   </div>
 </div>
\ No newline at end of file
index a76b60a..5bec796 100644 (file)
   overflow: hidden;\r
   display: block;\r
   width: 100%;\r
-  }
\ No newline at end of file
+ }\r
+ .matStepNextBtn{\r
+    color:white;\r
+    background:#3f51b5; \r
+    margin-top: 10px; \r
+    position: absolute;\r
+    border-radius: 1em;\r
+} \r
+.icon{\r
+color: red;\r
+}
\ No newline at end of file
index c43d1de..517add8 100644 (file)
@@ -18,7 +18,7 @@
 * ============LICENSE_END=========================================================
 */
 
-import { Component, OnInit, ViewChild } from '@angular/core';
+import { Component, OnInit, ViewChild, EventEmitter, Output } from '@angular/core';
 import { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';
 import { IResources } from 'src/app/common/core/store/models/resources.model';
 import { IResourcesState } from 'src/app/common/core/store/models/resourcesState.model';
@@ -36,52 +36,68 @@ import { JsonEditorComponent, JsonEditorOptions } from 'ang-jsoneditor';
   styleUrls: ['./sources-template.component.scss']
 })
 export class SourcesTemplateComponent implements OnInit {
-//    rdState: Observable<IResourcesState>;
-//    resources: IResources;
-//    todo = [];
-//    sources:ISourcesData; 
-//    sourcesOptions = [];
 
     @ViewChild(JsonEditorComponent) editor: JsonEditorComponent;
-    options = new JsonEditorOptions();
-    
+    options = new JsonEditorOptions(); 
     rdState: Observable<IResourcesState>;
     resources: IResources;
     option = ['mdsal','default'];
     sources:ISourcesData; 
     sourcesOptions = [];
     sourcesData = [];
-    
+    @Output() resourcesData = new EventEmitter();  
  constructor(private store: Store<IAppState>) {
-   this.rdState = this.store.select('resources');
-      this.options.mode = 'text';
+    this.rdState = this.store.select('resources');
+    this.options.mode = 'text';
     this.options.modes = [ 'text', 'tree', 'view'];
-    this.options.statusBar = false;
-    this.options.onChange = () => console.log(this.editor.get());
-     
+    this.options.statusBar = false;     
  }
 
  ngOnInit() {
     this.rdState.subscribe(
       resourcesdata => {
         var resourcesState: IResourcesState = { resources: resourcesdata.resources, isLoadSuccess: resourcesdata.isLoadSuccess, isSaveSuccess: resourcesdata.isSaveSuccess, isUpdateSuccess: resourcesdata.isUpdateSuccess };
+        this.resources=resourcesState.resources;
         this.sources = resourcesState.resources.sources;
         for (let key in this.sources) {
             this.sourcesOptions.push(key);  
         }
-        //console.log(this.sourcesOptions);
     })
  }
 
- onChange() {
-     console.log(this.editor.get())
+ onChange(item,$event) {
+    var editedData =JSON.parse($event.srcElement.value);
+    var originalSources = this.resources.sources;
+     for (let key in originalSources){
+        if(key == item){
+            originalSources[key] = editedData;
+        }
+     }
+     this.resources.sources = Object.assign({},originalSources);
  };
     
  selected(value){
-    console.log(value);
-        this.sourcesData=this.sources[value];
-        return this.sourcesData;    
+       this.sourcesData=this.sources[value];
+    return this.sourcesData;    
  }    
+
+ delete(item,i){
+       if(confirm("Are sure you want to delete this source ?")) {
+       var originalSources = this.resources.sources;
+       for (let key in originalSources){
+               if(key == item){    
+                       delete originalSources[key];
+               }
+       }
+       this.resources.sources = Object.assign({},originalSources);
+               this.sourcesOptions.splice(i,1);
+       }     
+ } 
+  
+ UploadSourcesData() {
+       this.resourcesData.emit(this.resources);        
+  }
     
  drop(event: CdkDragDrop<string[]>) {
     if (event.previousContainer === event.container) {