1 import {Component, OnInit} from '@angular/core';
2 import {InputActionAttribute, OutputActionAttribute} from './models/InputActionAttribute';
3 import {DesignerStore} from '../designer.store';
6 selector: 'app-action-attributes',
7 templateUrl: './action-attributes.component.html',
8 styleUrls: ['./action-attributes.component.css']
10 export class ActionAttributesComponent implements OnInit {
14 actionAttributesSideBar: boolean;
15 inputActionAttribute = new InputActionAttribute();
16 outputActionAttribute = new OutputActionAttribute();
17 isInputOtherType: boolean;
18 isOutputOtherType: boolean;
22 constructor(private designerStore: DesignerStore) {
29 addInput(input: InputActionAttribute) {
30 if (input && input.type && input.name) {
31 const insertedInputActionAttribute = Object.assign({}, input);
32 this.inputs.push(insertedInputActionAttribute);
36 addOutput(output: OutputActionAttribute) {
37 if (output && output.type && output.name) {
38 const insertedOutputActionAttribute = Object.assign({}, output);
39 this.outputs.push(insertedOutputActionAttribute);
43 setInputType(type: string) {
44 this.inputActionAttribute.type = type;
45 this.isInputOtherType = this.checkIfTypeIsOther(type);
48 setInputRequired(isRequired) {
49 this.inputActionAttribute.required = isRequired;
52 setOutputRequired(isRequired) {
53 this.outputActionAttribute.required = isRequired;
56 setOutputType(type: string) {
57 this.outputActionAttribute.type = type;
58 this.isOutputOtherType = this.checkIfTypeIsOther(type);
61 checkIfTypeIsOther(type) {
62 return type.includes('Other');
66 console.log(this.inputActionAttribute);
67 console.log(this.outputActionAttribute);
68 this.addInput(this.inputActionAttribute);
69 this.addOutput(this.outputActionAttribute);
70 this.clearFormInputs();
71 console.log(this.storeInputs(this.inputs));
72 this.designerStore.setInputsToSpecificWorkflow(this.storeInputs(this.inputs));
73 console.log(this.storeOutputs(this.outputs));
76 private clearFormInputs() {
77 this.inputActionAttribute = new InputActionAttribute();
78 this.outputActionAttribute = new OutputActionAttribute();
79 this.outputOtherType = '';
80 this.inputOtherType = '';
83 private storeInputs(InputActionAttributes: InputActionAttribute[]) {
86 InputActionAttributes.forEach(input => {
87 inputs += this.appendAttributes(input);
90 const returnedInputMap = new Map<string, string>();
91 returnedInputMap.set('inputs', inputs);
92 return returnedInputMap;
95 private storeOutputs(OutputActionAttributes: OutputActionAttribute[]) {
97 OutputActionAttributes.forEach(output => {
98 outputs += this.appendAttributes(output);
100 const returnedOutputMap = new Map<string, string>();
101 returnedOutputMap.set('outputs', outputs);
102 return returnedOutputMap;
105 private appendAttributes(output: OutputActionAttribute) {
106 return '"' + output.name + '":{\n' +
107 ' \'required\': ' + output.required + ',\n' +
108 ' \'type\': "' + output.type + '",\n' +
109 ' \'description\': "' + output.description + '"\n' +