summaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.component.ts
diff options
context:
space:
mode:
authorIttay Stern <ittay.stern@att.com>2018-08-29 17:01:32 +0300
committerIttay Stern <ittay.stern@att.com>2019-02-18 18:35:30 +0200
commit6f900cc45d7dd7f97430812b86b5c1d1693c8ae3 (patch)
tree936005c364dc5a7264d6304d4777c3d83494db22 /vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.component.ts
parent67d99f816cc583643c35193197594cf78d8ce60a (diff)
merge from ecomp a88f0072 - Modern UI
Issue-ID: VID-378 Change-Id: Ibcb23dd27f550cf32ce2fe0239f0f496ae014ff6 Signed-off-by: Ittay Stern <ittay.stern@att.com>
Diffstat (limited to 'vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.component.ts')
-rw-r--r--vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.component.ts238
1 files changed, 0 insertions, 238 deletions
diff --git a/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.component.ts b/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.component.ts
deleted file mode 100644
index b6a2e3967..000000000
--- a/vid-webpack-master/src/app/components/service-popup/service-instance-details/service-instance-details.component.ts
+++ /dev/null
@@ -1,238 +0,0 @@
-import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild} from '@angular/core';
-import {FormControl, FormGroup, Validators} from "@angular/forms";
-import {ServicePopupDataModel} from './servicePopupDataModel';
-import {AaiService} from '../../../services/aaiService/aai.service';
-import {updateServiceInstance} from "../../../service.actions";
-import * as _ from 'lodash';
-import {ServiceModel} from "../../../shared/models/serviceModel";
-import {ModelInfo} from "../../../shared/models/modelInfo";
-import {loadProductFamiliesAction} from "../../../services/aaiService/aai.actions";
-import {Observable} from "rxjs/Observable";
-import {SelectOptionInterface} from "../../../shared/models/selectOption";
-import {NgRedux, select} from "@angular-redux/store";
-import {AppState} from "../../../store/reducers";
-import {isNullOrUndefined} from 'util';
-import {ServiceInstanceDetailsService} from './service-instance-details.service';
-import {NumbersLettersUnderscoreValidator} from '../../../shared/components/validators/numbersLettersUnderscore/numbersLettersUnderscore.validator';
-import {DefaultDataGeneratorService} from '../../../shared/services/defaultDataServiceGenerator/default.data.generator.service';
-
-
-@Component({
- selector: 'service-instance-details',
- templateUrl: 'service-instance-details.html',
- styleUrls: ['service-instance-details.scss'],
- providers: [AaiService]
-})
-
-export class ServiceInstanceDetailsComponent implements OnInit, OnChanges {
- ngOnChanges(changes: SimpleChanges): void {
- if (changes["serviceInstance"] !== undefined && changes["serviceInstance"].currentValue !== changes["serviceInstance"].previousValue && changes["serviceInstance"].currentValue !== null) {
- this.oldServiceInstance = Object.assign({}, this.serviceInstance);
- }
- }
- _serviceModel: ServiceModel;
- @Input () serviceInstance: any;
- @Input () dynamicInputs;
- @Input () servicesQty: number;
- @Input ()
- set serviceModel(serviceModel: ServiceModel) {
- this._serviceModel = serviceModel;
- this.updateFormGroupControlsWithServiceModel(serviceModel);
- }
- @ViewChild('serviceForm') serviceForm: 'ServiceForm';
- @Output() closePopup : EventEmitter<any> = new EventEmitter<any>();
- @Output() onDataChanged: EventEmitter<any> = new EventEmitter<any>();
- oldServiceInstance = {};
-
- //todo: implement Epics and use @select to fetch the rest of the form's data as done with productFamilies.
- //that way we can loose the updateFormData function and the subscription to store in the constructor.
- @select(['service','productFamilies'])
- readonly productFamilies : Observable<SelectOptionInterface[]>;
- serviceDetails:any = {
-
- };
- servicePopupDataModel: ServicePopupDataModel = new ServicePopupDataModel();
- serviceInstanceDetailsFormGroup: FormGroup;
- serviceInstanceDetailsService : ServiceInstanceDetailsService;
-
- constructor(private _aaiService: AaiService, private store: NgRedux<AppState>, private _serviceInstanceDetailsService : ServiceInstanceDetailsService, private _defaultDataGeneratorService : DefaultDataGeneratorService) {
- this.store.subscribe(() => {this.updateFormData()});
- this.serviceInstanceDetailsService = this._serviceInstanceDetailsService;
- this.serviceInstanceDetailsFormGroup = this.createFormGroup();
-
- this.serviceInstanceDetailsFormGroup.valueChanges.subscribe(()=> {
- this.onDataChanged.next();
- })
- }
-
- ngOnInit() {
- this.subscribeToFormChanges();
- this._aaiService.getSubscribers().subscribe();
- this._aaiService.getCategoryParameters(null).subscribe();
- this._aaiService.getAicZones().subscribe();
- this.store.dispatch(loadProductFamiliesAction());
- }
-
-
- createFormGroup(): FormGroup {
- const formGroup = new FormGroup({
- globalSubscriberId: new FormControl(
- Validators.compose([Validators.required])
- ),
- productFamilyId: new FormControl(),
- subscriptionServiceType: new FormControl({value: null, disabled: true}, Validators.compose([Validators.required])),
- lcpCloudRegionId: new FormControl({value: null, disabled: true}, Validators.compose([Validators.required])),
- tenantId: new FormControl({value: null, disabled: true}, Validators.compose([Validators.required])),
- aicZoneId: new FormControl(),
- projectName: new FormControl(),
- owningEntityId: new FormControl(Validators.compose([Validators.required])),
- rollbackOnFailure: new FormControl(null, Validators.required),
- });
-
- return formGroup;
- }
-
- updateFormGroupControlsWithServiceModel(serviceModel: ServiceModel) {
- this.serviceInstanceDetailsFormGroup.markAsUntouched();
-
- if (serviceModel) {
- this.serviceDetails.isUserProvidedNaming = serviceModel.isUserProvidedNaming;
- if (serviceModel.isUserProvidedNaming) {
- this.serviceInstanceDetailsFormGroup.addControl('instanceName', new FormControl('', Validators.compose([Validators.required, NumbersLettersUnderscoreValidator.valid])))
- }else{
- this.serviceInstanceDetailsFormGroup.removeControl('instanceName');
- }
-
- if (serviceModel.isMultiStepDesign) {
- this.serviceInstanceDetailsFormGroup.addControl('pause', new FormControl(true));
- }else{
- this.serviceInstanceDetailsFormGroup.removeControl('pause');
- }
- }
- }
-
- updateFormData() {
- let service = this.store.getState().service;
- this.servicePopupDataModel.subscribers = service.subscribers;
- this.servicePopupDataModel.serviceTypes = service.serviceTypes[this.servicePopupDataModel.globalCustomerId];
- this.servicePopupDataModel.lcpRegions = service.lcpRegionsAndTenants.lcpRegionList;
- if (this.serviceInstance) {
- this.servicePopupDataModel.tenants = service.lcpRegionsAndTenants.lcpRegionsTenantsMap[this.serviceInstance.lcpCloudRegionId];
- }
- this.servicePopupDataModel.aicZones = service.aicZones;
- this.servicePopupDataModel.owningEntities = _.get(service.categoryParameters, 'owningEntityList');
- this.servicePopupDataModel.projects = _.get(service.categoryParameters, 'projectList');
- this.onDataChanged.next();
- }
-
- subscribeToFormChanges(): void {
- this.serviceInstanceDetailsFormGroup.get('globalSubscriberId').valueChanges.subscribe(val => {
- this.updateServiceTypes(val);
- this.setDisabledState(val, 'subscriptionServiceType');
-
- });
- this.serviceInstanceDetailsFormGroup.get('subscriptionServiceType').valueChanges.subscribe(val => {
- this.getTenants(val);
- this.setDisabledState(val, 'lcpCloudRegionId');
-
- });
- this.serviceInstanceDetailsFormGroup.get('lcpCloudRegionId').valueChanges.subscribe(val => {
- this.setDisabledState(val, 'tenantId');
- this.updateTenantList(val);
-
- });
-
- this.serviceInstanceDetailsFormGroup.get('tenantId').valueChanges.subscribe(val => {
- this.serviceDetails.tenantName = this.getNameFromListById(this.servicePopupDataModel.tenants, val);
- this.onDataChanged.next();
- });
-
- this.serviceInstanceDetailsFormGroup.get('aicZoneId').valueChanges.subscribe(val => {
- this.serviceDetails.aicZoneName = this.getNameFromListById(this.servicePopupDataModel.aicZones, val);
- this.onDataChanged.next();
- });
- }
-
- getNameFromListById(list, id:string ) {
- if(list && id) {
- let filterItem = list.filter(item => {
- return item.id == id;
- })
- return filterItem && filterItem[0].name;
- }
- return null;
- }
-
- setDisabledState(val, field: string): void {
- if(val) {
- this.serviceInstanceDetailsFormGroup.controls[field].enable();
- } else {
- this.serviceInstanceDetailsFormGroup.controls[field].disable();
- }
- }
-
- isShowingNotificationArea(): boolean {
- return this.servicesQty > 1;
- }
-
- updateServiceTypes(subscriberId) {
- if (subscriberId) {
- this.servicePopupDataModel.globalCustomerId = subscriberId;
- this._aaiService.getServiceTypes(subscriberId).subscribe(() => {
- this.updateFormData();
- this.onDataChanged.next();
- }, (error) => {
-
- });
- }
- }
-
- updateTenantList(cloudRegionId) {
- this.servicePopupDataModel.tenants = this.store.getState().service.lcpRegionsAndTenants.lcpRegionsTenantsMap[cloudRegionId];
- this.onDataChanged.next();
- }
-
- getTenants(serviceType) {
- if (serviceType) {
- this._aaiService.getLcpRegionsAndTenants(this.servicePopupDataModel.globalCustomerId, serviceType).subscribe(()=>{
- this.onDataChanged.next();
- });
- }
- }
-
- onSubmit(formValues): void {
- formValues.bulkSize = this.servicesQty;
- let dynamicFields: { [dynamicField: string] : string; };
- dynamicFields = {};
- this.dynamicInputs.map(function (x) {
- let dynamicField: string = x.id;
- dynamicFields[dynamicField] = formValues[dynamicField];
- delete formValues[dynamicField];
- });
- formValues.instanceParams = [];
- formValues.instanceParams.push(dynamicFields);
- formValues.modelInfo = new ModelInfo(this._serviceModel);
- Object.assign(formValues, this.serviceDetails);
- this.store.dispatch(updateServiceInstance(formValues, this._serviceModel.uuid));
- if (this.store.getState().global.flags['FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD']){
- this._defaultDataGeneratorService.updateReduxOnFirstSet(this._serviceModel.uuid,formValues);
- }
- window.parent.postMessage( {
- eventId: 'submitIframe',
- data: {
- serviceModelId: this._serviceModel.uuid
- }
- }, "*");
- this.closePopup.emit(this._serviceModel.uuid);
- }
-
- hasApiError(controlName : string, data : Array<any>){
- if(!isNullOrUndefined(this.servicePopupDataModel) && !isNullOrUndefined(data)){
- if(!this.serviceInstanceDetailsFormGroup.controls[controlName].disabled && data.length === 0){
- return true;
- }
- }
- return false;
- }
-
-}