d0ddf0196d12d45cbe3ee7c0b2f6d13716193cbd
[ccsdk/cds.git] /
1 <div class="scrollWrapper">
2     <div class="row m-0">
3         <div class="col">
4             <div class="form-group">
5                 <label for="exampleInputEmail1">Action Name</label>
6                 <input type="text" class="form-control" placeholder="Action Name" readonly [value]="actionName">
7             </div>
8         </div>
9     </div>
10     <!--Add Attribute-->
11     <div class="row m-b add-attribute">
12         <div class="col">
13             <h5>Add Attribute</h5>
14             <div class="row">
15                 <div class="col pr-0 text-center">
16                     <button type="button" data-toggle="modal" data-target="#exampleModalScrollable"
17                             class="btn btn-secondary" (click)="clearFormInputs()"><i class="icon-custom-attribute"
18                                                                                      type="button"
19                                                                                      aria-hidden="true"></i></button>
20                     <span>Create Custom</span>
21                 </div>
22                 <div class="col text-center">
23                     <button (click)="printSomethings()" [disabled]="!isFunctionAttributeActive" type="button"
24                             data-toggle="modal" data-target="#exampleModalScrollable3" class="btn btn-secondary"><i
25                             class="icon-function-attribute" type="button" aria-hidden="true"></i></button>
26                     <span>Import From Function</span>
27                 </div>
28             </div>
29         </div>
30     </div>
31     <!--INPUTS-->
32     <div class="accordion action-accordion" id="accordionExample">
33         <div class="card">
34             <div class="card-header" id="headingOne">
35                 <h2 class="mb-0">
36                     <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseOne"
37                             aria-expanded="true" aria-controls="collapseOne">
38                         Inputs
39                     </button>
40                 </h2>
41             </div>
42             <div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
43                 <div class="card-body action-attributes">
44                     <div class="row">
45                         <div class="col">
46                             <div class="form-group" *ngFor="let input of inputs">
47                                 <label class="tooltipHTML">{{input.name}}
48                                     <span class="tooltiptext">
49                                         <h5>{{input.type}}</h5>
50                                         <div *ngIf="input.value">
51                                             <h6>Value:</h6>
52                                         <span>{{input.value}}</span>
53                                         </div>
54                                     </span>
55                                     <i [hidden]="!input.required" class="icon-required-star" type="button"
56                                        aria-hidden="true"></i>
57                                     <i [hidden]="input.required" class="icon-required-star optional-attribute"
58                                        type="button" aria-hidden="true"></i>
59                                 </label>
60                                 <div class="attributeOptions">
61                                     <a data-toggle="modal" data-target="#exampleModalScrollable2"
62                                        class="accordion-delete editAttribute" tooltip="Edit Attribute"
63                                        placement="bottom" (click)="editAttribute(input)"><i class="icon-edit"></i></a>
64                                     <a class="accordion-delete deleteAttribute" tooltip="Delete Attribute"
65                                        (click)="markDeletedInput(input)"
66                                        data-toggle="modal" data-target="#exampleModalScrollable1" placement="bottom"><i
67                                             class="icon-delete-sm"></i></a>
68                                 </div>
69                             </div>
70                         </div>
71                     </div>
72                 </div>
73             </div>
74         </div>
75     </div>
76     <!--OUTPUTS-->
77     <div class="accordion action-accordion" id="accordionExample1">
78         <div class="card">
79             <div class="card-header" id="headingOne">
80                 <h2 class="mb-0">
81                     <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseTwo"
82                             aria-expanded="true" aria-controls="collapseTwo">
83                         Outputs
84                     </button>
85                 </h2>
86             </div>
87
88             <div id="collapseTwo" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample1">
89                 <div class="card-body">
90                     <div class="row">
91                         <div class="col">
92                             <div class="form-group" *ngFor="let output of outputs">
93                                 <label class="tooltipHTML">{{output.name}}
94                                     <span class="tooltiptext">
95                                         <h5>{{output.type}}</h5>
96                                        <div *ngIf="output?.value !=null
97                                        && output?.value['get_attribute'] !=null">
98                                            <h6>Value:</h6>
99                                         <span>{{output.value.get_attribute[0]}}</span>
100                                            <span>{{output.value.get_attribute[1]}}</span>
101                                         <span>{{output.value.get_attribute[2]}}</span>
102                                         <span>{{output.value.get_attribute[3]}}</span>
103                                         <span>{{output.value.get_attribute[4]}}</span>
104                                        </div>
105                                     </span>
106                                     <i [hidden]="!output.required" class="icon-required-star" type="button"
107                                        aria-hidden="true"></i>
108                                     <i [hidden]="output.required" class="icon-required-star optional-attribute"
109                                        type="button" aria-hidden="true"></i>
110
111                                 </label>
112                                 <div class="attributeOptions">
113                                     <a data-toggle="modal" data-target="#exampleModalScrollablte"
114                                        class="accordion-delete editAttribute" tooltip="Edit Attribute"
115                                        placement="bottom" (click)="editAttribute(output)"><i class="icon-edit"></i></a>
116                                     <a class="accordion-delete deleteAttribute" tooltip="Delete Attribute"
117                                        (click)="markDeletedInput(output)"
118                                        data-toggle="modal" data-target="#exampleModalScrollable1" placement="bottom"><i
119                                             class="icon-delete-sm"></i></a>
120                                 </div>
121                             </div>
122                         </div>
123                     </div>
124                 </div>
125             </div>
126         </div>
127     </div>
128 </div>
129 <!--Action - Add Custom Attribute - Modal-->
130 <div class="modal fade" id="exampleModalScrollable" tabindex="-1" role="dialog"
131      aria-labelledby="exampleModalScrollableTitle" aria-hidden="true">
132     <div class="modal-dialog  modal-dialog-scrollable" role="document">
133         <div class="modal-content">
134             <div class="modal-header">
135                 <h5 class="modal-title" id="exampleModalScrollableTitle">
136                     Add Custom Attributes</h5>
137                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
138                     <img src="assets/img/icon-close.svg"/>
139                 </button>
140             </div>
141             <div class="modal-body createAttributeTabs">
142                 <!--Action - Inputs & Outputs Attribute-->
143                 <ul class="nav nav-tabs" id="myTab" role="tablist">
144                     <li class="nav-item">
145                         <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab"
146                            aria-controls="home" aria-selected="true">Inputs</a>
147                     </li>
148                     <li class="nav-item">
149                         <a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab"
150                            aria-controls="profile" aria-selected="false">Outputs</a>
151                     </li>
152                 </ul>
153                 <div class="tab-content" id="myTabContent">
154                     <!--INPUTS Tab-->
155                     <div class="tab-pane fade show active create-form" id="home" role="tabpanel"
156                          aria-labelledby="home-tab">
157                         <div class="form-group row">
158                             <label for="inputEmail3" class="col-sm-3 col-form-label">Name <span>*</span></label>
159                             <div class="col-sm-9">
160                                 <input [(ngModel)]="inputActionAttribute.name" type="email" class="form-control"
161                                        id="inputEmail3" placeholder="Attribute name">
162                             </div>
163                         </div>
164                         <div class="form-group row">
165                             <label for="inputPassword3" class="col-sm-3 col-form-label">Description</label>
166                             <div class="col-sm-9">
167                                 <input [(ngModel)]="inputActionAttribute.description" type="text" class="form-control"
168                                        id="inputPassword3" placeholder="Add some description">
169                             </div>
170                         </div>
171                         <div class="form-group row">
172                             <label class="col-form-label col-sm-3 pt-0">Type <span>*</span></label>
173                             <div class="col-sm-9">
174                                 <div class="list-group list-group-horizontal">
175                                     <button type="button" class="list-group-item list-group-item-action"
176                                             (click)="setInputType('string')">
177                                         String
178                                     </button>
179                                     <button type="button" class="list-group-item list-group-item-action"
180                                             (click)="setInputType('integer')">Integer
181                                     </button>
182                                     <button type="button" class="list-group-item list-group-item-action"
183                                             (click)="setInputType('boolean')">Boolean
184                                     </button>
185                                     <button type="button" class="list-group-item list-group-item-action"
186                                             (click)="setInputType('list')">List
187                                     </button>
188                                     <button type="button" class="list-group-item list-group-item-action"
189                                             (click)="setInputType('Other')">Other
190                                     </button>
191                                 </div>
192                                 <input [hidden]="!isInputOtherType" type="text" class="form-control mt-2 mb-2"
193                                        id="inputPassword4" placeholder="Add Other type name"
194                                        [(ngModel)]="inputOtherType"
195                                        (change)="setInputType(inputOtherType)">
196
197                             </div>
198                         </div>
199                         <div class="form-group row">
200                             <label class="col-form-label col-sm-3 pt-0">Required <span>*</span></label>
201                             <div class="col-sm-9">
202                                 <div class="custom-control custom-radio custom-control-inline">
203                                     <input type="radio" id="customRadioInline1" name="customRadioInline1"
204                                            class="custom-control-input" (click)="setInputRequired(true)">
205                                     <label class="custom-control-label" for="customRadioInline1">True</label>
206                                 </div>
207                                 <div class="custom-control custom-radio custom-control-inline">
208                                     <input type="radio" id="customRadioInline2" name="customRadioInline1"
209                                            class="custom-control-input" (click)="setInputRequired(false)">
210                                     <label class="custom-control-label" for="customRadioInline2">False</label>
211                                 </div>
212                             </div>
213                         </div>
214                     </div>
215                     <!--OUTPUTS Tab-->
216                     <div class="tab-pane fade create-form" id="profile" role="tabpanel" aria-labelledby="profile-tab">
217                         <div class="form-group row">
218                             <label for="inputEmail3" class="col-sm-3 col-form-label">Name <span>*</span></label>
219                             <div class="col-sm-9">
220                                 <input [(ngModel)]="outputActionAttribute.name" type="email" class="form-control"
221                                        id="inputEmail3" placeholder="Attribute name">
222                             </div>
223                         </div>
224                         <div class="form-group row">
225                             <label for="inputPassword3" class="col-sm-3 col-form-label">Description</label>
226                             <div class="col-sm-9">
227                                 <input [(ngModel)]="outputActionAttribute.description" type="text" class="form-control"
228                                        id="inputPassword3" placeholder="Add some description">
229                             </div>
230                         </div>
231                         <div class="form-group row">
232                             <label class="col-form-label col-sm-3 pt-0">Required <span>*</span></label>
233                             <div class="col-sm-9">
234                                 <div class="custom-control custom-radio custom-control-inline">
235                                     <input type="radio" id="customRadioInline3" name="customRadioInline3"
236                                            class="custom-control-input" (click)="setOutputRequired(true)">
237                                     <label class="custom-control-label" for="customRadioInline3">True</label>
238                                 </div>
239                                 <div class="custom-control custom-radio custom-control-inline">
240                                     <input type="radio" id="customRadioInline4" name="customRadioInline3"
241                                            class="custom-control-input">
242                                     <label class="custom-control-label" for="customRadioInline4"
243                                            (click)="setOutputRequired(false)">False</label>
244                                 </div>
245                             </div>
246                         </div>
247                         <div class="form-group row">
248                             <label class="col-form-label col-sm-3 pt-0">Type <span>*</span></label>
249                             <div class="col-sm-9">
250                                 <div class="list-group list-group-horizontal">
251                                     <button type="button" class="list-group-item list-group-item-action"
252                                             (click)="setOutputType('string')">String
253                                     </button>
254                                     <button type="button" class="list-group-item list-group-item-action"
255                                             (click)="setOutputType('integer')">
256                                         Integer
257                                     </button>
258                                     <button type="button" class="list-group-item list-group-item-action"
259                                             (click)="setOutputType('boolean')">
260                                         Boolean
261                                     </button>
262                                     <button type="button" class="list-group-item list-group-item-action"
263                                             (click)="setOutputType('list')">
264                                         List
265                                     </button>
266                                     <button type="button" class="list-group-item list-group-item-action"
267                                             (click)="setOutputType('Other')">
268                                         Other
269                                     </button>
270                                 </div>
271                                 <input [hidden]="!isOutputOtherType" type="text" class="form-control mt-2 mb-2"
272                                        id="inputPassword3" placeholder="Add Other type name"
273                                        [(ngModel)]="outputOtherType"
274                                        (change)="setOutputType(outputOtherType)">
275                             </div>
276                         </div>
277                         <!--Get Attribute Value-->
278                         <div class="form-group row mb-0">
279                             <label class="col-form-label col pt-0">
280                                 Value <span class="notation">(get_attribute)</span>
281                             </label>
282                         </div>
283                         <div class="form-group row">
284                             <div class="col">
285                                 <input type="email" class="form-control" id="inputEmail3" placeholder="Attributes">
286                                 <div class="container p-0">
287                                     <!-- <div *ngFor="let tempInput of steps" class="selectedWrapper">{{tempInput}}</div> -->
288                                 </div>
289                             </div>
290                         </div>
291
292
293                         <section class="carousel" aria-label="Gallery">
294
295                             <ol class="carousel__viewport">
296                                 <!--Function-->
297                                 <li id="carousel__slide1" tabindex="0" class="carousel__slide">
298                                     <b class="listBoxTitle">1. Choose Function Name</b>
299                                     <div class="list-group addedFunctionsList" id="list-tab" role="tablist">
300                                         <input type="text" class="form-control input-search-controller"
301                                                placeholder="Functions">
302                                         <div class="scrollWrapper" *ngFor="let step of steps">
303                                             <a class="list-group-item list-group-item-action active" id="list-home-list"
304                                                data-toggle="list" href="#list-home" role="tab" aria-controls="home">
305                                                 <i class="icon-resource_resolution mr-1" aria-hidden="true"></i>
306                                                 {{step}} <i class="icon-next_arrow" aria-hidden="true" (click)="getAttributesAndOutputs(
307                                                                     this.designerState.template.workflows[actionName]['steps'][step]['target']
308                                                                     )"></i></a>
309                                         </div>
310                                     </div>
311                                 </li>
312                                 <!--Attribute-->
313                                 <li id="carousel__slide2" tabindex="1" class="carousel__slide">
314                                     <b class="listBoxTitle">2. Choose Attribute Name</b>
315                                     <div class="tab-content nestedAttributes mt-0 p-0" id="nav-tabContent">
316                                         <input type="text" class="form-control input-search-controller"
317                                                placeholder="Attributes">
318                                         <div class="tab-pane fade show active" id="list-home" role="tabpanel"
319                                              aria-labelledby="list-home-list">
320                                             <div class="scrollWrapper">
321                                                 <div *ngIf="suggestedAttributes.length>0"
322                                                      class="btn-group btn-group-toggle" data-toggle="buttons">
323                                                     <label class="btn tooltipHTML tooltipGetAtt"
324                                                            *ngFor="let suggestedAttribute of suggestedAttributes"
325                                                            [id]="suggestedAttribute"
326                                                            (click)="addTempOutputAttr(suggestedAttribute)">
327                                                         <span class="tooltiptext">
328                                                             <h5>integer</h5>
329                                                         </span>
330                                                         <input type="radio" name="options"
331                                                                [id]="suggestedAttribute+'.,.'"
332                                                                autocomplete="off"
333                                                                [checked]="suggestedAttributes[0].includes(suggestedAttribute)">
334                                                         {{suggestedAttribute}}
335                                                         <i class="icon-required-star" type="button"
336                                                            aria-hidden="true"></i>
337                                                     </label>
338
339                                                 </div>
340                                                 <div *ngIf="suggestedAttributes.length == 0">
341                                                     <p class="noAttributes">No Attributes Available</p>
342                                                 </div>
343                                             </div>
344                                         </div>
345                                     </div>
346                                 </li>
347                                 <!--Artifact-->
348                                 <li id="carousel__slide3" [hidden]="isNotComponentResourceResolution" tabindex="2"
349                                     class="carousel__slide">
350                                     <b class="listBoxTitle">3. Choose Artifact Name</b>
351                                     <div class="tab-content nestedAttributes mt-0 p-0" id="nav-tabContent">
352                                         <input type="text" class="form-control input-search-controller"
353                                                placeholder="Attributes">
354                                         <div class="tab-pane fade show active" id="list-home" role="tabpanel"
355                                              aria-labelledby="list-home-list">
356                                             <div class="scrollWrapper">
357                                                 <div *ngIf="currentArtifacts.length>0"
358                                                      class="btn-group btn-group-toggle" data-toggle="buttons">
359                                                     <label class="btn btn-secondary"
360                                                            *ngFor="let suggestedArtifact of currentArtifacts"
361                                                            (click)="addArtifactFile(suggestedArtifact)">
362                                                         <input type="radio" name="options" [id]="suggestedArtifact"
363                                                                autocomplete="off"
364                                                                (click)="addArtifactFile(suggestedArtifact)"
365                                                                [checked]="currentArtifacts[0].includes(suggestedArtifact)"
366                                                         >
367                                                         {{suggestedArtifact}}
368                                                     </label>
369
370                                                 </div>
371                                                 <div *ngIf="currentArtifacts.length == 0">
372                                                     <p class="noAttributes">No Artifacts Available</p>
373                                                 </div>
374                                             </div>
375                                         </div>
376                                     </div>
377                                 </li>
378                                 <!--Parameter-->
379                                 <li id="carousel__slide4"
380                                     [hidden]="isParametersHidden" tabindex="3"
381                                     class="carousel__slide">
382                                     <b class="listBoxTitle">4. Choose Parameter Name</b>
383                                     <div class="tab-content nestedAttributes mt-0 p-0" id="nav-tabContent">
384                                         <input type="text" class="form-control input-search-controller"
385                                                placeholder="Attributes">
386                                         <div class="tab-pane fade show active" id="list-home" role="tabpanel"
387                                              aria-labelledby="list-home-list">
388                                             <div class="scrollWrapper">
389                                                 <div *ngIf="suggestedMappingParameters.length>0"
390                                                      class="btn-group btn-group-toggle" data-toggle="buttons">
391                                                     <label class="btn btn-secondary"
392                                                            *ngFor="let suggestedMappingParameter of suggestedMappingParameters"
393                                                            (click)="addSuggestedMappingParameter(suggestedMappingParameter)">
394                                                         <!--[class]="suggestedMappingParameters[0].includes(suggestedMappingParameter)?'btn btn-secondary active':'btn btn-secondary'">
395                                                     --> <input type="radio" name="options"
396                                                                [id]="suggestedMappingParameter"
397                                                                autocomplete="off"
398                                                                (click)="addSuggestedMappingParameter(suggestedMappingParameter)"
399                                                                [checked]="suggestedMappingParameters[0].includes(suggestedMappingParameter)"
400
401                                                     >
402                                                         {{suggestedMappingParameter}}
403                                                     </label>
404
405                                                 </div>
406                                                 <div *ngIf="suggestedMappingParameters.length == 0">
407                                                     <p class="noAttributes">No Attributes Available</p>
408                                                 </div>
409                                             </div>
410                                         </div>
411                                     </div>
412                                 </li>
413                             </ol>
414                             <aside class="carousel__navigation">
415                                 <ol class="carousel__navigation-list">
416                                     <li class="carousel__navigation-item">
417                                         <a href="#carousel__slide1" class="carousel__navigation-button">Functions</a>
418                                     </li>
419                                     <li class="carousel__navigation-item">
420                                         <a href="#carousel__slide2" class="carousel__navigation-button">Attributes</a>
421                                     </li>
422                                     <li class="carousel__navigation-item" [hidden]="isNotComponentResourceResolution">
423                                         <a href="#carousel__slide3" class="carousel__navigation-button">Artifacts</a>
424                                     </li>
425                                     <li class="carousel__navigation-item"
426                                         [hidden]="isParametersHidden">
427                                         <a href="#carousel__slide4"
428                                            class="carousel__navigation-button">Parameters</a>
429                                     </li>
430                                 </ol>
431                             </aside>
432                         </section>
433                     </div>
434                 </div>
435             </div>
436             <div class="modal-footer">
437                 <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
438                 <button type="button" class="btn btn-primary" (click)="submitAttributes()">Submit Attributes</button>
439             </div>
440         </div>
441     </div>
442 </div>
443
444 <!--Action - Add Attribute From Function - Modal-->
445 <div class="modal fade" id="exampleModalScrollable3" tabindex="-1" role="dialog"
446      aria-labelledby="exampleModalScrollableTitle3" aria-hidden="true">
447     <div class="modal-dialog  modal-dialog-scrollable" role="document">
448         <div class="modal-content">
449             <div class="modal-header">
450                 <h5 class="modal-title" id="exampleModalScrollableTitle3">
451                     Add Attributes from Function</h5>
452                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
453                     <img src="assets/img/icon-close.svg"/>
454                 </button>
455             </div>
456             <div class="modal-body createAttributeTabs">
457                 <!--Action - Inputs & Outputs Attribute-->
458                 <ul class="nav nav-tabs" id="myTab" role="tablist">
459                     <li class="nav-item">
460                         <a class="nav-link active" id="home-tab" data-toggle="tab" href="#input" role="tab"
461                            aria-controls="home" aria-selected="true">Inputs</a>
462                     </li>
463                     <li class="nav-item">
464                         <a class="nav-link" id="profile-tab" data-toggle="tab" href="#output" role="tab"
465                            aria-controls="profile" aria-selected="false">Outputs</a>
466                     </li>
467                 </ul>
468                 <div class="tab-content border-0" id="myTabContent">
469                     <!--INPUTS Tab-->
470                     <div class="tab-pane fade show active create-form" id="input" role="tabpanel"
471                          aria-labelledby="input-tab">
472                         <div class="form-group row">
473                             <div class="col">
474                                 <!--<input type="email" class="form-control" id="inputEmail3" placeholder="Attributes">-->
475                                 <div class="container p-0">
476                                     <label>Selected Attributes</label>
477                                     <div *ngFor="let tempInput of tempInputs" class="selectedWrapper">{{tempInput}}
478                                     </div>
479                                 </div>
480                             </div>
481                         </div>
482
483                         <div class="row">
484                             <div class="col-6">
485                                 <b class="listBoxTitle">1. Choose Function Name</b>
486                                 <div class="list-group addedFunctionsList" id="list-tab" role="tablist">
487                                     <input type="text" class="form-control input-search-controller"
488                                            placeholder="Functions">
489                                     <div class="scrollWrapper" *ngFor="let step of steps">
490                                         <a class="list-group-item list-group-item-action active" id="list-home-list"
491                                            data-toggle="list" href="#list-home" role="tab" aria-controls="home"><i
492                                                 class="icon-resource_resolution mr-1" aria-hidden="true"></i>
493                                             {{step}} <i class="icon-next_arrow" aria-hidden="true" (click)="setInputAndOutputs(
494                                             this.designerState.template.workflows[actionName]['steps'][step]['target']
495                                             )"></i></a>
496                                     </div>
497                                 </div>
498                             </div>
499                             <div class="col-6">
500                                 <b class="listBoxTitle">2. Choose Input Attribute Name</b>
501                                 <div class="tab-content nestedAttributes mt-0 p-0" id="nav-tabContent">
502                                     <input type="text" class="form-control input-search-controller"
503                                            placeholder="Attributes">
504                                     <div class="tab-pane fade show active" id="list-home" role="tabpanel"
505                                          aria-labelledby="list-home-list">
506                                         <div class="scrollWrapper">
507                                             <div *ngIf="suggestedInputs.length>0" class="btn-group btn-group-toggle"
508                                                  data-toggle="buttons">
509                                                 <label class="btn tooltipHTML tooltipGetAtt active"
510                                                        *ngFor="let suggestedInput of suggestedInputs"
511                                                        (click)="addTempInput(suggestedInput)">
512                                                     <span class="tooltiptext">
513                                                         <h5>integer</h5>
514                                                     </span>
515                                                     <input type="radio" name="options" [id]="suggestedInput"
516                                                            autocomplete="off" (click)="addTempInput(suggestedInput)">
517                                                     {{suggestedInput}}
518                                                     <i class="icon-required-star" type="button"
519                                                        aria-hidden="true"></i>
520                                                 </label>
521                                             </div>
522                                             <div *ngIf="suggestedInputs.length == 0">
523                                                 <p class="noAttributes">No Attributes Available</p>
524                                             </div>
525                                         </div>
526                                     </div>
527                                 </div>
528                             </div>
529                         </div>
530                     </div>
531                     <!--OUTPUTS Tab-->
532                     <div class="tab-pane fade create-form" id="output" role="tabpanel" aria-labelledby="output-tab">
533                         <div class="form-group row">
534                             <div class="col">
535                                 <input type="email" class="form-control" id="inputEmail3" placeholder="Attributes">
536                                 <div class="container p-0">
537                                     <div *ngFor="let tempOutput of tempOutputs" class="selectedWrapper">{{tempOutput}}
538                                     </div>
539                                 </div>
540                             </div>
541                         </div>
542
543                         <div class="row">
544                             <div class="col-6">
545                                 <b class="listBoxTitle">1. Choose Function Name</b>
546                                 <div class="list-group addedFunctionsList" id="list-tab" role="tablist">
547                                     <input type="text" class="form-control input-search-controller"
548                                            placeholder="Functions">
549                                     <div class="scrollWrapper" *ngFor="let step of steps">
550                                         <a class="list-group-item list-group-item-action active" id="list-home-list"
551                                            data-toggle="list" href="#list-home" role="tab" aria-controls="home"><i
552                                                 class="icon-resource_resolution mr-1" aria-hidden="true"></i>
553                                             {{step}} <i class="icon-next_arrow" aria-hidden="true" (click)="setInputAndOutputs(
554                                             this.designerState.template.workflows[actionName]['steps'][step]['target']
555                                             )"></i></a>
556                                     </div>
557                                 </div>
558                             </div>
559                             <div class="col-6">
560                                 <b class="listBoxTitle">2. Choose output Attribute Name</b>
561                                 <div class="tab-content nestedAttributes mt-0 p-0" id="nav-tabContent">
562                                     <input type="text" class="form-control input-search-controller"
563                                            placeholder="Attributes">
564                                     <div class="tab-pane fade show active" id="list-home" role="tabpanel"
565                                          aria-labelledby="list-home-list">
566                                         <div class="scrollWrapper">
567                                             <div *ngIf="suggestedOutputs.length > 0" class="btn-group btn-group-toggle"
568                                                  data-toggle="buttons">
569                                                 <label class="btn tooltipHTML tooltipGetAtt active"
570                                                        *ngFor="let suggestedOutput of suggestedOutputs">
571                                                     <span class="tooltiptext">
572                                                         <h5>integer</h5>
573                                                     </span>
574                                                     <input type="radio" name="options" [id]="suggestedOutput"
575                                                            autocomplete="off"
576                                                            (dblclick)="addTempOutput(suggestedOutput)">
577                                                     {{suggestedOutput}}
578                                                     <i class="icon-required-star" type="button"
579                                                        aria-hidden="true"></i>
580                                                 </label>
581
582                                             </div>
583                                             <div *ngIf="suggestedOutputs.length == 0">
584                                                 <p class="noAttributes">No Attributes Available</p>
585                                             </div>
586                                         </div>
587                                     </div>
588                                 </div>
589                             </div>
590                         </div>
591                     </div>
592                 </div>
593             </div>
594             <div class="modal-footer">
595                 <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
596                 <button type="button" class="btn btn-primary" (click)="submitTempAttributes()">Submit
597                     Attributes
598                 </button>
599             </div>
600         </div>
601     </div>
602 </div>
603
604 <!--Delete Action - Modal-->
605 <div class="modal fade" id="exampleModalScrollable1" tabindex="-1" role="dialog"
606      aria-labelledby="exampleModalScrollableTitle1" aria-hidden="true">
607     <div class="modal-dialog modal-dialog-scrollable" role="document">
608         <div class="modal-content">
609             <div class="modal-header">
610                 <h5 class="modal-title" id="exampleModalScrollableTitle1">
611                     Delete Action</h5>
612                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
613                     <img src="assets/img/icon-close.svg"/>
614                 </button>
615             </div>
616             <div class="modal-body">
617                 Are you sure you want to delete <b>{{suggestedDeletedInput.name}}</b> from {{actionName}}?
618             </div>
619             <div class="modal-footer">
620                 <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
621                 <button type="button" class="btn btn-primary" data-dismiss="modal" (click)="deleteActionAttribute()">
622                     Delete
623                 </button>
624             </div>
625         </div>
626     </div>
627 </div>
628 <!--Action - Edit Custom Attribute - Modal-->
629 <div class="modal fade" id="exampleModalScrollable2" tabindex="-1" role="dialog"
630      aria-labelledby="exampleModalScrollableTitle2" aria-hidden="true">
631     <div class="modal-dialog modal-dialog-scrollable" role="document">
632         <div class="modal-content">
633             <div class="modal-header">
634                 <h5 class="modal-title" id="exampleModalScrollableTitle2">
635                     Edit Custom Attributes</h5>
636                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
637                     <img src="assets/img/icon-close.svg"/>
638                 </button>
639             </div>
640             <div class="modal-body createAttributeTabs">
641                 <div class="create-form">
642                     <div class="form-group row">
643                         <label for="inputEmail3" class="col-sm-3 col-form-label">Name <span>*</span></label>
644                         <div class="col-sm-9">
645                             <input type="email" class="form-control" id="inputEmail3" placeholder="Attribute name"
646                                    [ngModel]="this.suggestedEditedAttribute.name">
647                         </div>
648                     </div>
649                     <div class="form-group row">
650                         <label for="inputPassword3" class="col-sm-3 col-form-label">Description</label>
651                         <div class="col-sm-9">
652                             <input type="text" class="form-control" id="inputPassword3"
653                                    placeholder="Add some description"
654                                    [ngModel]="this.suggestedEditedAttribute.description">
655                         </div>
656                     </div>
657                     <div class="form-group row">
658                         <label class="col-form-label col-sm-3 pt-0">Type <span>*</span></label>
659                         <div class="col-sm-9">
660                             <div class="list-group list-group-horizontal">
661                                 <button type="button" class="list-group-item list-group-item-action"
662                                 [className]="suggestedEditedAttribute.type.includes('string')?'' +
663                                  'list-group-item list-group-item-action active':'list-group-item list-group-item-action'">String
664                                 </button>
665                                 <button type="button" class="list-group-item list-group-item-action"
666                                         [className]="suggestedEditedAttribute.type.includes('integer')?'' +
667                                          ' list-group-item list-group-item-action active':'list-group-item list-group-item-action'">Integer</button>
668                                 <button type="button" class="list-group-item list-group-item-action"
669                                         [className]="suggestedEditedAttribute.type.includes('boolean')?'' +
670                                          'list-group-item list-group-item-action active':'list-group-item list-group-item-action'">Boolean</button>
671                                 <button type="button" class="list-group-item list-group-item-action"
672                                         [className]="suggestedEditedAttribute.type.includes('list')?'' +
673                                          'list-group-item list-group-item-action active':'list-group-item list-group-item-action'">List</button>
674                                 <button type="button" class="list-group-item list-group-item-action">Other
675                                 </button>
676                             </div>
677                             <input type="text" class="form-control mt-2 mb-2" id="inputPassword3"
678                                    placeholder="Add Other type name" value="dt-resource-assignment-properties">
679                         </div>
680                     </div>
681                     <div class="form-group row">
682                         <label class="col-form-label col-sm-3 pt-0">Required <span>*</span></label>
683                         <div class="col-sm-9">
684                             <div class="custom-control custom-radio custom-control-inline">
685                                 <input type="radio" id="customRadioInline1" name="customRadioInline1"
686                                        class="custom-control-input"
687                                        [ngModel]="suggestedEditedAttribute.required" [checked]="suggestedEditedAttribute.required">
688                                 <label class="custom-control-label" for="customRadioInline1">True</label>
689                             </div>
690                             <div class="custom-control custom-radio custom-control-inline">
691                                 <input type="radio" id="customRadioInline2" name="customRadioInline1"
692                                        class="custom-control-input"
693                                        [checked]="!suggestedEditedAttribute.required">
694                                 <label class="custom-control-label" for="customRadioInline2">False</label>
695                             </div>
696                         </div>
697                     </div>
698                 </div>
699                 <div class="modal-footer">
700                     <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
701                     <button type="button" class="btn btn-primary">Save</button>
702                 </div>
703             </div>
704         </div>
705     </div>
706 </div>