summaryrefslogtreecommitdiffstats
path: root/cds-ui
diff options
context:
space:
mode:
Diffstat (limited to 'cds-ui')
-rw-r--r--cds-ui/client/package.json4
-rw-r--r--cds-ui/client/src/app/common/modules/README.md22
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts1
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-template.component.ts66
-rw-r--r--cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/resource-metadata/resource-metadata.component.html16
-rw-r--r--cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/resource-metadata/resource-metadata.component.ts22
-rw-r--r--cds-ui/server/package.json3
7 files changed, 107 insertions, 27 deletions
diff --git a/cds-ui/client/package.json b/cds-ui/client/package.json
index 796bf3aa6..9ad47413d 100644
--- a/cds-ui/client/package.json
+++ b/cds-ui/client/package.json
@@ -32,9 +32,11 @@
"d3": "^5.9.1",
"font-awesome": "^4.7.0",
"hammerjs": "^2.0.8",
+ "jszip": "^3.2.0",
"material-design-icons": "^3.0.1",
"ng2-ace-editor": "^0.3.9",
"rxjs": "6.3.3",
+ "stream": "0.0.2",
"tslib": "^1.9.0",
"zone.js": "0.8.26"
},
@@ -59,4 +61,4 @@
"tslint": "5.11.0",
"typescript": "3.1.6"
}
-} \ No newline at end of file
+}
diff --git a/cds-ui/client/src/app/common/modules/README.md b/cds-ui/client/src/app/common/modules/README.md
new file mode 100644
index 000000000..196842e93
--- /dev/null
+++ b/cds-ui/client/src/app/common/modules/README.md
@@ -0,0 +1,22 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018-19 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+
+This folder contains common module. All the third party imports/libraries, that could be used at many components, should be imported here into a single module and that module can be used across. \ No newline at end of file
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts b/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts
index 9073d10cf..46dca73dd 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts
+++ b/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts
@@ -31,6 +31,7 @@ import { IAppState } from '../../../../common/core/store/state/app.state';
import { Store } from '@ngrx/store';
import { Observable } from 'rxjs';
import { IBlueprintState } from 'src/app/common/core/store/models/blueprintState.model';
+import { LoadBlueprintSuccess } from '../../../../common/core/store/actions/blueprint.action';
interface FoodNode {
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-template.component.ts b/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-template.component.ts
index 5fe28e7f9..c6b6cc78b 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-template.component.ts
+++ b/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-template.component.ts
@@ -19,13 +19,15 @@ limitations under the License.
============LICENSE_END============================================
*/
-import { Component, OnInit, EventEmitter, Output } from '@angular/core';
+import { Component, OnInit, EventEmitter, Output, ViewChild } from '@angular/core';
import { Store } from '@ngrx/store';
+import * as JSZip from 'jszip';
+import { Observable } from 'rxjs';
+
import { IBlueprint } from '../../../../common/core/store/models/blueprint.model';
import { IBlueprintState } from '../../../../common/core/store/models/blueprintState.model';
import { IAppState } from '../../../../common/core/store/state/app.state';
import { LoadBlueprintSuccess } from '../../../../common/core/store/actions/blueprint.action';
-import { Observable } from 'rxjs';
@Component({
selector: 'app-search-template',
@@ -39,6 +41,14 @@ export class SearchTemplateComponent implements OnInit {
blueprintState: IBlueprintState;
bpState: Observable<IBlueprintState>;
+ @ViewChild('fileInput') fileInput;
+ result: string = '';
+
+ public paths = [];
+ public tree;
+ private zipFile: JSZip = new JSZip();
+ private fileObject: any;
+
constructor(private store: Store<IAppState>) { }
ngOnInit() {
@@ -46,8 +56,15 @@ export class SearchTemplateComponent implements OnInit {
fileChanged(e: any) {
this.file = e.target.files[0];
+
+ // this.zipFile.loadAsync(this.file)
+ // .then((zip) => {
+ // if(zip) {
+ // this.buildFileViewData(zip);
+ // }
+ // });
}
-
+
updateBlueprintState() {
let fileReader = new FileReader();
fileReader.readAsText(this.file);
@@ -57,4 +74,47 @@ export class SearchTemplateComponent implements OnInit {
me.store.dispatch(new LoadBlueprintSuccess(data));
}
}
+
+ async buildFileViewData(zip) {
+ for (var file in zip.files) {
+ this.fileObject = {
+ name: zip.files[file].name,
+ data: ''
+ };
+ const value = <any>await zip.files[file].async('string');
+ this.fileObject.data = value;
+ this.paths.push(this.fileObject);
+ }
+ this.arrangeTreeData(this.paths);
+ }
+
+ arrangeTreeData(paths) {
+ const tree = [];
+
+ paths.forEach((path) => {
+
+ const pathParts = path.name.split('/');
+ pathParts.shift();
+ let currentLevel = tree;
+
+ pathParts.forEach((part) => {
+ const existingPath = currentLevel.filter(level => level.name === part);
+
+ if (existingPath.length > 0) {
+ currentLevel = existingPath[0].children;
+ } else {
+ const newPart = {
+ name: part,
+ children: [],
+ data: path.data
+ };
+
+ currentLevel.push(newPart);
+ currentLevel = newPart.children;
+ }
+ });
+ });
+ console.log('tree: ', tree);
+ return tree;
+ }
}
diff --git a/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/resource-metadata/resource-metadata.component.html b/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/resource-metadata/resource-metadata.component.html
index 2ee660fbd..3ad578d36 100644
--- a/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/resource-metadata/resource-metadata.component.html
+++ b/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/resource-metadata/resource-metadata.component.html
@@ -25,15 +25,21 @@
<input matInput placeholder="Tags" formControlName="_tags">
</mat-form-field>
<mat-form-field class="form-field">
- <input matInput placeholder="Data Type" formControlName="_type">
+ <mat-select matInput placeholder="Data Type" formControlName="_type">
+ <mat-option value="string">string</mat-option>
+ <mat-option value="string">list</mat-option>
+ </mat-select>
</mat-form-field>
- <mat-form-field class="form-field" >
- <textarea matInput placeholder="Description" formControlName="_description"></textarea>
+ <mat-form-field class="form-field" >
+ <input matInput placeholder="entry_schema" formControlName="entry_schema">
</mat-form-field>
<mat-form-field class="form-field" >
- <input matInput placeholder="required" formControlName="_required">
+ <mat-select placeholder="required" formControlName="_required">
+ <mat-option value="true">true</mat-option>
+ <mat-option value="false">false</mat-option>
+ </mat-select>
</mat-form-field>
<mat-form-field class="form-field" >
- <input matInput placeholder="entry_schema" formControlName="entry_schema">
+ <textarea matInput placeholder="Description" formControlName="_description"></textarea>
</mat-form-field>
</form> \ No newline at end of file
diff --git a/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/resource-metadata/resource-metadata.component.ts b/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/resource-metadata/resource-metadata.component.ts
index bc309f4f8..f44c9b0d1 100644
--- a/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/resource-metadata/resource-metadata.component.ts
+++ b/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/resource-metadata/resource-metadata.component.ts
@@ -20,7 +20,6 @@
import { Component, OnInit } from '@angular/core';
import {FormBuilder, FormGroup, Validators} from '@angular/forms';
-import sample_licenses from '../../../../../assets/sample-licenses.json';
@Component({
selector: 'app-resource-metadata',
@@ -30,28 +29,17 @@ import sample_licenses from '../../../../../assets/sample-licenses.json';
export class ResourceMetadataComponent implements OnInit {
ResourceMetadata: FormGroup;
- data=sample_licenses;
constructor(private _formBuilder: FormBuilder) {
this.ResourceMetadata = this._formBuilder.group({
Resource_Name: ['', Validators.required],
_tags: ['', Validators.required],
_description : ['', Validators.required],
- _type: ['', Validators.required],
- _required: ['', Validators.required],
- entry_schema: ['', Validators.required]
- });
+ _type: ['string', Validators.required],
+ _required: ['false', Validators.required],
+ entry_schema: ['']
+ });
}
- ngOnInit() {
- this.ResourceMetadata = this._formBuilder.group({
- Resource_Name: [this.data["name"], Validators.required],
- _tags: [this.data["tags"], Validators.required],
- _required : [this.data["property"]["required"], Validators.required],
- _description : [this.data["property"]["description"], Validators.required],
- _type: [this.data["property"]["type"], Validators.required],
- entry_schema: [this.data["property"]["entry_schema"]["type"], Validators.required]
- });
-
- }
+ ngOnInit() {}
}
diff --git a/cds-ui/server/package.json b/cds-ui/server/package.json
index 96639391f..4d0f946d3 100644
--- a/cds-ui/server/package.json
+++ b/cds-ui/server/package.json
@@ -52,7 +52,8 @@
"@loopback/repository": "^1.1.1",
"@loopback/rest": "^1.5.1",
"@loopback/rest-explorer": "^1.1.4",
- "@loopback/service-proxy": "^1.0.5"
+ "@loopback/service-proxy": "^1.0.8",
+ "loopback-connector-rest": "^3.4.1"
},
"devDependencies": {
"@loopback/build": "^1.1.0",