Built motion from commit 7e022ab.|2.0.14
[motion2.git] / public / app / main / apps / voice / views / voiceQueues / edit / view.html
1 <div id="voice-voiceQueue" class="page-layout simple tabbed" layout="column">
2
3     <!-- HEADER -->
4     <div class="header md-accent-bg" layout="row" layout-align="start center">
5         <div class="white-fg" layout="row" layout-align="start center" flex>
6             <md-button class="goto-voiceQueues-button md-icon-button" aria-label="Go to voiceQueues" ng-click="vm.gotoVoiceQueues()" translate translate-attr-aria-label="VOICE.GO_TO_VOICEQUEUES">
7                 <md-icon md-font-icon="icon-arrow-left"></md-icon>
8             </md-button>
9
10             <div layout="row" layout-align="start center">
11
12                 <div ng-if="vm.voiceQueue.userpic" class="voiceQueue-image" hide-xs>
13                     <img ng-src="api/users/{{vm.voiceQueue.id}}/avatar">
14                 </div>
15
16                 <div ng-if="!vm.voiceQueue.userpic" class="voiceQueue-image" hide-xs>
17                     <img ng-src="assets/images/business/voiceQueues.jpg">
18                 </div>
19
20                 <div layout="column" layout-align="start start">
21                     <div class="h2">
22                         #{{vm.voiceQueue.id}} {{vm.voiceQueue.name}}
23                     </div>
24                     <div class="subtitle secondary-text">
25                         <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voiceQueue.createdAt | date:'medium'}}</span>
26                     </div>
27                 </div>
28             </div>
29         </div>
30
31
32         <div ng-cloak>
33             <md-button ng-click="vm.teamadddialog(vm.voiceQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">
34                 <md-tooltip><span translate="VOICE.TEAMADD_VOICEQUEUE"></span></md-tooltip>
35                 <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>
36             </md-button>
37         </div>
38
39         <div ng-cloak>
40             <md-button ng-click="vm.agentadddialog(vm.voiceQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">
41                 <md-tooltip><span translate="VOICE.AGENTADD_VOICEQUEUE"></span></md-tooltip>
42                 <md-icon md-font-icon="icon-account-plus"></md-icon>
43             </md-button>
44         </div>
45         <div>
46             <md-button type="submit" ng-click="vm.saveVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (settingsForm.$invalid) || (announcementsForm.$invalid) || (advancedForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">
47                 SAVE
48             </md-button>
49         </div>
50
51     </div>
52     <!-- / HEADER -->
53
54     <!-- CONTENT -->
55     <div class="content">
56
57         <md-tabs md-selected="vm.selectedTab" md-dynamic-height>
58             <md-tab>
59                 <md-tab-label>
60                     <span translate="VOICE.SETTINGS">SETTINGS</span>
61                 </md-tab-label>
62
63                 <md-tab-body>
64                     <div class="voiceQueue-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="VOICE.GENERAL">GENERAL</div>
67                         </div>
68                         <form name="generalForm" novalidate>
69                             <md-input-container class="md-block">
70                                 <label translate="VOICE.STRATEGY">Strategy</label>
71                                 <md-select ng-model="vm.voiceQueue.strategy" required autofocus>
72                                     <md-option ng-value="'ringall'">Ringall</md-option>
73                                     <md-option ng-value="'rrmemory'">Round Robin Memory</md-option>
74                                     <md-option ng-value="'leastrecent'">Least Recent</md-option>
75                                     <md-option ng-value="'fewestcalls'">Fewest Calls</md-option>
76                                     <md-option ng-value="'random'">Random</md-option>
77                                     <md-option ng-value="'linear'">Linear</md-option>
78                                     <md-option ng-value="'wrandom'">Weight Random</md-option>
79                                 </md-select>
80                                 <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">
81                                     <div ng-message="required">
82                                         <span translate="VOICE.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>
83                                     </div>
84                                 </div>
85                             </md-input-container>
86                             <md-input-container class="md-block">
87                                 <label translate="VOICE.TIMEOUT">Timeout</label>
88                                 <input type="number" name="timeout" ng-model="vm.voiceQueue.timeout" min="0" required>
89                                 <div class="hint"><span translate="VOICE.HELP.TIMEOUT"></span></div>
90                                 <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">
91                                     <div ng-message="required">
92                                         <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>
93                                     </div>
94                                 </div>
95                             </md-input-container>
96                             <md-input-container class="md-block">
97                                 <label translate="VOICE.MAXLENGTH">MaxLength</label>
98                                 <input type="number" name="maxlen" ng-model="vm.voiceQueue.maxlen" min="0">
99                                 <div class="hint"><span translate="VOICE.HELP.MAXLENGTH"></span></div>
100                                 <div ng-messages="generalForm.maxlen.$error" ng-show="generalForm.maxlen.$touched" role="alert">
101                                     <div ng-message="required">
102                                         <span translate="VOICE.ERRORS.MAXLENGTH_REQUIRED">MaxLength field is required</span>
103                                     </div>
104                                 </div>
105                             </md-input-container>
106                             <md-input-container class="md-block">
107                                 <label translate="VOICE.RETRY">Retry</label>
108                                 <input type="number" name="retry" ng-model="vm.voiceQueue.retry" min="0">
109                                 <div class="hint"><span translate="VOICE.HELP.RETRY"></span></div>
110                                 <div ng-messages="generalForm.retry.$error" ng-show="generalForm.retry.$touched" role="alert">
111                                     <div ng-message="required">
112                                         <span translate="VOICE.ERRORS.RETRY_REQUIRED">Retry field is required</span>
113                                     </div>
114                                 </div>
115                             </md-input-container>
116                             <md-input-container class="md-block">
117                                 <label translate="VOICE.WRAPUPTIME">WrapupTime</label>
118                                 <input type="number" name="wrapuptime" ng-model="vm.voiceQueue.wrapuptime" min="0">
119                                 <div class="hint"><span translate="VOICE.HELP.WRAPUPTIME"></span></div>
120                                 <div ng-messages="generalForm.wrapuptime.$error" ng-show="generalForm.wrapuptime.$touched" role="alert">
121                                     <div ng-message="required">
122                                         <span translate="VOICE.ERRORS.WRAPUPTIME_REQUIRED">WrapupTime field is required</span>
123                                     </div>
124                                 </div>
125                             </md-input-container>
126                             <md-input-container class="md-block">
127                                 <label translate="VOICE.WEIGHT">Weight</label>
128                                 <input type="number" name="weight" ng-model="vm.voiceQueue.weight" min="0">
129                                 <div class="hint"><span translate="VOICE.HELP.WEIGHT"></span></div>
130                                 <div ng-messages="generalForm.weight.$error" ng-show="generalForm.weight.$touched" role="alert">
131                                     <div ng-message="required">
132                                         <span translate="VOICE.ERRORS.WEIGHT_REQUIRED">Weight field is required</span>
133                                     </div>
134                                 </div>
135                             </md-input-container>
136                             <md-input-container class="md-block">
137                                 <label translate="VOICE.JOINWHENEMPTY">JoinWhenEmpty</label>
138                                 <md-select ng-model="vm.voiceQueue.joinempty" multiple>
139                                     <md-option ng-value="'no'">no</md-option>
140                                     <md-option ng-value="'yes'">yes</md-option>
141                                     <md-option ng-value="'strict'">strict</md-option>
142                                     <md-option ng-value="'loose'">loose</md-option>
143                                     <md-option ng-value="'paused'">paused</md-option>
144                                     <md-option ng-value="'penalty'">penalty</md-option>
145                                     <md-option ng-value="'inuse'">inuse</md-option>
146                                     <md-option ng-value="'ringing'">ringing</md-option>
147                                     <md-option ng-value="'unavailable'">unavailable</md-option>
148                                     <md-option ng-value="'invalid'">invalid</md-option>
149                                     <md-option ng-value="'unknown'">unknoww</md-option>
150                                     <md-option ng-value="'wrapup'">wrapup</md-option>
151                                 </md-select>
152                                 <div class="hint"><span translate="VOICE.HELP.JOINWHENEMPTY"></span></div>
153                                 <div ng-messages="generalForm.joinempty.$error" ng-show="generalForm.joinempty.$touched" role="alert">
154                                     <div ng-message="required">
155                                         <span translate="VOICE.ERRORS.JOINWHENEMPTY_REQUIRED">JoinWhenEmpty field is required</span>
156                                     </div>
157                                 </div>
158                             </md-input-container>
159                             <md-input-container class="md-block">
160                                 <label translate="VOICE.LEAVEWHENEMPTY">LeaveWhenEmpty</label>
161                                 <md-select ng-model="vm.voiceQueue.leavewhenempty" multiple>
162                                     <md-option ng-value="'no'">no</md-option>
163                                     <md-option ng-value="'yes'">yes</md-option>
164                                     <md-option ng-value="'strict'">strict</md-option>
165                                     <md-option ng-value="'loose'">loose</md-option>
166                                     <md-option ng-value="'paused'">paused</md-option>
167                                     <md-option ng-value="'penalty'">penalty</md-option>
168                                     <md-option ng-value="'inuse'">inuse</md-option>
169                                     <md-option ng-value="'ringing'">ringing</md-option>
170                                     <md-option ng-value="'unavailable'">unavailable</md-option>
171                                     <md-option ng-value="'invalid'">invalid</md-option>
172                                     <md-option ng-value="'unknown'">unknoww</md-option>
173                                     <md-option ng-value="'wrapup'">wrapup</md-option>
174                                 </md-select>
175                                 <div class="hint"><span translate="VOICE.HELP.LEAVEWHENEMPTY"></span></div>
176                                 <div ng-messages="generalForm.leavewhenempty.$error" ng-show="generalForm.leavewhenempty.$touched" role="alert">
177                                     <div ng-message="required">
178                                         <span translate="VOICE.ERRORS.LEAVEWHENEMPTY_REQUIRED">LeaveWhenEmpty field is required</span>
179                                     </div>
180                                 </div>
181                             </md-input-container>
182                             <md-input-container class="md-block">
183                                 <label translate="VOICE.MUSICONHOLD">MusicOnHold</label>
184                                 <md-select ng-model="vm.voiceQueue.musiconhold">
185                                     <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds">{{ musiconhold.name }}</md-option>
186                                 </md-select>
187                                 <div class="hint"><span translate="VOICE.HELP.MUSICONHOLD"></span></div>
188                                 <div ng-messages="generalForm.musiconhold.$error" ng-show="generalForm.musiconhold.$touched" role="alert">
189                                     <div ng-message="required">
190                                         <span translate="VOICE.ERRORS.MUSICONHOLD_REQUIRED">MusicOnHold field is required</span>
191                                     </div>
192                                 </div>
193                             </md-input-container>
194                             <md-input-container class="md-block">
195                                 <label translate="VOICE.ANNOUNCETOAGENT">AnnounceToAgent</label>
196                                 <md-select ng-model="vm.voiceQueue.announce">
197                                     <md-option ng-value="'/var/opt/motion2/server/files/sounds/converted/' + announce.save_name" ng-repeat="announce in vm.sounds">{{ announce.name }}</md-option>
198                                     <md-option ng-value="''">None</md-option>
199                                 </md-select>
200                                 <div class="hint"><span translate="VOICE.HELP.ANNOUNCETOAGENT"></span></div>
201                                 <div ng-messages="generalForm.announce.$error" ng-show="generalForm.announce.$touched" role="alert">
202                                     <div ng-message="required">
203                                         <span translate="VOICE.ERRORS.ANNOUNCETOAGENT_REQUIRED">AnnounceToAgent field is required</span>
204                                     </div>
205                                 </div>
206                             </md-input-container>
207                             <md-input-container class="md-block">
208                                 <label translate="VOICE.DESCRIPTION">Description</label>
209                                 <input type="text" name="description" ng-model="vm.voiceQueue.description">
210                                 <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">
211                                     <div ng-message="required">
212                                         <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>
213                                     </div>
214                                 </div>
215                             </md-input-container>
216
217                         </form>
218                     </div>
219                 </md-tab-body>
220             </md-tab>
221             <md-tab>
222                 <md-tab-label>
223                     <span translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</span>
224                 </md-tab-label>
225
226                 <md-tab-body>
227                     <div class="voiceQueue-detail-form-container settings md-background-bg md-whiteframe-1dp">
228                         <div class="pb-16" layout="row" layout-align="start center">
229                             <div class="h2 secondary-text" translate="VOICE.SETTINGS">SETTINGS</div>
230                         </div>
231                         <form name="settingsForm" novalidate>
232                             <md-input-container class="md-block">
233                                 <label translate="VOICE.ANNOUNCEFREQUENCY">AnnounceFrequency</label>
234                                 <input type="number" name="announce_frequency" ng-model="vm.voiceQueue.announce_frequency" min="0" autofocus>
235                                 <div class="hint"><span translate="VOICE.HELP.ANNOUNCEFREQUENCY"></span></div>
236                                 <div ng-messages="settingsForm.announce_frequency.$error" ng-show="settingsForm.announce_frequency.$touched" role="alert">
237                                     <div ng-message="required">
238                                         <span translate="VOICE.ERRORS.ANNOUNCEFREQUENCY_REQUIRED">AnnounceFrequency field is required</span>
239                                     </div>
240                                 </div>
241                             </md-input-container>
242                             <md-input-container class="md-block">
243                                 <label translate="VOICE.MINANNOUNCEFREQUENCY">MinAnnounceFrequency</label>
244                                 <input type="number" name="min_announce_frequency" ng-model="vm.voiceQueue.min_announce_frequency" min="0">
245                                 <div class="hint"><span translate="VOICE.HELP.MINANNOUNCEFREQUENCY"></span></div>
246                                 <div ng-messages="settingsForm.min_announce_frequency.$error" ng-show="settingsForm.min_announce_frequency.$touched" role="alert">
247                                     <div ng-message="required">
248                                         <span translate="VOICE.ERRORS.MINANNOUNCEFREQUENCY_REQUIRED">MinAnnounceFrequency field is required</span>
249                                     </div>
250                                 </div>
251                             </md-input-container>
252                             <md-input-container class="md-block">
253                                 <label translate="VOICE.PERIODICANNOUNCEFREQUENCY">PeriodicAnnounceFrequency</label>
254                                 <input type="number" name="periodic_announce_frequency" ng-model="vm.voiceQueue.periodic_announce_frequency" min="0">
255                                 <div class="hint"><span translate="VOICE.HELP.PERIODICANNOUNCEFREQUENCY"></span></div>
256                                 <div ng-messages="settingsForm.periodic_announce_frequency.$error" ng-show="settingsForm.periodic_announce_frequency.$touched" role="alert">
257                                     <div ng-message="required">
258                                         <span translate="VOICE.ERRORS.PERIODICANNOUNCEFREQUENCY_REQUIRED">PeriodicAnnounceFrequency field is required</span>
259                                     </div>
260                                 </div>
261                             </md-input-container>
262                             <md-input-container class="md-block">
263                                 <label translate="VOICE.RANDOMPERIODICANNOUNCE">RandomPeriodicAnnounce</label>
264                                 <md-select ng-model="vm.voiceQueue.random_periodic_announce">
265
266                                     <md-option ng-value="'yes'"> {{ 'VOICE.YES' | translate }}</md-option>
267
268                                     <md-option ng-value="'no'"> {{ 'VOICE.NO' | translate }}</md-option>
269                                 </md-select>
270                                 <div class="hint"><span translate="VOICE.HELP.RANDOMPERIODICANNOUNCE"></span></div>
271                                 <div ng-messages="settingsForm.random_periodic_announce.$error" ng-show="settingsForm.random_periodic_announce.$touched" role="alert">
272                                     <div ng-message="required">
273                                         <span translate="VOICE.ERRORS.RANDOMPERIODICANNOUNCE_REQUIRED">RandomPeriodicAnnounce field is required</span>
274                                     </div>
275                                 </div>
276                             </md-input-container>
277                             <md-input-container class="md-block">
278                                 <label translate="VOICE.ANNOUNCEHOLDTIME">AnnounceHoldtime</label>
279                                 <md-select ng-model="vm.voiceQueue.announce_holdtime">
280                                     <md-option ng-value="'yes'">Yes</md-option>
281                                     <md-option ng-value="'no'">No</md-option>
282                                     <md-option ng-value="'once'">Once</md-option>
283                                 </md-select>
284                                 <div class="hint"><span translate="VOICE.HELP.ANNOUNCEHOLDTIME"></span></div>
285                                 <div ng-messages="settingsForm.announce_holdtime.$error" ng-show="settingsForm.announce_holdtime.$touched" role="alert">
286                                     <div ng-message="required">
287                                         <span translate="VOICE.ERRORS.ANNOUNCEHOLDTIME_REQUIRED">AnnounceHoldtime field is required</span>
288                                     </div>
289                                 </div>
290                             </md-input-container>
291                             <md-input-container class="md-block">
292                                 <label translate="VOICE.ANNOUNCECALLERPOSITION">AnnounceCallerPosition</label>
293                                 <md-select ng-model="vm.voiceQueue.announce_position">
294                                     <md-option ng-value="'yes'">Yes</md-option>
295                                     <md-option ng-value="'no'">No</md-option>
296                                     <md-option ng-value="'limit'">Limit</md-option>
297                                     <md-option ng-value="'more'">More</md-option>
298                                 </md-select>
299                                 <div class="hint"><span translate="VOICE.HELP.ANNOUNCECALLERPOSITION"></span></div>
300                                 <div ng-messages="settingsForm.announce_position.$error" ng-show="settingsForm.announce_position.$touched" role="alert">
301                                     <div ng-message="required">
302                                         <span translate="VOICE.ERRORS.ANNOUNCECALLERPOSITION_REQUIRED">AnnounceCallerPosition field is required</span>
303                                     </div>
304                                 </div>
305                             </md-input-container>
306                             <md-input-container class="md-block">
307                                 <label translate="VOICE.ANNOUNCEPOSITIONLIMIT">AnnouncePositionLimit</label>
308                                 <input type="number" name="announce_position_limit" ng-model="vm.voiceQueue.announce_position_limit">
309                                 <div class="hint"><span translate="VOICE.HELP.ANNOUNCEPOSITIONLIMIT"></span></div>
310                                 <div ng-messages="settingsForm.announce_position_limit.$error" ng-show="settingsForm.announce_position_limit.$touched" role="alert">
311                                     <div ng-message="required">
312                                         <span translate="VOICE.ERRORS.ANNOUNCEPOSITIONLIMIT_REQUIRED">AnnouncePositionLimit field is required</span>
313                                     </div>
314                                 </div>
315                             </md-input-container>
316                             <md-input-container class="md-block">
317                                 <label translate="VOICE.REPORTHOLDTIMEAGENT">ReportHoldtimeAgent</label>
318                                 <md-select ng-model="vm.voiceQueue.reportholdtime">
319
320                                     <md-option ng-value="'yes'"> {{ 'VOICE.YES' | translate }}</md-option>
321
322                                     <md-option ng-value="'no'"> {{ 'VOICE.NO' | translate }}</md-option>
323                                 </md-select>
324                                 <div class="hint"><span translate="VOICE.HELP.REPORTHOLDTIMEAGENT"></span></div>
325                                 <div ng-messages="settingsForm.reportholdtime.$error" ng-show="settingsForm.reportholdtime.$touched" role="alert">
326                                     <div ng-message="required">
327                                         <span translate="VOICE.ERRORS.REPORTHOLDTIMEAGENT_REQUIRED">ReportHoldtimeAgent field is required</span>
328                                     </div>
329                                 </div>
330                             </md-input-container>
331
332                         </form>
333                     </div>
334                     <div class="voiceQueue-detail-form-container announcements md-background-bg md-whiteframe-1dp">
335                         <div class="pb-16" layout="row" layout-align="start center">
336                             <div class="h2 secondary-text" translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</div>
337                         </div>
338                         <form name="announcementsForm" novalidate>
339                             <md-input-container class="md-block">
340                                 <label translate="VOICE.PERIODICANNOUNCE">PeriodicAnnounce</label>
341                                 <md-select ng-model="vm.voiceQueue.periodic_announce" autofocus>
342                                     <md-option ng-value="'/var/opt/motion2/server/files/sounds/converted/' + periodic_announce.save_name" ng-repeat="periodic_announce in vm.sounds">{{ periodic_announce.name }}</md-option>
343                                     <md-option ng-value="''">Default</md-option>
344                                 </md-select>
345                                 <div class="hint"><span translate="VOICE.HELP.PERIODICANNOUNCE"></span></div>
346                                 <div ng-messages="announcementsForm.periodic_announce.$error" ng-show="announcementsForm.periodic_announce.$touched" role="alert">
347                                     <div ng-message="required">
348                                         <span translate="VOICE.ERRORS.PERIODICANNOUNCE_REQUIRED">PeriodicAnnounce field is required</span>
349                                     </div>
350                                 </div>
351                             </md-input-container>
352                             <md-input-container class="md-block">
353                                 <label translate="VOICE.HOLDTIMEANNOUNCE">HoldTimeAnnounce</label>
354                                 <md-select ng-model="vm.voiceQueue.queue_reporthold">
355                                     <md-option ng-value="'/var/opt/motion2/server/files/sounds/converted/' + queue_reporthold.save_name" ng-repeat="queue_reporthold in vm.sounds">{{ queue_reporthold.name }}</md-option>
356                                     <md-option ng-value="null">Default</md-option>
357                                     <md-option ng-value="''">Disabled</md-option>
358                                 </md-select>
359                                 <div class="hint"><span translate="VOICE.HELP.HOLDTIMEANNOUNCE"></span></div>
360                                 <div ng-messages="announcementsForm.queue_reporthold.$error" ng-show="announcementsForm.queue_reporthold.$touched" role="alert">
361                                     <div ng-message="required">
362                                         <span translate="VOICE.ERRORS.HOLDTIMEANNOUNCE_REQUIRED">HoldTimeAnnounce field is required</span>
363                                     </div>
364                                 </div>
365                             </md-input-container>
366                             <md-input-container class="md-block">
367                                 <label translate="VOICE.YOUARENEXTANNOUNCE">YouareNextAnnounce</label>
368                                 <md-select ng-model="vm.voiceQueue.queue_youarenext">
369                                     <md-option ng-value="'/var/opt/motion2/server/files/sounds/converted/' + queue_youarenext.save_name" ng-repeat="queue_youarenext in vm.sounds">{{ queue_youarenext.name }}</md-option>
370                                     <md-option ng-value="null">Default</md-option>
371                                     <md-option ng-value="''">Disabled</md-option>
372                                 </md-select>
373                                 <div class="hint"><span translate="VOICE.HELP.YOUARENEXTANNOUNCE"></span></div>
374                                 <div ng-messages="announcementsForm.queue_youarenext.$error" ng-show="announcementsForm.queue_youarenext.$touched" role="alert">
375                                     <div ng-message="required">
376                                         <span translate="VOICE.ERRORS.YOUARENEXTANNOUNCE_REQUIRED">YouareNextAnnounce field is required</span>
377                                     </div>
378                                 </div>
379                             </md-input-container>
380                             <md-input-container class="md-block">
381                                 <label translate="VOICE.THEREAREANNOUNCE">ThereareAnnounce</label>
382                                 <md-select ng-model="vm.voiceQueue.queue_thereare">
383                                     <md-option ng-value="'/var/opt/motion2/server/files/sounds/converted/' + queue_thereare.save_name" ng-repeat="queue_thereare in vm.sounds">{{ queue_thereare.name }}</md-option>
384                                     <md-option ng-value="null">Default</md-option>
385                                     <md-option ng-value="''">Disabled</md-option>
386                                 </md-select>
387                                 <div class="hint"><span translate="VOICE.HELP.THEREAREANNOUNCE"></span></div>
388                                 <div ng-messages="announcementsForm.queue_thereare.$error" ng-show="announcementsForm.queue_thereare.$touched" role="alert">
389                                     <div ng-message="required">
390                                         <span translate="VOICE.ERRORS.THEREAREANNOUNCE_REQUIRED">ThereareAnnounce field is required</span>
391                                     </div>
392                                 </div>
393                             </md-input-container>
394                             <md-input-container class="md-block">
395                                 <label translate="VOICE.WAITINGCALLSANNOUNCE">WaitingCallsAnnounce</label>
396                                 <md-select ng-model="vm.voiceQueue.queue_callswaiting">
397                                     <md-option ng-value="'/var/opt/motion2/server/files/sounds/converted/' + queue_callswaiting.save_name" ng-repeat="queue_callswaiting in vm.sounds">{{ queue_callswaiting.name }}</md-option>
398                                     <md-option ng-value="null">Default</md-option>
399                                     <md-option ng-value="''">Disabled</md-option>
400                                 </md-select>
401                                 <div class="hint"><span translate="VOICE.HELP.WAITINGCALLSANNOUNCE"></span></div>
402                                 <div ng-messages="announcementsForm.queue_callswaiting.$error" ng-show="announcementsForm.queue_callswaiting.$touched" role="alert">
403                                     <div ng-message="required">
404                                         <span translate="VOICE.ERRORS.WAITINGCALLSANNOUNCE_REQUIRED">WaitingCallsAnnounce field is required</span>
405                                     </div>
406                                 </div>
407                             </md-input-container>
408                             <md-input-container class="md-block">
409                                 <label translate="VOICE.ESTIMATEDHOLDTIMEANNOUNCE">EstimatedHoldTimeAnnounce</label>
410                                 <md-select ng-model="vm.voiceQueue.queue_holdtime">
411                                     <md-option ng-value="'/var/opt/motion2/server/files/sounds/converted/' + queue_holdtime.save_name" ng-repeat="queue_holdtime in vm.sounds">{{ queue_holdtime.name }}</md-option>
412                                     <md-option ng-value="null">Default</md-option>
413                                     <md-option ng-value="''">Disabled</md-option>
414                                 </md-select>
415                                 <div class="hint"><span translate="VOICE.HELP.ESTIMATEDHOLDTIMEANNOUNCE"></span></div>
416                                 <div ng-messages="announcementsForm.queue_holdtime.$error" ng-show="announcementsForm.queue_holdtime.$touched" role="alert">
417                                     <div ng-message="required">
418                                         <span translate="VOICE.ERRORS.ESTIMATEDHOLDTIMEANNOUNCE_REQUIRED">EstimatedHoldTimeAnnounce field is required</span>
419                                     </div>
420                                 </div>
421                             </md-input-container>
422                             <md-input-container class="md-block">
423                                 <label translate="VOICE.MINUTESANNOUNCE">MinutesAnnounce</label>
424                                 <md-select ng-model="vm.voiceQueue.queue_minutes">
425                                     <md-option ng-value="'/var/opt/motion2/server/files/sounds/converted/' + queue_minutes.save_name" ng-repeat="queue_minutes in vm.sounds">{{ queue_minutes.name }}</md-option>
426                                     <md-option ng-value="null">Default</md-option>
427                                     <md-option ng-value="''">Disabled</md-option>
428                                 </md-select>
429                                 <div class="hint"><span translate="VOICE.HELP.MINUTESANNOUNCE"></span></div>
430                                 <div ng-messages="announcementsForm.queue_minutes.$error" ng-show="announcementsForm.queue_minutes.$touched" role="alert">
431                                     <div ng-message="required">
432                                         <span translate="VOICE.ERRORS.MINUTESANNOUNCE_REQUIRED">MinutesAnnounce field is required</span>
433                                     </div>
434                                 </div>
435                             </md-input-container>
436                             <md-input-container class="md-block">
437                                 <label translate="VOICE.MINUTEANNOUNCE">MinuteAnnounce</label>
438                                 <md-select ng-model="vm.voiceQueue.queue_minute">
439                                     <md-option ng-value="'/var/opt/motion2/server/files/sounds/converted/' + queue_minute.save_name" ng-repeat="queue_minute in vm.sounds">{{ queue_minute.name }}</md-option>
440                                     <md-option ng-value="null">Default</md-option>
441                                     <md-option ng-value="''">Disabled</md-option>
442                                 </md-select>
443                                 <div class="hint"><span translate="VOICE.HELP.MINUTEANNOUNCE"></span></div>
444                                 <div ng-messages="announcementsForm.queue_minute.$error" ng-show="announcementsForm.queue_minute.$touched" role="alert">
445                                     <div ng-message="required">
446                                         <span translate="VOICE.ERRORS.MINUTEANNOUNCE_REQUIRED">MinuteAnnounce field is required</span>
447                                     </div>
448                                 </div>
449                             </md-input-container>
450                             <md-input-container class="md-block">
451                                 <label translate="VOICE.SECONDSANNOUNCE">SecondsAnnounce</label>
452                                 <md-select ng-model="vm.voiceQueue.queue_seconds">
453                                     <md-option ng-value="'/var/opt/motion2/server/files/sounds/converted/' + queue_seconds.save_name" ng-repeat="queue_seconds in vm.sounds">{{ queue_seconds.name }}</md-option>
454                                     <md-option ng-value="null">Default</md-option>
455                                     <md-option ng-value="''">Disabled</md-option>
456                                 </md-select>
457                                 <div class="hint"><span translate="VOICE.HELP.SECONDSANNOUNCE"></span></div>
458                                 <div ng-messages="announcementsForm.queue_seconds.$error" ng-show="announcementsForm.queue_seconds.$touched" role="alert">
459                                     <div ng-message="required">
460                                         <span translate="VOICE.ERRORS.SECONDSANNOUNCE_REQUIRED">SecondsAnnounce field is required</span>
461                                     </div>
462                                 </div>
463                             </md-input-container>
464                             <md-input-container class="md-block">
465                                 <label translate="VOICE.THANKYOUANNOUNCE">ThankYouAnnounce</label>
466                                 <md-select ng-model="vm.voiceQueue.queue_thankyou">
467                                     <md-option ng-value="'/var/opt/motion2/server/files/sounds/converted/' + queue_thankyou.save_name" ng-repeat="queue_thankyou in vm.sounds">{{ queue_thankyou.name }}</md-option>
468                                     <md-option ng-value="null">Default</md-option>
469                                     <md-option ng-value="''">Disabled</md-option>
470                                 </md-select>
471                                 <div class="hint"><span translate="VOICE.HELP.THANKYOUANNOUNCE"></span></div>
472                                 <div ng-messages="announcementsForm.queue_thankyou.$error" ng-show="announcementsForm.queue_thankyou.$touched" role="alert">
473                                     <div ng-message="required">
474                                         <span translate="VOICE.ERRORS.THANKYOUANNOUNCE_REQUIRED">ThankYouAnnounce field is required</span>
475                                     </div>
476                                 </div>
477                             </md-input-container>
478
479                         </form>
480                     </div>
481                 </md-tab-body>
482             </md-tab>
483             <md-tab>
484                 <md-tab-label>
485                     <span translate="VOICE.ADVANCED">ADVANCED</span>
486                 </md-tab-label>
487
488                 <md-tab-body>
489                     <div class="voiceQueue-detail-form-container advanced md-background-bg md-whiteframe-1dp">
490                         <div class="pb-16" layout="row" layout-align="start center">
491                             <div class="h2 secondary-text" translate="VOICE.ADVANCED">ADVANCED</div>
492                         </div>
493                         <form name="advancedForm" novalidate>
494                             <md-input-container class="md-block">
495                                 <md-switch ng-model="vm.voiceQueue.acw" aria-label="AfterCallWork"><span translate="VOICE.AFTERCALLWORK">AfterCallWork</span></md-switch>
496                                 <div class="hint"><span translate="VOICE.HELP.AFTERCALLWORK"></span></div>
497                             </md-input-container>
498                             <md-input-container ng-if="vm.voiceQueue.acw" class="md-block">
499                                 <label translate="VOICE.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>
500                                 <input type="number" name="acwTimeout" ng-model="vm.voiceQueue.acwTimeout" min="0" required>
501                                 <div class="hint"><span translate="VOICE.HELP.AFTERCALLWORKDURATION"></span></div>
502                                 <div ng-messages="advancedForm.acwTimeout.$error" ng-show="advancedForm.acwTimeout.$touched" role="alert">
503                                     <div ng-message="required">
504                                         <span translate="VOICE.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>
505                                     </div>
506                                 </div>
507                             </md-input-container>
508                             <md-input-container class="md-block">
509                                 <label translate="VOICE.AUTOPAUSE">AutoPause</label>
510                                 <md-select ng-model="vm.voiceQueue.autopause">
511
512                                     <md-option ng-value="'all'"> {{ 'VOICE.YES' | translate }}</md-option>
513
514                                     <md-option ng-value="'no'"> {{ 'VOICE.NO' | translate }}</md-option>
515                                 </md-select>
516                                 <div class="hint"><span translate="VOICE.HELP.AUTOPAUSE"></span></div>
517                                 <div ng-messages="advancedForm.autopause.$error" ng-show="advancedForm.autopause.$touched" role="alert">
518                                     <div ng-message="required">
519                                         <span translate="VOICE.ERRORS.AUTOPAUSE_REQUIRED">AutoPause field is required</span>
520                                     </div>
521                                 </div>
522                             </md-input-container>
523                             <md-input-container class="md-block">
524                                 <label translate="VOICE.RINGINUSE">RingInUse</label>
525                                 <md-select ng-model="vm.voiceQueue.ringinuse">
526
527                                     <md-option ng-value="'yes'"> {{ 'VOICE.YES' | translate }}</md-option>
528
529                                     <md-option ng-value="'no'"> {{ 'VOICE.NO' | translate }}</md-option>
530                                 </md-select>
531                                 <div class="hint"><span translate="VOICE.HELP.RINGINUSE"></span></div>
532                                 <div ng-messages="advancedForm.ringinuse.$error" ng-show="advancedForm.ringinuse.$touched" role="alert">
533                                     <div ng-message="required">
534                                         <span translate="VOICE.ERRORS.RINGINUSE_REQUIRED">RingInUse field is required</span>
535                                     </div>
536                                 </div>
537                             </md-input-container>
538                             <md-input-container class="md-block">
539                                 <label translate="VOICE.MEMBERDELAY">MemberDelay</label>
540                                 <input type="number" name="memberdelay" ng-model="vm.voiceQueue.memberdelay" min="0">
541                                 <div class="hint"><span translate="VOICE.HELP.MEMBERDELAY"></span></div>
542                                 <div ng-messages="advancedForm.memberdelay.$error" ng-show="advancedForm.memberdelay.$touched" role="alert">
543                                     <div ng-message="required">
544                                         <span translate="VOICE.ERRORS.MEMBERDELAY_REQUIRED">MemberDelay field is required</span>
545                                     </div>
546                                 </div>
547                             </md-input-container>
548                             <md-input-container class="md-block">
549                                 <label translate="VOICE.TIMEOUTRESTART">TimeoutRestart</label>
550                                 <md-select ng-model="vm.voiceQueue.timeoutrestart">
551
552                                     <md-option ng-value="'yes'"> {{ 'VOICE.YES' | translate }}</md-option>
553
554                                     <md-option ng-value="'no'"> {{ 'VOICE.NO' | translate }}</md-option>
555                                 </md-select>
556                                 <div class="hint"><span translate="VOICE.HELP.TIMEOUTRESTART"></span></div>
557                                 <div ng-messages="advancedForm.timeoutrestart.$error" ng-show="advancedForm.timeoutrestart.$touched" role="alert">
558                                     <div ng-message="required">
559                                         <span translate="VOICE.ERRORS.TIMEOUTRESTART_REQUIRED">TimeoutRestart field is required</span>
560                                     </div>
561                                 </div>
562                             </md-input-container>
563                             <md-input-container class="md-block">
564                                 <label translate="VOICE.MONITORFORMAT">MonitorFormat</label>
565                                 <md-select ng-model="vm.voiceQueue.monitor_format">
566                                     <md-option ng-value="''">Inactive</md-option>
567                                     <md-option ng-value="'wav'">wav</md-option>
568                                     <md-option ng-value="'wav49'">wav49</md-option>
569                                     <md-option ng-value="'gsm'">gsm</md-option>
570                                 </md-select>
571                                 <div class="hint"><span translate="VOICE.HELP.MONITORFORMAT"></span></div>
572                                 <div ng-messages="advancedForm.monitor_format.$error" ng-show="advancedForm.monitor_format.$touched" role="alert">
573                                     <div ng-message="required">
574                                         <span translate="VOICE.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>
575                                     </div>
576                                 </div>
577                             </md-input-container>
578                             <md-input-container class="md-block">
579                                 <label translate="VOICE.CONTEXT">Context</label>
580                                 <input type="text" name="context" ng-model="vm.voiceQueue.context">
581                                 <div class="hint"><span translate="VOICE.HELP.CONTEXT"></span></div>
582                                 <div ng-messages="advancedForm.context.$error" ng-show="advancedForm.context.$touched" role="alert">
583                                     <div ng-message="required">
584                                         <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>
585                                     </div>
586                                 </div>
587                             </md-input-container>
588                             <md-input-container class="md-block">
589                                 <label translate="VOICE.SETINTERFACEVARIABLES">SetInterfaceVariables</label>
590                                 <md-select ng-model="vm.voiceQueue.setinterfacevar">
591
592                                     <md-option ng-value="'yes'"> {{ 'VOICE.YES' | translate }}</md-option>
593
594                                     <md-option ng-value="'no'"> {{ 'VOICE.NO' | translate }}</md-option>
595                                 </md-select>
596                                 <div class="hint"><span translate="VOICE.HELP.SETINTERFACEVARIABLES"></span></div>
597                                 <div ng-messages="advancedForm.setinterfacevar.$error" ng-show="advancedForm.setinterfacevar.$touched" role="alert">
598                                     <div ng-message="required">
599                                         <span translate="VOICE.ERRORS.SETINTERFACEVARIABLES_REQUIRED">SetInterfaceVariables field is required</span>
600                                     </div>
601                                 </div>
602                             </md-input-container>
603                             <md-input-container class="md-block">
604                                 <label translate="VOICE.SETQUEUEVARIABLES">SetQueueVariables</label>
605                                 <md-select ng-model="vm.voiceQueue.setqueuevar">
606
607                                     <md-option ng-value="'yes'"> {{ 'VOICE.YES' | translate }}</md-option>
608
609                                     <md-option ng-value="'no'"> {{ 'VOICE.NO' | translate }}</md-option>
610                                 </md-select>
611                                 <div class="hint"><span translate="VOICE.HELP.SETQUEUEVARIABLES"></span></div>
612                                 <div ng-messages="advancedForm.setqueuevar.$error" ng-show="advancedForm.setqueuevar.$touched" role="alert">
613                                     <div ng-message="required">
614                                         <span translate="VOICE.ERRORS.SETQUEUEVARIABLES_REQUIRED">SetQueueVariables field is required</span>
615                                     </div>
616                                 </div>
617                             </md-input-container>
618                             <md-input-container class="md-block">
619                                 <label translate="VOICE.SETQUEUEENTRYVARIABLES">SetQueueEntryVariables</label>
620                                 <md-select ng-model="vm.voiceQueue.setqueueentryvar">
621
622                                     <md-option ng-value="'yes'"> {{ 'VOICE.YES' | translate }}</md-option>
623
624                                     <md-option ng-value="'no'"> {{ 'VOICE.NO' | translate }}</md-option>
625                                 </md-select>
626                                 <div class="hint"><span translate="VOICE.HELP.SETQUEUEENTRYVARIABLES"></span></div>
627                                 <div ng-messages="advancedForm.setqueueentryvar.$error" ng-show="advancedForm.setqueueentryvar.$touched" role="alert">
628                                     <div ng-message="required">
629                                         <span translate="VOICE.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED">SetQueueEntryVariables field is required</span>
630                                     </div>
631                                 </div>
632                             </md-input-container>
633
634                         </form>
635                     </div>
636                 </md-tab-body>
637             </md-tab>
638         </md-tabs>
639
640     </div>
641     <!-- / CONTENT -->
642
643 </div>