aboutsummaryrefslogtreecommitdiffstats
path: root/sdc-workflow-designer-ui/src/app/components/menu/menu.component.ts
diff options
context:
space:
mode:
Diffstat (limited to 'sdc-workflow-designer-ui/src/app/components/menu/menu.component.ts')
-rw-r--r--sdc-workflow-designer-ui/src/app/components/menu/menu.component.ts45
1 files changed, 44 insertions, 1 deletions
diff --git a/sdc-workflow-designer-ui/src/app/components/menu/menu.component.ts b/sdc-workflow-designer-ui/src/app/components/menu/menu.component.ts
index 2c03cbfc..4183391e 100644
--- a/sdc-workflow-designer-ui/src/app/components/menu/menu.component.ts
+++ b/sdc-workflow-designer-ui/src/app/components/menu/menu.component.ts
@@ -13,6 +13,9 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { WorkflowService } from '../../services/workflow.service';
import { MicroserviceComponent } from "./microservice/microservice.component";
+import { WorkflowsComponent } from "./workflows/workflows.component";
+import { BroadcastService } from "../../services/broadcast.service";
+import { Workflow } from "../../model/workflow/workflow";
@Component({
selector: 'b4t-menu',
@@ -21,8 +24,10 @@ import { MicroserviceComponent } from "./microservice/microservice.component";
})
export class MenuComponent {
@ViewChild(MicroserviceComponent) public microserviceComponent: MicroserviceComponent;
+ @ViewChild(WorkflowsComponent) public workflowsComponent: WorkflowsComponent;
- constructor(private workflowService: WorkflowService) { }
+ constructor(private broadcastService: BroadcastService, private workflowService: WorkflowService) {
+ }
public save(): void {
this.workflowService.save();
@@ -34,4 +39,42 @@ export class MenuComponent {
public test() {
}
+
+ public showWorkflows() {
+ this.workflowsComponent.show();
+ }
+
+ public getWorkflows(workflow: Workflow) {
+ const workflows = this.workflowService.getWorkflows();
+ if(workflows) {
+ return workflows.map(workflow => {
+ return {label: workflow.name, command: () => {
+ this.workflowSelected(workflow);
+ }};
+ });
+ } else {
+ return [];
+ }
+ }
+
+ public workflowSelected(workflow: Workflow) {
+ this.broadcastService.broadcast(this.broadcastService.workflow, workflow);
+ }
+
+ public download() {
+ const filename = this.workflowService.workflow.name + '.json';
+ const content = JSON.stringify(this.workflowService.workflow);
+ // 创建隐藏的可下载链接
+ var eleLink = document.createElement('a');
+ eleLink.download = filename;
+ eleLink.style.display = 'none';
+ // 字符内容转变成blob地址
+ var blob = new Blob([content]);
+ eleLink.href = URL.createObjectURL(blob);
+ // 触发点击
+ document.body.appendChild(eleLink);
+ eleLink.click();
+ // 然后移除
+ document.body.removeChild(eleLink);
+ }
}