summaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/view-models/admin-dashboard/user-management/user-management-view.html
blob: 9322ab00aa368e9e8e6638322f9d3ff54053246b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<!--
  ~ Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
  ~
  ~ 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 ng-controller="Sdc.ViewModels.UserManagementViewModel">
    <loader data-display="isLoading"></loader>
    <div class="sdc-user-management-top-bar">
        <div class="sdc-user-management-top-bar-search-container">
            <label class="sdc-user-management-top-bar-search-text">Search User</label>
            <input type="text" class="sdc-user-management-top-bar-form-input" placeholder="Search user by name, userId, email or role" data-ng-model="search.filterTerm" ng-model-options="{ debounce: 500 }" data-tests-id="searchbox" />
            <span class="w-sdc-search-icon" data-ng-class="{'cancel':search.filterTerm, 'magnification':!search.filterTerm}" data-ng-click="search.filterTerm=''" ></span>
        </div>
        <div  class="vertical-border-container">
            <div class="vertical-border"></div>
        </div>
        <form class="sdc-user-management-top-bar-create-user-container w-sdc-form" name="editForm">
            <label class="sdc-user-management-top-bar-title">Create New User</label>
            <div class="sdc-user-management-top-bar-wrapper">
                <div class="i-sdc-form-item sdc-user-management-top-bar-form-container" data-ng-class="{error:(editForm.contactId.$dirty && editForm.contactId.$invalid)}">
                    <input ng-focus="search.filterTerm=''" type="text"
                           data-ng-model="newUser.userInfo.userId"
                           class="i-sdc-form-input"
                           placeholder="{{ USER_MANAGEMENT_SEARCH_TEXT | translate}}"
                           data-ng-model-options="{ updateOn: 'default blur', debounce: { 'default': 750, 'blur': 0 } }"
                           name="contactId"
                           data-ng-pattern="userIdValidationPattern"
                           data-ng-change="clearForm()"
                           data-ng-blur="clearForm()"
                           data-required
                           data-tests-id="newuserId" />

                    <div class="input-error" data-ng-show="editForm.contactId.$dirty && editForm.contactId.$invalid">
                        <span ng-show="editForm.contactId.$error.required" translate="NEW_USER_ERROR_USER_ID_REQUIRED"></span>
                        <span ng-show="editForm.contactId.$error.pattern" translate="NEW_USER_ERROR_USER_ID_NOT_VALID"></span>
                    </div>
                </div>
                <div class="i-sdc-form-item sdc-user-management-top-bar-form-container"  data-ng-class="{error:(editForm.role.$dirty && editForm.role.$invalid
                                                                                                            && editForm.contactId.$viewValue)}">
                    <select class="i-sdc-form-select capitalize"
                            data-required
                            name="role"
                            data-tests-id="selectrole"
                            data-ng-model = "newUser.userInfo.role"
                            data-ng-options="role as (getTitle(role)) for role in roles | orderBy:'role'"
                            ng-focus="search.filterTerm=''">
                        <option value="">Select Role</option>
                    </select>
                    <div class="input-error" data-ng-show="editForm.role.$dirty && editForm.role.$invalid && editForm.contactId.$viewValue">
                        <span ng-show="editForm.role.$error.required" translate="NEW_USER_ERROR_ROLE_REQUIRED"></span>
                    </div>
                </div>
                <button data-tests-id="creategreen" data-ng-disabled="editForm.$invalid" class="sdc-user-management-top-bar-create-btn" ng-click="search.filterTerm = '' ; createUser()">Create</button>
            </div>
        </form>
    </div>


    <div  class="sdc-user-management-table-container-flex">

        <div class="sdc-user-management-table">
            <div class="head sdc-user-management-flex-container">
                <div class="sdc-user-management-table-header head-row hand sdc-user-management-flex-item" data-tests-id="th{{header.title}}" ng-repeat="header in tableHeadersList" ng-click="sort(header.property)">{{header.title}}
                    <span  ng-if="sortBy === header.property" class="sdc-user-management-table-header-sort-arrow" data-ng-class="{'down': reverse, 'up':!reverse}"> </span>
                </div>
              <div class="sdc-user-management-table-no-text-header head-row sdc-user-management-flex-item"></div>
                <div class="sdc-user-management-table-no-text-header head-row sdc-user-management-flex-item"></div>
            </div>

            <div class="body">
                <perfect-scrollbar scroll-y-margin-offset="0" include-padding="true" class="scrollbar-container">
                    <div ng-init="user.filterTerm = user.firstName + ' ' + user.lastName + ' ' + user.userId + ' ' + user.email + ' ' + user.role + ' ' + (user.lastLoginTime | date: 'MM/dd/yyyy')"
                         ng-repeat="user in usersList | filter: search | orderBy:sortBy:reverse"
                         data-ng-class="{'sdc-user-management-table-new-user-row': (isNewUser && $first), 'sdc-user-management-table-row-edit-mode': user.isInEditMode}"
                         class="sdc-user-management-flex-container data-row" data-tests-id="row_{{$index}}">

                        <div sdc-smart-tooltip class="sdc-user-management-table-col-general sdc-user-management-flex-item" data-tests-id="firstName_{{$index}}">{{user.firstName || '---'}}</div>
                        <div sdc-smart-tooltip class="sdc-user-management-table-col-general sdc-user-management-flex-item" data-tests-id="lastName__{{$index}}">{{user.lastName || '---' }}</div>
                        <div class="sdc-user-management-flex-item" data-tests-id="userId_{{$index}}">{{user.userId || '---'}}</div>
                        <div sdc-smart-tooltip class="sdc-user-management-table-col-general sdc-user-management-flex-item" data-tests-id="email_{{$index}}">{{user.email || '---'}}</div>
                        <div class="sdc-user-management-table-col-general sdc-user-management-flex-item">
                            <div class="sdc-user-management-table-role-select capitalize sdc-user-management-table-role-label"
                                 data-ng-if="!user.isInEditMode"
                                 data-tests-id="role_{{$index}}"
                                 data-ng-bind="getTitle(user.role)"></div>
                            <select class="sdc-user-management-table-role-select capitalize"
                                    data-tests-id="selectRole_{{$index}}"
                                    data-ng-if="user.isInEditMode"
                                    data-ng-model="user.tempRole"
                                    data-ng-options="role as (getTitle(role)) for role in roles | orderBy:'role'">
                            </select>
                        </div>
                        <div class="sdc-user-management-table-col-general sdc-user-management-flex-item" data-tests-id="lastActive_{{$index}}">{{user.lastLoginTime == 0 ? 'Waiting' :  (user.lastLoginTime | date:'MM/dd/yyyy')}}</div>
                        <div class="sdc-user-management-table-btn-col sdc-user-management-flex-item">
                            <button data-ng-disabled="user.isInEditMode" data-ng-hide="user.isInEditMode || currentUser.userId === user.userId"  class="sdc-user-management-table-edit-btn" ng-click="onEditUserPressed(user)" data-tests-id="updateUser_{{$index}}"> </button>
                            <button data-ng-show="user.isInEditMode" class="sdc-user-management-table-save-btn" ng-click="saveUserChanges(user)" data-tests-id="save_{{$index}}"> </button>
                        </div>
                        <div class="sdc-user-management-table-btn-col sdc-user-management-flex-item">
                            <button data-ng-hide="currentUser.userId === user.userId"  class="sdc-user-management-table-delete-btn" ng-click="deleteUser(user.userId)" data-tests-id="delete_{{$index}}"> </button>
                        </div>

                    </div>
                </perfect-scrollbar>
            </div>

        </div>
    </div>
</div>