1 <div id="staff-telephone" 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-telephones-button md-icon-button"
7 aria-label="Go to telephones"
8 ng-click="vm.gotoTelephones()"
10 translate-attr-aria-label="STAFF.GO_TO_TELEPHONES"
12 <md-icon md-font-icon="icon-arrow-left"></md-icon>
15 <div layout="row" layout-align="start center">
16 <div class="telephone-image" hide-xs>
17 <img ng-src="assets/images/business/telephones.jpg" />
20 <div layout="column" layout-align="start start">
23 <span ng-if="vm.telephone.name">{{vm.telephone.name}}</span>
25 <div class="subtitle secondary-text">
26 <span translate="APP.CREATED_AT"></span>
27 <span>{{vm.telephone.createdAt | date:'medium'}}</span>
33 <div ng-cloak ng-if="vm.crudPermissions.canEdit">
35 ng-click="vm.changepassworddialog(vm.telephone, $event)"
36 class="md-fab md-warn md-icon-button"
37 aria-label="changepassword"
40 ><span translate="STAFF.CHANGEPASSWORD_TELEPHONE"></span
42 <md-icon md-font-icon="icon-key-variant"></md-icon>
48 ng-click="vm.saveTelephone()"
49 ng-if="vm.crudPermissions.canEdit"
50 class="send-button md-accent md-raised"
51 ng-disabled="(accountForm.$invalid) || (generalForm.$invalid)"
53 translate-attr-aria-label="APP.SAVE"
64 md-selected="vm.selectedTab"
65 md-stretch-tabs="always"
72 <span translate="APP.ACCOUNT">ACCOUNT</span>
76 class="telephone-detail-form-container account md-background-bg md-whiteframe-1dp"
78 <div class="pb-16" layout="row" layout-align="start center">
79 <div class="h2 secondary-text" translate="APP.ACCOUNT">
83 <form name="accountForm" novalidate>
84 <md-input-container class="md-block">
85 <label translate="APP.ACCOUNTNAME">Accountname</label>
89 ng-model="vm.telephone.fullname"
92 ng-disabled="!vm.crudPermissions.canEdit"
96 ng-messages="accountForm['fullname'].$error"
97 ng-show="accountForm['fullname'].$touched"
100 <div ng-message="required">
101 <span translate="APP.ERRORS.ACCOUNTNAME_REQUIRED"
102 >Accountname field is required</span
106 </md-input-container>
107 <md-input-container class="md-block">
108 <label translate="APP.USERNAME">Username</label>
112 ng-model="vm.telephone.name"
113 ng-pattern="/^[A-Za-z0-9\.\_]+$/i"
119 <span translate="APP.HELP.USERNAME"></span>
122 ng-messages="accountForm['name'].$error"
123 ng-show="accountForm['name'].$touched"
126 <div ng-message="required">
127 <span translate="APP.ERRORS.USERNAME_REQUIRED"
128 >Username field is required</span
131 <div ng-message="pattern">
133 translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN"
134 translate-values="{ regex: '/^[A-Za-z0-9\.\_]+$/i' }"
135 >Username must be valid pattern
139 </md-input-container>
140 <md-input-container class="md-block">
141 <label translate="APP.EMAIL">Email</label>
145 ng-model="vm.telephone.email"
147 ng-disabled="!vm.crudPermissions.canEdit"
151 ng-messages="accountForm['email'].$error"
152 ng-show="accountForm['email'].$touched"
155 <div ng-message="required">
156 <span translate="APP.ERRORS.EMAIL_REQUIRED"
157 >Email field is required</span
160 <div ng-message="email">
161 <span translate="APP.ERRORS.EMAIL_MUST_VALID"
162 >Email must be a valid e-mail address</span
166 </md-input-container>
167 <md-input-container class="md-block">
168 <label translate="APP.DESCRIPTION">Description</label>
172 ng-model="vm.telephone.description"
173 ng-disabled="!vm.crudPermissions.canEdit"
177 ng-messages="accountForm['description'].$error"
178 ng-show="accountForm['description'].$touched"
181 <div ng-message="required">
182 <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED"
183 >Description field is required</span
187 </md-input-container>
188 <md-input-container class="md-block">
189 <label translate="APP.PHONE">Phone</label>
193 ng-model="vm.telephone.phone"
194 ng-disabled="!vm.crudPermissions.canEdit"
198 ng-messages="accountForm['phone'].$error"
199 ng-show="accountForm['phone'].$touched"
202 <div ng-message="required">
203 <span translate="APP.ERRORS.PHONE_REQUIRED"
204 >Phone field is required</span
208 </md-input-container>
209 <md-input-container class="md-block">
210 <label translate="APP.MOBILE">Mobile</label>
214 ng-model="vm.telephone.mobile"
215 ng-disabled="!vm.crudPermissions.canEdit"
219 ng-messages="accountForm['mobile'].$error"
220 ng-show="accountForm['mobile'].$touched"
223 <div ng-message="required">
224 <span translate="STAFF.ERRORS.MOBILE_REQUIRED"
225 >Mobile field is required</span
229 </md-input-container>
236 <span translate="APP.VOICE">VOICE</span>
240 class="telephone-detail-form-container general md-background-bg md-whiteframe-1dp"
242 <div class="pb-16" layout="row" layout-align="start center">
243 <div class="h2 secondary-text" translate="APP.GENERAL">
247 <form name="generalForm" novalidate>
249 ng-if="!vm.telephone.autointernal"
252 <label translate="APP.INTERNAL">Internal</label>
256 ng-model="vm.telephone.internal"
263 ng-messages="generalForm['internal'].$error"
264 ng-show="generalForm['internal'].$touched"
267 <div ng-message="required">
268 <span translate="STAFF.ERRORS.INTERNAL_REQUIRED"
269 >Internal field is required</span
273 </md-input-container>
274 <md-input-container class="md-block">
275 <label translate="APP.TRANSPORT">Transport</label>
278 ng-model="vm.telephone.transport"
281 ng-disabled="!vm.crudPermissions.canEdit"
283 <md-option ng-value="'udp'">udp</md-option>
284 <md-option ng-value="'tcp'">tcp</md-option>
285 <md-option ng-value="'ws'">ws</md-option>
286 <md-option ng-value="'wss'">wss</md-option>
287 <md-option ng-value="'tls'">tls</md-option>
290 <span translate="STAFF.HELP.TRANSPORT"></span>
293 ng-messages="generalForm['transport'].$error"
294 ng-show="generalForm['transport'].$touched"
297 <div ng-message="required">
298 <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED"
299 >Transport field is required</span
303 </md-input-container>
304 <md-input-container class="md-block">
305 <label translate="APP.NAT">NAT</label>
308 ng-model="vm.telephone.nat"
311 ng-disabled="!vm.crudPermissions.canEdit"
313 <md-option ng-value="'force_rport'">force_rport</md-option>
314 <md-option ng-value="'comedia'">comedia</md-option>
315 <md-option ng-value="'yes'">yes</md-option>
316 <md-option ng-value="'no'">no</md-option>
317 <md-option ng-value="'never'">never</md-option>
318 <md-option ng-value="'route'">route</md-option>
320 <div class="hint"><span translate="APP.HELP.NAT"></span></div>
322 ng-messages="generalForm['nat'].$error"
323 ng-show="generalForm['nat'].$touched"
326 <div ng-message="required">
327 <span translate="STAFF.ERRORS.NAT_REQUIRED"
328 >NAT field is required</span
332 </md-input-container>
333 <md-input-container class="md-block">
334 <label translate="APP.ALLOWCODECS">AllowCodecs</label>
337 ng-model="vm.telephone.allow"
340 ng-disabled="!vm.crudPermissions.canEdit"
342 <md-option ng-value="'ulaw'">ulaw</md-option>
343 <md-option ng-value="'alaw'">alaw</md-option>
344 <md-option ng-value="'gsm'">gsm</md-option>
345 <md-option ng-value="'g722'">g722</md-option>
346 <md-option ng-value="'g729'">g729</md-option>
347 <md-option ng-value="'opus'">opus</md-option>
348 <md-option ng-value="'h264'">h264</md-option>
351 <span translate="APP.HELP.ALLOWCODECS"></span>
354 ng-messages="generalForm['allow'].$error"
355 ng-show="generalForm['allow'].$touched"
358 <div ng-message="required">
359 <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED"
360 >AllowCodecs field is required</span
364 </md-input-container>
365 <md-input-container class="md-block">
366 <label translate="APP.CALLERID">CallerId</label>
370 ng-model="vm.telephone.callerid"
371 ng-disabled="!vm.crudPermissions.canEdit"
375 ng-messages="generalForm['callerid'].$error"
376 ng-show="generalForm['callerid'].$touched"
379 <div ng-message="required">
380 <span translate="STAFF.ERRORS.CALLERID_REQUIRED"
381 >CallerId field is required</span
385 </md-input-container>
386 <md-input-container class="md-block">
387 <label translate="APP.CONTEXT">Context</label>
390 ng-model="vm.telephone.context"
392 ng-disabled="!vm.crudPermissions.canEdit"
395 ng-value="context.name"
396 ng-repeat="context in vm.contexts"
397 ng-disabled="context.canSelect === false"
398 >{{ context.name }}</md-option
402 ng-messages="generalForm['context'].$error"
403 ng-show="generalForm['context'].$touched"
406 <div ng-message="required">
407 <span translate="APP.ERRORS.CONTEXT_REQUIRED"
408 >Context field is required</span
412 </md-input-container>
413 <md-input-container class="md-block">
414 <label translate="STAFF.CALLGROUP">Callgroup</label>
418 ng-model="vm.telephone.callgroup"
419 ng-disabled="!vm.crudPermissions.canEdit"
423 <span translate="STAFF.HELP.CALLGROUP"></span>
426 ng-messages="generalForm['callgroup'].$error"
427 ng-show="generalForm['callgroup'].$touched"
430 <div ng-message="required">
431 <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED"
432 >Callgroup field is required</span
436 </md-input-container>
437 <md-input-container class="md-block">
438 <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>
442 ng-model="vm.telephone.pickupgroup"
443 ng-disabled="!vm.crudPermissions.canEdit"
447 <span translate="STAFF.HELP.PICKGROUP"></span>
450 ng-messages="generalForm['pickupgroup'].$error"
451 ng-show="generalForm['pickupgroup'].$touched"
454 <div ng-message="required">
455 <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED"
456 >Pickupgroup field is required</span
460 </md-input-container>
461 <md-input-container class="md-block">
462 <label translate="APP.VIDEOSUPPORT">Videosupport</label>
465 ng-model="vm.telephone.videosupport"
467 ng-disabled="!vm.crudPermissions.canEdit"
469 <md-option ng-value="'yes'">Yes</md-option>
470 <md-option ng-value="'no'">No</md-option>
471 <md-option ng-value="'always'">Always</md-option>
474 ng-messages="generalForm['videosupport'].$error"
475 ng-show="generalForm['videosupport'].$touched"
478 <div ng-message="required">
479 <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED"
480 >Videosupport field is required</span
484 </md-input-container>
485 <md-input-container class="md-block">
486 <label translate="APP.ENCRYPTION">Encryption</label>
489 ng-model="vm.telephone.encryption"
491 ng-disabled="!vm.crudPermissions.canEdit"
493 <md-option ng-value="'yes'">yes</md-option>
494 <md-option ng-value="'no'">no</md-option>
497 <span translate="STAFF.HELP.ENCRYPTION"></span>
500 ng-messages="generalForm['encryption'].$error"
501 ng-show="generalForm['encryption'].$touched"
504 <div ng-message="required">
505 <span translate="STAFF.ERRORS.ENCRYPTION_REQUIRED"
506 >Encryption field is required</span
510 </md-input-container>