2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2021 Nordix Foundation. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 <div class="operation-handler">
22 <loader [display]="isLoading" [size]="'large'" [relative]="true"></loader>
24 <form class="w-sdc-form">
26 <div class="side-by-side">
27 <div class="form-item">
29 label="{{ 'OPERATION_INTERFACE_TYPE' | translate }}"
30 [(value)]="interfaceType"
35 <div class="form-item">
37 label="{{ 'OPERATION_NAME' | translate }}"
38 [(value)]="operationToUpdate.name"
44 <div class="form-item">
46 label="{{'OPERATION_DESCRIPTION' | translate}}"
47 [(value)]="operationToUpdate.description"
48 testId="interface-operation-description"
49 (valueChange)="onDescriptionChange($event)">
53 <div class="group-with-border content-row">
54 <label class="occurrences-label"> {{ 'INTERFACE_OPERATION_IMPLEMENTATION' | translate}}</label>
55 <div class="form-item">
56 <checkbox [label]="'Add Artifact To Implementation'"
57 [(checked)]="enableAddArtifactImplementation"
58 (checkedChange)="onMarkToAddArtifactToImplementation($event)">
61 <div class="form-item" *ngIf="!enableAddArtifactImplementation">
63 label="{{'INTERFACE_OPERATION_IMPLEMENTATION_NAME' | translate}}"
64 testId="interface-operation-implementation-name"
65 [(value)]="artifactName"
66 (valueChange)="onImplementationNameChange($event)">
70 <div class="side-by-side" *ngIf="enableAddArtifactImplementation">
71 <div class="form-item" *ngIf="toscaArtifactTypes">
73 label="{{ 'TOSCA_ARTIFACT_TYPE' | translate }}"
74 testId="selectToscaArtifactType"
76 [selectedOption]="toscaArtifactTypeSelected"
77 placeHolder="{{toscaArtifactTypeSelected != undefined ? toscaArtifactTypeSelected : 'Select...'}}"
78 (changed)="onSelectToscaArtifactType($event)"
79 [options]="toscaArtifactTypes">
82 <div class="form-item" *ngIf="toscaArtifactTypeSelected && enableAddArtifactImplementation">
84 label="{{ 'INTERFACE_OPERATION_IMPLEMENTATION_FILE' | translate }}"
85 data-tests-id="artifactFile"
86 [(value)]="artifactName"
88 (valueChange)="onArtifactFileChange($event)">
91 <div class="form-item">
93 label="{{ 'ARTIFACT_VERSION' | translate }}"
94 data-tests-id="artifactVersion"
95 [(value)]="artifactVersion"
96 (valueChange)="onArtifactVersionChange($event)">
100 <div class="form-item" *ngIf="toscaArtifactTypeSelected && enableAddArtifactImplementation">
101 <label class="sdc-input__label">{{ 'ENTITY_VIEWER_PROPERTIES_TAB' | translate }}</label>
102 <div class="generic-table">
103 <div class="header-row table-row">
104 <span class="cell header-cell field-input-name">{{ 'IMPLEMENTATION_ARTIFACT_PROPERTY_NAME' | translate }}</span>
105 <span class="cell header-cell field-input-type">{{ 'IMPLEMENTATION_ARTIFACT_PROPERTY_TYPE' | translate }}</span>
106 <span class="cell header-cell field-input-value">{{ 'IMPLEMENTATION_ARTIFACT_PROPERTY_VALUE' | translate }}</span>
109 <div class="empty-msg data-row" *ngIf="!toscaArtifactTypeProperties.length">
110 <div>{{ 'EMPTY_PARAM_TABLE_HEADER' | translate }}</div>
113 *ngFor="let property of toscaArtifactTypeProperties"
115 [artifactProperty]="property"
116 [isPropertyValueValid]="propertyValueValidation">
117 </property-param-row>
122 <div class="separator-buttons">
123 <tab tabTitle="Inputs"></tab>
124 <a class="add-param-link add-btn"
125 [ngClass]="{'disabled': readonly}"
126 (click)="onAddInput()">{{'OPERATION_ADD_INPUT' | translate}}
130 <div class="generic-table">
131 <div class="header-row table-row">
132 <span class="cell header-cell field-input-name">{{ 'OPERATION_PARAM_NAME' | translate }}</span>
133 <span class="cell header-cell field-input-value">{{ 'OPERATION_INPUT_VALUE' | translate }}</span>
134 <span class="cell header-cell remove">●●●</span>
136 <div class="empty-msg data-row" *ngIf="!inputs.length">
137 <div>{{ 'OPERATION_INPUT_EMPTY' | translate }}</div>
140 *ngFor="let inputParameter of inputs"
142 [input]="inputParameter"
143 [onRemoveInput]="onRemoveInput"
144 [validityChanged]="validityChanged">