diff options
Diffstat (limited to 'vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/sharedControlles')
2 files changed, 42 insertions, 1 deletions
diff --git a/vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/sharedControlles/shared.controllers.service.spec.ts b/vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/sharedControlles/shared.controllers.service.spec.ts index 58ee33b53..f456a747a 100644 --- a/vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/sharedControlles/shared.controllers.service.spec.ts +++ b/vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/sharedControlles/shared.controllers.service.spec.ts @@ -11,7 +11,6 @@ import {FormControlModel, ValidatorOptions} from "../../../../models/formControl import {ControlGeneratorUtil} from "../control.generator.util.service"; - describe('Shared Controllers Service', () => { let injector; let service: SharedControllersService; @@ -118,6 +117,18 @@ describe('Shared Controllers Service', () => { const legacyRegionControl: FormControlModel = service.getLegacyRegion(instance); expect(legacyRegionControl.isVisible).toBeFalsy(); }); + + test('multiSelectFlag is not activated should generate platform multi select control with 1 as limitSelection', ()=>{ + const control = service.getPlatformMultiselectControl(null, [],false); + expect(control.dataTestId).toEqual('multi-selectPlatform'); + expect(control.limitSelection).toEqual(1); + }); + + test('multiSelectFlag is activated should generate platform multi select control with 1000 as limitSelection', ()=>{ + const control = service.getPlatformMultiselectControl(null, [],true); + expect(control.dataTestId).toEqual('multi-selectPlatform'); + expect(control.limitSelection).toEqual(1000); + }); }); class MockAppStore<T> { diff --git a/vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/sharedControlles/shared.controllers.service.ts b/vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/sharedControlles/shared.controllers.service.ts index 4b567328d..c41c6c282 100644 --- a/vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/sharedControlles/shared.controllers.service.ts +++ b/vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/sharedControlles/shared.controllers.service.ts @@ -18,6 +18,8 @@ import {InputFormControl} from "../../../../models/formControlModels/inputFormCo import {NodeModel} from "../../../../models/nodeModel"; import {LcpRegion} from "../../../../models/lcpRegion"; import {Tenant} from "../../../../models/tenant"; +import {MultiselectFormControl} from "../../../../models/formControlModels/multiselectFormControl.model"; +import {MultiSelectItem} from "../../../formControls/component/multiselect/multiselect.model"; @Injectable() export class SharedControllersService { @@ -284,4 +286,32 @@ export class SharedControllersService { formControlModel.value = instance ? instance.instanceName : null; return formControlModel; } + + getPlatformMultiselectControl = (instance: any, controls: FormControlModel[], isMultiSelected: boolean) : MultiselectFormControl => { + return new MultiselectFormControl({ + type: FormControlType.MULTI_SELECT, + controlName: 'platformName', + displayName: 'Platform', + dataTestId: 'multi-selectPlatform', + selectedFieldName: 'name', + ngValue: 'name', + placeHolder: 'Select Platform', + isDisabled: false, + name: "platform", + value: instance ? instance.platformName : '', + limitSelection: isMultiSelected ? 1000 : 1, + validations: [new ValidatorModel(ValidatorOptions.required, 'is required')], + onInitSelectedField: ['platformList'], + onInit: this._basicControlGenerator.getSubscribeInitResult.bind(null, this._aaiService.getCategoryParameters), + onChange: (param: MultiSelectItem[], form: FormGroup) => { + form.controls['platformName'].setValue(param.map((multiSelectItem: MultiSelectItem) => { + return multiSelectItem.itemName + }).join(',')); + }, + convertOriginalDataToArray: (value?: string) => { + if (_.isNil(value)) return []; + return value.split(','); + } + }); + } } |