Built motion from commit 362b9399b4d0ed5560fbb795af995925d345fc38. Version 3.0.0...
[motion-next.git] / public / src / js / modules / main / apps / tools / views / trunks / trunks.html / trunks.html
1 <div
2   id="trunks"
3   class="page-layout simple left-sidenav inner-sidenav motion-list"
4 >
5   <!-- HEADER -->
6   <div
7     class="header md-accent-bg"
8     layout="row"
9     layout-align="space-between center"
10   >
11     <!-- APP TITLE -->
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-auto-fix" class="s24"></md-icon>
16         </span>
17         <span class="logo-text" translate="APP.TRUNKS">Trunks</span>
18       </div>
19     </div>
20     <!-- / APP TITLE -->
21
22     <div layout="row">
23       <!-- SEARCH -->
24       <div
25         class="search-input-wrapper"
26         layout="row"
27         layout-align="start center"
28       >
29         <label for="search">
30           <md-icon md-font-icon="icon-magnify"></md-icon>
31         </label>
32         <md-input-container md-no-float class="m-0">
33           <input
34             id="search"
35             placeholder="Search for anyone"
36             type="text"
37             ng-model="vm.query.filter"
38             ng-model-options="{ debounce: 1000 }"
39             translate
40             translate-attr-placeholder="APP.SEARCH_FOR_ANYONE"
41           />
42         </md-input-container>
43       </div>
44       <!-- / SEARCH -->
45     </div>
46   </div>
47   <!-- / HEADER -->
48
49   <!-- SELECTED BAR -->
50   <div
51     ng-show="vm.selectedTrunks.length > 0"
52     class="selected-bar header animate-slide-down md-accent-bg"
53     layout="row"
54     layout-align="start center"
55   >
56     <div class="close-button-wrapper" ng-click="vm.selectedTrunks =[]">
57       <md-button layout="row" layout-align="start center">
58         <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>
59         <span translate="APP.BACK">Back</span>
60       </md-button>
61     </div>
62
63     <div flex layout="row" layout-align="space-between center">
64       <div>
65         <span class="selected-trunks-count">
66           <span>{{vm.selectedTrunks.length}}</span>
67           <span translate="APP.SELECTED">selected</span>
68         </span>
69
70         <md-menu class="select-menu" ng-if="!vm.currentThread">
71           <md-button
72             class="md-icon-button"
73             ng-click="$mdMenu.open($event)"
74             aria-label="multi select toggle"
75             translate
76             translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE"
77           >
78             <md-icon md-font-icon="icon-menu-down"></md-icon>
79           </md-button>
80           <md-menu-content width="3">
81             <md-menu-item>
82               <md-button
83                 ng-click="vm.selectAllTrunks()"
84                 translate="APP.SELECT_ALL"
85               >
86                 Select all
87               </md-button>
88             </md-menu-item>
89             <md-menu-item>
90               <md-button
91                 ng-click="vm.deselectTrunks()"
92                 translate="APP.SELECT_NONE"
93               >
94                 Select none
95               </md-button>
96             </md-menu-item>
97           </md-menu-content>
98         </md-menu>
99       </div>
100
101       <div class="multi-select-actions">
102         <button
103           class="md-icon-button"
104           ng-csv="vm.exportSelectedTrunks"
105           csv-label="true"
106           filename="trunks.csv"
107         >
108           <md-icon md-font-icon="icon-file-excel"></md-icon>
109         </button>
110         <md-button
111           class="md-icon-button"
112           ng-if="vm.crudPermissions.canDelete"
113           ng-click="vm.deleteSelectedTrunks($event)"
114           aria-label="delete selected"
115           translate
116           translate-attr-label="APP.DELETE_SELECTED"
117         >
118           <md-icon md-font-icon="icon-delete"></md-icon>
119         </md-button>
120       </div>
121     </div>
122   </div>
123   <!-- / SELECTED BAR -->
124
125   <!-- CONTENT -->
126   <div class="content" md-background-bg layout="row" layout-align="start start">
127     <!-- MAIN -->
128     <div class="main scrollable" ms-scroll>
129       <!-- TRUNK TABLE -->
130       <md-card>
131         <md-table-container>
132           <table
133             md-table
134             md-row-select
135             multiple
136             ng-model="vm.selectedTrunks"
137             md-progress="vm.promise"
138           >
139             <thead
140               md-head
141               md-order="vm.query.sort"
142               md-on-reorder="vm.getTrunks"
143             >
144               <tr md-row>
145                 <th
146                   md-column
147                   ng-if="vm.table == 'users' || vm.table == 'agents'"
148                   width="20px"
149                 ></th>
150                 <th md-column md-order-by="id">{{ 'APP.ID' | translate }}</th>
151                 <th md-column md-order-by="name">
152                   {{ 'APP.NAME' | translate }}
153                 </th>
154                 <th md-column md-order-by="active">
155                   {{ 'APP.ACTIVE' | translate }}
156                 </th>
157                 <th md-column md-order-by="host">
158                   {{ 'APP.HOST' | translate }}
159                 </th>
160                 <th md-column md-order-by="registry">
161                   {{ 'APP.REGISTRY' | translate }}
162                 </th>
163                 <th md-column md-order-by="description">
164                   {{ 'APP.DESCRIPTION' | translate }}
165                 </th>
166                 <th md-column width="10px"></th>
167               </tr>
168             </thead>
169             <tbody md-body>
170               <tr md-row ng-hide="vm.trunks.rows.length">
171                 <td md-cell colspan="7">
172                   <div layout="row" layout-align="center center">
173                     <span translate="APP.NO_AVAILABLE_INFO"
174                       >No Available Info</span
175                     >
176                   </div>
177                 </td>
178               </tr>
179               <tr
180                 md-row
181                 md-select="trunk"
182                 md-select-id="id"
183                 ng-repeat="trunk in vm.trunks.rows"
184               >
185                 <td md-cell ng-if="trunk.userpic">
186                   <img
187                     class="avatar"
188                     alt="{{trunk.name}}"
189                     ng-src="api/users/{{trunk.id}}/avatar"
190                   />
191                 </td>
192                 <td
193                   md-cell
194                   ng-if="!trunk.userpic && (vm.table == 'users' || vm.table == 'agents')"
195                 >
196                   <img
197                     class="avatar"
198                     alt="{{trunk.name}}"
199                     ng-src="assets/images/avatars/profile.png"
200                   />
201                 </td>
202                 <td
203                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)"
204                   md-cell
205                   class="id"
206                 >
207                   {{trunk.id}}
208                 </td>
209                 <td
210                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)"
211                   md-cell
212                   class="name"
213                 >
214                   {{trunk.name}}
215                 </td>
216                 <td
217                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)"
218                   md-cell
219                   class="active"
220                 >
221                   <md-icon
222                     md-colors="{color: {{trunk.active ? '\'green\'' : '\'grey\''}}}"
223                     md-font-icon="{{trunk.active ? 'icon-check' : 'icon-close'}}"
224                   ></md-icon>
225                 </td>
226                 <td
227                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)"
228                   md-cell
229                   class="host"
230                 >
231                   {{trunk.host}}
232                 </td>
233                 <td
234                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)"
235                   md-cell
236                   class="registry"
237                 >
238                   {{trunk.registry}}
239                 </td>
240                 <td
241                   ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)"
242                   md-cell
243                   class="description"
244                 >
245                   {{trunk.description}}
246                 </td>
247
248                 <td md-cell class="actions">
249                   <md-menu>
250                     <md-button
251                       class="md-icon-button"
252                       aria-label="More"
253                       translate
254                       translate-attr-aria-label="APP.MORE"
255                       ng-click="$mdMenu.open($event)"
256                     >
257                       <md-icon md-font-icon="icon-dots-vertical"></md-icon>
258                     </md-button>
259
260                     <md-menu-content width="3">
261                       <!-- SUBACTIONS -->
262
263                       <!-- ACTIONS -->
264
265                       <md-menu-item ng-if="vm.crudPermissions.canEdit">
266                         <md-button
267                           ng-click="vm.editstate(trunk, $event    )"
268                           translate="APP.EDIT_TRUNK"
269                         >
270                           Edit Trunk
271                         </md-button>
272                       </md-menu-item>
273
274                       <!-- SUBACTIONS -->
275
276                       <!-- ACTIONS -->
277
278                       <md-menu-item ng-if="vm.crudPermissions.canEdit">
279                         <md-button
280                           ng-click="vm.clonedialog(trunk, $event    )"
281                           translate="TOOLS.CLONE_TRUNK"
282                         >
283                           clone Trunk
284                         </md-button>
285                       </md-menu-item>
286
287                       <!-- SUBACTIONS -->
288
289                       <!-- ACTIONS -->
290
291                       <md-menu-item>
292                         <md-button
293                           ng-click="vm.gotorealtimegoto(trunk, $event    )"
294                           translate="TOOLS.GOTOREALTIME_TRUNK"
295                         >
296                           goToRealtime Trunk
297                         </md-button>
298                       </md-menu-item>
299
300                       <!-- SUBACTIONS -->
301
302                       <!-- ACTIONS -->
303
304                       <md-menu-item ng-if="vm.crudPermissions.canDelete">
305                         <md-button
306                           ng-click="vm.deleteconfirm(trunk, $event    )"
307                           translate="TOOLS.DELETE_TRUNK"
308                         >
309                           Delete Trunk
310                         </md-button>
311                       </md-menu-item>
312                     </md-menu-content>
313                   </md-menu>
314                 </td>
315               </tr>
316             </tbody>
317           </table>
318         </md-table-container>
319
320         <md-table-pagination
321           md-label="{page: '{{'TOOLS.PAGE' | translate}}:', rowsPerPage: '{{'TOOLS.ROWSPERPAGE' | translate}}:', of: '{{'TOOLS.OF' | translate}}'}"
322           md-limit="vm.query.limit"
323           md-limit-options="[10, 15, 20, 50, 100, 250]"
324           md-page="vm.query.page"
325           md-total="{{vm.trunks.count}}"
326           md-on-paginate="vm.getTrunks"
327           md-page-select
328         ></md-table-pagination>
329       </md-card>
330       <!-- / TRUNK TABLE -->
331       <!-- NO RESULTS -->
332
333       <!-- / NO RESULTS -->
334     </div>
335     <!-- / MAIN -->
336   </div>
337   <!-- / CONTENT -->
338
339   <!-- ADD TRUNK BUTTON -->
340   <md-button
341     ng-if="vm.crudPermissions.canEdit"
342     class="md-fab md-accent add-item-button"
343     id="add-trunk-button"
344     ng-click="vm.createOrEditTrunk($event)"
345     aria-label="add trunk"
346     translate
347     translate-attr-aria-label="TOOLS.ADD_TRUNK"
348   >
349     <md-icon md-font-icon="icon-plus"></md-icon>
350   </md-button>
351   <!-- / ADD TRUNK BUTTON -->
352 </div>