summaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/ng2/pages/composition/palette/services/palette.service.ts
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-ui/src/app/ng2/pages/composition/palette/services/palette.service.ts')
-rw-r--r--catalog-ui/src/app/ng2/pages/composition/palette/services/palette.service.ts38
1 files changed, 35 insertions, 3 deletions
diff --git a/catalog-ui/src/app/ng2/pages/composition/palette/services/palette.service.ts b/catalog-ui/src/app/ng2/pages/composition/palette/services/palette.service.ts
index 7587c5206f..d1d48507a5 100644
--- a/catalog-ui/src/app/ng2/pages/composition/palette/services/palette.service.ts
+++ b/catalog-ui/src/app/ng2/pages/composition/palette/services/palette.service.ts
@@ -3,6 +3,7 @@ import { Inject, Injectable } from '@angular/core';
import { LeftPaletteComponent, LeftPaletteMetadataTypes } from 'app/models/components/displayComponent';
import { GroupMetadata } from 'app/models/group-metadata';
import { PolicyMetadata } from 'app/models/policy-metadata';
+import { IComponentMetadata } from 'app/models/component-metadata';
import { SdcConfigToken } from 'app/ng2/config/sdc-config.config';
import { ISdcConfig } from 'app/ng2/config/sdc-config.config.factory';
import { WorkspaceService } from 'app/ng2/pages/workspace/workspace.service';
@@ -75,10 +76,20 @@ export class CompositionPaletteService {
private combineResoponses(resInstances: object, resGrouops: object, resPolicies: object) {
const retValObject = {};
- // Generic will be the 1st category in the left Pallete
+
if (resInstances['Generic']) {
- retValObject['Generic'] = resInstances['Generic'];
- }
+ if (this.isSubstitutionForNestedServices()) {
+ const serviceGroup = this.createServiceGroup(resInstances);
+ if (serviceGroup) {
+ retValObject['Service'] = serviceGroup;
+ }
+ }
+ else {
+ // Generic will be the 1st category in the left Pallete
+ retValObject['Generic'] = resInstances['Generic'];
+ }
+ }
+
// Add all other categories
for (const category in resInstances) {
if (category === 'Generic') {
@@ -95,4 +106,25 @@ export class CompositionPaletteService {
return retValObject;
}
+
+ private isSubstitutionForNestedServices(): boolean {
+ return this.workspaceService.metadata.categories[0].useServiceSubstitutionForNestedServices;
+ }
+
+ private createServiceGroup(resInstances: object): object {
+ const servicesList = resInstances['Generic']['Generic'];
+ if (Array.isArray(servicesList) && servicesList.length > 0) {
+ delete resInstances['Generic']['Generic'];
+ return servicesList.reduce(function (map, component) {
+ if (map[component.categories[0].name]) {
+ map[component.categories[0].name].push(component);
+ } else {
+ map[component.categories[0].name] = [component];
+ }
+ return map;
+ }, {});
+ }
+ return null;
+ }
+
}