diff options
Diffstat (limited to 'sdc-workflow-designer-ui/src/app/components/menus/rest-config')
7 files changed, 278 insertions, 0 deletions
diff --git a/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config-detail/rest-config-detail.component.html b/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config-detail/rest-config-detail.component.html new file mode 100644 index 00000000..ea0d3c68 --- /dev/null +++ b/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config-detail/rest-config-detail.component.html @@ -0,0 +1,35 @@ +<div class="form-group row"> + <label class="col-md-2 form-control-label text-md-right">Name</label> + <div class="col-md-10"> + <input class="form-control" [(ngModel)]="restConfig.name"> + </div> +</div> +<div class="form-group row"> + <label class="col-md-2 form-control-label text-md-right">BaseUrl</label> + <div class="col-md-10"> + <input class="form-control" [(ngModel)]="restConfig.url"> + </div> +</div> +<div class="form-group row"> + <label class="col-md-2 form-control-label text-md-right">Definition</label> + <div class="col-md-10"> + <input class="form-control" [(ngModel)]="restConfig.definition"> + </div> +</div> +<div class="form-group row"> + <label class="col-md-2 form-control-label text-md-right">Dynamic</label> + <div class="col-md-10"> + <p-radioButton name="dynamic" [value]=true label="true" (ngModelChange)="toggleDynamic($event)" + [ngModel]="restConfig.dynamic"></p-radioButton> + <p-radioButton name="dynamic" [value]=false label="false" (ngModelChange)="toggleDynamic($event)" + [ngModel]="restConfig.dynamic"></p-radioButton> + </div> +</div> +<div class="form-group row"> + <label class="col-md-2 form-control-label text-md-right">Detail</label> + <div class="col-md-10"> + <textarea class="form-control" [disabled]="restConfig.dynamic" rows="8" [ngModel]="detail" + (ngModelChange)="onDetailChanged($event)"></textarea> + </div> +</div> + diff --git a/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config-detail/rest-config-detail.component.ts b/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config-detail/rest-config-detail.component.ts new file mode 100644 index 00000000..d99a9a10 --- /dev/null +++ b/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config-detail/rest-config-detail.component.ts @@ -0,0 +1,83 @@ +/** + * Copyright (c) 2017 ZTE Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and the Apache License 2.0 which both accompany this distribution, + * and are available at http://www.eclipse.org/legal/epl-v10.html + * and http://www.apache.org/licenses/LICENSE-2.0 + * + * Contributors: + * ZTE - initial API and implementation and/or initial documentation + */ + +import { Component, Input, OnChanges } from '@angular/core'; +import { ModalDirective } from 'ngx-bootstrap/modal'; + +import { Swagger } from '../../../../model/swagger'; +import { RestConfig } from '../../../../model/rest-config'; +import { RestService } from '../../../../services/rest.service'; + +/** + * toolbar component contains some basic operations(save) and all of the supported workflow nodes. + * The supported nodes can be dragged to container component. which will add a new node to the workflow. + */ +@Component({ + selector: 'b4t-rest-config-detail', + templateUrl: 'rest-config-detail.component.html', +}) +export class RestConfigDetailComponent implements OnChanges { + @Input() restConfig: RestConfig; + + public detail: string; + + constructor(private restService: RestService) { + } + + public ngOnChanges() { + if (this.restConfig == null) { + this.restConfig = new RestConfig('', '', '', '', ''); + } + this.parseSwagger2String(); + } + + private parseSwagger2String() { + if (this.restConfig.swagger) { + this.detail = JSON.stringify(this.restConfig.swagger); + } else { + this.detail = ''; + } + } + + public onDetailChanged(detail: string) { + this.detail = detail; + + let swagger: Swagger = null; + try { + swagger = new Swagger(JSON.parse(detail)); + console.log(swagger); + } catch (e) { + console.log('detail transfer error'); + console.error(e); + } + this.restConfig.swagger = swagger; + } + + public toggleDynamic(dynamic: boolean) { + // this.restConfig.dynamic = dynamic; + + // if (this.restConfig.dynamic && this.restConfig.definition) { + // this.restService.getDynamicSwaggerInfo(this.restConfig.definition) + // .subscribe(response => { + // try { + // this.restConfig.swagger = new Swagger(response); + // this.parseSwagger2String(); + // } catch (e) { + // console.log('detail transfer error'); + // console.error(e); + // } + + // }); + // } + } + +} diff --git a/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config-list/rest-config-list.component.css b/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config-list/rest-config-list.component.css new file mode 100644 index 00000000..f403890e --- /dev/null +++ b/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config-list/rest-config-list.component.css @@ -0,0 +1,15 @@ +/** + * Copyright (c) 2017 ZTE Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and the Apache License 2.0 which both accompany this distribution, + * and are available at http://www.eclipse.org/legal/epl-v10.html + * and http://www.apache.org/licenses/LICENSE-2.0 + * + * Contributors: + * ZTE - initial API and implementation and/or initial documentation + */ + + .swagger-list{ + overflow: auto; + }
\ No newline at end of file diff --git a/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config-list/rest-config-list.component.html b/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config-list/rest-config-list.component.html new file mode 100644 index 00000000..aa98bc80 --- /dev/null +++ b/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config-list/rest-config-list.component.html @@ -0,0 +1,19 @@ +<div class="scroll" style="overflow:hidden; max-height: 300px; height: 300px;"> + <div class="card"> + <div class="card-header d-flex justify-content-between align-items-center"> + <span>Config List</span> + <span class="badge badge-success badge-pill" (click)="addRestConfig()"><i class="fa fa-plus"></i></span> + </div> + + <ul class="list-group"> + <li class="list-group-item d-flex justify-content-between align-items-center" + *ngFor="let restConfig of restService.getRestConfigs(); index as i"> + <div (click)="onConfigSelected(restConfig)">{{restConfig.name}}</div> + <div class="badge badge-danger badge-pill" (click)="deleteRestConfig(i)"> + <i class="fa fa-minus"></i> + </div> + </li> + </ul> + </div> +</div> + diff --git a/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config-list/rest-config-list.component.ts b/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config-list/rest-config-list.component.ts new file mode 100644 index 00000000..59c9c9af --- /dev/null +++ b/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config-list/rest-config-list.component.ts @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2017 ZTE Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and the Apache License 2.0 which both accompany this distribution, + * and are available at http://www.eclipse.org/legal/epl-v10.html + * and http://www.apache.org/licenses/LICENSE-2.0 + * + * Contributors: + * ZTE - initial API and implementation and/or initial documentation + */ + +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { ModalDirective } from 'ngx-bootstrap/modal'; + +import { Swagger } from '../../../../model/swagger'; +import { RestConfig } from '../../../../model/rest-config'; +import { RestService } from '../../../../services/rest.service'; + +/** + * toolbar component contains some basic operations(save) and all of the supported workflow nodes. + * The supported nodes can be dragged to container component. which will add a new node to the workflow. + */ +@Component({ + selector: 'b4t-rest-config-list', + templateUrl: 'rest-config-list.component.html', +}) +export class RestConfigListComponent { + @Output() configSelected = new EventEmitter<RestConfig>(); + + constructor(public restService: RestService) { + } + + public onConfigSelected(restConfig: RestConfig) { + this.configSelected.emit(restConfig); + } + + public addRestConfig() { + const restConfig = this.restService.addRestConfig(); + + this.onConfigSelected(restConfig); + } + + public deleteRestConfig(index: number) { + // this.restService.getRestConfigs().splice(index, 1); + + // let restConfig; + // if (this.restService.getRestConfigs().length > 0) { + // if (this.restService.getRestConfigs()[index]) { + // restConfig = this.restService.getRestConfigs()[index]; + // } else { + // restConfig = this.restService.getRestConfigs()[index - 1]; + // } + // } + // this.onConfigSelected(restConfig); + } +} diff --git a/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config.component.html b/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config.component.html new file mode 100644 index 00000000..9bd5bfc0 --- /dev/null +++ b/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config.component.html @@ -0,0 +1,26 @@ +<div class="modal fade" bsModal #restConfigModal="bs-modal" [config]="{backdrop: 'static'}" + tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true"> + <div class="modal-dialog modal-lg"> + <div class="modal-content"> + <div class="modal-header"> + <h4 class="modal-title pull-left">Rest Config Setting</h4> + <button type="button" class="close pull-right" aria-label="Close" (click)="restConfigModal.hide()"> + <span aria-hidden="true">×</span> + </button> + </div> + <div class="modal-body"> + <div class="row"> + <div class="col-sm-4"> + <b4t-rest-config-list (configSelected)="configSelected($event)"></b4t-rest-config-list> + </div> + <div class="col-sm-8"> + <b4t-rest-config-detail [restConfig]="currentRestConfig"></b4t-rest-config-detail> + </div> + </div> + </div> + <div class="modal-footer"> + <button type="button" class="btn over-grey" (click)="restConfigModal.hide()">close</button> + </div> + </div> + </div> +</div> diff --git a/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config.component.ts b/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config.component.ts new file mode 100644 index 00000000..6a9c9c22 --- /dev/null +++ b/sdc-workflow-designer-ui/src/app/components/menus/rest-config/rest-config.component.ts @@ -0,0 +1,43 @@ +/** + * Copyright (c) 2017 ZTE Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and the Apache License 2.0 which both accompany this distribution, + * and are available at http://www.eclipse.org/legal/epl-v10.html + * and http://www.apache.org/licenses/LICENSE-2.0 + * + * Contributors: + * ZTE - initial API and implementation and/or initial documentation + */ + +import { AfterViewInit, Component, ViewChild } from '@angular/core'; +import { ModalDirective } from 'ngx-bootstrap/modal'; + +import { RestService } from '../../../services/rest.service'; +import { RestConfigListComponent } from './rest-config-list/rest-config-list.component'; + +/** + * toolbar component contains some basic operations(save) and all of the supported workflow nodes. + * The supported nodes can be dragged to container component. which will add a new node to the workflow. + */ +@Component({ + selector: 'b4t-rest-config', + templateUrl: 'rest-config.component.html', +}) +export class RestConfigComponent { + @ViewChild('restConfigModal') public restConfigModal: ModalDirective; + + public currentRestConfig: any = {}; + + constructor() { + } + + public configSelected(restConfig: any) { + this.currentRestConfig = restConfig; + } + + public show() { + this.restConfigModal.show(); + } + +} |