[PORTAL-7] Rebase
[portal.git] / ecomp-portal-FE-os / client / src / views / applications / application-details-dialog / application-details.modal.html
diff --git a/ecomp-portal-FE-os/client/src/views/applications/application-details-dialog/application-details.modal.html b/ecomp-portal-FE-os/client/src/views/applications/application-details-dialog/application-details.modal.html
new file mode 100644 (file)
index 0000000..ad659aa
--- /dev/null
@@ -0,0 +1,201 @@
+<!--
+  ================================================================================
+  eCOMP Portal
+  ================================================================================
+  Copyright (C) 2017 AT&T Intellectual Property
+  ================================================================================
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  ================================================================================
+  -->
+<div class="application-details-modal">
+    <div id="title" class="title">Application Details</div>
+
+    <div class="app-properties-main" scroll-top="appDetails.scrollApi">
+        <form name="appForm" novalidate autocomplete="off">
+            <!-- We can remove this script once we get to AT&T Corporate Firefox version 47
+                  autocomplete="off" won't work until v47 -->
+            <script type="text/javascript">
+                document.getElementById("appForm").reset();
+            </script>
+            <div id="app-left-container" class="left-container">
+                <div class="property">
+                    <input id="checkbox-app-is-restricted" type="checkbox" class="checkbox-field checkbox-field-openSRC" ng-disabled="appDetails.isEditMode" ng-model="appDetails.app.restrictedApp" ng-checked="appDetails.app.restrictedApp"/>
+                    <div class="property-label checkbox-label">Hyperlink only application</div>
+                </div>
+                <div class="property required">
+                    <div class="property-label">Application Name</div>
+                    <input id="input-app-name"  type="text"
+                           ng-model="appDetails.app.name"
+                           maxlength="100"
+                           name="name"
+                           ng-pattern="/^[a-zA-Z0-9_\-\s\&]*$/"
+                           required/>
+
+                    <div id="error-container-conflict" class="error-container" ng-show="appDetails.conflictMessages.name" id="conflictMessages-name">
+                        <small id="app-name-error-conflict" class="err-message" ng-bind="appDetails.conflictMessages.name"></small>
+                    </div>
+                    <div id="error-container-edit" class="error-container" ng-show="appForm.name.$dirty || appDetails.isEditMode">
+                        <div ng-messages="appForm.name.$error" class="error-container">
+                            <small id="app-name-error-required" class="err-message" ng-message="required">Application name is required</small>
+                            <small id="app-name-error-alpha-num" class="err-message" ng-message="pattern">Application name must be alphanumeric</small>
+                        </div>
+                    </div>
+                </div>
+                <!--<div class="property">-->
+                <!--<div class="property-label">Description</div>-->
+                <!--<input class="input-field" type="text" ng-model="appDetails.app.description"/>-->
+                <!--</div>-->
+                <!--<div class="property">-->
+                <!--<div class="property-label">Notes</div>-->
+                <!--<input class="input-field" type="text" ng-model="appDetails.app.notes"/>-->
+                <!--</div>-->
+                <div class="property required">
+                    <div id="url-property-label" class="property-label">URL</div>
+                    <input  id="input-app-url"
+                           ng-model="appDetails.app.url"
+                           maxlength="256"
+                           name="url"
+                           type="url" placeholder="https://"
+                           ng-pattern="appDetails.ECOMP_URL_REGEX"
+                           required />
+                    <div id="app-error-url" class="error-container" ng-show="appDetails.conflictMessages.url" id="div-app-name-err-url">
+                        <small class="err-message" ng-bind="appDetails.conflictMessages.url"></small>
+                    </div>
+                    <div id="app-error-url-message" class="error-container" ng-show="appForm.url.$dirty || appDetails.isEditMode">
+                        <div ng-messages="appForm.url.$error" class="error-container">
+                            <small id="error-app-url-req" class="err-message" ng-message="required">Application URL is required</small>
+                            <!--<small id="error-app-url-invalid" class="err-message" ng-message="pattern">Application URL must be a valid URL</small>-->
+                            <small id="error-app-url-invalid" class="err-message" ng-show="appForm.url.$error.url">Application URL must be a valid URL</small>
+                        </div>
+                    </div>
+                    <!--<span class="err-message" ng-show="appForm.url.$error.url"> Not valid URL!</span>-->
+                </div>
+
+
+                <div class="property" ng-show="!appDetails.app.restrictedApp">
+                    <div class="property-label">Rest API URL</div>
+                    <input  id="input-app-rest-url"
+                           ng-model="appDetails.app.restUrl"
+                           name="restUrl"
+                           type="url" placeholder="https://"
+                           ng-pattern="appDetails.ECOMP_URL_REGEX"
+                           maxlength="256"/>
+                    <div id="app-error-rest-message" class="error-container" ng-show="appForm.restUrl.$dirty || appDetails.isEditMode">
+                        <div ng-messages="appForm.restUrl.$error" class="error-container">
+                            <!--<small class="err-message" ng-message="pattern">Application REST URL must be a valid URL</small>-->
+                            <small class="err-message" ng-show="appForm.restUrl.$error.url">Application REST URL must be a valid URL</small>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="property required" ng-show="!appDetails.app.restrictedApp">
+                    <div id="username-property-label"  class="property-label">Username</div>
+                    <input  type="text"
+                           ng-model="appDetails.app.username"
+                           name="username"
+                           maxlength="256"
+                           ng-required="!appDetails.app.restrictedApp"/>
+                    <div id="app-error-username-container" class="error-container" ng-show="appForm.username.$dirty || appDetails.isEditMode">
+                        <div ng-messages="appForm.username.$error" class="error-container">
+                            <small  id="error-appusername-reqd" class="err-message" ng-message="required">My Logins App Username is required</small>
+                        </div>
+                    </div>
+                </div>
+                <div class="property required" ng-show="!appDetails.app.restrictedApp">
+                    <div id="pwd-property-label"  class="property-label">Password</div>
+                    <input  type="password"  id="input-mylogins-password"
+                           ng-model="appDetails.app.appPassword" autocomplete="new-password"
+                           name="appPassword"
+                           maxlength="256"
+                           ng-required="!appDetails.app.restrictedApp"/>
+                    <div id="app-error-password-container" class="error-container" ng-show="appForm.appPassword.$dirty || appDetails.isEditMode">
+                        <div ng-messages="appForm.appPassword.$error" class="error-container">
+                            <small id="error-mylogins-password-reqd" class="err-message" ng-message="required">My Logins App Password is required</small>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="right-container">
+                <div class="property">
+                    <div class="property-label">Upload Image</div>
+                    <input type="file" id="input-app-image-upload"
+                           class="input-file-field"
+                           accept="image/*"
+                           ng-model="appDetails.originalImage"
+                           name="appImage"
+                           image-upload="appDetails.originalImage"
+                           image-upload-resize-max-height="300"
+                           image-upload-resize-max-width="360"
+                           image-upload-resize-quality="0.7"
+                           image-upload-api="appDetails.imageApi" style="height: 24px;"/>
+
+                    <div id="app-error-image-upload" class="error-container" ng-show="appForm.appImage.$dirty">
+                        <div ng-messages="appForm.appImage.$error" class="error-container">
+                            <small id="error-app-invalid-image" class="err-message" ng-message="mimeType">Uploaded file must be an image</small>
+                            <small id="error-app-invalid-image-size" class="err-message" ng-message="imageSize">Image file must be smaller than 1MB</small>
+                        </div>
+                    </div>
+
+                    <div class="property-label preview">
+                        <span class="left-label">Preview</span>
+                        <span class="remove" ng-click="appDetails.removeImage()">Remove</span>
+                    </div>
+                    <img id="image-app-preview" class="image-preview" ng-src="{{appDetails.app.imageLink || appDetails.app.thumbnail || appDetails.emptyImgForPreview}}"/>
+                    <div id="property-communication-inbox" class="property" ng-show="!appDetails.app.restrictedApp">
+                        <div id="property-communication-inbox-label" class="property-label">Communication Inbox</div>
+                        <input  type="text" id="input-UEB-topicname"
+                               ng-model="appDetails.app.uebTopicName"
+                               name="uebTopicName" readonly="readonly"/>
+                    </div>
+
+                    <div id="property-communication-key" class="property" ng-show="!appDetails.app.restrictedApp">
+                        <div id="property-communication-key-label" class="property-label">Communication Key</div>
+                        <input  type="text" id="input-UEB-communication-key"
+                               ng-model="appDetails.app.uebKey"
+                               name="uebKey" readonly="readonly" />
+                    </div>
+
+                    <div id="property-communication-secret" class="property" ng-show="!appDetails.app.restrictedApp">
+                        <div id="property-communication-secret-label" class="property-label">Communication Secret</div>
+                        <input  type="text" id="input-UEB-communication-secret"
+                               ng-model="appDetails.app.uebSecret"
+                               name="uebSecret" readonly="readonly" />
+                    </div>
+
+                    <div id="property-guest-access" class="property">
+                        <input id="checkbox-app-is-open" type="checkbox" class="checkbox-field checkbox-field-openSRC" ng-model="appDetails.app.isOpen" ng-checked="appDetails.app.isOpen || appDetails.app.restrictedApp" ng-disabled="appDetails.app.restrictedApp"/>
+                        <div id="property-guest-checkbox-label" class="property-label checkbox-label">Allow guest access</div>
+                    </div>
+                    <div id="property-active" class="property">
+                        <input id="checkbox-app-is-enabled" type="checkbox" class=" checkbox-field checkbox-field-openSRC " ng-model="appDetails.app.isEnabled"/>
+                        <div id="property-active-checkbox-label" class="property-label checkbox-label">Active</div>
+                    </div>
+
+                </div>
+
+            </div>
+        </form>
+    </div>
+
+    <div class="dialog-control">
+        <span class="ecomp-save-spinner" ng-show="appDetails.isSaving"></span> 
+         <button id="button-save-app" class="btn btn-alt btn-small" ng-class="{disabled: appForm.$invalid}" ng-click="appDetails.saveChanges()">Save</button>
+        <button id="button-app-cancel" class="btn btn-alt btn-small" ng-click="closeThisDialog()">Cancel</button>
+    </div>
+</div>
+
+<script type="application/javascript">
+    $(document).ready(function(){
+        $(".ngdialog-content").css("top","-150px")
+    });
+</script>
\ No newline at end of file