1 <div id="voice-internalroute" class="page-layout simple tabbed" layout="column">
3 <div class="header md-accent-bg" layout="row" layout-align="start center">
4 <div class="white-fg" layout="row" layout-align="start center" flex>
6 class="goto-internalroutes-button md-icon-button"
7 aria-label="Go to internalroutes"
8 ng-click="vm.gotoInternalRoutes()"
10 translate-attr-aria-label="VOICE.GO_TO_INTERNALROUTES"
12 <md-icon md-font-icon="icon-arrow-left"></md-icon>
15 <div layout="row" layout-align="start center">
16 <div class="internalroute-image" hide-xs>
17 <img ng-src="assets/images/business/internalroutes.jpg" />
20 <div layout="column" layout-align="start start">
22 #{{vm.internalroute.id}}
23 <span ng-if="vm.internalroute.name">{{vm.internalroute.name}}</span>
25 <div class="subtitle secondary-text">
26 <span translate="APP.CREATED_AT"></span>
27 <span>{{vm.internalroute.createdAt | date:'medium'}}</span>
35 ng-click="vm.saveInternalRoute()"
36 ng-if="vm.crudPermissions.canEdit"
37 class="send-button md-accent md-raised"
38 ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)"
40 translate-attr-aria-label="APP.SAVE"
51 md-selected="vm.selectedTab"
52 md-stretch-tabs="always"
59 <span translate="APP.SETTINGS">SETTINGS</span>
63 class="internalroute-detail-form-container general md-background-bg md-whiteframe-1dp"
65 <div class="pb-16" layout="row" layout-align="start center">
66 <div class="h2 secondary-text" translate="APP.GENERAL">
70 <form name="generalForm" novalidate>
71 <md-input-container class="md-block">
72 <label translate="APP.PHONENUMBER">PhoneNumber</label>
76 ng-model="vm.internalroute.exten"
79 ng-disabled="!vm.crudPermissions.canEdit"
83 ng-messages="generalForm['exten'].$error"
84 ng-show="generalForm['exten'].$touched"
87 <div ng-message="required">
88 <span translate="APP.ERRORS.PHONENUMBER_REQUIRED"
89 >PhoneNumber field is required</span
94 <md-input-container class="md-block">
95 <label translate="APP.CONTEXT">Context</label>
98 ng-model="vm.internalroute.context"
100 ng-disabled="!vm.crudPermissions.canEdit"
103 ng-value="context.name"
104 ng-repeat="context in vm.contexts"
105 ng-disabled="context.canSelect === false"
106 >{{ context.name }}</md-option
110 ng-messages="generalForm['context'].$error"
111 ng-show="generalForm['context'].$touched"
114 <div ng-message="required">
115 <span translate="APP.ERRORS.CONTEXT_REQUIRED"
116 >Context field is required</span
120 </md-input-container>
121 <md-input-container class="md-block">
122 <label translate="APP.DESCRIPTION">Description</label>
126 ng-model="vm.internalroute.description"
127 ng-disabled="!vm.crudPermissions.canEdit"
131 ng-messages="generalForm['description'].$error"
132 ng-show="generalForm['description'].$touched"
135 <div ng-message="required">
136 <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED"
137 >Description field is required</span
141 </md-input-container>
148 <span translate="APP.ACTIONS">ACTIONS</span>
152 class="internalroute-detail-form-container actions md-background-bg md-whiteframe-1dp"
155 ng-controller="InternalRouteActionsController as vm_ac"
156 ng-init="vm_ac.init(vm.internalroute, vm.crudPermissions)"
160 layout-align="start start"
164 class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp"
168 ng-if="vm_ac.crudPermissions.canEdit"
170 <!-- SIDENAV CONTENT -->
171 <md-list class="no-padding">
172 <md-subheader class="md-no-sticky">
173 <span translate="VOICE.APPLICATIONS_LIST">
178 <md-divider></md-divider>
179 <md-list ng-sortable="vm_ac.list">
180 <md-list-item class="handle" ng-repeat="a in vm_ac.apps">
181 <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>
183 class="text-truncate"
184 translate="VOICE.{{(a.alias || a.appType) | uppercase}}"
186 {{a.alias || a.appType}}
190 <!-- / SIDENAV CONTENT -->
196 class="main scrollable md-background-bg md-whiteframe-1dp"
199 flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}"
202 class="md-table-toolbar md-default"
203 ng-hide="vm_ac.selectedInternalRouteApps.length"
205 <div class="md-toolbar-tools">
206 <span class="md-subhead">Drag & Drop Routing</span>
209 on-search="vm_ac.query.filter = query"
210 on-collapse="vm_ac.query.filter = undefined"
216 class="md-table-toolbar md-accent"
217 ng-show="vm_ac.selectedInternalRouteApps.length"
219 <div class="md-toolbar-tools">
220 <span class="md-subhead"
221 >{{vm_ac.selectedInternalRouteApps.length}}
222 {{vm_ac.selectedInternalRouteApps.length > 1 ? 'items' :
223 'item'}} selected</span
227 ng-if="vm_ac.crudPermissions.canDelete"
228 class="md-icon-button"
229 ng-click="vm_ac.deleteSelectedInternalRouteApps($event)"
230 aria-label="delete selected"
232 translate-attr-label="APP.DELETE_SELECTED"
234 <md-icon md-font-icon="icon-delete"></md-icon>
239 <!-- QUEUES TABLE -->
245 ng-model="vm_ac.selectedInternalRouteApps"
249 <th md-column width="10px"></th>
257 <span>Interval</span>
259 <th md-column width="10px"></th>
260 <th md-column width="10px"></th>
263 <tbody md-body ng-sortable="vm_ac.applications">
268 ng-repeat="app in vm_ac.internalrouteApps.rows | filter: vm_ac.query.filter"
272 md-font-icon="icon-drag-vertical"
278 ng-click="vm_ac.editInternalRouteApp($event, $index)"
280 {{app.app.toLowerCase() === 'agi' ? 'Cally-Square' :
281 app.app | ucfirst}}<span
282 ng-if="app.appType.toLowerCase() === 'custom'"
288 ng-click="vm_ac.editInternalRouteApp($event, $index)"
290 <span class="text-truncate" style="width: 200px"
291 >{{app.appdata}}</span
296 ng-click="vm_ac.editInterval($event, $index)"
298 {{app.IntervalId ? 'From List' : app.interval}}
302 ng-click="vm_ac.editInterval($event, $index)"
303 class="md-icon-button"
304 aria-label="Interval"
306 <md-icon md-font-icon="icon-timer"></md-icon>
308 {{app.IntervalId ? 'From List' : (app.interval ===
309 '*,*,*,*' ? 'Always' : 'Custom')}}
316 ng-if="!vm_ac.crudPermissions.readOnly"
320 class="md-icon-button"
323 translate-attr-aria-label="APP.MORE"
324 ng-click="$mdMenu.open($event)"
327 md-font-icon="icon-dots-vertical"
331 <md-menu-content width="3">
333 ng-if="vm_ac.crudPermissions.canEdit"
336 ng-click="vm_ac.editInternalRouteApp($event, $index)"
337 translate="APP.EDIT_APP"
343 ng-if="vm_ac.crudPermissions.canEdit"
346 ng-click="vm_ac.editInterval($event, $index)"
347 translate="APP.EDIT_INTERVAL"
353 ng-if="vm_ac.crudPermissions.canDelete"
356 ng-click="vm_ac.deleteConfirm(app, $index, $event)"
357 translate="APP.DELETE_APP"
366 <tr md-row ng-hide="vm_ac.internalrouteApps.rows.length">
367 <td md-cell colspan="6">
369 class="text-boxed-light"
370 translate="APP.NO_APPS_AVAILABLE"
371 >No apps available</span
378 <td md-cell colspan="7">
380 ><em translate="VOICE.LEGEND.CUSTOM_APPLICATION"
381 >(*) - Custom application.</em
388 </md-table-container>
389 <!-- / QUEUES TABLE -->
393 <!-- / NO RESULTS -->