2 id="motiondialer-queueCampaign"
3 class="page-layout simple tabbed"
7 <div class="header md-accent-bg" layout="row" layout-align="start center">
8 <div class="white-fg" layout="row" layout-align="start center" flex>
10 class="goto-queueCampaigns-button md-icon-button"
11 aria-label="Go to queueCampaigns"
12 ng-click="vm.gotoQueueCampaigns()"
14 translate-attr-aria-label="MOTIONDIALER.GO_TO_QUEUECAMPAIGNS"
16 <md-icon md-font-icon="icon-arrow-left"></md-icon>
19 <div layout="row" layout-align="start center">
20 <div class="queueCampaign-image" hide-xs>
21 <img ng-src="assets/images/business/queueCampaigns.jpg" />
24 <div layout="column" layout-align="start start">
26 #{{vm.queueCampaign.id}}
27 <span ng-if="vm.queueCampaign.name">{{vm.queueCampaign.name}}</span>
29 <div class="subtitle secondary-text">
30 <span translate="MOTIONDIALER.CREATED_AT"></span>
31 <span>{{vm.queueCampaign.createdAt | date:'medium'}}</span>
37 <div ng-cloak ng-if="vm.crudPermissions.canEdit">
39 ng-click="vm.clonedialog(vm.queueCampaign, $event)"
40 class="md-fab md-green-500-bg md-icon-button"
44 ><span translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN"></span
46 <md-icon md-font-icon="icon-content-duplicate"></md-icon>
52 ng-click="vm.listadddialog(vm.queueCampaign, $event)"
53 class="md-fab md-green-500-bg md-icon-button"
57 ><span translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN"></span
59 <md-icon md-font-icon="icon-format-list-numbers"></md-icon>
65 ng-click="vm.blacklistadddialog(vm.queueCampaign, $event)"
66 class="md-fab md-warn md-icon-button"
67 aria-label="blacklistadd"
70 ><span translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN"></span
72 <md-icon md-font-icon="icon-block-helper"></md-icon>
78 ng-click="vm.teamadddialog(vm.queueCampaign, $event)"
79 class="md-fab md-orange-500-bg md-icon-button"
83 ><span translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN"></span
85 <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>
91 ng-click="vm.agentadddialog(vm.queueCampaign, $event)"
92 class="md-fab md-purple-500-bg md-icon-button"
96 ><span translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN"></span
98 <md-icon md-font-icon="icon-account-plus"></md-icon>
102 <div ng-cloak ng-if="vm.crudPermissions.canEdit">
104 ng-click="vm.resetlistdialog(vm.queueCampaign, $event)"
105 class="md-fab md-warn md-icon-button"
106 aria-label="resetlist"
109 ><span translate="MOTIONDIALER.RESETLIST_QUEUECAMPAIGN"></span
111 <md-icon md-font-icon="icon-restore"></md-icon>
117 ng-click="vm.gotogoto(vm.queueCampaign, $event)"
118 class="md-fab md-warn md-icon-button"
122 ><span translate="MOTIONDIALER.GOTO_QUEUECAMPAIGN"></span
124 <md-icon md-font-icon="icon-cast"></md-icon>
130 ng-click="vm.saveQueueCampaign()"
131 ng-if="vm.crudPermissions.canEdit"
132 class="send-button md-accent md-raised"
133 ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (queueForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (advancedpreviewForm.$invalid) || (thresholdsForm.$invalid) || (recallmeForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)"
134 translate="MOTIONDIALER.SAVE"
135 translate-attr-aria-label="MOTIONDIALER.SAVE"
144 <div class="content">
146 md-selected="vm.selectedTab"
147 md-stretch-tabs="always"
154 <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>
158 class="queueCampaign-detail-form-container general md-background-bg md-whiteframe-1dp"
160 <div class="pb-16" layout="row" layout-align="start center">
161 <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">
165 <form name="generalForm" novalidate>
166 <md-input-container class="md-block">
167 <label translate="MOTIONDIALER.NAME">Name</label>
171 ng-model="vm.queueCampaign.name"
172 ng-pattern="/^[A-Za-z0-9\.\_]+$/i"
179 <span translate="MOTIONDIALER.HELP.NAME"></span>
182 ng-messages="generalForm['name'].$error"
183 ng-show="generalForm['name'].$touched"
186 <div ng-message="required">
187 <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED"
188 >Name field is required</span
191 <div ng-message="pattern">
193 translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN"
194 translate-values="{ regex: '/^[A-Za-z0-9\.\_]+$/i' }"
195 >Name must be valid pattern
199 </md-input-container>
200 <md-input-container class="md-block">
202 ng-model="vm.queueCampaign.dialActive"
204 ng-disabled="!vm.crudPermissions.canEdit"
205 ><span translate="MOTIONDIALER.ACTIVE"
209 </md-input-container>
210 <md-input-container class="md-block">
211 <label translate="MOTIONDIALER.TRUNK">Trunk</label>
214 ng-model="vm.queueCampaign.TrunkId"
216 ng-disabled="!vm.crudPermissions.canEdit"
219 ng-value="TrunkId.id"
220 ng-repeat="TrunkId in vm.trunks"
221 ng-disabled="TrunkId.canSelect === false"
222 >{{ TrunkId.name }}</md-option
226 ng-messages="generalForm['TrunkId'].$error"
227 ng-show="generalForm['TrunkId'].$touched"
230 <div ng-message="required">
231 <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED"
232 >Trunk field is required</span
236 </md-input-container>
237 <md-input-container class="md-block">
238 <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>
241 ng-model="vm.queueCampaign.TrunkBackupId"
242 ng-disabled="!vm.crudPermissions.canEdit"
244 <md-option ng-value="null">None</md-option>
246 ng-value="TrunkBackupId.id"
247 ng-repeat="TrunkBackupId in vm.trunks"
248 ng-disabled="TrunkBackupId.canSelect === false"
249 >{{ TrunkBackupId.name }}</md-option
253 ng-messages="generalForm['TrunkBackupId'].$error"
254 ng-show="generalForm['TrunkBackupId'].$touched"
257 <div ng-message="required">
258 <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED"
259 >BackupTrunk field is required</span
263 </md-input-container>
265 ng-if="vm.queueCampaign.dialMethod != 'preview'"
268 <label translate="MOTIONDIALER.INTERVAL">Interval</label>
271 ng-model="vm.queueCampaign.IntervalId"
273 ng-disabled="!vm.crudPermissions.canEdit"
276 ng-value="IntervalId.id"
277 ng-repeat="IntervalId in vm.interval"
278 ng-disabled="IntervalId.canSelect === false"
279 >{{ IntervalId.name }}</md-option
283 ng-messages="generalForm['IntervalId'].$error"
284 ng-show="generalForm['IntervalId'].$touched"
287 <div ng-message="required">
288 <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED"
289 >Interval field is required</span
293 </md-input-container>
294 <md-input-container class="md-block">
295 <label translate="MOTIONDIALER.CHECKDUPLICATE"
296 >CheckDuplicate</label
299 name="dialCheckDuplicateType"
300 ng-model="vm.queueCampaign.dialCheckDuplicateType"
302 ng-disabled="!vm.crudPermissions.canEdit"
304 <md-option ng-value="'always'">
305 {{ 'MOTIONDIALER.ALWAYS' | translate }}
308 <md-option ng-value="'never'">
309 {{ 'MOTIONDIALER.NEVER' | translate }}
312 <md-option ng-value="'onlyIfOpen'">
313 {{ 'MOTIONDIALER.ONLY_IF_OPEN' | translate }}
317 ng-messages="generalForm['dialCheckDuplicateType'].$error"
318 ng-show="generalForm['dialCheckDuplicateType'].$touched"
321 <div ng-message="required">
323 translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED"
324 >CheckDuplicate field is required</span
328 </md-input-container>
329 <md-input-container class="md-block">
330 <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>
334 ng-model="vm.queueCampaign.dialCutDigit"
338 ng-disabled="!vm.crudPermissions.canEdit"
342 ng-messages="generalForm['dialCutDigit'].$error"
343 ng-show="generalForm['dialCutDigit'].$touched"
346 <div ng-message="required">
347 <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED"
348 >CutDigit field is required</span
351 <div ng-message="min">
353 translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
354 >CutDigit must be a valid greater or equal than</span
358 <div ng-message="max">
360 translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO"
361 >CutDigit must be a valid greater or equal than</span
366 </md-input-container>
367 <md-input-container class="md-block">
368 <label translate="MOTIONDIALER.DESCRIPTION">Description</label>
372 ng-model="vm.queueCampaign.description"
373 ng-disabled="!vm.crudPermissions.canEdit"
377 ng-messages="generalForm['description'].$error"
378 ng-show="generalForm['description'].$touched"
381 <div ng-message="required">
382 <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED"
383 >Description field is required</span
387 </md-input-container>
394 <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>
398 class="queueCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp"
400 <div class="pb-16" layout="row" layout-align="start center">
401 <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">
405 <form name="campaignForm" novalidate>
406 <md-input-container class="md-block">
407 <label translate="MOTIONDIALER.METHOD">Method</label>
410 ng-model="vm.queueCampaign.dialMethod"
413 ng-disabled="!vm.crudPermissions.canEdit"
415 <md-option ng-value="'progressive'">Progressive</md-option>
416 <md-option ng-value="'power'">PowerDialing</md-option>
417 <md-option ng-value="'predictive'">Predictive</md-option>
418 <md-option ng-value="'preview'">Preview</md-option>
419 <md-option ng-value="'booked'">BookedProgressive</md-option>
422 <span translate="MOTIONDIALER.HELP.METHOD"></span>
425 ng-messages="campaignForm['dialMethod'].$error"
426 ng-show="campaignForm['dialMethod'].$touched"
429 <div ng-message="required">
430 <span translate="MOTIONDIALER.ERRORS.METHOD_REQUIRED"
431 >Method field is required</span
435 </md-input-container>
437 ng-if="vm.queueCampaign.dialMethod == 'power'"
440 <span translate="MOTIONDIALER.POWERLEVEL">PowerLevel</span>
442 <span translate="MOTIONDIALER.HELP.POWERLEVEL"></span>
447 ng-model="vm.queueCampaign.dialPowerLevel"
453 </md-input-container>
455 ng-if="vm.queueCampaign.dialMethod == 'predictive'"
458 <label translate="MOTIONDIALER.PREDICTIVEOPTIMIZATION"
459 >PredictiveOptimization</label
462 name="dialPredictiveOptimization"
463 ng-model="vm.queueCampaign.dialPredictiveOptimization"
464 ng-disabled="!vm.crudPermissions.canEdit"
466 <md-option ng-value="'agentBusyFactor'">
467 {{ 'MOTIONDIALER.AGENTBUSYFACTOR' | translate }}
470 <md-option ng-value="'dropRate'">
471 {{ 'MOTIONDIALER.DROPRATE' | translate }}
476 translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATION"
480 ng-messages="campaignForm['dialPredictiveOptimization'].$error"
481 ng-show="campaignForm['dialPredictiveOptimization'].$touched"
484 <div ng-message="required">
486 translate="MOTIONDIALER.ERRORS.PREDICTIVEOPTIMIZATION_REQUIRED"
487 >PredictiveOptimization field is required</span
491 </md-input-container>
493 ng-if="vm.queueCampaign.dialMethod == 'predictive'"
496 <span translate="MOTIONDIALER.PREDICTIVEOPTIMIZATIONPERCENTAGE"
497 >PredictiveOptimizationPercentage</span
501 translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATIONPERCENTAGE"
507 ng-model="vm.queueCampaign.dialPredictiveOptimizationPercentage"
513 </md-input-container>
515 ng-if="vm.queueCampaign.dialMethod == 'predictive'"
518 <span translate="MOTIONDIALER.PREDICTIVEINTERVAL"
519 >PredictiveInterval</span
522 <span translate="MOTIONDIALER.HELP.PREDICTIVEINTERVAL"></span>
527 ng-model="vm.queueCampaign.dialPredictiveInterval"
533 </md-input-container>
535 ng-if="vm.queueCampaign.dialMethod != 'preview'"
538 <label translate="MOTIONDIALER.MAXCONCURRENTCALLS"
539 >MaxConcurrentCalls</label
543 name="dialLimitQueue"
544 ng-model="vm.queueCampaign.dialLimitQueue"
548 ng-disabled="!vm.crudPermissions.canEdit"
552 <span translate="MOTIONDIALER.HELP.MAXCONCURRENTCALLS"></span>
555 ng-messages="campaignForm['dialLimitQueue'].$error"
556 ng-show="campaignForm['dialLimitQueue'].$touched"
559 <div ng-message="required">
561 translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_REQUIRED"
562 >MaxConcurrentCalls field is required</span
565 <div ng-message="min">
567 translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
568 >MaxConcurrentCalls must be a valid greater or equal
573 <div ng-message="max">
575 translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO"
576 >MaxConcurrentCalls must be a valid greater or equal
582 </md-input-container>
583 <md-input-container class="md-block">
584 <label translate="MOTIONDIALER.AGENTTIMEOUT"
590 ng-model="vm.queueCampaign.timeout"
593 ng-disabled="!vm.crudPermissions.canEdit"
597 <span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span>
600 ng-messages="campaignForm['timeout'].$error"
601 ng-show="campaignForm['timeout'].$touched"
604 <div ng-message="required">
605 <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_REQUIRED"
606 >AgentTimeout field is required</span
609 <div ng-message="min">
611 translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
612 >AgentTimeout must be a valid greater or equal than</span
617 </md-input-container>
621 class="queueCampaign-detail-form-container queue md-background-bg md-whiteframe-1dp"
623 <div class="pb-16" layout="row" layout-align="start center">
624 <div class="h2 secondary-text" translate="MOTIONDIALER.QUEUE">
628 <form name="queueForm" novalidate>
630 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
633 <label translate="MOTIONDIALER.QUEUEOPTIONS"
638 name="dialQueueOptions"
639 ng-model="vm.queueCampaign.dialQueueOptions"
641 ng-disabled="!vm.crudPermissions.canEdit"
645 ng-messages="queueForm['dialQueueOptions'].$error"
646 ng-show="queueForm['dialQueueOptions'].$touched"
649 <div ng-message="required">
650 <span translate="MOTIONDIALER.ERRORS.QUEUEOPTIONS_REQUIRED"
651 >QueueOptions field is required</span
655 </md-input-container>
657 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
660 <label translate="MOTIONDIALER.QUEUETIMEOUT"
665 name="dialQueueTimeout"
666 ng-model="vm.queueCampaign.dialQueueTimeout"
670 ng-disabled="!vm.crudPermissions.canEdit"
674 <span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span>
677 ng-messages="queueForm['dialQueueTimeout'].$error"
678 ng-show="queueForm['dialQueueTimeout'].$touched"
681 <div ng-message="required">
682 <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_REQUIRED"
683 >QueueTimeout field is required</span
686 <div ng-message="min">
688 translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
689 >QueueTimeout must be a valid greater or equal than</span
693 <div ng-message="max">
695 translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO"
696 >QueueTimeout must be a valid greater or equal than</span
701 </md-input-container>
703 ng-if="vm.queueCampaign.dialMethod === 'booked' || vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
706 <label translate="MOTIONDIALER.STRATEGY">Strategy</label>
709 ng-model="vm.queueCampaign.strategy"
711 ng-disabled="!vm.crudPermissions.canEdit"
713 <md-option ng-value="'rrmemory'"
714 >Round Robin Memory</md-option
717 ng-value="'roundrobin'"
718 ng-if="vm.queueCampaign.dialMethod === 'booked'"
719 >Round Robin</md-option
722 ng-value="'leastrecent'"
723 ng-if="vm.queueCampaign.dialMethod !== 'booked'"
724 >Least Recent</md-option
727 ng-value="'fewestcalls'"
728 ng-if="vm.queueCampaign.dialMethod !== 'booked'"
729 >Fewest Calls</md-option
733 ng-if="vm.queueCampaign.dialMethod !== 'booked'"
738 ng-if="vm.queueCampaign.dialMethod !== 'booked'"
743 ng-if="vm.queueCampaign.dialMethod !== 'booked'"
744 >Weight Random</md-option
748 ng-messages="queueForm['strategy'].$error"
749 ng-show="queueForm['strategy'].$touched"
752 <div ng-message="required">
753 <span translate="MOTIONDIALER.ERRORS.STRATEGY_REQUIRED"
754 >Strategy field is required</span
758 </md-input-container>
760 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
763 <label translate="MOTIONDIALER.RETRY">Retry</label>
767 ng-model="vm.queueCampaign.retry"
769 ng-disabled="!vm.crudPermissions.canEdit"
773 <span translate="MOTIONDIALER.HELP.RETRY"></span>
776 ng-messages="queueForm['retry'].$error"
777 ng-show="queueForm['retry'].$touched"
780 <div ng-message="required">
781 <span translate="MOTIONDIALER.ERRORS.RETRY_REQUIRED"
782 >Retry field is required</span
785 <div ng-message="min">
787 translate="MOTIONDIALER.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
788 >Retry must be a valid greater or equal than</span
793 </md-input-container>
795 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
798 <label translate="MOTIONDIALER.WRAPUPTIME">WrapupTime</label>
802 ng-model="vm.queueCampaign.wrapuptime"
804 ng-disabled="!vm.crudPermissions.canEdit"
808 <span translate="MOTIONDIALER.HELP.WRAPUPTIME"></span>
811 ng-messages="queueForm['wrapuptime'].$error"
812 ng-show="queueForm['wrapuptime'].$touched"
815 <div ng-message="required">
816 <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_REQUIRED"
817 >WrapupTime field is required</span
820 <div ng-message="min">
822 translate="MOTIONDIALER.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
823 >WrapupTime must be a valid greater or equal than</span
828 </md-input-container>
830 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
833 <label translate="MOTIONDIALER.WEIGHT">Weight</label>
837 ng-model="vm.queueCampaign.weight"
839 ng-disabled="!vm.crudPermissions.canEdit"
843 <span translate="MOTIONDIALER.HELP.WEIGHT"></span>
846 ng-messages="queueForm['weight'].$error"
847 ng-show="queueForm['weight'].$touched"
850 <div ng-message="required">
851 <span translate="MOTIONDIALER.ERRORS.WEIGHT_REQUIRED"
852 >Weight field is required</span
855 <div ng-message="min">
857 translate="MOTIONDIALER.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
858 >Weight must be a valid greater or equal than</span
863 </md-input-container>
865 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
868 <label translate="MOTIONDIALER.MUSICONHOLD">MusicOnHold</label>
871 ng-model="vm.queueCampaign.musiconhold"
872 ng-disabled="!vm.crudPermissions.canEdit"
875 ng-value="musiconhold.name"
876 ng-repeat="musiconhold in vm.musiconholds"
877 ng-disabled="musiconhold.canSelect === false"
878 >{{ musiconhold.name }}</md-option
882 <span translate="MOTIONDIALER.HELP.MUSICONHOLD"></span>
885 ng-messages="queueForm['musiconhold'].$error"
886 ng-show="queueForm['musiconhold'].$touched"
889 <div ng-message="required">
890 <span translate="MOTIONDIALER.ERRORS.MUSICONHOLD_REQUIRED"
891 >MusicOnHold field is required</span
895 </md-input-container>
897 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
900 <label translate="MOTIONDIALER.CALLYSQUAREPROJECT"
901 >CallySquareProject</label
904 name="dialQueueProject"
905 ng-model="vm.queueCampaign.dialQueueProject"
906 ng-disabled="!vm.crudPermissions.canEdit"
908 <md-option ng-value="null">None</md-option>
910 ng-value="dialQueueProject.name"
911 ng-repeat="dialQueueProject in vm.projects"
912 ng-disabled="dialQueueProject.canSelect === false"
913 >{{ dialQueueProject.name }}</md-option
917 <span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT"></span>
920 ng-messages="queueForm['dialQueueProject'].$error"
921 ng-show="queueForm['dialQueueProject'].$touched"
924 <div ng-message="required">
926 translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED"
927 >CallySquareProject field is required</span
931 </md-input-container>
933 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
936 <label translate="MOTIONDIALER.CALLYSQUAREPROJECT2"
937 >CallySquareProject2</label
940 name="dialQueueProject2"
941 ng-model="vm.queueCampaign.dialQueueProject2"
942 ng-disabled="!vm.crudPermissions.canEdit"
944 <md-option ng-value="null">None</md-option>
946 ng-value="dialQueueProject2.name"
947 ng-repeat="dialQueueProject2 in vm.projects"
948 ng-disabled="dialQueueProject2.canSelect === false"
949 >{{ dialQueueProject2.name }}</md-option
954 translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT2"
958 ng-messages="queueForm['dialQueueProject2'].$error"
959 ng-show="queueForm['dialQueueProject2'].$touched"
962 <div ng-message="required">
964 translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT2_REQUIRED"
965 >CallySquareProject2 field is required</span
969 </md-input-container>
971 ng-if="vm.queueCampaign.dialMethod === 'preview' || vm.queueCampaign.dialMethod === 'booked'"
974 <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW"
975 >CallySquareProjectPreview</label
978 name="dialQueueProject"
979 ng-model="vm.queueCampaign.dialQueueProject"
980 ng-disabled="!vm.crudPermissions.canEdit"
982 <md-option ng-value="null">None</md-option>
984 ng-value="dialQueueProject.name"
985 ng-repeat="dialQueueProject in vm.projects"
986 ng-disabled="dialQueueProject.canSelect === false"
987 >{{ dialQueueProject.name }}</md-option
992 translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW"
996 ng-messages="queueForm['dialQueueProject'].$error"
997 ng-show="queueForm['dialQueueProject'].$touched"
1000 <div ng-message="required">
1002 translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW_REQUIRED"
1003 >CallySquareProjectPreview field is required</span
1007 </md-input-container>
1009 ng-if="vm.queueCampaign.dialMethod === 'preview' || vm.queueCampaign.dialMethod === 'booked'"
1012 <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW2"
1013 >CallySquareProjectPreview2</label
1016 name="dialQueueProject2"
1017 ng-model="vm.queueCampaign.dialQueueProject2"
1018 ng-disabled="!vm.crudPermissions.canEdit"
1020 <md-option ng-value="null">None</md-option>
1022 ng-value="dialQueueProject2.name"
1023 ng-repeat="dialQueueProject2 in vm.projects"
1024 ng-disabled="dialQueueProject2.canSelect === false"
1025 >{{ dialQueueProject2.name }}</md-option
1030 translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW2"
1034 ng-messages="queueForm['dialQueueProject2'].$error"
1035 ng-show="queueForm['dialQueueProject2'].$touched"
1038 <div ng-message="required">
1040 translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW2_REQUIRED"
1041 >CallySquareProjectPreview2 field is required</span
1045 </md-input-container>
1047 ng-if="vm.queueCampaign.dialQueueProject2 && (vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power')"
1051 ng-model="vm.queueCampaign.dialAgiAfterHangupAgent"
1052 aria-label="RunIfHangupAgent"
1053 ng-disabled="!vm.crudPermissions.canEdit"
1054 ><span translate="MOTIONDIALER.RUNIFHANGUPAGENT"
1055 >RunIfHangupAgent</span
1060 <span translate="MOTIONDIALER.HELP.RUNIFHANGUPAGENT"></span>
1062 </md-input-container>
1066 class="queueCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp"
1068 <div class="pb-16" layout="row" layout-align="start center">
1069 <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">
1073 <form name="originateForm" novalidate>
1074 <md-input-container class="md-block">
1075 <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME"
1076 >OriginateCallerIdName</label
1080 name="dialOriginateCallerIdName"
1081 ng-model="vm.queueCampaign.dialOriginateCallerIdName"
1083 ng-disabled="!vm.crudPermissions.canEdit"
1088 translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"
1092 ng-messages="originateForm['dialOriginateCallerIdName'].$error"
1093 ng-show="originateForm['dialOriginateCallerIdName'].$touched"
1096 <div ng-message="required">
1098 translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED"
1099 >OriginateCallerIdName field is required</span
1103 </md-input-container>
1104 <md-input-container class="md-block">
1105 <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER"
1106 >OriginateCallerIdNumber</label
1110 name="dialOriginateCallerIdNumber"
1111 ng-model="vm.queueCampaign.dialOriginateCallerIdNumber"
1112 ng-disabled="!vm.crudPermissions.canEdit"
1117 translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"
1121 ng-messages="originateForm['dialOriginateCallerIdNumber'].$error"
1122 ng-show="originateForm['dialOriginateCallerIdNumber'].$touched"
1125 <div ng-message="required">
1127 translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED"
1128 >OriginateCallerIdNumber field is required</span
1132 </md-input-container>
1133 <md-input-container class="md-block">
1134 <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER"
1135 >RandomLastDigitCallerIdNumber</label
1139 name="dialRandomLastDigitCallerIdNumber"
1140 ng-model="vm.queueCampaign.dialRandomLastDigitCallerIdNumber"
1144 ng-disabled="!vm.crudPermissions.canEdit"
1149 translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"
1153 ng-messages="originateForm['dialRandomLastDigitCallerIdNumber'].$error"
1154 ng-show="originateForm['dialRandomLastDigitCallerIdNumber'].$touched"
1157 <div ng-message="required">
1159 translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED"
1160 >RandomLastDigitCallerIdNumber field is required</span
1163 <div ng-message="min">
1165 translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1166 >RandomLastDigitCallerIdNumber must be a valid greater or
1171 <div ng-message="max">
1173 translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1174 >RandomLastDigitCallerIdNumber must be a valid greater or
1180 </md-input-container>
1181 <md-input-container class="md-block">
1182 <label translate="MOTIONDIALER.ORIGINATETIMEOUT"
1183 >OriginateTimeout</label
1187 name="dialOriginateTimeout"
1188 ng-model="vm.queueCampaign.dialOriginateTimeout"
1192 ng-disabled="!vm.crudPermissions.canEdit"
1196 <span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span>
1199 ng-messages="originateForm['dialOriginateTimeout'].$error"
1200 ng-show="originateForm['dialOriginateTimeout'].$touched"
1203 <div ng-message="required">
1205 translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED"
1206 >OriginateTimeout field is required</span
1209 <div ng-message="min">
1211 translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1212 >OriginateTimeout must be a valid greater or equal
1217 <div ng-message="max">
1219 translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1220 >OriginateTimeout must be a valid greater or equal
1226 </md-input-container>
1227 <md-input-container class="md-block">
1228 <label translate="MOTIONDIALER.PREFIX">Prefix</label>
1232 ng-model="vm.queueCampaign.dialPrefix"
1233 ng-pattern="/^\d+$/"
1234 ng-disabled="!vm.crudPermissions.canEdit"
1238 <span translate="MOTIONDIALER.HELP.PREFIX"></span>
1241 ng-messages="originateForm['dialPrefix'].$error"
1242 ng-show="originateForm['dialPrefix'].$touched"
1245 <div ng-message="required">
1246 <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED"
1247 >Prefix field is required</span
1250 <div ng-message="pattern">
1252 translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN"
1253 translate-values="{ regex: '/^\d+$/' }"
1254 >Prefix must be valid pattern
1258 </md-input-container>
1265 <span translate="MOTIONDIALER.RETRYANDFREQUENCY"
1266 >RETRYANDFREQUENCY</span
1271 class="queueCampaign-detail-form-container global md-background-bg md-whiteframe-1dp"
1273 <div class="pb-16" layout="row" layout-align="start center">
1274 <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">
1278 <form name="globalForm" novalidate>
1279 <md-input-container class="md-block">
1280 <label translate="MOTIONDIALER.GLOBALMAXRETRY"
1281 >GlobalMaxRetry</label
1285 name="dialGlobalMaxRetry"
1286 ng-model="vm.queueCampaign.dialGlobalMaxRetry"
1291 ng-disabled="!vm.crudPermissions.canEdit"
1295 <span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span>
1298 ng-messages="globalForm['dialGlobalMaxRetry'].$error"
1299 ng-show="globalForm['dialGlobalMaxRetry'].$touched"
1302 <div ng-message="required">
1304 translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED"
1305 >GlobalMaxRetry field is required</span
1308 <div ng-message="min">
1310 translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1311 >GlobalMaxRetry must be a valid greater or equal
1316 <div ng-message="max">
1318 translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1319 >GlobalMaxRetry must be a valid greater or equal
1325 </md-input-container>
1329 class="queueCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp"
1331 <div class="pb-16" layout="row" layout-align="start center">
1333 class="h2 secondary-text"
1334 translate="MOTIONDIALER.CONGESTION"
1339 <form name="congestionForm" novalidate>
1340 <md-input-container class="md-block">
1341 <label translate="MOTIONDIALER.CONGESTIONMAXRETRY"
1342 >CongestionMaxRetry</label
1346 name="dialCongestionMaxRetry"
1347 ng-model="vm.queueCampaign.dialCongestionMaxRetry"
1352 ng-disabled="!vm.crudPermissions.canEdit"
1356 <span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span>
1359 ng-messages="congestionForm['dialCongestionMaxRetry'].$error"
1360 ng-show="congestionForm['dialCongestionMaxRetry'].$touched"
1363 <div ng-message="required">
1365 translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED"
1366 >CongestionMaxRetry field is required</span
1369 <div ng-message="min">
1371 translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1372 >CongestionMaxRetry must be a valid greater or equal
1377 <div ng-message="max">
1379 translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1380 >CongestionMaxRetry must be a valid greater or equal
1386 </md-input-container>
1387 <md-input-container class="md-block">
1388 <label translate="MOTIONDIALER.CONGESTIONRETRYTIME"
1389 >CongestionRetryTime</label
1393 name="dialCongestionRetryFrequency"
1394 ng-model="vm.queueCampaign.dialCongestionRetryFrequency"
1398 ng-disabled="!vm.crudPermissions.canEdit"
1403 translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"
1407 ng-messages="congestionForm['dialCongestionRetryFrequency'].$error"
1408 ng-show="congestionForm['dialCongestionRetryFrequency'].$touched"
1411 <div ng-message="required">
1413 translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED"
1414 >CongestionRetryTime field is required</span
1417 <div ng-message="min">
1419 translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1420 >CongestionRetryTime must be a valid greater or equal
1425 <div ng-message="max">
1427 translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1428 >CongestionRetryTime must be a valid greater or equal
1434 </md-input-container>
1438 class="queueCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp"
1440 <div class="pb-16" layout="row" layout-align="start center">
1441 <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">
1445 <form name="busyForm" novalidate>
1446 <md-input-container class="md-block">
1447 <label translate="MOTIONDIALER.BUSYMAXRETRY"
1448 >BusyMaxRetry</label
1452 name="dialBusyMaxRetry"
1453 ng-model="vm.queueCampaign.dialBusyMaxRetry"
1458 ng-disabled="!vm.crudPermissions.canEdit"
1462 <span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span>
1465 ng-messages="busyForm['dialBusyMaxRetry'].$error"
1466 ng-show="busyForm['dialBusyMaxRetry'].$touched"
1469 <div ng-message="required">
1470 <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED"
1471 >BusyMaxRetry field is required</span
1474 <div ng-message="min">
1476 translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1477 >BusyMaxRetry must be a valid greater or equal than</span
1481 <div ng-message="max">
1483 translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1484 >BusyMaxRetry must be a valid greater or equal than</span
1489 </md-input-container>
1490 <md-input-container class="md-block">
1491 <label translate="MOTIONDIALER.BUSYRETRYTIME"
1492 >BusyRetryTime</label
1496 name="dialBusyRetryFrequency"
1497 ng-model="vm.queueCampaign.dialBusyRetryFrequency"
1501 ng-disabled="!vm.crudPermissions.canEdit"
1505 <span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span>
1508 ng-messages="busyForm['dialBusyRetryFrequency'].$error"
1509 ng-show="busyForm['dialBusyRetryFrequency'].$touched"
1512 <div ng-message="required">
1513 <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED"
1514 >BusyRetryTime field is required</span
1517 <div ng-message="min">
1519 translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1520 >BusyRetryTime must be a valid greater or equal than</span
1524 <div ng-message="max">
1526 translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1527 >BusyRetryTime must be a valid greater or equal than</span
1532 </md-input-container>
1536 class="queueCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp"
1538 <div class="pb-16" layout="row" layout-align="start center">
1539 <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">
1543 <form name="noanswerForm" novalidate>
1544 <md-input-container class="md-block">
1545 <label translate="MOTIONDIALER.NOANSWERMAXRETRY"
1546 >NoAnswerMaxRetry</label
1550 name="dialNoAnswerMaxRetry"
1551 ng-model="vm.queueCampaign.dialNoAnswerMaxRetry"
1556 ng-disabled="!vm.crudPermissions.canEdit"
1560 <span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span>
1563 ng-messages="noanswerForm['dialNoAnswerMaxRetry'].$error"
1564 ng-show="noanswerForm['dialNoAnswerMaxRetry'].$touched"
1567 <div ng-message="required">
1569 translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED"
1570 >NoAnswerMaxRetry field is required</span
1573 <div ng-message="min">
1575 translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1576 >NoAnswerMaxRetry must be a valid greater or equal
1581 <div ng-message="max">
1583 translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1584 >NoAnswerMaxRetry must be a valid greater or equal
1590 </md-input-container>
1591 <md-input-container class="md-block">
1592 <label translate="MOTIONDIALER.NOANSWERRETRYTIME"
1593 >NoAnswerRetryTime</label
1597 name="dialNoAnswerRetryFrequency"
1598 ng-model="vm.queueCampaign.dialNoAnswerRetryFrequency"
1602 ng-disabled="!vm.crudPermissions.canEdit"
1606 <span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span>
1609 ng-messages="noanswerForm['dialNoAnswerRetryFrequency'].$error"
1610 ng-show="noanswerForm['dialNoAnswerRetryFrequency'].$touched"
1613 <div ng-message="required">
1615 translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED"
1616 >NoAnswerRetryTime field is required</span
1619 <div ng-message="min">
1621 translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1622 >NoAnswerRetryTime must be a valid greater or equal
1627 <div ng-message="max">
1629 translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1630 >NoAnswerRetryTime must be a valid greater or equal
1636 </md-input-container>
1640 class="queueCampaign-detail-form-container nosuchnumber md-background-bg md-whiteframe-1dp"
1642 <div class="pb-16" layout="row" layout-align="start center">
1644 class="h2 secondary-text"
1645 translate="MOTIONDIALER.NOSUCHNUMBER"
1650 <form name="nosuchnumberForm" novalidate>
1651 <md-input-container class="md-block">
1652 <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY"
1653 >NoSuchNumberMaxRetry</label
1657 name="dialNoSuchNumberMaxRetry"
1658 ng-model="vm.queueCampaign.dialNoSuchNumberMaxRetry"
1663 ng-disabled="!vm.crudPermissions.canEdit"
1668 translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"
1672 ng-messages="nosuchnumberForm['dialNoSuchNumberMaxRetry'].$error"
1673 ng-show="nosuchnumberForm['dialNoSuchNumberMaxRetry'].$touched"
1676 <div ng-message="required">
1678 translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED"
1679 >NoSuchNumberMaxRetry field is required</span
1682 <div ng-message="min">
1684 translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1685 >NoSuchNumberMaxRetry must be a valid greater or equal
1690 <div ng-message="max">
1692 translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1693 >NoSuchNumberMaxRetry must be a valid greater or equal
1699 </md-input-container>
1700 <md-input-container class="md-block">
1701 <label translate="MOTIONDIALER.NOSUCHNUMBERRETRYTIME"
1702 >NoSuchNumberRetryTime</label
1706 name="dialNoSuchNumberRetryFrequency"
1707 ng-model="vm.queueCampaign.dialNoSuchNumberRetryFrequency"
1711 ng-disabled="!vm.crudPermissions.canEdit"
1716 translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"
1720 ng-messages="nosuchnumberForm['dialNoSuchNumberRetryFrequency'].$error"
1721 ng-show="nosuchnumberForm['dialNoSuchNumberRetryFrequency'].$touched"
1724 <div ng-message="required">
1726 translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED"
1727 >NoSuchNumberRetryTime field is required</span
1730 <div ng-message="min">
1732 translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1733 >NoSuchNumberRetryTime must be a valid greater or equal
1738 <div ng-message="max">
1740 translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1741 >NoSuchNumberRetryTime must be a valid greater or equal
1747 </md-input-container>
1751 class="queueCampaign-detail-form-container drop md-background-bg md-whiteframe-1dp"
1753 <div class="pb-16" layout="row" layout-align="start center">
1754 <div class="h2 secondary-text" translate="MOTIONDIALER.DROP">
1758 <form name="dropForm" novalidate>
1759 <md-input-container class="md-block">
1760 <label translate="MOTIONDIALER.DROPMAXRETRY"
1761 >DropMaxRetry</label
1765 name="dialDropMaxRetry"
1766 ng-model="vm.queueCampaign.dialDropMaxRetry"
1771 ng-disabled="!vm.crudPermissions.canEdit"
1775 <span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span>
1778 ng-messages="dropForm['dialDropMaxRetry'].$error"
1779 ng-show="dropForm['dialDropMaxRetry'].$touched"
1782 <div ng-message="required">
1783 <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED"
1784 >DropMaxRetry field is required</span
1787 <div ng-message="min">
1789 translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1790 >DropMaxRetry must be a valid greater or equal than</span
1794 <div ng-message="max">
1796 translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1797 >DropMaxRetry must be a valid greater or equal than</span
1802 </md-input-container>
1803 <md-input-container class="md-block">
1804 <label translate="MOTIONDIALER.DROPRETRYTIME"
1805 >DropRetryTime</label
1809 name="dialDropRetryFrequency"
1810 ng-model="vm.queueCampaign.dialDropRetryFrequency"
1814 ng-disabled="!vm.crudPermissions.canEdit"
1818 <span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span>
1821 ng-messages="dropForm['dialDropRetryFrequency'].$error"
1822 ng-show="dropForm['dialDropRetryFrequency'].$touched"
1825 <div ng-message="required">
1826 <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED"
1827 >DropRetryTime field is required</span
1830 <div ng-message="min">
1832 translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1833 >DropRetryTime must be a valid greater or equal than</span
1837 <div ng-message="max">
1839 translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1840 >DropRetryTime must be a valid greater or equal than</span
1845 </md-input-container>
1849 class="queueCampaign-detail-form-container abandoned md-background-bg md-whiteframe-1dp"
1851 <div class="pb-16" layout="row" layout-align="start center">
1852 <div class="h2 secondary-text" translate="MOTIONDIALER.ABANDONED">
1856 <form name="abandonedForm" novalidate>
1857 <md-input-container class="md-block">
1858 <label translate="MOTIONDIALER.ABANDONEDMAXRETRY"
1859 >AbandonedMaxRetry</label
1863 name="dialAbandonedMaxRetry"
1864 ng-model="vm.queueCampaign.dialAbandonedMaxRetry"
1869 ng-disabled="!vm.crudPermissions.canEdit"
1873 <span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span>
1876 ng-messages="abandonedForm['dialAbandonedMaxRetry'].$error"
1877 ng-show="abandonedForm['dialAbandonedMaxRetry'].$touched"
1880 <div ng-message="required">
1882 translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED"
1883 >AbandonedMaxRetry field is required</span
1886 <div ng-message="min">
1888 translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1889 >AbandonedMaxRetry must be a valid greater or equal
1894 <div ng-message="max">
1896 translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1897 >AbandonedMaxRetry must be a valid greater or equal
1903 </md-input-container>
1904 <md-input-container class="md-block">
1905 <label translate="MOTIONDIALER.ABANDONEDRETRYTIME"
1906 >AbandonedRetryTime</label
1910 name="dialAbandonedRetryFrequency"
1911 ng-model="vm.queueCampaign.dialAbandonedRetryFrequency"
1915 ng-disabled="!vm.crudPermissions.canEdit"
1919 <span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span>
1922 ng-messages="abandonedForm['dialAbandonedRetryFrequency'].$error"
1923 ng-show="abandonedForm['dialAbandonedRetryFrequency'].$touched"
1926 <div ng-message="required">
1928 translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED"
1929 >AbandonedRetryTime field is required</span
1932 <div ng-message="min">
1934 translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1935 >AbandonedRetryTime must be a valid greater or equal
1940 <div ng-message="max">
1942 translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1943 >AbandonedRetryTime must be a valid greater or equal
1949 </md-input-container>
1953 class="queueCampaign-detail-form-container machine md-background-bg md-whiteframe-1dp"
1955 <div class="pb-16" layout="row" layout-align="start center">
1956 <div class="h2 secondary-text" translate="MOTIONDIALER.MACHINE">
1960 <form name="machineForm" novalidate>
1961 <md-input-container class="md-block">
1962 <label translate="MOTIONDIALER.MACHINEMAXRETRY"
1963 >MachineMaxRetry</label
1967 name="dialMachineMaxRetry"
1968 ng-model="vm.queueCampaign.dialMachineMaxRetry"
1973 ng-disabled="!vm.crudPermissions.canEdit"
1977 <span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span>
1980 ng-messages="machineForm['dialMachineMaxRetry'].$error"
1981 ng-show="machineForm['dialMachineMaxRetry'].$touched"
1984 <div ng-message="required">
1986 translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED"
1987 >MachineMaxRetry field is required</span
1990 <div ng-message="min">
1992 translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1993 >MachineMaxRetry must be a valid greater or equal
1998 <div ng-message="max">
2000 translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
2001 >MachineMaxRetry must be a valid greater or equal
2007 </md-input-container>
2008 <md-input-container class="md-block">
2009 <label translate="MOTIONDIALER.MACHINERETRYTIME"
2010 >MachineRetryTime</label
2014 name="dialMachineRetryFrequency"
2015 ng-model="vm.queueCampaign.dialMachineRetryFrequency"
2019 ng-disabled="!vm.crudPermissions.canEdit"
2023 <span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span>
2026 ng-messages="machineForm['dialMachineRetryFrequency'].$error"
2027 ng-show="machineForm['dialMachineRetryFrequency'].$touched"
2030 <div ng-message="required">
2032 translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED"
2033 >MachineRetryTime field is required</span
2036 <div ng-message="min">
2038 translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
2039 >MachineRetryTime must be a valid greater or equal
2044 <div ng-message="max">
2046 translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
2047 >MachineRetryTime must be a valid greater or equal
2053 </md-input-container>
2057 class="queueCampaign-detail-form-container agentreject md-background-bg md-whiteframe-1dp"
2059 <div class="pb-16" layout="row" layout-align="start center">
2061 class="h2 secondary-text"
2062 translate="MOTIONDIALER.AGENTREJECT"
2067 <form name="agentrejectForm" novalidate>
2068 <md-input-container class="md-block">
2069 <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY"
2070 >AgentRejectMaxRetry</label
2074 name="dialAgentRejectMaxRetry"
2075 ng-model="vm.queueCampaign.dialAgentRejectMaxRetry"
2080 ng-disabled="!vm.crudPermissions.canEdit"
2085 translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"
2089 ng-messages="agentrejectForm['dialAgentRejectMaxRetry'].$error"
2090 ng-show="agentrejectForm['dialAgentRejectMaxRetry'].$touched"
2093 <div ng-message="required">
2095 translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED"
2096 >AgentRejectMaxRetry field is required</span
2099 <div ng-message="min">
2101 translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
2102 >AgentRejectMaxRetry must be a valid greater or equal
2107 <div ng-message="max">
2109 translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
2110 >AgentRejectMaxRetry must be a valid greater or equal
2116 </md-input-container>
2117 <md-input-container class="md-block">
2118 <label translate="MOTIONDIALER.AGENTREJECTRETRYTIME"
2119 >AgentRejectRetryTime</label
2123 name="dialAgentRejectRetryFrequency"
2124 ng-model="vm.queueCampaign.dialAgentRejectRetryFrequency"
2128 ng-disabled="!vm.crudPermissions.canEdit"
2133 translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"
2137 ng-messages="agentrejectForm['dialAgentRejectRetryFrequency'].$error"
2138 ng-show="agentrejectForm['dialAgentRejectRetryFrequency'].$touched"
2141 <div ng-message="required">
2143 translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED"
2144 >AgentRejectRetryTime field is required</span
2147 <div ng-message="min">
2149 translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
2150 >AgentRejectRetryTime must be a valid greater or equal
2155 <div ng-message="max">
2157 translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
2158 >AgentRejectRetryTime must be a valid greater or equal
2164 </md-input-container>
2171 <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>
2175 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
2176 class="queueCampaign-detail-form-container advanced md-background-bg md-whiteframe-1dp"
2178 <div class="pb-16" layout="row" layout-align="start center">
2179 <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCED">
2183 <form name="advancedForm" novalidate>
2184 <md-input-container class="md-block">
2186 ng-model="vm.queueCampaign.acw"
2187 aria-label="AfterCallWork"
2188 ng-disabled="!vm.crudPermissions.canEdit"
2189 ><span translate="MOTIONDIALER.AFTERCALLWORK"
2190 >AfterCallWork</span
2195 <span translate="MOTIONDIALER.HELP.AFTERCALLWORK"></span>
2197 </md-input-container>
2198 <md-input-container ng-if="vm.queueCampaign.acw" class="md-block">
2199 <label translate="MOTIONDIALER.AFTERCALLWORKDURATION"
2200 >AfterCallWorkDuration</label
2205 ng-model="vm.queueCampaign.acwTimeout"
2208 ng-disabled="!vm.crudPermissions.canEdit"
2213 translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"
2217 ng-messages="advancedForm['acwTimeout'].$error"
2218 ng-show="advancedForm['acwTimeout'].$touched"
2221 <div ng-message="required">
2223 translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_REQUIRED"
2224 >AfterCallWorkDuration field is required</span
2227 <div ng-message="min">
2229 translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
2230 >AfterCallWorkDuration must be a valid greater or equal
2236 </md-input-container>
2237 <md-input-container class="md-block">
2238 <label translate="MOTIONDIALER.AUTOPAUSE">AutoPause</label>
2241 ng-model="vm.queueCampaign.autopause"
2242 ng-disabled="!vm.crudPermissions.canEdit"
2244 <md-option ng-value="'all'">
2245 {{ 'MOTIONDIALER.YES' | translate }}
2248 <md-option ng-value="'no'">
2249 {{ 'MOTIONDIALER.NO' | translate }}
2253 <span translate="MOTIONDIALER.HELP.AUTOPAUSE"></span>
2256 ng-messages="advancedForm['autopause'].$error"
2257 ng-show="advancedForm['autopause'].$touched"
2260 <div ng-message="required">
2261 <span translate="MOTIONDIALER.ERRORS.AUTOPAUSE_REQUIRED"
2262 >AutoPause field is required</span
2266 </md-input-container>
2267 <md-input-container class="md-block">
2268 <label translate="MOTIONDIALER.RINGINUSE">RingInUse</label>
2271 ng-model="vm.queueCampaign.ringinuse"
2272 ng-disabled="!vm.crudPermissions.canEdit"
2274 <md-option ng-value="'yes'">
2275 {{ 'MOTIONDIALER.YES' | translate }}
2278 <md-option ng-value="'no'">
2279 {{ 'MOTIONDIALER.NO' | translate }}
2283 <span translate="MOTIONDIALER.HELP.RINGINUSE"></span>
2286 ng-messages="advancedForm['ringinuse'].$error"
2287 ng-show="advancedForm['ringinuse'].$touched"
2290 <div ng-message="required">
2291 <span translate="MOTIONDIALER.ERRORS.RINGINUSE_REQUIRED"
2292 >RingInUse field is required</span
2296 </md-input-container>
2297 <md-input-container class="md-block">
2298 <label translate="MOTIONDIALER.MEMBERDELAY">MemberDelay</label>
2302 ng-model="vm.queueCampaign.memberdelay"
2304 ng-disabled="!vm.crudPermissions.canEdit"
2308 <span translate="MOTIONDIALER.HELP.MEMBERDELAY"></span>
2311 ng-messages="advancedForm['memberdelay'].$error"
2312 ng-show="advancedForm['memberdelay'].$touched"
2315 <div ng-message="required">
2316 <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_REQUIRED"
2317 >MemberDelay field is required</span
2320 <div ng-message="min">
2322 translate="MOTIONDIALER.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
2323 >MemberDelay must be a valid greater or equal than</span
2328 </md-input-container>
2329 <md-input-container class="md-block">
2330 <label translate="MOTIONDIALER.TIMEOUTRESTART"
2331 >TimeoutRestart</label
2334 name="timeoutrestart"
2335 ng-model="vm.queueCampaign.timeoutrestart"
2336 ng-disabled="!vm.crudPermissions.canEdit"
2338 <md-option ng-value="'yes'">
2339 {{ 'MOTIONDIALER.YES' | translate }}
2342 <md-option ng-value="'no'">
2343 {{ 'MOTIONDIALER.NO' | translate }}
2347 <span translate="MOTIONDIALER.HELP.TIMEOUTRESTART"></span>
2350 ng-messages="advancedForm['timeoutrestart'].$error"
2351 ng-show="advancedForm['timeoutrestart'].$touched"
2354 <div ng-message="required">
2356 translate="MOTIONDIALER.ERRORS.TIMEOUTRESTART_REQUIRED"
2357 >TimeoutRestart field is required</span
2361 </md-input-container>
2362 <md-input-container class="md-block">
2363 <label translate="MOTIONDIALER.MONITORFORMAT"
2364 >MonitorFormat</label
2367 name="monitor_format"
2368 ng-model="vm.queueCampaign.monitor_format"
2369 ng-disabled="!vm.crudPermissions.canEdit"
2371 <md-option ng-value="''">Inactive</md-option>
2372 <md-option ng-value="'wav'">wav</md-option>
2373 <md-option ng-value="'wav49'">wav49</md-option>
2374 <md-option ng-value="'gsm'">gsm</md-option>
2377 <span translate="MOTIONDIALER.HELP.MONITORFORMAT"></span>
2380 ng-messages="advancedForm['monitor_format'].$error"
2381 ng-show="advancedForm['monitor_format'].$touched"
2384 <div ng-message="required">
2385 <span translate="MOTIONDIALER.ERRORS.MONITORFORMAT_REQUIRED"
2386 >MonitorFormat field is required</span
2390 </md-input-container>
2391 <md-input-container class="md-block">
2392 <label translate="MOTIONDIALER.CONTEXT">Context</label>
2396 ng-model="vm.queueCampaign.context"
2397 ng-disabled="!vm.crudPermissions.canEdit"
2401 <span translate="MOTIONDIALER.HELP.CONTEXT"></span>
2404 ng-messages="advancedForm['context'].$error"
2405 ng-show="advancedForm['context'].$touched"
2408 <div ng-message="required">
2409 <span translate="MOTIONDIALER.ERRORS.CONTEXT_REQUIRED"
2410 >Context field is required</span
2414 </md-input-container>
2415 <md-input-container class="md-block">
2416 <label translate="MOTIONDIALER.SETINTERFACEVARIABLES"
2417 >SetInterfaceVariables</label
2420 name="setinterfacevar"
2421 ng-model="vm.queueCampaign.setinterfacevar"
2422 ng-disabled="!vm.crudPermissions.canEdit"
2424 <md-option ng-value="'yes'">
2425 {{ 'MOTIONDIALER.YES' | translate }}
2428 <md-option ng-value="'no'">
2429 {{ 'MOTIONDIALER.NO' | translate }}
2434 translate="MOTIONDIALER.HELP.SETINTERFACEVARIABLES"
2438 ng-messages="advancedForm['setinterfacevar'].$error"
2439 ng-show="advancedForm['setinterfacevar'].$touched"
2442 <div ng-message="required">
2444 translate="MOTIONDIALER.ERRORS.SETINTERFACEVARIABLES_REQUIRED"
2445 >SetInterfaceVariables field is required</span
2449 </md-input-container>
2450 <md-input-container class="md-block">
2451 <label translate="MOTIONDIALER.SETQUEUEVARIABLES"
2452 >SetQueueVariables</label
2456 ng-model="vm.queueCampaign.setqueuevar"
2457 ng-disabled="!vm.crudPermissions.canEdit"
2459 <md-option ng-value="'yes'">
2460 {{ 'MOTIONDIALER.YES' | translate }}
2463 <md-option ng-value="'no'">
2464 {{ 'MOTIONDIALER.NO' | translate }}
2468 <span translate="MOTIONDIALER.HELP.SETQUEUEVARIABLES"></span>
2471 ng-messages="advancedForm['setqueuevar'].$error"
2472 ng-show="advancedForm['setqueuevar'].$touched"
2475 <div ng-message="required">
2477 translate="MOTIONDIALER.ERRORS.SETQUEUEVARIABLES_REQUIRED"
2478 >SetQueueVariables field is required</span
2482 </md-input-container>
2483 <md-input-container class="md-block">
2484 <label translate="MOTIONDIALER.SETQUEUEENTRYVARIABLES"
2485 >SetQueueEntryVariables</label
2488 name="setqueueentryvar"
2489 ng-model="vm.queueCampaign.setqueueentryvar"
2490 ng-disabled="!vm.crudPermissions.canEdit"
2492 <md-option ng-value="'yes'">
2493 {{ 'MOTIONDIALER.YES' | translate }}
2496 <md-option ng-value="'no'">
2497 {{ 'MOTIONDIALER.NO' | translate }}
2502 translate="MOTIONDIALER.HELP.SETQUEUEENTRYVARIABLES"
2506 ng-messages="advancedForm['setqueueentryvar'].$error"
2507 ng-show="advancedForm['setqueueentryvar'].$touched"
2510 <div ng-message="required">
2512 translate="MOTIONDIALER.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED"
2513 >SetQueueEntryVariables field is required</span
2517 </md-input-container>
2518 <md-input-container class="md-block">
2519 <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT"
2520 >DialOrderByScheduledAt</label
2523 name="dialOrderByScheduledAt"
2524 ng-model="vm.queueCampaign.dialOrderByScheduledAt"
2525 ng-disabled="!vm.crudPermissions.canEdit"
2527 <md-option ng-value="'DESC'">
2528 {{ 'MOTIONDIALER.DESC' | translate }}
2531 <md-option ng-value="'ASC'">
2532 {{ 'MOTIONDIALER.ASC' | translate }}
2537 translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"
2541 ng-messages="advancedForm['dialOrderByScheduledAt'].$error"
2542 ng-show="advancedForm['dialOrderByScheduledAt'].$touched"
2545 <div ng-message="required">
2547 translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED"
2548 >DialOrderByScheduledAt field is required</span
2552 </md-input-container>
2553 <md-input-container class="md-block">
2555 ng-model="vm.queueCampaign.mandatoryDisposition"
2556 aria-label="MandatoryDisposition"
2557 ng-disabled="!vm.crudPermissions.canEdit"
2558 ><span translate="MOTIONDIALER.MANDATORYDISPOSITION"
2559 >MandatoryDisposition</span
2562 </md-input-container>
2564 ng-if="vm.queueCampaign.mandatoryDisposition"
2567 <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID"
2568 >MandatoryDispositionPauseId</label
2571 name="mandatoryDispositionPauseId"
2572 ng-model="vm.queueCampaign.mandatoryDispositionPauseId"
2574 ng-disabled="!vm.crudPermissions.canEdit"
2577 ng-value="mandatoryDispositionPauseId.id"
2578 ng-repeat="mandatoryDispositionPauseId in vm.pauses"
2579 ng-disabled="mandatoryDispositionPauseId.canSelect === false"
2580 >{{ mandatoryDispositionPauseId.name }}</md-option
2585 translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"
2589 ng-messages="advancedForm['mandatoryDispositionPauseId'].$error"
2590 ng-show="advancedForm['mandatoryDispositionPauseId'].$touched"
2593 <div ng-message="required">
2595 translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED"
2596 >MandatoryDispositionPauseId field is required</span
2600 </md-input-container>
2604 ng-if="vm.queueCampaign.dialMethod === 'preview' || vm.queueCampaign.dialMethod === 'booked'"
2605 class="queueCampaign-detail-form-container advancedpreview md-background-bg md-whiteframe-1dp"
2607 <div class="pb-16" layout="row" layout-align="start center">
2609 class="h2 secondary-text"
2610 translate="MOTIONDIALER.ADVANCEDPREVIEW"
2615 <form name="advancedpreviewForm" novalidate>
2616 <md-input-container class="md-block">
2618 ng-model="vm.queueCampaign.acw"
2619 aria-label="AfterCallWork"
2620 ng-disabled="!vm.crudPermissions.canEdit"
2621 ><span translate="MOTIONDIALER.AFTERCALLWORK"
2622 >AfterCallWork</span
2627 <span translate="MOTIONDIALER.HELP.AFTERCALLWORK"></span>
2629 </md-input-container>
2630 <md-input-container ng-if="vm.queueCampaign.acw" class="md-block">
2631 <label translate="MOTIONDIALER.AFTERCALLWORKDURATION"
2632 >AfterCallWorkDuration</label
2637 ng-model="vm.queueCampaign.acwTimeout"
2640 ng-disabled="!vm.crudPermissions.canEdit"
2645 translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"
2649 ng-messages="advancedpreviewForm['acwTimeout'].$error"
2650 ng-show="advancedpreviewForm['acwTimeout'].$touched"
2653 <div ng-message="required">
2655 translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_REQUIRED"
2656 >AfterCallWorkDuration field is required</span
2659 <div ng-message="min">
2661 translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
2662 >AfterCallWorkDuration must be a valid greater or equal
2668 </md-input-container>
2669 <md-input-container class="md-block">
2670 <label translate="MOTIONDIALER.MONITORFORMAT"
2671 >MonitorFormat</label
2674 name="monitor_format"
2675 ng-model="vm.queueCampaign.monitor_format"
2676 ng-disabled="!vm.crudPermissions.canEdit"
2678 <md-option ng-value="''">Inactive</md-option>
2679 <md-option ng-value="'wav'">wav</md-option>
2680 <md-option ng-value="'wav49'">wav49</md-option>
2681 <md-option ng-value="'gsm'">gsm</md-option>
2684 <span translate="MOTIONDIALER.HELP.MONITORFORMAT"></span>
2687 ng-messages="advancedpreviewForm['monitor_format'].$error"
2688 ng-show="advancedpreviewForm['monitor_format'].$touched"
2691 <div ng-message="required">
2692 <span translate="MOTIONDIALER.ERRORS.MONITORFORMAT_REQUIRED"
2693 >MonitorFormat field is required</span
2697 </md-input-container>
2698 <md-input-container class="md-block">
2699 <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT"
2700 >DialOrderByScheduledAt</label
2703 name="dialOrderByScheduledAt"
2704 ng-model="vm.queueCampaign.dialOrderByScheduledAt"
2705 ng-disabled="!vm.crudPermissions.canEdit"
2707 <md-option ng-value="'DESC'">
2708 {{ 'MOTIONDIALER.DESC' | translate }}
2711 <md-option ng-value="'ASC'">
2712 {{ 'MOTIONDIALER.ASC' | translate }}
2717 translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"
2721 ng-messages="advancedpreviewForm['dialOrderByScheduledAt'].$error"
2722 ng-show="advancedpreviewForm['dialOrderByScheduledAt'].$touched"
2725 <div ng-message="required">
2727 translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED"
2728 >DialOrderByScheduledAt field is required</span
2732 </md-input-container>
2733 <md-input-container class="md-block">
2735 ng-model="vm.queueCampaign.mandatoryDisposition"
2736 aria-label="MandatoryDisposition"
2737 ng-disabled="!vm.crudPermissions.canEdit"
2738 ><span translate="MOTIONDIALER.MANDATORYDISPOSITION"
2739 >MandatoryDisposition</span
2742 </md-input-container>
2744 ng-if="vm.queueCampaign.mandatoryDisposition"
2747 <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID"
2748 >MandatoryDispositionPauseId</label
2751 name="mandatoryDispositionPauseId"
2752 ng-model="vm.queueCampaign.mandatoryDispositionPauseId"
2754 ng-disabled="!vm.crudPermissions.canEdit"
2757 ng-value="mandatoryDispositionPauseId.id"
2758 ng-repeat="mandatoryDispositionPauseId in vm.pauses"
2759 ng-disabled="mandatoryDispositionPauseId.canSelect === false"
2760 >{{ mandatoryDispositionPauseId.name }}</md-option
2765 translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"
2769 ng-messages="advancedpreviewForm['mandatoryDispositionPauseId'].$error"
2770 ng-show="advancedpreviewForm['mandatoryDispositionPauseId'].$touched"
2773 <div ng-message="required">
2775 translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED"
2776 >MandatoryDispositionPauseId field is required</span
2780 </md-input-container>
2784 ng-if="vm.queueCampaign.dialMethod === 'predictive'"
2785 class="queueCampaign-detail-form-container thresholds md-background-bg md-whiteframe-1dp"
2787 <div class="pb-16" layout="row" layout-align="start center">
2789 class="h2 secondary-text"
2790 translate="MOTIONDIALER.THRESHOLDS"
2795 <form name="thresholdsForm" novalidate>
2797 ng-if="vm.queueCampaign.dialMethod == 'predictive'"
2800 <span translate="MOTIONDIALER.PREDICTIVEMAXTHRESHOLD"
2801 >PredictiveMaxThreshold</span
2805 translate="MOTIONDIALER.HELP.PREDICTIVEMAXTHRESHOLD"
2811 ng-model="vm.queueCampaign.dialPredictiveIntervalMaxThreshold"
2817 </md-input-container>
2819 ng-if="vm.queueCampaign.dialMethod == 'predictive'"
2822 <span translate="MOTIONDIALER.PREDICTIVEMINTHRESHOLD"
2823 >PredictiveMinThreshold</span
2827 translate="MOTIONDIALER.HELP.PREDICTIVEMINTHRESHOLD"
2833 ng-model="vm.queueCampaign.dialPredictiveIntervalMinThreshold"
2839 </md-input-container>
2843 class="queueCampaign-detail-form-container recallme md-background-bg md-whiteframe-1dp"
2845 <div class="pb-16" layout="row" layout-align="start center">
2846 <div class="h2 secondary-text" translate="MOTIONDIALER.RECALLME">
2850 <form name="recallmeForm" novalidate>
2851 <md-input-container class="md-block">
2852 <label translate="MOTIONDIALER.DIALRECALLMETIMEOUT"
2853 >DialRecallMeTimeout</label
2857 name="dialRecallMeTimeout"
2858 ng-model="vm.queueCampaign.dialRecallMeTimeout"
2862 ng-disabled="!vm.crudPermissions.canEdit"
2867 translate="MOTIONDIALER.HELP.DIALRECALLMETIMEOUT"
2871 ng-messages="recallmeForm['dialRecallMeTimeout'].$error"
2872 ng-show="recallmeForm['dialRecallMeTimeout'].$touched"
2875 <div ng-message="required">
2877 translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_REQUIRED"
2878 >DialRecallMeTimeout field is required</span
2881 <div ng-message="min">
2883 translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
2884 >DialRecallMeTimeout must be a valid greater or equal
2890 </md-input-container>
2891 <md-input-container class="md-block">
2893 ng-model="vm.queueCampaign.dialRecallInQueue"
2894 aria-label="DialRecallInQueue"
2895 ng-disabled="!vm.crudPermissions.canEdit"
2896 ><span translate="MOTIONDIALER.DIALRECALLINQUEUE"
2897 >DialRecallInQueue</span
2902 <span translate="MOTIONDIALER.HELP.DIALRECALLINQUEUE"></span>
2904 </md-input-container>
2908 ng-if="vm.queueCampaign.dialMethod != 'preview'"
2909 class="queueCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp"
2911 <div class="pb-16" layout="row" layout-align="start center">
2913 class="h2 secondary-text"
2914 translate="MOTIONDIALER.GLOBALINTERVAL"
2919 <form name="globalintervalForm" novalidate>
2920 <md-input-container class="md-block">
2921 <label translate="MOTIONDIALER.GLOBALINTERVAL"
2922 >GlobalInterval</label
2926 name="dialGlobalInterval"
2927 ng-model="vm.queueCampaign.dialGlobalInterval"
2930 ng-disabled="!vm.crudPermissions.canEdit"
2934 <span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span>
2937 ng-messages="globalintervalForm['dialGlobalInterval'].$error"
2938 ng-show="globalintervalForm['dialGlobalInterval'].$touched"
2941 <div ng-message="required">
2943 translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED"
2944 >GlobalInterval field is required</span
2948 </md-input-container>
2952 ng-if="vm.queueCampaign.dialMethod != 'preview'"
2953 class="queueCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp"
2955 <div class="pb-16" layout="row" layout-align="start center">
2956 <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">
2960 <form name="timezoneForm" novalidate>
2961 <md-input-container class="md-block">
2962 <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>
2965 ng-model="vm.queueCampaign.dialTimezone"
2967 ng-disabled="!vm.crudPermissions.canEdit"
2970 <span translate="MOTIONDIALER.HELP.TIMEZONE"></span>
2973 ng-messages="timezoneForm['dialTimezone'].$error"
2974 ng-show="timezoneForm[dialTimezone].$touched"
2977 <div ng-message="required">
2978 <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED"
2979 >Timezone field is required</span
2983 </md-input-container>
2987 ng-if="vm.queueCampaign.dialMethod === 'progressive' || vm.queueCampaign.dialMethod === 'predictive' || vm.queueCampaign.dialMethod === 'power'"
2988 class="queueCampaign-detail-form-container amd md-background-bg md-whiteframe-1dp"
2990 <div class="pb-16" layout="row" layout-align="start center">
2991 <div class="h2 secondary-text" translate="MOTIONDIALER.AMD">
2995 <form name="amdForm" novalidate>
2996 <md-input-container class="md-block">
2998 ng-model="vm.queueCampaign.dialAMDActive"
2999 aria-label="AMDActive"
3000 ng-disabled="!vm.crudPermissions.canEdit"
3001 ><span translate="MOTIONDIALER.AMDACTIVE"
3007 <span translate="MOTIONDIALER.HELP.AMDACTIVE"></span>
3009 </md-input-container>
3011 ng-if="vm.queueCampaign.dialAMDActive"
3014 <label translate="MOTIONDIALER.AMDINITIALSILENCE"
3015 >AMDInitialSilence</label
3019 name="dialAMDInitialSilence"
3020 ng-model="vm.queueCampaign.dialAMDInitialSilence"
3022 ng-disabled="!vm.crudPermissions.canEdit"
3026 <span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span>
3029 ng-messages="amdForm['dialAMDInitialSilence'].$error"
3030 ng-show="amdForm['dialAMDInitialSilence'].$touched"
3033 <div ng-message="required">
3035 translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED"
3036 >AMDInitialSilence field is required</span
3039 <div ng-message="min">
3041 translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
3042 >AMDInitialSilence must be a valid greater or equal
3048 </md-input-container>
3050 ng-if="vm.queueCampaign.dialAMDActive"
3053 <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>
3056 name="dialAMDGreeting"
3057 ng-model="vm.queueCampaign.dialAMDGreeting"
3059 ng-disabled="!vm.crudPermissions.canEdit"
3063 <span translate="MOTIONDIALER.HELP.AMDGREETING"></span>
3066 ng-messages="amdForm['dialAMDGreeting'].$error"
3067 ng-show="amdForm['dialAMDGreeting'].$touched"
3070 <div ng-message="required">
3071 <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED"
3072 >AMDGreeting field is required</span
3075 <div ng-message="min">
3077 translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
3078 >AMDGreeting must be a valid greater or equal than</span
3083 </md-input-container>
3085 ng-if="vm.queueCampaign.dialAMDActive"
3088 <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE"
3089 >AMDAfterGreetingSilence</label
3093 name="dialAMDAfterGreetingSilence"
3094 ng-model="vm.queueCampaign.dialAMDAfterGreetingSilence"
3096 ng-disabled="!vm.crudPermissions.canEdit"
3101 translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"
3105 ng-messages="amdForm['dialAMDAfterGreetingSilence'].$error"
3106 ng-show="amdForm['dialAMDAfterGreetingSilence'].$touched"
3109 <div ng-message="required">
3111 translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED"
3112 >AMDAfterGreetingSilence field is required</span
3115 <div ng-message="min">
3117 translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
3118 >AMDAfterGreetingSilence must be a valid greater or equal
3124 </md-input-container>
3126 ng-if="vm.queueCampaign.dialAMDActive"
3129 <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME"
3130 >AMDTotalAnalysisTime</label
3134 name="dialAMDTotalAnalysisTime"
3135 ng-model="vm.queueCampaign.dialAMDTotalAnalysisTime"
3137 ng-disabled="!vm.crudPermissions.canEdit"
3142 translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"
3146 ng-messages="amdForm['dialAMDTotalAnalysisTime'].$error"
3147 ng-show="amdForm['dialAMDTotalAnalysisTime'].$touched"
3150 <div ng-message="required">
3152 translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED"
3153 >AMDTotalAnalysisTime field is required</span
3156 <div ng-message="min">
3158 translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
3159 >AMDTotalAnalysisTime must be a valid greater or equal
3165 </md-input-container>
3167 ng-if="vm.queueCampaign.dialAMDActive"
3170 <label translate="MOTIONDIALER.AMDMINWORDLENGTH"
3171 >AMDMinWordLength</label
3175 name="dialAMDMinWordLength"
3176 ng-model="vm.queueCampaign.dialAMDMinWordLength"
3178 ng-disabled="!vm.crudPermissions.canEdit"
3182 <span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span>
3185 ng-messages="amdForm['dialAMDMinWordLength'].$error"
3186 ng-show="amdForm['dialAMDMinWordLength'].$touched"
3189 <div ng-message="required">
3191 translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED"
3192 >AMDMinWordLength field is required</span
3195 <div ng-message="min">
3197 translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
3198 >AMDMinWordLength must be a valid greater or equal
3204 </md-input-container>
3206 ng-if="vm.queueCampaign.dialAMDActive"
3209 <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE"
3210 >AMDBetweenWordsSilence</label
3214 name="dialAMDBetweenWordsSilence"
3215 ng-model="vm.queueCampaign.dialAMDBetweenWordsSilence"
3217 ng-disabled="!vm.crudPermissions.canEdit"
3222 translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"
3226 ng-messages="amdForm['dialAMDBetweenWordsSilence'].$error"
3227 ng-show="amdForm['dialAMDBetweenWordsSilence'].$touched"
3230 <div ng-message="required">
3232 translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED"
3233 >AMDBetweenWordsSilence field is required</span
3236 <div ng-message="min">
3238 translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
3239 >AMDBetweenWordsSilence must be a valid greater or equal
3245 </md-input-container>
3247 ng-if="vm.queueCampaign.dialAMDActive"
3250 <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS"
3251 >AMDMaximumNumberOfWords</label
3255 name="dialAMDMaximumNumberOfWords"
3256 ng-model="vm.queueCampaign.dialAMDMaximumNumberOfWords"
3258 ng-disabled="!vm.crudPermissions.canEdit"
3263 translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"
3267 ng-messages="amdForm['dialAMDMaximumNumberOfWords'].$error"
3268 ng-show="amdForm['dialAMDMaximumNumberOfWords'].$touched"
3271 <div ng-message="required">
3273 translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED"
3274 >AMDMaximumNumberOfWords field is required</span
3277 <div ng-message="min">
3279 translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
3280 >AMDMaximumNumberOfWords must be a valid greater or equal
3286 </md-input-container>
3288 ng-if="vm.queueCampaign.dialAMDActive"
3291 <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD"
3292 >AMDSilenceThreshold</label
3296 name="dialAMDSilenceThreshold"
3297 ng-model="vm.queueCampaign.dialAMDSilenceThreshold"
3300 ng-disabled="!vm.crudPermissions.canEdit"
3305 translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"
3309 ng-messages="amdForm['dialAMDSilenceThreshold'].$error"
3310 ng-show="amdForm['dialAMDSilenceThreshold'].$touched"
3313 <div ng-message="required">
3315 translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED"
3316 >AMDSilenceThreshold field is required</span
3319 <div ng-message="min">
3321 translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
3322 >AMDSilenceThreshold must be a valid greater or equal
3327 <div ng-message="max">
3329 translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO"
3330 >AMDSilenceThreshold must be a valid greater or equal
3336 </md-input-container>
3338 ng-if="vm.queueCampaign.dialAMDActive"
3341 <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH"
3342 >AMDMaximumWordLength</label
3346 name="dialAMDMaximumWordLength"
3347 ng-model="vm.queueCampaign.dialAMDMaximumWordLength"
3349 ng-disabled="!vm.crudPermissions.canEdit"
3354 translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"
3358 ng-messages="amdForm['dialAMDMaximumWordLength'].$error"
3359 ng-show="amdForm['dialAMDMaximumWordLength'].$touched"
3362 <div ng-message="required">
3364 translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED"
3365 >AMDMaximumWordLength field is required</span
3368 <div ng-message="min">
3370 translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
3371 >AMDMaximumWordLength must be a valid greater or equal
3377 </md-input-container>
3384 <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>
3388 class="queueCampaign-detail-form-container hopperstatistics md-background-bg md-whiteframe-1dp"
3391 ng-controller="QueueCampaignHopperStatisticsController as vm_hs"
3392 ng-init="vm_hs.init(vm.queueCampaign)"
3394 <md-toolbar class="md-table-toolbar md-default">
3395 <div class="md-toolbar-tools">
3396 <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET"
3401 class="md-icon-button"
3402 ng-click="vm_hs.init(vm.queueCampaign)"
3403 aria-label="refresh Hopper"
3405 translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS"
3407 <md-icon md-font-icon="icon-refresh"></md-icon>
3411 <!-- WIDGET GROUP -->
3412 <div class="widget-group" layout="row" flex="100" layout-wrap>
3422 <ms-widget-front class="p-16 white-bg" layout="row" flex>
3426 layout-align="center center"
3429 <div class="md-display-1 pb-8">
3430 {{(vm_hs.total || 0) + (vm_hs.closed || 0)}}
3432 <div class="font-weight-500 secondary-text">
3433 {{ 'MOTIONDIALER.TOTAL' | translate }}
3450 <ms-widget-front class="p-16 white-bg" layout="row" flex>
3454 layout-align="center center"
3457 <div class="md-display-1 pb-8">
3458 {{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh ||
3459 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) |
3462 <div class="font-weight-500 secondary-text">
3463 {{ 'MOTIONDIALER.FRESH' | translate }}
3480 <ms-widget-front class="p-16 white-bg" layout="row" flex>
3484 layout-align="center center"
3487 <div class="md-display-1 pb-8">
3488 {{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}}
3489 ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) *
3490 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) |
3493 <div class="font-weight-500 secondary-text">
3494 {{ 'MOTIONDIALER.OPEN' | translate }}
3511 <ms-widget-front class="p-16 white-bg" layout="row" flex>
3515 layout-align="center center"
3518 <div class="md-display-1 pb-8">
3519 {{vm_hs.closed ? (vm_hs.closed || 0) : 0}}
3520 ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed
3521 + (vm_hs.total || 0))) | number: 2) : 0}}%)
3523 <div class="font-weight-500 secondary-text">
3524 {{ 'MOTIONDIALER.CLOSED' | translate }}
3532 <!-- / WIDGET GROUP -->
3536 class="queueCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp"
3539 ng-controller="QueueCampaignHoppersController as vm_dc"
3540 ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)"
3543 class="md-table-toolbar md-default"
3544 ng-hide="vm_dc.selectedQueueCampaignHoppers.length"
3546 <div class="md-toolbar-tools">
3547 <span class="md-subhead" translate="MOTIONDIALER.HOPPERS"
3551 on-search="vm_dc.query.filter = query"
3552 on-collapse="vm_dc.query.filter = undefined"
3558 class="md-icon-button"
3559 ng-click="vm_dc.getQueueCampaignHoppers()"
3560 aria-label="refresh Hoppers"
3562 translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS"
3564 <md-icon md-font-icon="icon-refresh"></md-icon>
3569 class="md-table-toolbar md-accent"
3570 ng-show="vm_dc.selectedQueueCampaignHoppers.length"
3572 <div class="md-toolbar-tools">
3573 <span class="md-subhead"
3574 >{{vm_dc.selectedQueueCampaignHoppers.length}}
3575 {{vm_dc.selectedQueueCampaignHoppers.length > 1 ? 'items' :
3576 'item'}} selected</span
3580 class="md-icon-button"
3581 ng-csv="vm_dc.exportSelectedQueueCampaignHoppers"
3583 filename="queueCampaigns.csv"
3585 <md-icon md-font-icon="icon-file-excel"></md-icon>
3588 ng-if="vm_dc.crudPermissions.canDelete"
3589 class="md-icon-button"
3590 ng-click="vm_dc.deleteSelectedQueueCampaignHoppers($event)"
3591 aria-label="delete selected"
3593 translate-attr-label="MOTIONDIALER.DELETE_SELECTED"
3595 <md-icon md-font-icon="icon-delete"></md-icon>
3599 <md-table-container class="font-size-12">
3604 ng-model="vm_dc.selectedQueueCampaignHoppers"
3605 md-progress="vm_dc.promise"
3609 md-order="vm_dc.query.sort"
3610 md-on-reorder="vm_dc.getQueueCampaignHoppers"
3613 <th md-column md-order-by="ContactId">
3614 {{ 'MOTIONDIALER.CONTACTID' | translate }}
3616 <th md-column md-order-by="phone">
3617 {{ 'MOTIONDIALER.PHONE' | translate }}
3619 <th md-column md-order-by="countcongestionretry">
3620 {{ 'MOTIONDIALER.CONGESTION' | translate }}
3622 <th md-column md-order-by="countbusyretry">
3623 {{ 'MOTIONDIALER.BUSY' | translate }}
3625 <th md-column md-order-by="countnoanswerretry">
3626 {{ 'MOTIONDIALER.NOANSWER' | translate }}
3628 <th md-column md-order-by="countnosuchnumberretry">
3629 {{ 'MOTIONDIALER.NOSUCHNUMBER' | translate }}
3631 <th md-column md-order-by="countdropretry">
3632 {{ 'MOTIONDIALER.DROP' | translate }}
3634 <th md-column md-order-by="countabandonedretry">
3635 {{ 'MOTIONDIALER.ABANDONED' | translate }}
3637 <th md-column md-order-by="countmachineretry">
3638 {{ 'MOTIONDIALER.MACHINE' | translate }}
3640 <th md-column md-order-by="countagentrejectretry">
3641 {{ 'MOTIONDIALER.AGENTREJECT' | translate }}
3643 <th md-column md-order-by="scheduledat">
3644 {{ 'MOTIONDIALER.SCHEDULEDAT' | translate }}
3646 <th md-column md-order-by="priority">
3647 {{ 'MOTIONDIALER.PRIORITY' | translate }}
3649 <th md-column md-order-by="recallme">
3650 {{ 'MOTIONDIALER.RECALLAGENT' | translate }}
3652 <th md-column width="10px"></th>
3660 ng-repeat="hopper in vm_dc.queueCampaignHoppers.rows"
3663 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
3666 {{hopper.ContactId}}
3669 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
3675 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
3678 {{hopper.countcongestionretry}}
3681 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
3684 {{hopper.countbusyretry}}
3687 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
3690 {{hopper.countnoanswerretry}}
3693 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
3696 {{hopper.countnosuchnumberretry}}
3699 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
3702 {{hopper.countdropretry}}
3705 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
3708 {{hopper.countabandonedretry}}
3711 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
3714 {{hopper.countmachineretry}}
3717 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
3720 {{hopper.countagentrejectretry}}
3723 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
3726 {{ hopper.scheduledat | formatdate }}
3729 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
3732 {{ vm_dc.arraypriority[hopper.priority].option }}
3736 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
3741 md-colors="{color: {{hopper.recallme ? '\'green\'' : '\'grey\''}}}"
3742 md-font-icon="{{hopper.recallme? 'icon-check' : 'icon-close'}}"
3748 ng-if="!vm_dc.crudPermissions.readOnly"
3752 class="md-icon-button"
3755 translate-attr-aria-label="MOTIONDIALER.MORE"
3756 ng-click="$mdOpenMenu($event)"
3759 md-font-icon="icon-dots-vertical"
3763 <md-menu-content width="3">
3764 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
3766 ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)"
3767 translate="MOTIONDIALER.EDIT_HOPPER"
3773 ng-if="vm_dc.crudPermissions.canDelete"
3776 ng-click="vm_dc.deleteConfirm(hopper, $event)"
3777 translate="MOTIONDIALER.DELETE_HOPPER"
3786 <tr md-row ng-if="!vm_dc.queueCampaignHoppers.rows.length">
3787 <td md-cell colspan="17">
3788 <div layout="row" layout-align="center center">
3790 class="text-boxed-light"
3791 translate="MOTIONDIALER.NO_HOPPER_AVAILABLE"
3792 >No hopper available</span
3799 </md-table-container>
3800 <md-table-pagination
3801 md-label="{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}"
3802 md-limit="vm_dc.query.limit"
3803 md-limit-options="[10, 15, 20, 50, 100, 250]"
3804 md-page="vm_dc.query.page"
3805 md-total="{{vm_dc.queueCampaignHoppers.count}}"
3806 md-on-paginate="vm_dc.getQueueCampaignHoppers"
3808 ></md-table-pagination>
3815 <span translate="MOTIONDIALER.HISTORY">HISTORY</span>
3819 class="queueCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp"
3822 ng-controller="QueueCampaignHopperHistoriesController as vm_dc"
3823 ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)"
3826 class="md-table-toolbar md-default"
3827 ng-hide="vm_dc.selectedQueueCampaignHopperHistories.length"
3829 <div class="md-toolbar-tools">
3832 translate="MOTIONDIALER.HOPPERHISTORIES"
3833 >HopperHistories</span
3836 on-search="vm_dc.query.filter = query"
3837 on-collapse="vm_dc.query.filter = undefined"
3843 class="md-icon-button"
3844 ng-click="vm_dc.getQueueCampaignHopperHistories()"
3845 aria-label="refresh HopperHistories"
3847 translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES"
3849 <md-icon md-font-icon="icon-refresh"></md-icon>
3854 class="md-table-toolbar md-accent"
3855 ng-show="vm_dc.selectedQueueCampaignHopperHistories.length"
3857 <div class="md-toolbar-tools">
3858 <span class="md-subhead"
3859 >{{vm_dc.selectedQueueCampaignHopperHistories.length}}
3860 {{vm_dc.selectedQueueCampaignHopperHistories.length > 1 ?
3861 'items' : 'item'}} selected</span
3865 class="md-icon-button"
3866 ng-csv="vm_dc.exportSelectedQueueCampaignHopperHistories"
3868 filename="queueCampaigns.csv"
3870 <md-icon md-font-icon="icon-file-excel"></md-icon>
3874 <md-table-container class="font-size-12">
3879 ng-model="vm_dc.selectedQueueCampaignHopperHistories"
3880 md-progress="vm_dc.promise"
3884 md-order="vm_dc.query.sort"
3885 md-on-reorder="vm_dc.getQueueCampaignHopperHistories"
3888 <th md-column md-order-by="uniqueid">
3889 {{ 'MOTIONDIALER.UNIQUEID' | translate }}
3891 <th md-column md-order-by="ContactId">
3892 {{ 'MOTIONDIALER.CONTACTID' | translate }}
3894 <th md-column md-order-by="calleridnum">
3895 {{ 'MOTIONDIALER.PHONE' | translate }}
3897 <th md-column md-order-by="calleridname">
3898 {{ 'MOTIONDIALER.NAME' | translate }}
3900 <th md-column md-order-by="statedesc">
3901 {{ 'MOTIONDIALER.STATUS' | translate }}
3903 <th md-column md-order-by="scheduledat">
3904 {{ 'MOTIONDIALER.SCHEDULEDAT' | translate }}
3906 <th md-column md-order-by="starttime">
3907 {{ 'MOTIONDIALER.STARTTIME' | translate }}
3909 <th md-column md-order-by="endtime">
3910 {{ 'MOTIONDIALER.ENDTIME' | translate }}
3912 <th md-column width="10px"></th>
3918 md-select="hopperHistory"
3920 ng-repeat="hopperHistory in vm_dc.queueCampaignHopperHistories.rows"
3922 <td md-cell>{{hopperHistory.uniqueid}}</td>
3923 <td md-cell>{{hopperHistory.ContactId}}</td>
3924 <td md-cell>{{hopperHistory.calleridnum}}</td>
3925 <td md-cell>{{hopperHistory.calleridname}}</td>
3926 <td md-cell>{{hopperHistory.statedesc}}</td>
3928 {{ hopperHistory.scheduledat | formatdate }}
3931 {{ hopperHistory.starttime | formatdate }}
3933 <td md-cell>{{ hopperHistory.endtime | formatdate }}</td>
3934 <td md-cell class="actions"></td>
3938 ng-if="!vm_dc.queueCampaignHopperHistories.rows.length"
3940 <td md-cell colspan="11">
3941 <div layout="row" layout-align="center center">
3943 class="text-boxed-light"
3944 translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE"
3945 >No hopperhistory available</span
3952 </md-table-container>
3953 <md-table-pagination
3954 md-label="{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}"
3955 md-limit="vm_dc.query.limit"
3956 md-limit-options="[10, 15, 20, 50, 100, 250]"
3957 md-page="vm_dc.query.page"
3958 md-total="{{vm_dc.queueCampaignHopperHistories.count}}"
3959 md-on-paginate="vm_dc.getQueueCampaignHopperHistories"
3961 ></md-table-pagination>
3968 <span translate="MOTIONDIALER.FINAL">FINAL</span>
3972 class="queueCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp"
3975 ng-controller="QueueCampaignHopperFinalsController as vm_dc"
3976 ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)"
3979 class="md-table-toolbar md-default"
3980 ng-hide="vm_dc.selectedQueueCampaignHopperFinals.length"
3982 <div class="md-toolbar-tools">
3983 <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS"
3987 on-search="vm_dc.query.filter = query"
3988 on-collapse="vm_dc.query.filter = undefined"
3994 class="md-icon-button"
3995 ng-click="vm_dc.getQueueCampaignHopperFinals()"
3996 aria-label="refresh HopperFinals"
3998 translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS"
4000 <md-icon md-font-icon="icon-refresh"></md-icon>
4002 <td md-cell class="actions">
4005 class="md-icon-button"
4008 translate-attr-aria-label="MOTIONDIALER.MORE"
4009 ng-click="vm_dc.countContactsQueueCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);"
4011 <md-icon md-font-icon="icon-backup-restore"></md-icon>
4013 ><span translate="MOTIONDIALER.RESTORECONTACTS"></span
4016 <md-menu-content width="3">
4017 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
4019 ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(3)"
4021 <span translate="MOTIONDIALER.NOANSWER "
4025 >({{vm_dc.contacts.noAnswerContacts}})</span
4029 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
4031 ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(5)"
4033 <span translate="MOTIONDIALER.BUSY ">Busy</span>
4035 >({{vm_dc.contacts.busyContacts}})</span
4039 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
4041 ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(8)"
4043 <span translate="MOTIONDIALER.CONGESTION "
4047 >({{vm_dc.contacts.congestionContacts}})</span
4051 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
4053 ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(10)"
4055 <span translate="MOTIONDIALER.DROPPED ">Drop</span>
4057 >({{vm_dc.contacts.dropContacts}})</span
4061 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
4063 ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(11)"
4065 <span translate="MOTIONDIALER.ABANDONED "
4069 >({{vm_dc.contacts.abandonedContacts}})</span
4073 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
4075 ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(22)"
4077 <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT"
4081 >({{vm_dc.contacts.reCallContacts}})</span
4085 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
4087 ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(0)"
4089 <span translate="MOTIONDIALER.NO_SUCH_NUMBER"
4093 >({{vm_dc.contacts.noSuchContacts}})</span
4099 ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(19)"
4101 <span translate="MOTIONDIALER.ANSWERING_MACHINE"
4102 >AnsweringMachine</span
4105 >({{vm_dc.contacts.answeringMachine}})</span
4115 class="md-table-toolbar md-accent"
4116 ng-show="vm_dc.selectedQueueCampaignHopperFinals.length"
4118 <div class="md-toolbar-tools">
4119 <span class="md-subhead"
4120 >{{vm_dc.selectedQueueCampaignHopperFinals.length}}
4121 {{vm_dc.selectedQueueCampaignHopperFinals.length > 1 ?
4122 'items' : 'item'}} selected</span
4126 class="md-icon-button"
4127 ng-csv="vm_dc.exportSelectedQueueCampaignHopperFinals"
4129 filename="queueCampaigns.csv"
4131 <md-icon md-font-icon="icon-file-excel"></md-icon>
4134 ng-if="vm_dc.crudPermissions.canEdit"
4135 class="md-icon-button"
4136 ng-click="vm_dc.moveSelectedQueueCampaignHopperFinals($event)"
4137 aria-label="move selected"
4139 translate-attr-label="MOTIONDIALER.MOVE_SELECTED"
4141 <md-icon md-font-icon="icon-restore"></md-icon>
4143 ><span translate="MOTIONDIALER.RESTORECONTACTS"></span
4148 <md-table-container class="font-size-12">
4153 ng-model="vm_dc.selectedQueueCampaignHopperFinals"
4154 md-progress="vm_dc.promise"
4158 md-order="vm_dc.query.sort"
4159 md-on-reorder="vm_dc.getQueueCampaignHopperFinals"
4162 <th md-column md-order-by="uniqueid">
4163 {{ 'MOTIONDIALER.UNIQUEID' | translate }}
4165 <th md-column md-order-by="ContactId">
4166 {{ 'MOTIONDIALER.CONTACTID' | translate }}
4168 <th md-column md-order-by="calleridnum">
4169 {{ 'MOTIONDIALER.PHONE' | translate }}
4171 <th md-column md-order-by="calleridname">
4172 {{ 'MOTIONDIALER.NAME' | translate }}
4174 <th md-column md-order-by="statedesc">
4175 {{ 'MOTIONDIALER.STATUS' | translate }}
4177 <th md-column md-order-by="countcongestionretry">
4178 {{ 'MOTIONDIALER.CONGESTION' | translate }}
4180 <th md-column md-order-by="countbusyretry">
4181 {{ 'MOTIONDIALER.BUSY' | translate }}
4183 <th md-column md-order-by="countnoanswerretry">
4184 {{ 'MOTIONDIALER.NOANSWER' | translate }}
4186 <th md-column md-order-by="countnosuchnumberretry">
4187 {{ 'MOTIONDIALER.NOSUCHNUMBER' | translate }}
4189 <th md-column md-order-by="countdropretry">
4190 {{ 'MOTIONDIALER.DROP' | translate }}
4192 <th md-column md-order-by="countabandonedretry">
4193 {{ 'MOTIONDIALER.ABANDONED' | translate }}
4195 <th md-column md-order-by="countmachineretry">
4196 {{ 'MOTIONDIALER.MACHINE' | translate }}
4198 <th md-column md-order-by="countagentrejectretry">
4199 {{ 'MOTIONDIALER.AGENTREJECT' | translate }}
4201 <th md-column md-order-by="starttime">
4202 {{ 'MOTIONDIALER.STARTTIME' | translate }}
4204 <th md-column md-order-by="endtime">
4205 {{ 'MOTIONDIALER.ENDTIME' | translate }}
4207 <th md-column md-order-by="disposition">
4208 {{ 'MOTIONDIALER.DISPOSITION' | translate }}
4210 <th md-column md-order-by="secondDisposition">
4211 {{ 'MOTIONDIALER.SECOND_LEVEL_DISPOSITION' | translate
4214 <th md-column md-order-by="thirdDisposition">
4215 {{ 'MOTIONDIALER.THIRD_LEVEL_DISPOSITION' | translate }}
4217 <th md-column width="10px"></th>
4223 md-select="hopperFinal"
4225 ng-repeat="hopperFinal in vm_dc.queueCampaignHopperFinals.rows"
4227 <td md-cell>{{hopperFinal.uniqueid}}</td>
4228 <td md-cell>{{hopperFinal.ContactId}}</td>
4229 <td md-cell>{{hopperFinal.calleridnum}}</td>
4230 <td md-cell>{{hopperFinal.calleridname}}</td>
4231 <td md-cell>{{hopperFinal.statedesc}}</td>
4232 <td md-cell>{{hopperFinal.countcongestionretry}}</td>
4233 <td md-cell>{{hopperFinal.countbusyretry}}</td>
4234 <td md-cell>{{hopperFinal.countnoanswerretry}}</td>
4235 <td md-cell>{{hopperFinal.countnosuchnumberretry}}</td>
4236 <td md-cell>{{hopperFinal.countdropretry}}</td>
4237 <td md-cell>{{hopperFinal.countabandonedretry}}</td>
4238 <td md-cell>{{hopperFinal.countmachineretry}}</td>
4239 <td md-cell>{{hopperFinal.countagentrejectretry}}</td>
4240 <td md-cell>{{ hopperFinal.starttime | formatdate }}</td>
4241 <td md-cell>{{ hopperFinal.endtime | formatdate }}</td>
4242 <td md-cell>{{hopperFinal.disposition}}</td>
4243 <td md-cell>{{hopperFinal.secondDisposition}}</td>
4244 <td md-cell>{{hopperFinal.thirdDisposition}}</td>
4248 ng-if="!vm_dc.crudPermissions.readOnly"
4252 class="md-icon-button"
4255 translate-attr-aria-label="MOTIONDIALER.MORE"
4256 ng-click="$mdOpenMenu($event)"
4259 md-font-icon="icon-dots-vertical"
4263 <md-menu-content width="3">
4264 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
4266 ng-click="vm_dc.moveConfirm(hopperFinal, $event)"
4267 translate="MOTIONDIALER.MOVE_HOPPERFINAL"
4278 ng-if="!vm_dc.queueCampaignHopperFinals.rows.length"
4280 <td md-cell colspan="30">
4281 <div layout="row" layout-align="center center">
4283 class="text-boxed-light"
4284 translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE"
4285 >No hopperfinal available</span
4292 </md-table-container>
4293 <md-table-pagination
4294 md-label="{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}"
4295 md-limit="vm_dc.query.limit"
4296 md-limit-options="[10, 15, 20, 50, 100, 250]"
4297 md-page="vm_dc.query.page"
4298 md-total="{{vm_dc.queueCampaignHopperFinals.count}}"
4299 md-on-paginate="vm_dc.getQueueCampaignHopperFinals"
4301 ></md-table-pagination>
4308 <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>
4312 class="queueCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp"
4315 ng-controller="QueueCampaignHopperBlacksController as vm_dc"
4316 ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)"
4319 class="md-table-toolbar md-default"
4320 ng-hide="vm_dc.selectedQueueCampaignHopperBlacks.length"
4322 <div class="md-toolbar-tools">
4323 <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS"
4327 on-search="vm_dc.query.filter = query"
4328 on-collapse="vm_dc.query.filter = undefined"
4336 class="md-table-toolbar md-accent"
4337 ng-show="vm_dc.selectedQueueCampaignHopperBlacks.length"
4339 <div class="md-toolbar-tools">
4340 <span class="md-subhead"
4341 >{{vm_dc.selectedQueueCampaignHopperBlacks.length}}
4342 {{vm_dc.selectedQueueCampaignHopperBlacks.length > 1 ?
4343 'items' : 'item'}} selected</span
4347 class="md-icon-button"
4348 ng-csv="vm_dc.exportSelectedQueueCampaignHopperBlacks"
4350 filename="queueCampaigns.csv"
4352 <md-icon md-font-icon="icon-file-excel"></md-icon>
4356 <md-table-container class="font-size-12">
4361 ng-model="vm_dc.selectedQueueCampaignHopperBlacks"
4362 md-progress="vm_dc.promise"
4366 md-order="vm_dc.query.sort"
4367 md-on-reorder="vm_dc.getQueueCampaignHopperBlacks"
4370 <th md-column md-order-by="ContactId">
4371 {{ 'MOTIONDIALER.CONTACTID' | translate }}
4373 <th md-column md-order-by="phone">
4374 {{ 'MOTIONDIALER.PHONE' | translate }}
4376 <th md-column width="10px"></th>
4382 md-select="hopperBlack"
4384 ng-repeat="hopperBlack in vm_dc.queueCampaignHopperBlacks.rows"
4386 <td md-cell>{{hopperBlack.ContactId}}</td>
4387 <td md-cell>{{hopperBlack.phone}}</td>
4388 <td md-cell class="actions"></td>
4392 ng-if="!vm_dc.queueCampaignHopperBlacks.rows.length"
4394 <td md-cell colspan="4">
4395 <div layout="row" layout-align="center center">
4397 class="text-boxed-light"
4398 translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE"
4399 >No hopperblack available</span
4406 </md-table-container>
4407 <md-table-pagination
4408 md-label="{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}"
4409 md-limit="vm_dc.query.limit"
4410 md-limit-options="[10, 15, 20, 50, 100, 250]"
4411 md-page="vm_dc.query.page"
4412 md-total="{{vm_dc.queueCampaignHopperBlacks.count}}"
4413 md-on-paginate="vm_dc.getQueueCampaignHopperBlacks"
4415 ></md-table-pagination>