3 class="page-layout simple left-sidenav inner-sidenav motion-list"
7 class="header md-accent-bg"
9 layout-align="space-between center"
12 <div layout="row" layout-align="start center">
13 <div class="logo" layout="row" layout-align="start center">
14 <span class="logo-icon">
15 <md-icon md-font-icon="icon-phone" class="s24"></md-icon>
17 <span class="logo-text" translate="VOICE.MUSICONHOLDS"
27 class="search-input-wrapper"
29 layout-align="start center"
32 <md-icon md-font-icon="icon-magnify"></md-icon>
34 <md-input-container md-no-float class="m-0">
37 placeholder="Search for anyone"
39 ng-model="vm.query.filter"
40 ng-model-options="{ debounce: 1000 }"
42 translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE"
53 ng-show="vm.selectedMusicOnHolds.length > 0"
54 class="selected-bar header animate-slide-down md-accent-bg"
56 layout-align="start center"
58 <div class="close-button-wrapper" ng-click="vm.selectedMusicOnHolds =[]">
59 <md-button layout="row" layout-align="start center">
60 <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>
61 <span translate="VOICE.BACK">Back</span>
65 <div flex layout="row" layout-align="space-between center">
67 <span class="selected-musiconholds-count">
68 <span>{{vm.selectedMusicOnHolds.length}}</span>
69 <span translate="VOICE.SELECTED">selected</span>
72 <md-menu class="select-menu" ng-if="!vm.currentThread">
74 class="md-icon-button"
75 ng-click="$mdMenu.open($event)"
76 aria-label="multi select toggle"
78 translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE"
80 <md-icon md-font-icon="icon-menu-down"></md-icon>
82 <md-menu-content width="3">
85 ng-click="vm.selectAllMusicOnHolds()"
86 translate="VOICE.SELECT_ALL"
93 ng-click="vm.deselectMusicOnHolds()"
94 translate="VOICE.SELECT_NONE"
103 <div class="multi-select-actions">
105 class="md-icon-button"
106 ng-csv="vm.exportSelectedMusicOnHolds"
108 filename="musiconholds.csv"
110 <md-icon md-font-icon="icon-file-excel"></md-icon>
113 class="md-icon-button"
114 ng-if="vm.crudPermissions.canDelete"
115 ng-click="vm.deleteSelectedMusicOnHolds($event)"
116 aria-label="delete selected"
118 translate-attr-label="VOICE.DELETE_SELECTED"
120 <md-icon md-font-icon="icon-delete"></md-icon>
125 <!-- / SELECTED BAR -->
128 <div class="content" md-background-bg layout="row" layout-align="start start">
130 <div class="main scrollable" ms-scroll>
131 <!-- MUSICONHOLD TABLE -->
138 ng-model="vm.selectedMusicOnHolds"
139 md-progress="vm.promise"
143 md-order="vm.query.sort"
144 md-on-reorder="vm.getMusicOnHolds"
149 ng-if="vm.table == 'users' || vm.table == 'agents'"
152 <th md-column md-order-by="id">{{ 'VOICE.ID' | translate }}</th>
153 <th md-column md-order-by="name">
154 {{ 'VOICE.NAME' | translate }}
156 <th md-column md-order-by="mode">
157 {{ 'VOICE.MODE' | translate }}
159 <th md-column md-order-by="sort">
160 {{ 'VOICE.SORT' | translate }}
162 <th md-column width="10px"></th>
166 <tr md-row ng-hide="vm.musiconholds.rows.length">
167 <td md-cell colspan="5">
168 <div layout="row" layout-align="center center">
169 <span translate="VOICE.NO_AVAILABLE_INFO"
170 >No Available Info</span
177 md-select="musiconhold"
179 ng-repeat="musiconhold in vm.musiconholds.rows"
181 <td md-cell ng-if="musiconhold.userpic">
184 alt="{{musiconhold.name}}"
185 ng-src="api/users/{{musiconhold.id}}/avatar"
190 ng-if="!musiconhold.userpic && (vm.table == 'users' || vm.table == 'agents')"
194 alt="{{musiconhold.name}}"
195 ng-src="assets/images/avatars/profile.png"
199 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)"
206 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)"
213 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)"
217 {{ 'VOICE.' + vm.arraymode[musiconhold.mode].option |
218 uppercase | translate }}
221 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)"
225 {{ 'VOICE.' + vm.arraysort[musiconhold.sort].option |
226 uppercase | translate }}
232 ng-if="!vm.crudPermissions.readOnly"
236 class="md-icon-button"
239 translate-attr-aria-label="VOICE.MORE"
240 ng-click="$mdMenu.open($event)"
242 <md-icon md-font-icon="icon-dots-vertical"></md-icon>
245 <md-menu-content width="3">
250 <md-menu-item ng-if="vm.crudPermissions.canEdit">
252 ng-click="vm.editstate(musiconhold, $event )"
253 translate="VOICE.EDIT_MUSICONHOLD"
263 <md-menu-item ng-if="vm.crudPermissions.canDelete">
265 ng-click="vm.deleteconfirm(musiconhold, $event )"
266 translate="VOICE.DELETE_MUSICONHOLD"
277 </md-table-container>
280 md-label="{page: '{{'VOICE.PAGE' | translate}}:', rowsPerPage: '{{'VOICE.ROWSPERPAGE' | translate}}:', of: '{{'VOICE.OF' | translate}}'}"
281 md-limit="vm.query.limit"
282 md-limit-options="[10, 15, 20, 50, 100, 250]"
283 md-page="vm.query.page"
284 md-total="{{vm.musiconholds.count}}"
285 md-on-paginate="vm.getMusicOnHolds"
287 ></md-table-pagination>
289 <!-- / MUSICONHOLD TABLE -->
292 <!-- / NO RESULTS -->
298 <!-- ADD MUSICONHOLD BUTTON -->
300 ng-if="vm.crudPermissions.canEdit"
301 class="md-fab md-accent add-item-button"
302 id="add-musiconhold-button"
303 ng-click="vm.createOrEditMusicOnHold($event)"
304 aria-label="add musiconhold"
306 translate-attr-aria-label="VOICE.ADD_MUSICONHOLD"
308 <md-icon md-font-icon="icon-plus"></md-icon>
310 <!-- / ADD MUSICONHOLD BUTTON -->