1 import {Injectable} from "@angular/core";
2 import {ActivatedRoute} from "@angular/router";
3 import {addServiceAction} from "../../../shared/storeUtil/utils/service/service.actions";
4 import {ServiceInstanceActions} from "../../../shared/models/serviceInstanceActions";
5 import {AppState} from "../../../shared/store/reducers";
6 import {DrawingBoardTreeComponent} from "../drawing-board-tree/drawing-board-tree.component";
7 import {AuditInfoModalComponent} from "../../../shared/components/auditInfoModal/auditInfoModal.component";
8 import {ServiceModel} from "../../../shared/models/serviceModel";
9 import {NgRedux} from "@angular-redux/store";
10 import * as _ from 'lodash';
11 import {ErrorMsgService} from "../../../shared/components/error-msg/error-msg.service";
12 import {DrawingBoardModes} from "../drawing-board.modes";
13 import {ServiceInstance} from "../../../shared/models/serviceInstance";
14 import {FeatureFlagsService, Features} from "../../../shared/services/featureFlag/feature-flags.service";
15 import {ServiceInfoModel} from "../../../shared/server/serviceInfo/serviceInfo.model";
18 export class DrawingBoardHeaderService{
20 constructor(private route: ActivatedRoute, private store: NgRedux<AppState>, private errorMsgService: ErrorMsgService){}
21 generateOldViewEditPath(): string{
23 `subscriberId=${this.route.snapshot.queryParams['subscriberId']}&` +
24 `subscriberName=${this.route.snapshot.queryParams['subscriberName']}&` +
25 `serviceType=${this.route.snapshot.queryParams['serviceType']}&` +
26 `serviceInstanceId=${this.route.snapshot.queryParams['serviceInstanceId']}`;
27 return '../../serviceModels.htm#/instantiate?' + query;
30 deleteService(serviceModelId: string, isDeleted: boolean ) {
32 this.store.dispatch(addServiceAction(serviceModelId, ServiceInstanceActions.Delete));
33 DrawingBoardTreeComponent.triggerDeleteActionService.next(serviceModelId);
35 this.store.dispatch(addServiceAction(serviceModelId, ServiceInstanceActions.None));
36 DrawingBoardTreeComponent.triggerUndoDeleteActionService.next(serviceModelId);
40 upgradeService(serviceModelId: string, isUpgraded: boolean ) {
42 this.store.dispatch(addServiceAction(serviceModelId, ServiceInstanceActions.Upgrade));
45 this.store.dispatch(addServiceAction(serviceModelId, ServiceInstanceActions.None));
49 showAuditInfo(serviceModelId) : void {
50 let instance: ServiceInstance = this.store.getState().service.serviceInstance[serviceModelId];
51 let model = new ServiceModel(this.store.getState().service.serviceHierarchy[serviceModelId]);
52 let serviceInfoModel: ServiceInfoModel = this.store.getState().service.serviceInfoModel;
53 console.log("ShowAuditInfo : ServiceInfoModel from drawing-board-header service : ", serviceInfoModel);
54 if(serviceInfoModel != null || serviceInfoModel != undefined){
55 AuditInfoModalComponent.openModal.next(serviceInfoModel);
57 AuditInfoModalComponent.openInstanceAuditInfoModal.next({instanceId : serviceModelId , type : 'SERVICE', model : model , instance : instance});
61 toggleResumeService(serviceModelId, isResume: boolean) : void {
62 const action: ServiceInstanceActions = isResume ? ServiceInstanceActions.Resume : ServiceInstanceActions.None;
63 this.store.dispatch(addServiceAction(serviceModelId, action));
68 /*************************************************
69 should return true if deploy should be disabled
70 *************************************************/
71 deployShouldBeDisabled(serviceInstanceId: string, mode : string) : boolean {
72 const serviceInstance = this.store.getState().service.serviceInstance[serviceInstanceId];
73 if(!_.isNil(serviceInstance)){
74 const validationCounter = serviceInstance.validationCounter;
75 if (!_.isNil(this.errorMsgService.errorMsgObject) && mode !== DrawingBoardModes.RETRY_EDIT) return true;
76 if(validationCounter > 0) return true;
77 if(serviceInstance.action !== ServiceInstanceActions.None) return false;
78 if(mode === DrawingBoardModes.RETRY_EDIT || mode === DrawingBoardModes.RESUME) return false;
79 return !serviceInstance.isDirty;
84 getModeButton(mode : string) : string {
86 case DrawingBoardModes.EDIT:
88 case DrawingBoardModes.RETRY_EDIT:
90 case DrawingBoardModes.RESUME:
92 default: return 'DEPLOY';
95 getButtonText(mode : DrawingBoardModes) : string {
97 case DrawingBoardModes.EDIT:
98 case DrawingBoardModes.VIEW:
100 case DrawingBoardModes.RETRY_EDIT:
101 case DrawingBoardModes.RETRY:
103 case DrawingBoardModes.RESUME:
108 showEditService(mode: DrawingBoardModes, serviceModelId: string): boolean{
109 const serviceInstance = this.store.getState().service.serviceInstance;
110 return mode === DrawingBoardModes.CREATE || mode === DrawingBoardModes.RECREATE || ((mode === DrawingBoardModes.RETRY_EDIT || mode === DrawingBoardModes.EDIT)&&
111 !_.isNil(serviceInstance) && !_.isNil(serviceInstance[serviceModelId])&& serviceInstance[serviceModelId].action === ServiceInstanceActions.Create);
114 showResumeService(serviceModelId: string): boolean {
115 const serviceInstance: ServiceInstance = !_.isNil(this.store.getState().service.serviceInstance)? this.store.getState().service.serviceInstance[serviceModelId] : null;
118 return FeatureFlagsService.getFlagState(Features.FLAG_1908_RESUME_MACRO_SERVICE, this.store) &&
119 serviceInstance.vidNotions.instantiationType.toLowerCase() === "macro" &&
120 serviceInstance.subscriptionServiceType.toLowerCase() !== "transport" &&
121 serviceInstance.orchStatus &&
122 (serviceInstance.orchStatus.toLowerCase() === "assigned" ||
123 serviceInstance.orchStatus.toLowerCase() === "inventoried");