aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--catalog-ui/src/app/models/interfaceOperation.ts14
-rw-r--r--catalog-ui/src/app/ng2/pages/composition/interface-operatons/interface-operations.component.ts2
-rw-r--r--catalog-ui/src/app/ng2/pages/composition/interface-operatons/operation-creator/interface-operation-handler.component.html74
-rw-r--r--catalog-ui/src/app/ng2/pages/composition/interface-operatons/operation-creator/interface-operation-handler.component.ts38
-rw-r--r--catalog-ui/src/app/ng2/pages/interface-definition/interface-definition.page.component.ts27
-rw-r--r--catalog-ui/src/assets/languages/en_US.json4
6 files changed, 83 insertions, 76 deletions
diff --git a/catalog-ui/src/app/models/interfaceOperation.ts b/catalog-ui/src/app/models/interfaceOperation.ts
index 0768054df3..98a60405c2 100644
--- a/catalog-ui/src/app/models/interfaceOperation.ts
+++ b/catalog-ui/src/app/models/interfaceOperation.ts
@@ -123,8 +123,18 @@ export class InterfaceOperationModel extends BEInterfaceOperationModel {
this.description = operation.description;
this.operationType = operation.operationType;
this.uniqueId = operation.uniqueId;
- this.inputParams = operation.inputParams;
- this.implementation = operation.implementation;
+ if (operation.inputParams && operation.inputParams.listToscaDataDefinition) {
+ const listToscaDataDefinition: InputOperationParameter[] = [];
+ operation.inputParams.listToscaDataDefinition.forEach(inputOperation => {
+ listToscaDataDefinition.push(new InputOperationParameter(inputOperation));
+ });
+ this.inputParams = <IOperationParamsList> {
+ 'listToscaDataDefinition': listToscaDataDefinition
+ };
+ }
+ if (operation.implementation) {
+ this.implementation = new ArtifactModel(operation.implementation);
+ }
}
}
diff --git a/catalog-ui/src/app/ng2/pages/composition/interface-operatons/interface-operations.component.ts b/catalog-ui/src/app/ng2/pages/composition/interface-operatons/interface-operations.component.ts
index c0a883a1ed..6135c305f3 100644
--- a/catalog-ui/src/app/ng2/pages/composition/interface-operatons/interface-operations.component.ts
+++ b/catalog-ui/src/app/ng2/pages/composition/interface-operatons/interface-operations.component.ts
@@ -263,7 +263,7 @@ export class InterfaceOperationsComponent {
if (!isArtifactChecked) {
let artifactName = interfaceOperationHandlerComponentInstance.artifactName;
artifactName = artifactName === undefined ? '' : artifactName;
- operationUpdated.implementation = new ArtifactModel({'artifactName': artifactName} as ArtifactModel);
+ operationUpdated.implementation = new ArtifactModel({'artifactName': artifactName, 'artifactVersion': ''} as ArtifactModel);
}
this.topologyTemplateService.updateComponentInstanceInterfaceOperation(
this.componentMetaData.uniqueId,
diff --git a/catalog-ui/src/app/ng2/pages/composition/interface-operatons/operation-creator/interface-operation-handler.component.html b/catalog-ui/src/app/ng2/pages/composition/interface-operatons/operation-creator/interface-operation-handler.component.html
index 5f02bc2bf7..7cc8570423 100644
--- a/catalog-ui/src/app/ng2/pages/composition/interface-operatons/operation-creator/interface-operation-handler.component.html
+++ b/catalog-ui/src/app/ng2/pages/composition/interface-operatons/operation-creator/interface-operation-handler.component.html
@@ -65,56 +65,46 @@
<div class="group-with-border content-row">
<label class="occurrences-label"> {{ 'INTERFACE_OPERATION_IMPLEMENTATION' | translate}}</label>
<div class="form-item">
- <checkbox [label]="'Add Artifact To Implementation'"
- [(checked)]="enableAddArtifactImplementation"
- (checkedChange)="onMarkToAddArtifactToImplementation($event)"
- [disabled]=isViewOnly>
- </checkbox>
- </div>
- <div class="form-item" *ngIf="!enableAddArtifactImplementation">
<sdc-input
- label="{{'INTERFACE_OPERATION_IMPLEMENTATION_NAME' | translate}}"
+ label="{{'INTERFACE_OPERATION_IMPLEMENTATION_ARTIFACT_URI' | translate}}"
testId="interface-operation-implementation-name"
[(value)]="artifactName"
- (valueChange)="onImplementationNameChange($event)"
+ (valueChange)="onURIChange($event)"
[disabled]=isViewOnly>
</sdc-input>
</div>
-
- <div class="side-by-side" *ngIf="enableAddArtifactImplementation">
- <div class="form-item" *ngIf="toscaArtifactTypes">
- <sdc-dropdown
- label="{{ 'TOSCA_ARTIFACT_TYPE' | translate }}"
- testId="selectToscaArtifactType"
- [required]="true"
- [selectedOption]="toscaArtifactTypeSelected"
- placeHolder="{{toscaArtifactTypeSelected != undefined ? toscaArtifactTypeSelected : 'Select...'}}"
- (changed)="onSelectToscaArtifactType($event)"
- [options]="toscaArtifactTypes"
- [disabled]=isViewOnly>
- </sdc-dropdown>
- </div>
- <div class="form-item" *ngIf="toscaArtifactTypeSelected && enableAddArtifactImplementation">
- <sdc-input
- label="{{ 'INTERFACE_OPERATION_IMPLEMENTATION_FILE' | translate }}"
- data-tests-id="artifactFile"
- [(value)]="artifactName"
- [required]="true"
- (valueChange)="onArtifactFileChange($event)"
- [disabled]=isViewOnly>
- </sdc-input>
- </div>
- <div class="form-item">
- <sdc-input
- label="{{ 'ARTIFACT_VERSION' | translate }}"
- data-tests-id="artifactVersion"
- [(value)]="artifactVersion"
- (valueChange)="onArtifactVersionChange($event)"
- [disabled]=isViewOnly>
- </sdc-input>
- </div>
+ <br>
+ <div class="form-item">
+ <checkbox [label]="'ADD_ARTIFACT_DETAILS' | translate"
+ [(checked)]="enableAddArtifactImplementation"
+ (checkedChange)="onMarkToAddArtifactToImplementation($event)"
+ [disabled]=isViewOnly>
+ </checkbox>
+ </div>
+ <div class="form-item" *ngIf="toscaArtifactTypes && enableAddArtifactImplementation">
+ <br>
+ <sdc-dropdown
+ label="{{ 'TOSCA_ARTIFACT_TYPE' | translate }}"
+ testId="selectToscaArtifactType"
+ [required]="true"
+ [selectedOption]="toscaArtifactTypeSelected"
+ placeHolder="{{toscaArtifactTypeSelected != undefined ? toscaArtifactTypeSelected : 'Select...'}}"
+ (changed)="onSelectToscaArtifactType($event)"
+ [options]="toscaArtifactTypes"
+ [disabled]=isViewOnly>
+ </sdc-dropdown>
+ </div>
+ <div class="form-item" *ngIf="enableAddArtifactImplementation">
+ <sdc-input
+ label="{{ 'ARTIFACT_VERSION' | translate }}"
+ data-tests-id="artifactVersion"
+ [(value)]="artifactVersion"
+ (valueChange)="onArtifactVersionChange($event)"
+ [disabled]=isViewOnly>
+ </sdc-input>
</div>
<div class="form-item" *ngIf="toscaArtifactTypeSelected && enableAddArtifactImplementation">
+ <br>
<input-list
*ngIf="artifactTypeProperties && dataTypeMap"
[title]="'ARTIFACT_PROPERTY_LIST_TITLE' | translate"
diff --git a/catalog-ui/src/app/ng2/pages/composition/interface-operatons/operation-creator/interface-operation-handler.component.ts b/catalog-ui/src/app/ng2/pages/composition/interface-operatons/operation-creator/interface-operation-handler.component.ts
index fd745ff311..6bfb09da9d 100644
--- a/catalog-ui/src/app/ng2/pages/composition/interface-operatons/operation-creator/interface-operation-handler.component.ts
+++ b/catalog-ui/src/app/ng2/pages/composition/interface-operatons/operation-creator/interface-operation-handler.component.ts
@@ -96,7 +96,7 @@ export class InterfaceOperationHandlerComponent {
this.isViewOnly = this.input.isViewOnly;
this.isEdit = this.input.isEdit;
this.interfaceType = this.input.selectedInterface.type;
- this.operationToUpdate = this.input.selectedInterfaceOperation;
+ this.operationToUpdate = new InterfaceOperationModel(this.input.selectedInterfaceOperation);
this.operationToUpdate.interfaceId = this.input.selectedInterface.uniqueId;
this.operationToUpdate.interfaceType = this.input.selectedInterface.type;
this.modelName = this.input.modelName;
@@ -182,28 +182,25 @@ export class InterfaceOperationHandlerComponent {
this.operationToUpdate.description = value;
}
- onImplementationNameChange(value: any) {
- this.readonly = true
- if (value || value === '') {
+ onURIChange(value: string | undefined) {
+ if(!this.operationToUpdate.implementation){
let artifact = new ArtifactModel();
- artifact.artifactName = value;
this.operationToUpdate.implementation = artifact;
- this.enableAddArtifactImplementation = false;
- this.readonly = false;
}
+ this.operationToUpdate.implementation.artifactName = value ? value : '';
}
onPropertyValueChange = (propertyValue) => {
this.emitter.emit(propertyValue);
}
- onMarkToAddArtifactToImplementation(event: any) {
+ onMarkToAddArtifactToImplementation(event: boolean) {
if (!event) {
this.toscaArtifactTypeSelected = undefined;
this.artifactVersion = undefined;
if (this.operationToUpdate.implementation.artifactType) {
this.operationToUpdate.implementation.artifactName = '';
- this.artifactName = undefined;
+ this.operationToUpdate.implementation.artifactVersion = '';
}
this.toscaArtifactTypeProperties = undefined;
this.artifactTypeProperties = undefined;
@@ -218,8 +215,8 @@ export class InterfaceOperationHandlerComponent {
if (type) {
let toscaArtifactType = type.value;
let artifact = new ArtifactModel();
- this.artifactName = undefined;
- this.artifactVersion = undefined;
+ artifact.artifactName = this.operationToUpdate.implementation.artifactName;
+ artifact.artifactVersion = this.operationToUpdate.implementation.artifactVersion;
artifact.artifactType = toscaArtifactType.type;
artifact.properties = toscaArtifactType.properties;
this.toscaArtifactTypeProperties = artifact.properties;
@@ -231,17 +228,8 @@ export class InterfaceOperationHandlerComponent {
this.validateRequiredField();
}
- onArtifactFileChange(value: any) {
- if (value) {
- this.operationToUpdate.implementation.artifactName = value;
- }
- this.validateRequiredField();
- }
-
- onArtifactVersionChange(value: any) {
- if (value) {
- this.operationToUpdate.implementation.artifactVersion = value;
- }
+ onArtifactVersionChange(value: string | undefined) {
+ this.operationToUpdate.implementation.artifactVersion = value ? value : '';
}
onAddInput(inputOperationParameter: InputOperationParameter) {
@@ -287,9 +275,11 @@ export class InterfaceOperationHandlerComponent {
private getArtifactTypesSelected() {
if (this.operationToUpdate.implementation && this.operationToUpdate.implementation.artifactType) {
- this.artifactName = this.operationToUpdate.implementation.artifactName;
+ this.artifactName =
+ this.artifactName ? this.artifactName : this.operationToUpdate.implementation.artifactName;
this.toscaArtifactTypeSelected = this.operationToUpdate.implementation.artifactType;
- this.artifactVersion = this.operationToUpdate.implementation.artifactVersion;
+ this.artifactVersion =
+ this.artifactVersion ? this.artifactVersion : this.operationToUpdate.implementation.artifactVersion;
this.toscaArtifactTypeProperties = this.operationToUpdate.implementation.properties;
this.artifactTypeProperties = this.convertArtifactsPropertiesToInput();
this.enableAddArtifactImplementation = true;
diff --git a/catalog-ui/src/app/ng2/pages/interface-definition/interface-definition.page.component.ts b/catalog-ui/src/app/ng2/pages/interface-definition/interface-definition.page.component.ts
index 35490b183c..5372fc919d 100644
--- a/catalog-ui/src/app/ng2/pages/interface-definition/interface-definition.page.component.ts
+++ b/catalog-ui/src/app/ng2/pages/interface-definition/interface-definition.page.component.ts
@@ -29,6 +29,7 @@ import {ModalComponent} from 'app/ng2/components/ui/modal/modal.component';
import {ModalService} from 'app/ng2/services/modal.service';
import {
+ ArtifactModel,
ButtonModel,
CapabilitiesGroup,
InputBEModel,
@@ -62,7 +63,6 @@ export class UIOperationModel extends OperationModel {
constructor(operation: OperationModel) {
super(operation);
-
if (!operation.description) {
this.description = '';
}
@@ -263,7 +263,15 @@ export class InterfaceDefinitionComponent {
}
private updateOperation = (): void => {
- let operationToUpdate = this.modalInstance.instance.dynamicContent.instance.operationToUpdate;
+ this.modalServiceNg2.currentModal.instance.dynamicContent.instance.isLoading = true;
+ const interfaceOperationHandlerComponentInstance: InterfaceOperationHandlerComponent = this.modalInstance.instance.dynamicContent.instance;
+ const operationToUpdate = this.modalInstance.instance.dynamicContent.instance.operationToUpdate;
+ const isArtifactChecked = interfaceOperationHandlerComponentInstance.enableAddArtifactImplementation;
+ if (!isArtifactChecked) {
+ const artifactName = interfaceOperationHandlerComponentInstance.artifactName ?
+ interfaceOperationHandlerComponentInstance.artifactName : '';
+ operationToUpdate.implementation = new ArtifactModel({'artifactName': artifactName, 'artifactVersion': ''} as ArtifactModel);
+ }
this.componentServiceNg2.updateComponentInterfaceOperation(this.component.uniqueId, operationToUpdate)
.subscribe((newOperation: InterfaceOperationModel) => {
let oldOpIndex;
@@ -276,14 +284,19 @@ export class InterfaceDefinitionComponent {
}
});
});
- newOperation = this.handleEnableAddArtifactImplementation(newOperation);
oldInterf.operations.splice(oldOpIndex, 1);
oldInterf.operations.push(new InterfaceOperationModel(newOperation));
+ }, error => {
+ this.modalServiceNg2.currentModal.instance.dynamicContent.instance.isLoading = false;
+ }, () => {
+ this.sortInterfaces();
+ this.modalServiceNg2.currentModal.instance.dynamicContent.instance.isLoading = false;
+ this.modalServiceNg2.closeCurrentModal();
});
- this.modalServiceNg2.closeCurrentModal();
}
private createOperationCallback(): void {
+ this.modalServiceNg2.currentModal.instance.dynamicContent.instance.isLoading = true;
const operationToUpdate = this.modalInstance.instance.dynamicContent.instance.operationToUpdate;
console.log('createOperationCallback', operationToUpdate);
console.log('this.component', this.component);
@@ -300,8 +313,12 @@ export class InterfaceDefinitionComponent {
uiInterfaceModel.operations.push(new UIOperationModel(new OperationModel(newOperation)));
this.interfaces.push(uiInterfaceModel);
}
+ }, error => {
+ this.modalServiceNg2.currentModal.instance.dynamicContent.instance.isLoading = false;
+ }, () => {
+ this.modalServiceNg2.currentModal.instance.dynamicContent.instance.isLoading = false;
+ this.modalServiceNg2.closeCurrentModal();
});
- this.modalServiceNg2.closeCurrentModal();
}
private handleEnableAddArtifactImplementation = (newOperation: InterfaceOperationModel): InterfaceOperationModel => {
diff --git a/catalog-ui/src/assets/languages/en_US.json b/catalog-ui/src/assets/languages/en_US.json
index 7225a1d11f..238e09958f 100644
--- a/catalog-ui/src/assets/languages/en_US.json
+++ b/catalog-ui/src/assets/languages/en_US.json
@@ -463,8 +463,8 @@
"ARTIFACT_PROPERTY_LIST_EMPTY": "The artifact type has no properties",
"ARTIFACT_PROPERTY_LIST_TITLE": "Artifact properties",
"INTERFACE_OPERATION_IMPLEMENTATION": "Implementation",
- "INTERFACE_OPERATION_IMPLEMENTATION_NAME": "Name",
- "INTERFACE_OPERATION_IMPLEMENTATION_FILE": "File",
+ "INTERFACE_OPERATION_IMPLEMENTATION_ARTIFACT_URI": "Artifact File URI",
+ "ADD_ARTIFACT_DETAILS": "Add Artifact Details",
"ADD_INTERFACE_OPERATION_IMPLEMENTATION_ARTIFACT": "Enable add Artifact To Implementation",
"=========== PLUGIN NOT CONNECTED ===========": "",
"PLUGIN_NOT_CONNECTED_ERROR_MAIN": "The \"{{pluginName}}\" plugin is currently unavailable.",