2 ============LICENSE_START==========================================
4 ===================================================================
5 Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 ===================================================================
8 Unless otherwise specified, all software contained herein is licensed
9 under the Apache License, Version 2.0 (the "License");
10 you may not use this software except in compliance with the License.
11 You may obtain a copy of the License at
13 http://www.apache.org/licenses/LICENSE-2.0
15 Unless required by applicable law or agreed to in writing, software
16 distributed under the License is distributed on an "AS IS" BASIS,
17 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 See the License for the specific language governing permissions and
19 limitations under the License.
21 Unless otherwise specified, all documentation contained herein is licensed
22 under the Creative Commons License, Attribution 4.0 Intl. (the "License");
23 you may not use this documentation except in compliance with the License.
24 You may obtain a copy of the License at
26 https://creativecommons.org/licenses/by/4.0/
28 Unless required by applicable law or agreed to in writing, documentation
29 distributed under the License is distributed on an "AS IS" BASIS,
30 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31 See the License for the specific language governing permissions and
32 limitations under the License.
34 ============LICENSE_END============================================
44 left: -10px;top: 28px;
49 <div class="b2b-modal-header">
50 <h2 class="account-details-title" id="application-details-title">Application
52 <div class="corner-button in">
53 <button type="button" class="close" id="div-confirm-close-button"
54 aria-label="Close" ng-click="$dismiss('cancel')"></button>
57 <div class="b2b-modal-body">
58 <div class="application-details-modal">
59 <div class="app-properties-main" scroll-top="appDetails.scrollApi">
60 <form name="appForm" novalidate autocomplete="off">
62 <div id="app-left-container" class="left-container">
63 <div class="property-label checkbox-label">
64 <label for="checkbox-app-is-restricted" class="checkbox">
65 <input type="checkbox" ng-model="appDetails.app.restrictedApp"
66 id="checkbox-app-is-restricted"
67 ng-disabled="appDetails.isEditMode"
68 ng-checked="appDetails.app.restrictedApp" /> <i
69 id="checkbox-app-is-restricted" class="skin"></i> <span>Hyperlink
70 only application</span>
73 <div class="property required">
74 <div class="property-label">Application Name</div>
75 <input id="input-app-name" type="text"
76 ng-model="appDetails.app.name" maxlength="100" name="name"
77 ng-pattern="/^[a-zA-Z0-9_\-\s\&]*$/" required />
79 <div id="error-container-conflict" class="error-container"
80 ng-show="appDetails.conflictMessages.name"
81 id="conflictMessages-name">
82 <small id="app-name-error-conflict" class="err-message"
83 ng-bind="appDetails.conflictMessages.name"></small>
85 <div id="error-container-edit" class="error-container"
86 ng-show="appForm.name.$dirty || appDetails.isEditMode">
87 <div ng-messages="appForm.name.$error" class="error-container">
88 <small id="app-name-error-required" class="err-message"
89 ng-message="required">Application name is required</small> <small
90 id="app-name-error-alpha-num" class="err-message"
91 ng-message="pattern">Application name must be
96 <div class="property">
97 <div id="url-property-label" class="property-label">URL</div>
98 <span runat="server" ID="required" class="mandatoryFeild"
99 visible="false" ng-show="appDetails.app.isEnabled"> *</span><input id="input-app-url" ng-model="appDetails.app.url"
100 maxlength="256" name="url" type="url" placeholder="https://"
101 ng-pattern="appDetails.ECOMP_URL_REGEX" required />
104 <div id="app-error-url" class="error-container"
105 ng-show="appDetails.conflictMessages.url"
106 id="div-app-name-err-url">
107 <small class="err-message"
108 ng-bind="appDetails.conflictMessages.url"></small>
110 <div id="app-error-url-message" class="error-container"
111 ng-show="appForm.url.$dirty || appDetails.isEditMode">
112 <div ng-messages="appForm.url.$error" class="error-container">
113 <small id="error-app-url-req" class="err-message"
114 ng-message="required">Application URL is required</small>
115 <!--<small id="error-app-url-invalid" class="err-message" ng-message="pattern">Application URL must be a valid URL</small>-->
116 <small id="error-app-url-invalid" class="err-message"
117 ng-show="appForm.url.$error.url">Application URL must
118 be a valid URL</small>
121 <!--<span class="err-message" ng-show="appForm.url.$error.url"> Not valid URL!</span>-->
125 <div class="property" ng-show="!appDetails.app.restrictedApp">
126 <div class="property-label">Rest API URL</div>
127 <span runat="server" ID="required" class="mandatoryFiled"
128 visible="false" ng-show="appDetails.app.isEnabled"> *</span><input id="input-app-rest-url" ng-model="appDetails.app.restUrl"
129 name="restUrl" type="url" placeholder="https://"
130 ng-pattern="appDetails.ECOMP_URL_REGEX" maxlength="256"
131 ng-required="!appDetails.app.restrictedApp" />
132 <div id="app-error-rest-message" class="error-container"
133 ng-show="appForm.restUrl.$dirty || appDetails.isEditMode">
134 <div ng-messages="appForm.restUrl.$error" class="error-container">
135 <small class="err-message" ng-show="appForm.restUrl.$error.url">Application
136 REST URL must be a valid URL</small>
141 <div class="property"
142 ng-show="!appDetails.app.restrictedApp">
143 <div id="username-property-label" class="property-label">Username</div>
144 <span runat="server" ID="required" class="mandatoryFiled"
145 visible="false" ng-show="appDetails.app.isCentralAuth || appDetails.app.isEnabled"> *</span><input type="text" id="input-username-property"
146 ng-model="appDetails.app.username" name="username"
147 maxlength="256" ng-required="!appDetails.app.restrictedApp" />
148 <div id="app-error-username-container" class="error-container"
149 ng-show="appForm.username.$dirty || appDetails.isEditMode">
150 <div ng-messages="appForm.username.$error"
151 class="error-container">
152 <small id="error-appusername-reqd" class="err-message"
153 ng-message="required">App Username is
158 <!-- <div class="property required"
159 ng-show="!appDetails.app.restrictedApp">
160 <div id="pwd-property-label" class="property-label">Password</div>
161 <input type="password" id="input-mylogins-password"
162 ng-model="appDetails.app.appPassword" autocomplete="new-password"
163 name="appPassword" maxlength="256"
164 ng-required="!appDetails.app.restrictedApp" />
165 <div id="app-error-password-container" class="error-container"
166 ng-show="appForm.appPassword.$dirty || appDetails.isEditMode">
167 <div ng-messages="appForm.appPassword.$error"
168 class="error-container">
169 <small id="error-mylogins-password-reqd" class="err-message"
170 ng-message="required">My Logins App Password is
175 <div class="property" ng-show="!appDetails.app.restrictedApp">
176 <div id="pwd-property-label" class="property-label">Password</div>
177 <input type="password" id="input-mylogins-password"
178 ng-model="appDetails.app.appPassword" autocomplete="new-password"
179 name="appPassword" maxlength="256"/>
184 <div class="right-container">
185 <div class="property">
186 <div class="property-label">Upload Image</div>
187 <input type="file" id="input-app-image-upload"
188 class="input-file-field input-app-image-upload-ht"
189 accept="image/*" ng-model="appDetails.originalImage"
190 name="appImage" image-upload="appDetails.originalImage"
191 image-upload-resize-max-height="300"
192 image-upload-resize-max-width="360"
193 image-upload-resize-quality="0.7"
195 image-upload-api="appDetails.imageApi"
196 file-change="appImageHandler($event,files)" />
197 <div id="app-error-image-upload-type" class="error-container"
198 ng-show="appImageTypeError" class="ng-hide">
199 <div class="error-container">
200 <small id="error-app-invalid-image-size" class="err-message">File must be an image</small>
204 <div id="app-error-image-upload" class="error-container"
205 ng-show="appForm.appImage.$dirty">
206 <div ng-messages="appForm.appImage.$error"
207 class="error-container">
208 <small id="error-app-invalid-image-size" class="err-message"
209 ng-message="imageSize">Image file must be smaller than
214 <div class="property-label preview">
215 <span id="{{$index}}-preview-property" class="left-label">Preview</span>
216 <span id="{{$index}}-remove-property" class="remove"
217 ng-click="appDetails.removeImage()">Remove</span>
219 <img id="image-app-preview" class="image-preview"
220 ng-src="{{appDetails.app.imageLink || appDetails.app.thumbnail || appDetails.emptyImgForPreview}}" />
222 <div id="property-communication-key" class="property"
223 ng-show="!appDetails.app.restrictedApp">
224 <div id="property-communication-key-label" class="property-label">Communication
226 <input type="text" id="input-UEB-communication-key"
227 ng-model="appDetails.app.uebKey" name="uebKey"
228 readonly="readonly" />
230 <div class="property" ng-show="!appDetails.app.restrictedApp" >
231 <div id="pwd-property-label" class="property-label" >Name
233 <span runat="server" ID="required" class="mandatoryFiled"
234 visible="false" ng-show="appDetails.app.isCentralAuth"> *</span><input type="text" id="input-mylogins-auth-namespace"
235 ng-model="appDetails.app.nameSpace" name="appAuthNameSpace"
236 maxlength="256" ng-disabled="!appDetails.app.isCentralAuth" />
240 <div id="property-is-central-auth" class="property"
241 ng-show="!appDetails.app.restrictedApp">
242 <label for="checkbox-app-is-central-auth" class="checkbox">
243 <input type="checkbox" ng-model="appDetails.app.isCentralAuth"
244 id="checkbox-app-is-central-auth" /> <i class="skin"></i> <span>Centralized</span>
248 <div id="property-active" class="property">
249 <label for="checkbox-app-is-enabled" class="checkbox"> <input
250 type="checkbox" ng-model="appDetails.app.isEnabled"
251 id="checkbox-app-is-enabled" /> <i class="skin"></i> <span>Active</span>
255 <div id="property-guest-access" class="property">
256 <label for="checkbox-app-is-open" class="checkbox"> <input
257 type="checkbox" ng-model="appDetails.app.isOpen"
258 id="checkbox-app-is-open"
259 ng-checked="appDetails.app.isOpen || appDetails.app.restrictedApp"
260 ng-disabled="appDetails.app.restrictedApp" /> <i class="skin"></i>
261 <span>Allow guest access</span>
273 <div class="b2b-modal-footer">
275 <span class="ecomp-save-spinner" ng-show="appDetails.isSaving"></span>
276 <button id="button-save-app" class="btn btn-alt btn-small"
277 ng-disabled="(!appDetails.app.name || appDetails.app.name.length == 0)" ng-click="appDetails.saveChanges()">Save</button>
278 <button id="button-notification-cancel" class="btn btn-alt btn-small"
279 ng-click="$dismiss('cancel')" role="button" tabindex="0">Cancel</button>