1 <div class="scrollWrapper">
4 <div class="form-group">
5 <label for="exampleInputEmail1">Function Instance Name</label>
6 <input disabled type="text" [(ngModel)]="currentFuncion['instance-name']" class="form-control"
7 placeholder="Function Instance Name">
9 <div class="form-group mb-0">
10 <label>Function Type</label>
11 <label class="attribute-value">{{currentFuncion['type']}}</label>
13 <div class="form-group">
14 <label for="exampleFormControlTextarea1">Description</label>
15 <textarea [(ngModel)]="currentFuncion['description']" class="form-control"
16 id="exampleFormControlTextarea1" rows="3"></textarea>
21 <div class="accordion function-accordion" id="accordionExample">
24 <div class="card-header" id="headingOne">
26 <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseOne"
27 aria-expanded="true" aria-controls="collapseOne">
33 <div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
34 <div class="card-body">
35 <!--Inputs & Outputs Tabs-->
36 <ul class="nav nav-pills nav-fill mb-3" id="pills-tab" role="tablist">
37 <li class="nav-item" role="presentation">
38 <a class="nav-link active" id="pills-home-tab" data-toggle="pill" href="#pills-home"
39 role="tab" aria-controls="pills-home" aria-selected="true">Inputs</a>
41 <li class="nav-item" role="presentation">
42 <a class="nav-link" id="pills-profile-tab" data-toggle="pill" href="#pills-profile"
43 role="tab" aria-controls="pills-profile" aria-selected="false">Outputs</a>
46 <div class="tab-content" id="pills-tabContent">
48 <div class="tab-pane fade show active" id="pills-home" role="tabpanel"
49 aria-labelledby="pills-home-tab">
53 <div class="attribute-wrap" [hidden]="!artifactPrefix">
54 <div class="form-group">
55 <label for="exampleFormControlTextarea">artifact-prefix-names
56 <i class="icon-required-star" type="button"
57 aria-hidden="true"></i></label>
59 <div class="custom-control custom-radio custom-control-inline">
60 <input type="radio" id="functionRadioInline" name="functionRadioInline"
61 [checked]="!currentFuncion['inputs']['artifact-prefix-names']?.get_input"
62 (click)="setArtifact(true)" class="custom-control-input">
63 <label class="custom-control-label" for="functionRadioInline">Pre-defined
66 <div class="custom-control custom-radio custom-control-inline">
68 [checked]="currentFuncion['inputs']['artifact-prefix-names']?.get_input"
69 (click)="setArtifact(false)" type="radio" id="functionRadioInline-a"
70 name="functionRadioInline" class="custom-control-input">
71 <label class="custom-control-label" for="functionRadioInline-a">Input Drivin
75 <button (click)="init()" type="button" data-toggle="modal"
76 data-target="#templateModal" class="btn btn-select-template m-auto"><i
77 class="icon-add-circle" type="button" aria-hidden="true"></i> Select
81 <div class="attribute-wrap"
82 *ngFor="let requiredInput of getKeys(requiredInputs); let i=index">
84 <div *ngIf="getValue(requiredInput,requiredInputs).type=='string' || getValue(requiredInput,requiredInputs).type=='json'"
86 <label for="exampleInputEmail1">{{ requiredInput }}<i
87 class="icon-required-star" type="button"
88 [ngClass]="{'optional-attribute' : getValue(requiredInput,requiredInputs).required==false}"
89 aria-hidden="true"></i></label>
90 <input [(ngModel)]="currentFuncion['inputs'][requiredInput]" type="text"
94 <div *ngIf="getValue(requiredInput,requiredInputs).type=='json'"
96 <label for="exampleInputEmail1">{{ requiredInput }}<i
97 class="icon-required-star"
98 [ngClass]="{'optional-attribute' : getValue(requiredInput,requiredInputs).required==false}"
99 aria-hidden="true"></i></label>
100 <textarea style="height: 120px;" (change)="bind(requiredInput,$event)"
101 [value]="currentFuncion['inputs'][requiredInput]"
102 class="form-control"></textarea>
105 <div class="form-group"
106 *ngIf="getValue(requiredInput,requiredInputs).type=='integer'">
107 <label for="exampleInputEmail1">{{ requiredInput }} <i
108 class="icon-required-star" type="button"
109 [ngClass]="{'optional-attribute' : getValue(requiredInput,requiredInputs).required==false}"
110 aria-hidden="true"></i></label>
111 <input [(ngModel)]="currentFuncion['inputs'][requiredInput]" type="number"
112 class="form-control" placeholder="">
115 <!-- <div *ngIf="getValue(requiredInput,requiredInputs).type=='boolean'"> -->
116 <div *ngIf="getValue(requiredInput,requiredInputs).type=='boolean'">
117 <div class="form-group">
118 <label for="exampleFormControlTextarea1">{{ requiredInput }}
119 <i class="icon-required-star" type="button"
120 [ngClass]="{'optional-attribute' : getValue(requiredInput,requiredInputs).required==false}"
121 aria-hidden="true"></i></label><br />
123 <div class="custom-control custom-radio custom-control-inline">
124 <input [value]="true"
125 [(ngModel)]="currentFuncion['inputs'][requiredInput]" type="radio"
126 id="{{'functionRadioInline' + i}}"
127 name="{{'functionRadioInline' + i}}" class="custom-control-input">
128 <label class="custom-control-label"
129 for="{{'functionRadioInline' + i}}">True</label>
131 <div class="custom-control custom-radio custom-control-inline">
132 <input [value]="false"
133 [(ngModel)]="currentFuncion['inputs'][requiredInput]" type="radio"
134 id="{{'functionRadioInline' + i+'-a'}}"
135 name="{{'functionRadioInline' + i}}" class="custom-control-input">
136 <label class="custom-control-label"
137 for="{{'functionRadioInline' + i+'-a'}}">False</label>
144 <!-- <div class="attribute-wrap">
150 <!-- Add Optional Attributes button -->
152 <div class="col p-0">
153 <div class="optional-attributes-menu">
154 <div class="dropdown">
155 <input class="dropdown-toggle" type="text">
156 <div class="dropdown-text">
157 <i class="icon-add-circle" type="button" aria-hidden="true"></i> Add
160 <ul class="dropdown-content save-blueprint">
161 <li *ngFor="let optionalInput of getKeys(OptionalInputs)">
162 <a (click)="addToInputs(optionalInput)">{{ optionalInput }}</a>
163 <i (click)="addToInputs(optionalInput)"
164 class="icon-add-circle float-right" type="button"
165 aria-hidden="true"></i>
174 <!-- Optional params -->
175 <div class="tab-pane fade" id="pills-profile" role="tabpanel"
176 aria-labelledby="pills-profile-tab">
177 <div class="attribute-wrap" *ngFor="let requiredOutput of getKeys(requiredOutputs)">
178 <div class="form-group">
179 <label for="exampleInputEmail1">{{ requiredOutput }} <i class="icon-required-star"
180 type="button" aria-hidden="true"></i></label>
181 <input [(ngModel)]="currentFuncion['outputs'][requiredOutput]" type=" text"
182 class="form-control">
191 <div class="card" [hidden]="finalTemplates.size == 0" class="accordion" id="accordionExample1">
192 <div class="card-header" id="headingTwo">
194 <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseTwo"
195 aria-expanded="true" aria-controls="collapseTwo">
200 <div id="collapseTwo" class="collapse show" aria-labelledby="headingTwo" data-parent="#accordionExample">
201 <div class="card-body">
203 <div class="col-12" *ngFor="let file of getKeys(finalTemplates)">
204 <a class="template-mapping-list">
206 <span *ngIf="getValue(file,templateAndMappingMap).isMapping">Mapping</span>
207 <span *ngIf="getValue(file,templateAndMappingMap).isTemplate">Template</span>
209 <a data-toggle="modal" (click)="fileToDelete = file"
210 data-target="#templateDeletionModal" class="accordion-delete deleteTemplate"
211 title="Delete Template"><i class="icon-delete-sm"></i></a>
221 <button class="btn btn-select-template m-auto" (click)="saveFunctionData()">Save</button>
224 <!--function - Select Template - Modal-->
225 <div class="modal fade" id="templateModal" tabindex="-1" role="dialog" aria-labelledby="templateModalTitle"
227 <div class="modal-dialog modal-dialog-scrollable" role="document">
228 <div class="modal-content">
229 <div class="modal-header">
230 <h5 class="modal-title" id="templateModalTitle">
231 Select Pre-defined Tempalte Name</h5>
232 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
233 <img src="assets/img/icon-close.svg" />
236 <div class="modal-body createAttributeTabs">
238 <div class="col-6" *ngFor="let file of getKeys(templateAndMappingMap)">
239 <a class="template-mapping-list float" [class.active]="selectedTemplates.has(file)">
240 <i *ngIf="selectedTemplates.has(file)" class="fa fa-check mx-1"></i>
241 <p (click)="setTemplate(file)">{{file}}</p>
242 <span *ngIf="getValue(file,templateAndMappingMap).isMapping">Mapping</span>
243 <span *ngIf="getValue(file,templateAndMappingMap).isTemplate">Template</span>
249 <div class="modal-footer">
250 <button type="button" class="btn btn-secondary" (click)="cancel()" data-dismiss="modal">Cancel</button>
251 <button type="button" class="btn btn-primary" data-dismiss="modal"
252 (click)="addTemplates()">Save</button>
258 <!-- Delete Modal -->
259 <div class="modal fade" id="templateDeletionModal" tabindex="-1" role="dialog"
260 aria-labelledby="templateDeletionModalLabel" aria-hidden="true">
261 <div class="modal-dialog" role="document">
262 <div class="modal-content">
263 <div class="modal-header">
264 <h5 class="modal-title" id="templateDeletionModalLabel">Delete Script</h5>
265 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
266 <img src="assets/img/icon-close.svg" />
269 <div class="modal-body">
270 <p>Are you sure you want to delete Template file
271 <span>{{fileToDelete}}</span>?
274 <div class="modal-footer">
275 <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
276 <button type="button" (click)="setTemplate(fileToDelete)" data-dismiss="modal"
277 class="btn btn-primary">Delete</button>