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";
16 export class DrawingBoardHeaderService{
18 constructor(private route: ActivatedRoute, private store: NgRedux<AppState>, private errorMsgService: ErrorMsgService){}
19 generateOldViewEditPath(): string{
21 `subscriberId=${this.route.snapshot.queryParams['subscriberId']}&` +
22 `subscriberName=${this.route.snapshot.queryParams['subscriberName']}&` +
23 `serviceType=${this.route.snapshot.queryParams['serviceType']}&` +
24 `serviceInstanceId=${this.route.snapshot.queryParams['serviceInstanceId']}`;
25 return '../../serviceModels.htm#/instantiate?' + query;
28 deleteService(serviceModelId: string, isDeleted: boolean ) {
30 this.store.dispatch(addServiceAction(serviceModelId, ServiceInstanceActions.Delete));
31 DrawingBoardTreeComponent.triggerDeleteActionService.next(serviceModelId);
33 this.store.dispatch(addServiceAction(serviceModelId, ServiceInstanceActions.None));
34 DrawingBoardTreeComponent.triggerUndoDeleteActionService.next(serviceModelId);
38 showAuditInfo(serviceModelId) : void {
39 let instance: ServiceInstance = this.store.getState().service.serviceInstance[serviceModelId];
40 let model = new ServiceModel(this.store.getState().service.serviceHierarchy[serviceModelId]);
41 AuditInfoModalComponent.openInstanceAuditInfoModal.next({instanceId : serviceModelId , type : 'SERVICE', model : model , instance : instance, trackById: instance.trackById});
45 /*************************************************
46 should return true if deploy should be disabled
47 *************************************************/
48 deployShouldBeDisabled(serviceInstanceId: string, mode : string) : boolean {
49 const serviceInstance = this.store.getState().service.serviceInstance[serviceInstanceId];
50 if(!_.isNil(serviceInstance)){
51 const validationCounter = serviceInstance.validationCounter;
52 if (!_.isNil(this.errorMsgService.errorMsgObject)&& mode !== DrawingBoardModes.RETRY_EDIT) return true;
53 if(validationCounter > 0) return true;
54 if(serviceInstance.action !== ServiceInstanceActions.None) return false;
55 if(mode === DrawingBoardModes.RETRY_EDIT) return false;
56 return !serviceInstance.isDirty;
61 getModeButton(mode : string) : string {
63 case DrawingBoardModes.EDIT:
65 case DrawingBoardModes.RETRY_EDIT:
67 default: return 'DEPLOY';
70 getButtonText(mode : DrawingBoardModes) : string {
72 case DrawingBoardModes.EDIT:
73 case DrawingBoardModes.VIEW:
75 case DrawingBoardModes.RETRY_EDIT:
76 case DrawingBoardModes.RETRY:
81 showEditService(mode: DrawingBoardModes, serviceModelId: string): boolean{
82 const serviceInstance = this.store.getState().service.serviceInstance;
83 return mode === DrawingBoardModes.CREATE || ((mode === DrawingBoardModes.RETRY_EDIT || mode === DrawingBoardModes.EDIT)&&
84 !_.isNil(serviceInstance) && !_.isNil(serviceInstance[serviceModelId])&& serviceInstance[serviceModelId].action === ServiceInstanceActions.Create);