1 <div id="users" class="page-layout simple left-sidenav inner-sidenav motion-list">
3 <div class="header md-accent-bg" layout="row" layout-align="space-between center">
5 <div layout="row" layout-align="start center">
6 <div class="logo" layout="row" layout-align="start center">
7 <span class="logo-icon">
8 <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>
10 <span class="logo-text" translate="APP.USERS">Users</span>
17 <div class="search-input-wrapper" layout="row" layout-align="start center">
19 <md-icon md-font-icon="icon-magnify"></md-icon>
21 <md-input-container md-no-float class="m-0">
22 <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter"
23 ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="APP.SEARCH_FOR_ANYONE" />
32 <div ng-show="vm.selectedUsers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row"
33 layout-align="start center">
34 <div class="close-button-wrapper" ng-click="vm.selectedUsers =[]">
35 <md-button layout="row" layout-align="start center">
36 <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>
37 <span translate="APP.BACK">Back</span>
41 <div flex layout="row" layout-align="space-between center">
43 <span class="selected-users-count">
44 <span>{{vm.selectedUsers.length}}</span>
45 <span translate="APP.SELECTED">selected</span>
48 <md-menu class="select-menu" ng-if="!vm.currentThread">
49 <md-button class="md-icon-button" ng-click="$mdMenu.open($event)" aria-label="multi select toggle" translate
50 translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">
51 <md-icon md-font-icon="icon-menu-down"></md-icon>
53 <md-menu-content width="3">
55 <md-button ng-click="vm.selectAllUsers()" translate="APP.SELECT_ALL">
60 <md-button ng-click="vm.deselectUsers()" translate="APP.SELECT_NONE">
68 <div class="multi-select-actions">
69 <button class="md-icon-button" ng-csv="vm.exportSelectedUsers" csv-label="true" filename="users.csv">
70 <md-icon md-font-icon="icon-file-excel"></md-icon>
75 <!-- / SELECTED BAR -->
78 <div class="content" md-background-bg layout="row" layout-align="start start">
80 <div class="main scrollable" ms-scroll>
84 <table md-table md-row-select multiple ng-model="vm.selectedUsers" md-progress="vm.promise">
85 <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getUsers">
87 <th md-column ng-if="vm.table == 'users' || vm.table == 'agents'" width="20px"></th>
88 <th md-column md-order-by="role">
89 {{ 'STAFF.ROLE' | translate }}
91 <th md-column md-order-by="userProfileId">
92 {{ 'STAFF.USERPROFILE' | translate }}
94 <th md-column md-order-by="fullname">
95 {{ 'APP.FULLNAME' | translate }}
97 <th md-column md-order-by="name">
98 {{ 'APP.USERNAME' | translate }}
100 <th md-column md-order-by="email">
101 {{ 'APP.EMAIL' | translate }}
103 <th md-column md-order-by="phone">
104 {{ 'APP.PHONE' | translate }}
106 <th md-column md-order-by="mobile">
107 {{ 'APP.MOBILE' | translate }}
109 <th md-column md-order-by="internal">
110 {{ 'APP.INTERNAL' | translate }}
112 <th md-column md-order-by="disabled">
113 {{ 'APP.DISABLED' | translate }}
115 <th md-column md-order-by="blocked">
116 {{ 'STAFF.BLOCKED' | translate }}
118 <th md-column width="10px"></th>
122 <tr md-row ng-hide="vm.users.rows.length">
123 <td md-cell colspan="11">
124 <div layout="row" layout-align="center center">
125 <span translate="APP.NO_AVAILABLE_INFO">No Available Info</span>
129 <tr md-row md-select="user" md-select-id="id" ng-repeat="user in vm.users.rows">
130 <td md-cell ng-if="user.userpic">
131 <img class="avatar" alt="{{user.name}}" ng-src="api/users/{{user.id}}/avatar" />
133 <td md-cell ng-if="!user.userpic && (vm.table == 'users' || vm.table == 'agents')">
134 <img class="avatar" alt="{{user.name}}" ng-src="assets/images/avatars/profile.png" />
137 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)"
138 md-cell class="role">
139 {{ vm.arrayrole[user.role].option }}
142 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)"
143 md-cell class="userProfileId font-weight-600">
144 {{ (vm.userProfiles | filter : {'id':user.userProfileId} :
148 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)"
149 md-cell class="fullname font-weight-600">
153 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)"
154 md-cell class="name">
158 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)"
159 md-cell class="email">
163 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)"
164 md-cell class="phone">
168 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)"
169 md-cell class="mobile">
173 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)"
174 md-cell class="internal">
178 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)"
179 md-cell class="disabled">
180 <md-icon md-colors="{color: {{user.disabled ? '\'green\'' : '\'grey\''}}}"
181 md-font-icon="{{user.disabled ? 'icon-check' : 'icon-close'}}"></md-icon>
184 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)"
185 md-cell class="blocked">
186 <md-icon md-colors="{color: {{user.blocked ? '\'green\'' : '\'grey\''}}}"
187 md-font-icon="{{user.blocked ? 'icon-check' : 'icon-close'}}"></md-icon>
190 <td md-cell class="actions">
192 <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="APP.MORE"
193 ng-click="$mdMenu.open($event)">
194 <md-icon md-font-icon="icon-dots-vertical"></md-icon>
197 <md-menu-content width="3">
202 <md-menu-item ng-if="vm.crudPermissions.canEdit">
203 <md-button ng-click="vm.editstate(user, $event )" translate="STAFF.EDIT_USER">
212 <md-menu-item ng-if="vm.currentUser.role === 'admin' && user.id !== vm.currentUser.id">
213 <md-button ng-click="vm.deleteconfirm(user, $event )" translate="STAFF.DELETE_USER">
223 </md-table-container>
226 md-label="{page: '{{'APP.PAGE' | translate}}:', rowsPerPage: '{{'APP.ROWSPERPAGE' | translate}}:', of: '{{'APP.OF' | translate}}'}"
227 md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page"
228 md-total="{{vm.users.count}}" md-on-paginate="vm.getUsers" md-page-select></md-table-pagination>
230 <!-- / USER TABLE -->
233 <!-- / NO RESULTS -->
239 <!-- ADD USER BUTTON -->
240 <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent add-item-button" id="add-user-button"
241 ng-click="vm.createOrEditUser($event)" aria-label="add user" translate translate-attr-aria-label="STAFF.ADD_USER">
242 <md-icon md-font-icon="icon-plus"></md-icon>
244 <!-- / ADD USER BUTTON -->