2 <div id="service-instance-details">
3 <form id="serviceForm" #serviceForm="ngForm" (ngSubmit)="onSubmit(serviceForm.value)" [formGroup]="serviceInstanceDetailsFormGroup">
4 <!--We can't use [hidden] since bootstrap.css label has display: inline-block. -->
5 <!--see https://stackoverflow.com/questions/34650410/angular-2-hidden-does-not-seem-to-be-working-->
6 <label id="notification-area" *ngIf="isShowingNotificationArea()">Data entered will apply to all service instances</label>
8 <div class="details-item" *ngIf="serviceInstanceDetailsFormGroup.get('instanceName')">
9 <label class="required">Instance name:</label>
11 pattern="^[a-zA-Z0-9_]*$"
12 [attr.data-tests-id]="'instanceName'"
15 [ngClass]="{'error-style' :(serviceInstance?.instanceName != '' && serviceInstanceDetailsFormGroup.controls['instanceName']?.touched && serviceInstanceDetailsFormGroup.controls['instanceName']?.errors?.pattern !== null)}"
16 [formControlName]="'instanceName'"
17 class="form-control input-text"
18 placeholder="Type Instance Name"
20 [(ngModel)]="serviceInstance.instanceName" required>
22 *ngIf="serviceInstance?.instanceName != '' && serviceInstanceDetailsFormGroup.controls['instanceName']?.touched && serviceInstanceDetailsFormGroup.controls['instanceName']?.errors?.pattern !== null"
23 [message]="'Instance name may include only alphanumeric characters and underscore.'"></form-control-error>
27 <div class="details-item">
28 <label class="required">Subscriber name:</label>
29 <select class="subscriber form-control input-text" id="subscriber-name-select" data-tests-id="subscriberName"
30 name="subscriber-name-select" [formControlName]="'globalSubscriberId'"
31 [ngClass]="{'error-style' :serviceInstanceDetailsService.hasApiError('globalSubscriberId',servicePopupDataModel?.subscribers, serviceInstanceDetailsFormGroup)}"
32 [(ngModel)]="serviceInstance.globalSubscriberId"
34 <option [value]="undefined" disabled>Select Subscriber Name</option>
35 <option class="subscriberNameOption" *ngFor="let subscriber of servicePopupDataModel.subscribers"
36 [value]="subscriber.id" [disabled]="!subscriber.isPermitted">{{subscriber.name}}</option>
38 <form-control-error *ngIf="serviceInstanceDetailsService.hasApiError('globalSubscriberId',servicePopupDataModel?.subscribers, serviceInstanceDetailsFormGroup)" [message]="'No results for this request. Please change criteria.'"></form-control-error>
42 <div class="details-item">
43 <label class="required">Service type:</label>
44 <select class="form-control input-text"
45 [(ngModel)]="serviceInstance.subscriptionServiceType"
46 [formControlName]="'subscriptionServiceType'"
47 [ngClass]="{'error-style' :serviceInstanceDetailsService.hasApiError('subscriptionServiceType',servicePopupDataModel?.serviceTypes, serviceInstanceDetailsFormGroup)}"
48 data-tests-id="serviceType" id="service-type-select"
49 name="service-type" required>
50 <option [value]="undefined" disabled>Select Service Type</option>
51 <option *ngFor="let serviceType of servicePopupDataModel.serviceTypes" class="serviceTypeOption" [value]="serviceType.name" [disabled]="!serviceType.isPermitted">{{serviceType.name}}</option>
53 <form-control-error *ngIf="serviceInstanceDetailsService.hasApiError('subscriptionServiceType',servicePopupDataModel?.serviceTypes, serviceInstanceDetailsFormGroup)" [message]="'No results for this request. Please change criteria.'"></form-control-error>
56 <div class="details-item">
57 <label class="required">Product family:</label>
58 <select class="form-control input-text"
59 data-tests-id="productFamily"
60 id="product-family-select"
61 [ngClass]="{'error-style' :serviceInstanceDetailsService.hasApiError('productFamilyId',productFamilies, serviceInstanceDetailsFormGroup)}"
62 [formControlName]="'productFamilyId'"
63 [(ngModel)]="serviceInstance.productFamilyId"
64 name="product-family-select" required>
65 <option [value]="undefined" disabled>Select Product Family</option>
66 <option *ngFor="let productFamily of productFamilies | async" [value]="productFamily.id"
67 [disabled]="!productFamily.isPermitted">{{productFamily.name}}</option>
69 <form-control-error *ngIf="serviceInstanceDetailsService.hasApiError('productFamilyId',productFamilies, serviceInstanceDetailsFormGroup)" [message]="'No results for this request. Please change criteria.'"></form-control-error>
72 <div class="details-item">
73 <label class="required">LCP region:</label>
75 class="form-control input-text"
76 [formControlName]="'lcpCloudRegionId'"
77 [(ngModel)]="serviceInstance.lcpCloudRegionId"
78 [ngClass]="{'error-style ' : serviceInstanceDetailsService.hasApiError('lcpCloudRegionId', servicePopupDataModel?.lcpRegions, serviceInstanceDetailsFormGroup)}"
81 data-tests-id="lcpRegion"
83 <option [value]="undefined" disabled>Select LCP Region</option>
84 <option *ngFor="let lcpRegion of servicePopupDataModel.lcpRegions" [value]="lcpRegion.id" [disabled]="!lcpRegion.isPermitted" class="lcpRegionOption">{{lcpRegion.id}}</option>
86 <form-control-error *ngIf="serviceInstanceDetailsService.hasApiError('lcpCloudRegionId', servicePopupDataModel?.lcpRegions, serviceInstanceDetailsFormGroup)" [message]="'No results for this request. Please change criteria.'"></form-control-error>
89 <div class="details-item">
90 <label class="required">Tenant:</label>
91 <select class="form-control input-text"
92 [formControlName]="'tenantId'"
93 [(ngModel)]="serviceInstance.tenantId"
94 name="tenant" id="tenant-select"
95 [ngClass]="{'error-style ' : serviceInstanceDetailsService.hasApiError('tenantId',servicePopupDataModel?.tenants ,serviceInstanceDetailsFormGroup)}"
96 data-tests-id="tenant" required>
97 <option [value]="undefined" disabled>Select Tenant</option>
98 <option *ngFor="let tenant of servicePopupDataModel.tenants" [value]="tenant.id" [disabled]="!tenant.isPermitted">{{tenant.name}}</option>
100 <form-control-error *ngIf="serviceInstanceDetailsService.hasApiError('tenantId',servicePopupDataModel?.tenants ,serviceInstanceDetailsFormGroup)" [message]="'No results for this request. Please change criteria.'"></form-control-error>
103 <div class="details-item">
104 <label>AIC Zone:</label>
106 class="form-control input-text"
107 name="aicZone" id="aicZone-select"
108 data-tests-id="aic_zone"
109 [formControlName]="'aicZoneId'"
110 [ngClass]="{'error-style ' : servicePopupDataModel?.aicZones?.length == 0 && serviceInstanceDetailsFormGroup.controls['aicZoneId'].disabled == false}"
111 [(ngModel)]="serviceInstance.aicZoneId" >
112 <option [value]="undefined" disabled>Select AIC Zone</option>
113 <option class="aicZoneOption" *ngFor="let aicZone of servicePopupDataModel.aicZones" [value]="aicZone.id">{{aicZone.name}}</option>
115 <form-control-error *ngIf="serviceInstanceDetailsService.hasApiError('aicZoneId',servicePopupDataModel?.aicZones ,serviceInstanceDetailsFormGroup)" [message]="'No results for this request. Please change criteria.'"></form-control-error>
119 <div class="details-item">
120 <label>Project:</label>
122 [attr.data-tests-id]="'project'"
123 class="form-control input-text"
124 [ngClass]="{'error-style ' : servicePopupDataModel?.projects?.length == 0 && serviceInstanceDetailsFormGroup.controls['projectName'].disabled == false}"
125 name="project" id="project"
126 [formControlName]="'projectName'"
127 [(ngModel)]="serviceInstance.projectName" >
128 <option [value]="undefined" disabled>Select Project</option>
129 <option *ngFor="let project of servicePopupDataModel.projects" [value]="project.id">{{project.name}}</option>
131 <form-control-error *ngIf="serviceInstanceDetailsService.hasApiError('projectName',servicePopupDataModel?.projects ,serviceInstanceDetailsFormGroup)" [message]="'No results for this request. Please change criteria.'"></form-control-error>
135 <div class="details-item">
136 <label class="required">Owning entity:</label>
137 <select [attr.data-tests-id]="'owningEntity'"
138 class="form-control input-text"
139 [formControlName]="'owningEntityId'"
140 [(ngModel)]="serviceInstance.owningEntityId"
141 name="owningEntity" id="owningEntity"
142 [ngClass]="{'error-style ' : servicePopupDataModel?.owningEntities?.length == 0 && serviceInstanceDetailsFormGroup.controls['owningEntityId'].disabled == false}"
144 <option [value]="undefined" disabled>Select Owning Entity</option>
145 <option *ngFor="let owningEntity of servicePopupDataModel.owningEntities" [value]="owningEntity.id">{{owningEntity.name}}</option>
147 <form-control-error *ngIf="serviceInstanceDetailsService.hasApiError('owningEntityId',servicePopupDataModel?.owningEntities ,serviceInstanceDetailsFormGroup)" [message]="'No results for this request. Please change criteria.'"></form-control-error>
149 <div class="details-item">
150 <label class="required">Rollback On Failure:</label>
151 <select [attr.data-tests-id]="'rollback'"
152 [ngClass]="{'error-style' :serviceInstanceDetailsService.hasApiError('rollbackOnFailure',servicePopupDataModel?.rollbackOnFailure, serviceInstanceDetailsFormGroup)}"
153 class="form-control input-text"
154 [(ngModel)]="serviceInstance.rollbackOnFailure"
155 [formControlName]="'rollbackOnFailure'" name="rollbackOnFailure" id="rollbackOnFailure">
156 <option *ngFor="let option of servicePopupDataModel.rollbackOnFailure" [value]="option.id">{{option.name}}</option>
158 <form-control-error *ngIf="serviceInstanceDetailsService.hasApiError('rollbackOnFailure',servicePopupDataModel?.rollbackOnFailure, serviceInstanceDetailsFormGroup)" [message]="'No results for this request. Please change criteria.'"></form-control-error>
160 <div class="details-item" *ngIf="serviceInstanceDetailsFormGroup.get('pause')">
161 <input #pause id="pause" [formControlName]="'pause'" [(ngModel)]="serviceInstance.pause" type="checkbox" name="pause" data-toggle="toggle">
162 <label class="checkbox-label" for="pause">Pause on pause points:</label>
166 <dynamic-inputs *ngIf="dynamicInputs != undefined && dynamicInputs.length>0" [group]="serviceInstanceDetailsFormGroup" [list]="dynamicInputs"></dynamic-inputs>