+ onSelectInterface(dropDownOption: DropDownOption) {
+ if (dropDownOption) {
+ this.setInterfaceType(dropDownOption);
+ } else {
+ this.setInterfaceType(undefined);
+ }
+ this.setInterfaceOperation(undefined);
+ this.interfaceOperationDropDown.selectOption({} as IDropDownOption);
+ this.loadInterfaceTypeOperations();
+ }
+
+ onSelectOperation(dropDownOption: DropDownOption) {
+ if (this.selectedInterfaceType && dropDownOption) {
+ this.setInterfaceOperation(dropDownOption);
+ }
+ }
+
+ private setInterfaceType(dropDownOption: DropDownOption) {
+ this.selectedInterfaceType = dropDownOption ? dropDownOption : undefined;
+ this.interfaceType = dropDownOption ? dropDownOption.value : undefined;
+ this.operationToUpdate.interfaceType = dropDownOption ? dropDownOption.value : undefined;
+ this.operationToUpdate.interfaceId = dropDownOption ? dropDownOption.value : undefined;
+ }
+
+ private setInterfaceOperation(dropDownOption: DropDownOption) {
+ this.operationToUpdate.name = dropDownOption ? dropDownOption.value : undefined;
+ this.operationToUpdate.operationType = dropDownOption ? dropDownOption.value : undefined;
+ this.selectedInterfaceOperation = dropDownOption ? dropDownOption : undefined;
+ }
+
+ getExistingFilters(key: string) {
+ if (this.operationToUpdate.milestones[key] && this.operationToUpdate.milestones[key].filters) {
+ return this.operationToUpdate.milestones[key].filters
+ }
+ return undefined;
+ }
+
+ filtersChangeEvent($event: any, milestone: string) {
+ if ($event.valid) {
+ if (this.invalidMilestones.indexOf(milestone) > -1) {
+ this.invalidMilestones.splice(this.invalidMilestones.indexOf(milestone), 1);
+ this.validMilestoneFilters = this.invalidMilestones.length < 1;
+ this.validMilestoneActivities = this.invalidMilestones.length < 1;
+ }
+ let operationMilestone = this.operationToUpdate.milestones[milestone];
+ if (!operationMilestone) {
+ operationMilestone = new Milestone();
+ }
+ operationMilestone.filters = new class implements IFilterParameterList {
+ listToscaDataDefinition: Array<FilterParameter> = [];
+ }
+ let milestoneFilters = $event.filters;
+ for (let filter of milestoneFilters) {
+ let filterParameter = new FilterParameter();
+ filterParameter.constraint = filter.constraint;
+ filterParameter.name = filter.name;
+ filterParameter.filterValue = filter.filterValue;
+ filterParameter.toscaFunction = filter.toscaFunction;
+ operationMilestone.filters.listToscaDataDefinition.push(filterParameter);
+ }
+ this.operationToUpdate.milestones[milestone] = operationMilestone;
+ } else {
+ if (this.invalidMilestones.indexOf(milestone) == -1) {
+ this.invalidMilestones.push(milestone);
+ }
+ this.validMilestoneFilters = false;
+ this.validMilestoneActivities = false;
+ }
+ }
+
+ getExistingActivities(key: string) {
+ if (
+ this.operationToUpdate.milestones[key]
+ && this.operationToUpdate.milestones[key].activities
+ && this.operationToUpdate.milestones[key].activities.listToscaDataDefinition
+ && this.operationToUpdate.milestones[key].activities.listToscaDataDefinition.length > 0
+ ) {
+ return this.operationToUpdate.milestones[key].activities
+ }
+ return undefined;
+ }
+
+ activitiesChangeEvent($event: any, milestone: string) {
+ if ($event.valid) {
+ if (this.invalidMilestones.indexOf(milestone) > -1) {
+ this.invalidMilestones.splice(this.invalidMilestones.indexOf(milestone), 1);
+ this.validMilestoneActivities = this.invalidMilestones.length < 1;
+ this.validMilestoneFilters = this.invalidMilestones.length < 1;
+ }
+ let operationMilestone = this.operationToUpdate.milestones[milestone];
+ if (!operationMilestone) {
+ operationMilestone = new Milestone();
+ }
+ operationMilestone.activities = new class implements IActivityParameterList {
+ listToscaDataDefinition: Array<ActivityParameter> = [];
+ }
+ let milestoneActivities = $event.activities;
+ for (let activity of milestoneActivities) {
+ let activityParameter = new ActivityParameter();
+ activityParameter.type = activity.type;
+ activityParameter.workflow = activity.workflow;
+ activityParameter.inputs = activity.inputs;
+ operationMilestone.activities.listToscaDataDefinition.push(activityParameter);
+ }
+ this.operationToUpdate.milestones[milestone] = operationMilestone;
+ } else {
+ if (this.invalidMilestones.indexOf(milestone) == -1) {
+ this.invalidMilestones.push(milestone);
+ }
+ this.validMilestoneActivities = false;
+ this.validMilestoneFilters = false;
+ }
+ }