summaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/view-models
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-ui/src/app/view-models')
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts43
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html2
2 files changed, 44 insertions, 1 deletions
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts b/catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts
index 635fc54a27..b4529700cf 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts
+++ b/catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts
@@ -65,6 +65,7 @@ export interface IGeneralScope extends IWorkspaceViewModelScope {
browseFileLabel:string;
componentCategories:componentCategories;
instantiationTypes:Array<instantiationType>;
+ isHiddenCategorySelected: boolean;
save():Promise<any>;
revert():void;
@@ -344,6 +345,39 @@ export class GeneralViewModel {
this.$scope.updateMenuComponentName(this.$scope.component.name);
};
+ //Find if a category is applicable for External API or not
+ private isHiddenCategory = (category: string) => {
+ let items: Array<any> = new Array<any>();
+ items = this.$scope.sdcMenu.component_workspace_menu_option[this.$scope.component.getComponentSubType()];
+ for(let index = 0; index < items.length; ++index) {
+ if ((items[index].hiddenCategories && items[index].hiddenCategories.indexOf(category) > -1)) {
+ return true;
+ }
+ }
+ return false;
+ };
+
+ private filteredCategories = () => {
+ let tempCategories: Array<IMainCategory> = new Array<IMainCategory>();
+ this.$scope.categories.forEach((category) => {
+ if (!this.isHiddenCategory(category.name)
+ && this.$scope.isCreateMode()
+ ) {
+ tempCategories.push(category);
+ } else if ((ComponentState.NOT_CERTIFIED_CHECKOUT === this.$scope.component.lifecycleState)
+ && !this.isHiddenCategory(this.$scope.component.selectedCategory)
+ && !this.isHiddenCategory(category.name)
+ ) {
+ tempCategories.push(category);
+ } else if ((ComponentState.NOT_CERTIFIED_CHECKOUT === this.$scope.component.lifecycleState)
+ && this.isHiddenCategory(this.$scope.component.selectedCategory)) {
+ tempCategories.push(category);
+ }
+ });
+
+ return tempCategories;
+ };
+
private initScopeMethods = ():void => {
this.$scope.initCategoreis = ():void => {
@@ -353,6 +387,14 @@ export class GeneralViewModel {
}
if (this.$scope.componentType === ComponentType.SERVICE) {
this.$scope.categories = this.cacheService.get('serviceCategories');
+
+ //Remove categories from dropdown applicable for External API
+ if (this.$scope.isCreateMode() || (ComponentState.NOT_CERTIFIED_CHECKOUT === this.$scope.component.lifecycleState)) {
+ this.$scope.categories = this.filteredCategories();
+ //Flag to disbale category if service is created through External API
+ this.$scope.isHiddenCategorySelected = this.isHiddenCategory(this.$scope.component.selectedCategory);
+ }
+
}
};
@@ -582,3 +624,4 @@ export class GeneralViewModel {
};
}
+
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html b/catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html
index ee9b58d4e3..07f1e4d6ed 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html
+++ b/catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html
@@ -89,7 +89,7 @@
name="category"
data-ng-class="{'view-mode': isViewMode()}"
data-ng-change="onCategoryChange()"
- data-ng-disabled="component.isAlreadyCertified() || (component.isCsarComponent() && component.selectedCategory && component.selectedCategory!=='')"
+ data-ng-disabled="component.isAlreadyCertified() || (component.isCsarComponent() && component.selectedCategory && component.selectedCategory!=='') || isHiddenCategorySelected"
data-ng-model="componentCategories.selectedCategory"
data-tests-id="selectGeneralCategory"
>