diff options
Diffstat (limited to 'ecomp-portal-FE-os/client/src/directives')
6 files changed, 805 insertions, 0 deletions
diff --git a/ecomp-portal-FE-os/client/src/directives/right-menu/right-menu.directive.js b/ecomp-portal-FE-os/client/src/directives/right-menu/right-menu.directive.js new file mode 100644 index 00000000..92207dfa --- /dev/null +++ b/ecomp-portal-FE-os/client/src/directives/right-menu/right-menu.directive.js @@ -0,0 +1,111 @@ +/*- + * ================================================================================ + * 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. + * ================================================================================ + */ +/** + * Created by nnaffar on 1/28/16. + */ +(function () { + class RightMenu { + constructor($rootScope,$window,$timeout) { + this.templateUrl = 'app/directives/right-menu/right-menu.tpl.html'; + this.restrict = 'AE'; + this.$rootScope = $rootScope; + this.$window = $window; + this.$timeout=$timeout; + this.link = this._link.bind(this); + this.scope = { + userList :'=' + } + } + + _link(scope) { + let init = () => { + scope.isOpen = true; + scope.rightSideToggleBtn = 'Collapse'; + + scope.openInNewTab = (url) => { + if(url == "self") { + alert("Cannot chat with self!"); + } else { + var win = window.open(url, '_blank'); + setCookie(url.split("chat_id=")[1], 'source', 1); + //window.localStorage.setItem(url.split("chat_id=")[1],'source'); + win.focus(); + } + }; + + }; + + init(); + + + scope.toggleSidebar = () => { + scope.isOpen = !scope.isOpen; + if(scope.isOpen){ + scope.rightSideToggleBtn = 'Collapse'; + }else{ + scope.rightSideToggleBtn = 'Expand'; + } + }; + + scope.scrollbarWidth =function(){ + var $outer = $('<div>').css({visibility: 'hidden', width: 100, overflow: 'scroll'}).appendTo('body'), + widthWithScroll = $('<div>').css({width: '100%'}).appendTo($outer).outerWidth(); + $outer.remove(); + return 100 - widthWithScroll; + }; + + scope.calculateUserbarOffset = function(){ + var userbarWid = $("#online-userbar").width()==0?75:$("#online-userbar").width(); + var scrollbarWid = scope.scrollbarWidth(); + var userbarOffset = scrollbarWid+userbarWid-1; + /*Setting the offset for userbar*/ + $("#online-userbar").css("left",-userbarOffset); + /*Setting the offset for user bar toggle button*/ + $(".ecomp-right-sidebar-toggle-btn").css("right",scrollbarWid); + } + this.$timeout(scope.calculateUserbarOffset, 0); + + scope.isBrowserInternetExplorer = false; + scope.browserName = bowser.name; + + if (bowser.msie || bowser.msedge) { + scope.isBrowserInternetExplorer = true; + } else { + scope.isBrowserInternetExplorer = false; + } + + scope.calculateUserBarHeight = () => { + var footerOff = $('#online-userbar').offset().top; + var headOff = $('#footer').offset().top; + var userbarHeight= parseInt($(".online-user-container").css('height'),10); + var defaultOffSet = 45; + // console.log(headOff - footerOff-defaultOffSet); + $(".online-user-container").css({ + "height" : headOff - footerOff-defaultOffSet + }); + }; + angular.element(this.$window).bind('resize', function(){ + scope.calculateUserBarHeight(); + }); + } + + } + angular.module('ecompApp').directive('rightMenu', ($rootScope,$window,$timeout) => new RightMenu($rootScope,$window,$timeout)); +})();
\ No newline at end of file diff --git a/ecomp-portal-FE-os/client/src/directives/right-menu/right-menu.less b/ecomp-portal-FE-os/client/src/directives/right-menu/right-menu.less new file mode 100644 index 00000000..102ac228 --- /dev/null +++ b/ecomp-portal-FE-os/client/src/directives/right-menu/right-menu.less @@ -0,0 +1,182 @@ +/**
+ * Created by nnaffar on 1/28/16.
+ */
+@sidebar-width: 200px;
+@transition-duration: 0.25s;
+@overlayer-opacity: 0.65;
+
+
+.close-button {
+ //width: @sidebar-width;
+ .blackText24m;
+ //.bg_u;
+ font-size: 3em;
+ line-height: 18px;
+ position: absolute;
+ cursor: pointer;
+ vertical-align: middle;
+ top: @second-level-top;
+ left: 0;
+ -webkit-font-smoothing: antialiased;
+ height: 53px;
+ z-index: 101;
+ //box-shadow: 0 4px 5px rgba(0, 0, 0, .2);
+
+}
+.ecomp-right-sidebar-container{
+ position: absolute;
+ display: block;
+ left: 0;
+ z-index: 100;
+ transition: left @transition-duration;
+ margin-top: -15px;
+
+ .ecomp-right-sidebar-main {
+ //background-color: ;
+ position: absolute;
+ margin-top: 115px;
+
+ height: 100vh;
+ .bg_portalWhite;//white for 1702
+ box-shadow: 0 4px 5px rgba(0, 0, 0, .2);
+ left: -90px;
+ width:75px;
+ padding:0px;
+ height: 100vh;
+
+
+
+ .accordion-container{
+ margin-top: 45px;
+ }
+ .portal-accordion-font{
+ font-size: .875rem;
+ color: #666;
+ display: inline-block;
+ font-family: Arial;
+
+ }
+
+ .portal-accordion-active{
+ color: #199DDF !important;
+ }
+
+ .sub-item{
+ .portal-accordion-font;
+ cursor: pointer;
+ height: 37px;
+ line-height: 37px;
+ padding-left: 20px;
+ padding-bottom: 10px;
+ vertical-align: middle;
+ width: 100%;
+ }
+ .sub-item:hover{
+ .portal-accordion-active;
+ }
+
+ .parent-item{
+ .portal-accordion-font;
+ border-bottom: 1px solid #bbb;
+ cursor: pointer;
+ height: 37px;
+ line-height: 37px;
+ padding-bottom: 10px;
+ vertical-align: middle;
+ width: 100%;
+ }
+ .parent-item:hover{
+ .portal-accordion-active;
+ }
+
+ }
+}
+
+.open-userbar {
+ left: 0;
+ transition: left .25s ease-in-out;
+ -moz-transition: left .25s ease-in-out;
+ -webkit-transition: left .25s ease-in-out;
+}
+
+.close-userbar {
+ left: 91px;
+ transition: left .25s ease-in-out;
+ -moz-transition: left .25s ease-in-out;
+ -webkit-transition: left .25s ease-in-out;
+}
+
+.content-overlayed {
+ position: fixed;
+ top: 110px;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ background: none repeat scroll 0 0 rgb(242, 242, 242);
+ z-index: 9999;
+}
+.fade-animation{
+ opacity: @overlayer-opacity;
+ transition: opacity @transition-duration ease-in-out;
+}
+.fade-animation.ng-hide {
+ opacity:0;
+ transition: opacity @transition-duration ease-in-out;
+}
+
+.activeUserIcon {
+ transition: all .2s ease-in-out;
+ display: block;
+ margin-left: auto; margin-right: auto; height:55px; width:55px; border-radius: 50%;
+
+}
+.activeUserIcon:hover { transform: scale(1.5); }
+
+.ecomp-right-sidebar-toggle{
+ position: absolute;
+ top: 400px;
+ right: 35px;
+}
+.ecomp-right-sidebar-toggle-btn{
+ position:relative;
+}
+.open-userbar-toggle {
+ // right: 0;
+ transition: right .25s ease-in-out;
+ -moz-transition: right .25s ease-in-out;
+ -webkit-transition: right .25s ease-in-out;
+}
+
+.close-userbar-toggle {
+ right: -36px;
+ transition: right .25s ease-in-out;
+ -moz-transition: right .25s ease-in-out;
+ -webkit-transition: right .25s ease-in-out;
+}
+
+.ecomp-right-sidebar-title{
+ font-family: Arial;
+ font-size: 14px;
+ color: #ef6f00;
+ margin-bottom:20px;
+ text-align: center;
+}
+
+.ecomp-right-sidebar-toggle a{
+ transform: rotate(-90deg);
+ z-index:2
+}
+.ecomp-right-sidebar-toggle button{
+ transform: rotate(-90deg);
+ z-index:2;
+ width: 100px!important;
+ height: 30px !important;
+ padding-bottom: 26px !important;
+ }
+ .btn:last-child {
+ margin-right: 6px !important;
+}
+
+.right-menu-button{
+ font-family: Omnes-ECOMP-W02,Arial
+}
\ No newline at end of file diff --git a/ecomp-portal-FE-os/client/src/directives/right-menu/right-menu.tpl.html b/ecomp-portal-FE-os/client/src/directives/right-menu/right-menu.tpl.html new file mode 100644 index 00000000..d779cae5 --- /dev/null +++ b/ecomp-portal-FE-os/client/src/directives/right-menu/right-menu.tpl.html @@ -0,0 +1,42 @@ +<!-- + ================================================================================ + 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 id="ecomp-right-sidebar-container" class="ecomp-sidebar-container" ng-class="isOpen ? 'open-sidebar': 'close-sidebar'"> + <div id="online-userbar" class="ecomp-sidebar-main" style="right: 0px; width:75px; padding:0px;" > + <div class="online-user-container" id="online-user-container" style="margin-top:45px; overflow-y:auto; overflow-x:hidden"> + <div class="ecomp-right-sidebar-title">Online Users</div> + <div ng-repeat="user in userList"> + <div class="child-row" style="height:85px;"> + <div> + <a href="javascript:void(0)" ng-click="openInNewTab(user.linkQ)" ><img class="activeUserIcon" ng-src="assets/images/photo.png" alt="User Link" ></a> + <div style="font-family: Arial; font-size:10px; text-align: center;" >{{user.userId}}</div> + </div> + </div> + </div> + </div> + </div> +</div> +<div id="user-sidebar-toggle" class="ecomp-right-sidebar-toggle" ng-class="isOpen ? 'open-userbar-toggle': 'close-userbar-toggle'"> + <div id="user-sidebar-toggle-button" class="ecomp-right-sidebar-toggle-btn"> + <button href="javascript:void(0)" ng-click="toggleSidebar()" class="btn btn-alt btn-small"> + <span id="user-chevron-down" class="icon-chevron-down" ng-show="isOpen"></span> + <span id="user-chevron-up" class="icon-chevron-up" ng-hide="isOpen"><span class="right-menu-button">Users</span></span> + </button> + </div> +</div> diff --git a/ecomp-portal-FE-os/client/src/directives/search-users/search-users.controller.js b/ecomp-portal-FE-os/client/src/directives/search-users/search-users.controller.js new file mode 100644 index 00000000..e6e7661b --- /dev/null +++ b/ecomp-portal-FE-os/client/src/directives/search-users/search-users.controller.js @@ -0,0 +1,168 @@ +/*- + * ================================================================================ + * 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. + * ================================================================================ + */ + +'use strict'; +(function () { + class SearchUsersCtrl { + + constructor($log, usersService,adminsService, $scope,confirmBoxService) { + + $scope.UserSearchsIsNull=false; + $scope.userExist = false; + this.scrollApi = {};//scrollTop directive + $scope.txtResults = 'result'; + + this.showAddUser = false; + this.showSearch = true; + this.newUser ={ + firstName:'', + lastName:'', + emailAddress:'', + + middleName:'', + loginId:'', + loginPwd:'', + loginPwdCheck:'' + }; + + let activeRequests = []; + let clearReq = (req) => { + activeRequests.splice(activeRequests.indexOf(req), 1); + }; + + this.showAddUserSection = () => { + this.showAddUser = true; + this.showSearch = false; + } + + this.addNewUserFun = () => { + if (this.newUser.loginId =='' || this.newUser.loginPwd == '' || this.newUser.firstName == '' || this.newUser.lastName =='' || this.newUser.emailAddress ==''||this.newUser.loginPwd ==''){ + var warningMsg = "Please enter a value for all fields marked with *."; + confirmBoxService.showInformation(warningMsg).then(isConfirmed => {return;}); + return; + } else if (this.newUser.loginPwd != this.newUser.loginPwdCheck) { + var warningMsg = "Passwords do not match, please try again."; + confirmBoxService.showInformation(warningMsg).then(isConfirmed => {return;}); + return; + } + else { + // check password length complexity. + var warningMsg = adminsService.isComplexPassword(this.newUser.loginPwd); + if (warningMsg != null) { + confirmBoxService.showInformation(warningMsg).then(isConfirmed => {return;}); + return; + } + } // password + + adminsService.addNewUser(this.newUser,'Yes').then(res=> { + + if(res.message == 'Record already exist'){ + + this.showAddUser = true; + this.showSearch = false; + $scope.userExist = true; + + }else{ + + $scope.userExist = false; + this.selectedUser = this.newUser; + this.selectedUser.orgUserId = this.newUser.loginId; + this.searchUsersResults = []; + this.searchUsersResults.push(this.newUser); + this.showAddUser = false; + this.showSearch = true; + this.newUser ={ + firstName:'', + lastName:'', + emailAdress:'', + middleName:'', + loginId:'', + loginPwd:'', + loginPwdCheck:'' + }; + this.searchUserString =''; + $scope.UserSearchsIsNull = false; + } + + + }).catch(err=> { + $log.error('adminsService: addNewUser error:: ', err); + // $scope.errMsg=err; + confirmBoxService.showInformation('Add New User failed: ' + err); + + }).finally(() => { + //this.isLoadingTable = false; + + }); + } + + this.searchUsers = () => { + this.isLoading = true; + if(this.searchUsersInProgress){ + return; + } + this.selectedUser = null; + this.searchUsersInProgress = true; + this.searchUsersResults = null; + + let searchUsersReq = usersService.searchUsers(this.searchUserString); + activeRequests.push(searchUsersReq); + searchUsersReq.promise().then(usersList => { + $log.debug('searchUsers found the following users: ', JSON.stringify(usersList)); + this.searchUsersResults = usersList; + $log.debug('searchUsersResults length: ', usersList.length); + if (usersList.length != 1) { + $scope.txtResults = 'results' + } else { + $scope.txtResults = 'result' + } + $scope.UserSearchsIsNull=false; + }).catch(err => { + $log.error('SearchUsersCtrl.searchUsers: ' + err); + $scope.UserSearchsIsNull=true; + }).finally(() => { + this.scrollApi.scrollTop(); + this.searchUsersInProgress = false; + clearReq(searchUsersReq); + this.isLoading = false; + }); + }; + + let init = () => { + this.isLoading = false; + this.searchUsersInProgress = false; + }; + + this.setSelectedUser = user => { + this.selectedUser = user; + }; + + init(); + + $scope.$on('$destroy', () => { + activeRequests.forEach(req => { + req.cancel(); + }); + }); + } + } + SearchUsersCtrl.$inject = ['$log', 'usersService','adminsService', '$scope','confirmBoxService']; + angular.module('ecompApp').controller('SearchUsersCtrl', SearchUsersCtrl); +})(); diff --git a/ecomp-portal-FE-os/client/src/directives/search-users/search-users.less b/ecomp-portal-FE-os/client/src/directives/search-users/search-users.less new file mode 100644 index 00000000..2fb97867 --- /dev/null +++ b/ecomp-portal-FE-os/client/src/directives/search-users/search-users.less @@ -0,0 +1,159 @@ +/*- + * ================================================================================ + * 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. + * ================================================================================ + */ + .search-users-directive{ + .title { + //.n18r; + .dGray18r; //AT&T Dark Gray + border-bottom: @blue-active 3px solid; + + } + + .add-user-section{ + margin-top:0px; + margin-left:10px; + } + + .input-text-new-user { + font-style: italic; + padding: 7px 10px; + width: 200px !important; + display: inline-block; + position: relative; + margin-bottom: 10px; + border-radius: 6px; + border: 1px solid #d8d8d8; + height: 32px; + border-color: slategrey !important; + } + + .input-new-user-div{ + display:inline-block; + width: 240px; + margin-left:10px; + } + + .add-user-button { + cursor: pointer; + float:right; + width: 120px; + + margin-left : 5px; + + .btn-blue; + + line-height: 32px; + height: 29px; + text-align: center; + vertical-align: middle; + line-height: 28px; + + &::before { + .ico_add_user; + content: '\f211'; + font-family: "Ionicons"; + vertical-align: middle; + display: inline-block; + margin-right: 8px; + line-height: 16px; + } + } + + .main { + margin: 16px; + .search-instructions { + .dGray14r; + margin-bottom: 8px; + } + .search { + .input-field { + display: inline-block; + width: 250px; + height: 30px; + } + .search-button { + .btn-blue; + width: 90px; + display: inline-block; + float: right; + } + } + + .search-results { + margin-top: 10px; + .results-title { + .dGray14r; + margin-bottom: 8px; + } + + .results-container { + height: 208px; + overflow-y: auto; + .user { + padding-left: 10px; + padding-top: 6px; + height: 48px; + + border-top: 1px solid @portalGray; + border-right: 1px solid @portalGray; + border-left: 1px solid @portalGray; + + &:last-child { + border-bottom: 1px solid @portalGray; + } + + cursor: pointer; + &:hover { + background-color: @funcBkgGray; + } + + &.selected { + background-color: @funcBkgGray; + } + + .main-name { + .dGray14r; + + } + .sub-job-title { + .gray13r; + + } + } + + } + + } + .error-text { + margin-top: 25px; + font-weight: 400; + font-size: 16px; + text-align: left; + color: @err; + } + + .no-user-found { + margin-top: 16px; + .dGray14r; + } + .add-new-user-btn{ + margin-top:10px; + } + } +}
\ No newline at end of file diff --git a/ecomp-portal-FE-os/client/src/directives/search-users/search-users.tpl.html b/ecomp-portal-FE-os/client/src/directives/search-users/search-users.tpl.html new file mode 100644 index 00000000..ef659920 --- /dev/null +++ b/ecomp-portal-FE-os/client/src/directives/search-users/search-users.tpl.html @@ -0,0 +1,143 @@ +<!-- + ================================================================================ + 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="search-users-directive"> + <form name="searchUsersForm" novalidate> + <div class="title" ng-bind="searchUsers.searchTitle"></div> + <div class="main"> + <div ng-if="searchUsers.showSearch"> + <div class="search-instructions">Enter first name, last name or User ID</div> + <div class="search"> + <input id="input-user-search" + autocomplete="off" + type="text" + name="searchString" + placeholder="Search" + ng-model="searchUsers.searchUserString" + ng-keyup="$event.keyCode===13 && searchUsersForm.searchString.$valid && searchUsers.searchUsers()" + pattern="[a-zA-Z0-9-'\s]{1,}" + maxlength="80" + required="true" auto-focus tabindex="0"/> + + <button class="btn btn-alt btn-small" tabindex="2" id="button-search-users" + ng-class="{disabled: searchUsersForm.searchString.$invalid || searchUsers.searchUsersInProgress}" + ng-click="searchUsersForm.searchString.$valid && searchUsers.searchUsers()">Search + </button> + + <button class="btn btn-alt btn-small" id="Create-New-User-button" ng-click="searchUsers.showAddUserSection()"> + <i class="icon-people-userbookmark" aria-hidden="true"></i> New User + </button> + + </div> + + <span class="ecomp-spinner" ng-show="searchUsers.isLoading"></span> + <div ng-show="UserSearchsIsNull===false"> + <div class="search-results" + ng-show="!searchUsers.isLoading + && searchUsers.searchUsersResults + && searchUsers.searchUsersResults.length"> + <div id="search-results" ng-show="UserSearchsIsNull===false" + class="results-title" + ng-bind="'Showing ' + searchUsers.searchUsersResults.length + ' results'"></div> + <div class="results-container" scroll-top="searchUsers.scrollApi"> + <div id="search-result-{{$index}}" + class="user" + ng-repeat="user in (searchUsers.searchUsersResults | orderBy:['firstName','lastName','orgUserId']) | limitTo: 100 track by $index" + ng-click="searchUsers.setSelectedUser(user)" + ng-class="{selected: user.orgUserId === searchUsers.selectedUser.orgUserId}"> + <div id="main-name-{{$index}}" class="main-name"> + <span id="result-first-name-{{$index}}" ng-bind="::user.firstName"></span> + <span id="result-last-name-{{$index}}" ng-bind="::user.lastName"></span> + <span id="result-uuid-{{$index}}" ng-bind="::user.orgUserId"></span></div> + <div id="job-title-{{$index}}" class="sub-job-title" ng-bind="::user.jobTitle"></div> + <br/> + </div> + </div> + </div> + </div> + + <div class="error-text" + id="user-search-error-403" + ng-show="UserSearchsIsNull===true"> + No match found. + </div> + + <div id="no-user-found" + class="no-user-found" + ng-show="searchUsers.searchUsersResults && searchUsers.searchUsersResults.length===0 && !searchUsers.searchUsersInProgress"> + No users found + </div> + </div> + + + <div id="addWidget" class="add-user-section" ng-if="searchUsers.showAddUser"> + <div> + <div class="input-new-user-div" > + <div class="">*First Name</div> + <input type="text" ng-model="searchUsers.newUser.firstName"/> + </div> + <div class="input-new-user-div" > + <div class="">Middle Name</div> + <input type="text" ng-model="searchUsers.newUser.middleName"/> + </div> + <div class="input-new-user-div" > + <div class="">*Last Name</div> + <input type="text" ng-model="searchUsers.newUser.lastName"/> + </div> + <div class="input-new-user-div" > + <div class="">*Email Address ID</div> + <input type="text" ng-model="searchUsers.newUser.emailAddress"/> + </div> + <div class="input-new-user-div" > + <div class="">*Login ID</div> + <input type="text" ng-model="searchUsers.newUser.loginId"/> + </div> + <div class="input-new-user-div" > + <div class="">*Login Password</div> + <input type="password" ng-model="searchUsers.newUser.loginPwd"/> + </div> + <div class="input-new-user-div" > + <div class="">*Confirm Login Password</div> + <input type="password" ng-model="searchUsers.newUser.loginPwdCheck"/> + </div> + <div ng-show="searchUsers.newUser.loginPwdCheck.length>=searchUsers.newUser.loginPwd.length&&searchUsers.newUser.loginPwdCheck.length>0&&searchUsers.newUser.loginPwd!=searchUsers.newUser.loginPwdCheck" + style="color: #cf2a2a; font-size: 12px;"> + <small + style="position: absolute; margin-top: -6px;">The passwords do not match. Try again. + </small> + </div> + <div ng-show="userExist==true" + style="color: #cf2a2a; font-size: 12px;"> + <small + style="position: absolute; margin-top: -6px;">User with same loginId already exists. Try again. + </small> + </div> + </div> + <div class="add-new-user-btn"> + <button class="btn btn-alt btn-small" ng-click="searchUsers.addNewUserFun()">Add New User</button> + </div> + </div> + + + </div> + + </div> + + </form> +</div> |