2 id="motiondialer-ivrCampaign"
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-ivrCampaigns-button md-icon-button"
11 aria-label="Go to ivrCampaigns"
12 ng-click="vm.gotoIvrCampaigns()"
14 translate-attr-aria-label="MOTIONDIALER.GO_TO_IVRCAMPAIGNS"
16 <md-icon md-font-icon="icon-arrow-left"></md-icon>
19 <div layout="row" layout-align="start center">
20 <div class="ivrCampaign-image" hide-xs>
21 <img ng-src="assets/images/business/ivrCampaigns.jpg" />
24 <div layout="column" layout-align="start start">
26 #{{vm.ivrCampaign.id}}
27 <span ng-if="vm.ivrCampaign.name">{{vm.ivrCampaign.name}}</span>
29 <div class="subtitle secondary-text">
30 <span translate="MOTIONDIALER.CREATED_AT"></span>
31 <span>{{vm.ivrCampaign.createdAt | date:'medium'}}</span>
37 <div ng-cloak ng-if="vm.crudPermissions.canEdit">
39 ng-click="vm.clonedialog(vm.ivrCampaign, $event)"
40 class="md-fab md-green-500-bg md-icon-button"
44 ><span translate="MOTIONDIALER.CLONE_IVRCAMPAIGN"></span
46 <md-icon md-font-icon="icon-content-duplicate"></md-icon>
52 ng-click="vm.listadddialog(vm.ivrCampaign, $event)"
53 class="md-fab md-green-500-bg md-icon-button"
57 ><span translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN"></span
59 <md-icon md-font-icon="icon-format-list-numbers"></md-icon>
65 ng-click="vm.blacklistadddialog(vm.ivrCampaign, $event)"
66 class="md-fab md-warn md-icon-button"
67 aria-label="blacklistadd"
70 ><span translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN"></span
72 <md-icon md-font-icon="icon-block-helper"></md-icon>
76 <div ng-cloak ng-if="vm.crudPermissions.canEdit">
78 ng-click="vm.resetlistdialog(vm.ivrCampaign, $event)"
79 class="md-fab md-warn md-icon-button"
80 aria-label="resetlist"
83 ><span translate="MOTIONDIALER.RESETLIST_IVRCAMPAIGN"></span
85 <md-icon md-font-icon="icon-restore"></md-icon>
91 ng-click="vm.gotogoto(vm.ivrCampaign, $event)"
92 class="md-fab md-warn md-icon-button"
96 ><span translate="MOTIONDIALER.GOTO_IVRCAMPAIGN"></span
98 <md-icon md-font-icon="icon-cast"></md-icon>
104 ng-click="vm.saveIvrCampaign()"
105 ng-if="vm.crudPermissions.canEdit"
106 class="send-button md-accent md-raised"
107 ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)"
108 translate="MOTIONDIALER.SAVE"
109 translate-attr-aria-label="MOTIONDIALER.SAVE"
118 <div class="content">
120 md-selected="vm.selectedTab"
121 md-stretch-tabs="always"
128 <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>
132 class="ivrCampaign-detail-form-container general md-background-bg md-whiteframe-1dp"
134 <div class="pb-16" layout="row" layout-align="start center">
135 <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">
139 <form name="generalForm" novalidate>
140 <md-input-container class="md-block">
141 <label translate="MOTIONDIALER.NAME">Name</label>
145 ng-model="vm.ivrCampaign.name"
146 ng-pattern="/^[A-Za-z0-9\.\_]+$/i"
153 <span translate="MOTIONDIALER.HELP.NAME"></span>
156 ng-messages="generalForm['name'].$error"
157 ng-show="generalForm['name'].$touched"
160 <div ng-message="required">
161 <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED"
162 >Name field is required</span
165 <div ng-message="pattern">
167 translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN"
168 translate-values="{ regex: '/^[A-Za-z0-9\.\_]+$/i' }"
169 >Name must be valid pattern
173 </md-input-container>
174 <md-input-container class="md-block">
176 ng-model="vm.ivrCampaign.active"
178 ng-disabled="!vm.crudPermissions.canEdit"
179 ><span translate="MOTIONDIALER.ACTIVE"
183 </md-input-container>
184 <md-input-container class="md-block">
185 <label translate="MOTIONDIALER.TRUNK">Trunk</label>
188 ng-model="vm.ivrCampaign.TrunkId"
190 ng-disabled="!vm.crudPermissions.canEdit"
193 ng-value="TrunkId.id"
194 ng-repeat="TrunkId in vm.trunks"
195 ng-disabled="TrunkId.canSelect === false"
196 >{{ TrunkId.name }}</md-option
200 ng-messages="generalForm['TrunkId'].$error"
201 ng-show="generalForm['TrunkId'].$touched"
204 <div ng-message="required">
205 <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED"
206 >Trunk field is required</span
210 </md-input-container>
211 <md-input-container class="md-block">
212 <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>
215 ng-model="vm.ivrCampaign.TrunkBackupId"
216 ng-disabled="!vm.crudPermissions.canEdit"
218 <md-option ng-value="null">None</md-option>
220 ng-value="TrunkBackupId.id"
221 ng-repeat="TrunkBackupId in vm.trunks"
222 ng-disabled="TrunkBackupId.canSelect === false"
223 >{{ TrunkBackupId.name }}</md-option
227 ng-messages="generalForm['TrunkBackupId'].$error"
228 ng-show="generalForm['TrunkBackupId'].$touched"
231 <div ng-message="required">
232 <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED"
233 >BackupTrunk field is required</span
237 </md-input-container>
238 <md-input-container class="md-block">
239 <label translate="MOTIONDIALER.INTERVAL">Interval</label>
242 ng-model="vm.ivrCampaign.IntervalId"
244 ng-disabled="!vm.crudPermissions.canEdit"
247 ng-value="IntervalId.id"
248 ng-repeat="IntervalId in vm.interval"
249 ng-disabled="IntervalId.canSelect === false"
250 >{{ IntervalId.name }}</md-option
254 ng-messages="generalForm['IntervalId'].$error"
255 ng-show="generalForm['IntervalId'].$touched"
258 <div ng-message="required">
259 <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED"
260 >Interval field is required</span
264 </md-input-container>
265 <md-input-container class="md-block">
266 <label translate="MOTIONDIALER.CHECKDUPLICATE"
267 >CheckDuplicate</label
270 name="dialCheckDuplicateType"
271 ng-model="vm.ivrCampaign.dialCheckDuplicateType"
273 ng-disabled="!vm.crudPermissions.canEdit"
275 <md-option ng-value="'always'">
276 {{ 'MOTIONDIALER.ALWAYS' | translate }}
279 <md-option ng-value="'never'">
280 {{ 'MOTIONDIALER.NEVER' | translate }}
283 <md-option ng-value="'onlyIfOpen'">
284 {{ 'MOTIONDIALER.ONLY_IF_OPEN' | translate }}
288 ng-messages="generalForm['dialCheckDuplicateType'].$error"
289 ng-show="generalForm['dialCheckDuplicateType'].$touched"
292 <div ng-message="required">
294 translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED"
295 >CheckDuplicate field is required</span
299 </md-input-container>
300 <md-input-container class="md-block">
301 <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>
305 ng-model="vm.ivrCampaign.dialCutDigit"
309 ng-disabled="!vm.crudPermissions.canEdit"
313 ng-messages="generalForm['dialCutDigit'].$error"
314 ng-show="generalForm['dialCutDigit'].$touched"
317 <div ng-message="required">
318 <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED"
319 >CutDigit field is required</span
322 <div ng-message="min">
324 translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
325 >CutDigit must be a valid greater or equal than</span
329 <div ng-message="max">
331 translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO"
332 >CutDigit must be a valid greater or equal than</span
337 </md-input-container>
338 <md-input-container class="md-block">
339 <label translate="MOTIONDIALER.DESCRIPTION">Description</label>
343 ng-model="vm.ivrCampaign.description"
344 ng-disabled="!vm.crudPermissions.canEdit"
348 ng-messages="generalForm['description'].$error"
349 ng-show="generalForm['description'].$touched"
352 <div ng-message="required">
353 <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED"
354 >Description field is required</span
358 </md-input-container>
365 <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>
369 class="ivrCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp"
371 <div class="pb-16" layout="row" layout-align="start center">
372 <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">
376 <form name="campaignForm" novalidate>
377 <md-input-container class="md-block">
378 <label translate="MOTIONDIALER.CALLYSQUAREPROJECT"
379 >CallySquareProject</label
382 name="SquareProjectId"
383 ng-model="vm.ivrCampaign.SquareProjectId"
386 ng-disabled="!vm.crudPermissions.canEdit"
389 ng-value="SquareProjectId.id"
390 ng-repeat="SquareProjectId in vm.projects"
391 ng-disabled="SquareProjectId.canSelect === false"
392 >{{ SquareProjectId.name }}</md-option
396 ng-messages="campaignForm['SquareProjectId'].$error"
397 ng-show="campaignForm['SquareProjectId'].$touched"
400 <div ng-message="required">
402 translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED"
403 >CallySquareProject field is required</span
407 </md-input-container>
408 <md-input-container class="md-block">
409 <label translate="MOTIONDIALER.CONCURRENTCALLS"
410 >ConcurrentCalls</label
415 ng-model="vm.ivrCampaign.limitCalls"
419 ng-disabled="!vm.crudPermissions.canEdit"
423 <span translate="MOTIONDIALER.HELP.CONCURRENTCALLS"></span>
426 ng-messages="campaignForm['limitCalls'].$error"
427 ng-show="campaignForm['limitCalls'].$touched"
430 <div ng-message="required">
432 translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_REQUIRED"
433 >ConcurrentCalls field is required</span
436 <div ng-message="min">
438 translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
439 >ConcurrentCalls must be a valid greater or equal
444 <div ng-message="max">
446 translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO"
447 >ConcurrentCalls must be a valid greater or equal
453 </md-input-container>
457 class="ivrCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp"
459 <div class="pb-16" layout="row" layout-align="start center">
460 <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">
464 <form name="originateForm" novalidate>
465 <md-input-container class="md-block">
466 <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME"
467 >OriginateCallerIdName</label
471 name="dialOriginateCallerIdName"
472 ng-model="vm.ivrCampaign.dialOriginateCallerIdName"
474 ng-disabled="!vm.crudPermissions.canEdit"
479 translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"
483 ng-messages="originateForm['dialOriginateCallerIdName'].$error"
484 ng-show="originateForm['dialOriginateCallerIdName'].$touched"
487 <div ng-message="required">
489 translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED"
490 >OriginateCallerIdName field is required</span
494 </md-input-container>
495 <md-input-container class="md-block">
496 <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER"
497 >OriginateCallerIdNumber</label
501 name="dialOriginateCallerIdNumber"
502 ng-model="vm.ivrCampaign.dialOriginateCallerIdNumber"
503 ng-disabled="!vm.crudPermissions.canEdit"
508 translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"
512 ng-messages="originateForm['dialOriginateCallerIdNumber'].$error"
513 ng-show="originateForm['dialOriginateCallerIdNumber'].$touched"
516 <div ng-message="required">
518 translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED"
519 >OriginateCallerIdNumber field is required</span
523 </md-input-container>
524 <md-input-container class="md-block">
525 <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER"
526 >RandomLastDigitCallerIdNumber</label
530 name="dialRandomLastDigitCallerIdNumber"
531 ng-model="vm.ivrCampaign.dialRandomLastDigitCallerIdNumber"
535 ng-disabled="!vm.crudPermissions.canEdit"
540 translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"
544 ng-messages="originateForm['dialRandomLastDigitCallerIdNumber'].$error"
545 ng-show="originateForm['dialRandomLastDigitCallerIdNumber'].$touched"
548 <div ng-message="required">
550 translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED"
551 >RandomLastDigitCallerIdNumber field is required</span
554 <div ng-message="min">
556 translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
557 >RandomLastDigitCallerIdNumber must be a valid greater or
562 <div ng-message="max">
564 translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO"
565 >RandomLastDigitCallerIdNumber must be a valid greater or
571 </md-input-container>
572 <md-input-container class="md-block">
573 <label translate="MOTIONDIALER.ORIGINATETIMEOUT"
574 >OriginateTimeout</label
578 name="dialOriginateTimeout"
579 ng-model="vm.ivrCampaign.dialOriginateTimeout"
583 ng-disabled="!vm.crudPermissions.canEdit"
587 <span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span>
590 ng-messages="originateForm['dialOriginateTimeout'].$error"
591 ng-show="originateForm['dialOriginateTimeout'].$touched"
594 <div ng-message="required">
596 translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED"
597 >OriginateTimeout field is required</span
600 <div ng-message="min">
602 translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
603 >OriginateTimeout must be a valid greater or equal
608 <div ng-message="max">
610 translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO"
611 >OriginateTimeout must be a valid greater or equal
617 </md-input-container>
618 <md-input-container class="md-block">
619 <label translate="MOTIONDIALER.PREFIX">Prefix</label>
623 ng-model="vm.ivrCampaign.dialPrefix"
625 ng-disabled="!vm.crudPermissions.canEdit"
629 <span translate="MOTIONDIALER.HELP.PREFIX"></span>
632 ng-messages="originateForm['dialPrefix'].$error"
633 ng-show="originateForm['dialPrefix'].$touched"
636 <div ng-message="required">
637 <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED"
638 >Prefix field is required</span
641 <div ng-message="pattern">
643 translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN"
644 translate-values="{ regex: '/^\d+$/' }"
645 >Prefix must be valid pattern
649 </md-input-container>
656 <span translate="MOTIONDIALER.RETRYANDFREQUENCY"
657 >RETRYANDFREQUENCY</span
662 class="ivrCampaign-detail-form-container global md-background-bg md-whiteframe-1dp"
664 <div class="pb-16" layout="row" layout-align="start center">
665 <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">
669 <form name="globalForm" novalidate>
670 <md-input-container class="md-block">
671 <label translate="MOTIONDIALER.GLOBALMAXRETRY"
672 >GlobalMaxRetry</label
676 name="dialGlobalMaxRetry"
677 ng-model="vm.ivrCampaign.dialGlobalMaxRetry"
682 ng-disabled="!vm.crudPermissions.canEdit"
686 <span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span>
689 ng-messages="globalForm['dialGlobalMaxRetry'].$error"
690 ng-show="globalForm['dialGlobalMaxRetry'].$touched"
693 <div ng-message="required">
695 translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED"
696 >GlobalMaxRetry field is required</span
699 <div ng-message="min">
701 translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
702 >GlobalMaxRetry must be a valid greater or equal
707 <div ng-message="max">
709 translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
710 >GlobalMaxRetry must be a valid greater or equal
716 </md-input-container>
720 class="ivrCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp"
722 <div class="pb-16" layout="row" layout-align="start center">
724 class="h2 secondary-text"
725 translate="MOTIONDIALER.CONGESTION"
730 <form name="congestionForm" novalidate>
731 <md-input-container class="md-block">
732 <label translate="MOTIONDIALER.CONGESTIONMAXRETRY"
733 >CongestionMaxRetry</label
737 name="dialCongestionMaxRetry"
738 ng-model="vm.ivrCampaign.dialCongestionMaxRetry"
743 ng-disabled="!vm.crudPermissions.canEdit"
747 <span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span>
750 ng-messages="congestionForm['dialCongestionMaxRetry'].$error"
751 ng-show="congestionForm['dialCongestionMaxRetry'].$touched"
754 <div ng-message="required">
756 translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED"
757 >CongestionMaxRetry field is required</span
760 <div ng-message="min">
762 translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
763 >CongestionMaxRetry must be a valid greater or equal
768 <div ng-message="max">
770 translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
771 >CongestionMaxRetry must be a valid greater or equal
777 </md-input-container>
778 <md-input-container class="md-block">
779 <label translate="MOTIONDIALER.CONGESTIONRETRYTIME"
780 >CongestionRetryTime</label
784 name="dialCongestionRetryFrequency"
785 ng-model="vm.ivrCampaign.dialCongestionRetryFrequency"
789 ng-disabled="!vm.crudPermissions.canEdit"
794 translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"
798 ng-messages="congestionForm['dialCongestionRetryFrequency'].$error"
799 ng-show="congestionForm['dialCongestionRetryFrequency'].$touched"
802 <div ng-message="required">
804 translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED"
805 >CongestionRetryTime field is required</span
808 <div ng-message="min">
810 translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
811 >CongestionRetryTime must be a valid greater or equal
816 <div ng-message="max">
818 translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
819 >CongestionRetryTime must be a valid greater or equal
825 </md-input-container>
829 class="ivrCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp"
831 <div class="pb-16" layout="row" layout-align="start center">
832 <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">
836 <form name="busyForm" novalidate>
837 <md-input-container class="md-block">
838 <label translate="MOTIONDIALER.BUSYMAXRETRY"
843 name="dialBusyMaxRetry"
844 ng-model="vm.ivrCampaign.dialBusyMaxRetry"
849 ng-disabled="!vm.crudPermissions.canEdit"
853 <span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span>
856 ng-messages="busyForm['dialBusyMaxRetry'].$error"
857 ng-show="busyForm['dialBusyMaxRetry'].$touched"
860 <div ng-message="required">
861 <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED"
862 >BusyMaxRetry field is required</span
865 <div ng-message="min">
867 translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
868 >BusyMaxRetry must be a valid greater or equal than</span
872 <div ng-message="max">
874 translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
875 >BusyMaxRetry must be a valid greater or equal than</span
880 </md-input-container>
881 <md-input-container class="md-block">
882 <label translate="MOTIONDIALER.BUSYRETRYTIME"
883 >BusyRetryTime</label
887 name="dialBusyRetryFrequency"
888 ng-model="vm.ivrCampaign.dialBusyRetryFrequency"
892 ng-disabled="!vm.crudPermissions.canEdit"
896 <span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span>
899 ng-messages="busyForm['dialBusyRetryFrequency'].$error"
900 ng-show="busyForm['dialBusyRetryFrequency'].$touched"
903 <div ng-message="required">
904 <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED"
905 >BusyRetryTime field is required</span
908 <div ng-message="min">
910 translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
911 >BusyRetryTime must be a valid greater or equal than</span
915 <div ng-message="max">
917 translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
918 >BusyRetryTime must be a valid greater or equal than</span
923 </md-input-container>
927 class="ivrCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp"
929 <div class="pb-16" layout="row" layout-align="start center">
930 <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">
934 <form name="noanswerForm" novalidate>
935 <md-input-container class="md-block">
936 <label translate="MOTIONDIALER.NOANSWERMAXRETRY"
937 >NoAnswerMaxRetry</label
941 name="dialNoAnswerMaxRetry"
942 ng-model="vm.ivrCampaign.dialNoAnswerMaxRetry"
947 ng-disabled="!vm.crudPermissions.canEdit"
951 <span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span>
954 ng-messages="noanswerForm['dialNoAnswerMaxRetry'].$error"
955 ng-show="noanswerForm['dialNoAnswerMaxRetry'].$touched"
958 <div ng-message="required">
960 translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED"
961 >NoAnswerMaxRetry field is required</span
964 <div ng-message="min">
966 translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
967 >NoAnswerMaxRetry must be a valid greater or equal
972 <div ng-message="max">
974 translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
975 >NoAnswerMaxRetry must be a valid greater or equal
981 </md-input-container>
982 <md-input-container class="md-block">
983 <label translate="MOTIONDIALER.NOANSWERRETRYTIME"
984 >NoAnswerRetryTime</label
988 name="dialNoAnswerRetryFrequency"
989 ng-model="vm.ivrCampaign.dialNoAnswerRetryFrequency"
993 ng-disabled="!vm.crudPermissions.canEdit"
997 <span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span>
1000 ng-messages="noanswerForm['dialNoAnswerRetryFrequency'].$error"
1001 ng-show="noanswerForm['dialNoAnswerRetryFrequency'].$touched"
1004 <div ng-message="required">
1006 translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED"
1007 >NoAnswerRetryTime field is required</span
1010 <div ng-message="min">
1012 translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1013 >NoAnswerRetryTime must be a valid greater or equal
1018 <div ng-message="max">
1020 translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1021 >NoAnswerRetryTime must be a valid greater or equal
1027 </md-input-container>
1031 class="ivrCampaign-detail-form-container nosuchnumber md-background-bg md-whiteframe-1dp"
1033 <div class="pb-16" layout="row" layout-align="start center">
1035 class="h2 secondary-text"
1036 translate="MOTIONDIALER.NOSUCHNUMBER"
1041 <form name="nosuchnumberForm" novalidate>
1042 <md-input-container class="md-block">
1043 <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY"
1044 >NoSuchNumberMaxRetry</label
1048 name="dialNoSuchNumberMaxRetry"
1049 ng-model="vm.ivrCampaign.dialNoSuchNumberMaxRetry"
1054 ng-disabled="!vm.crudPermissions.canEdit"
1059 translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"
1063 ng-messages="nosuchnumberForm['dialNoSuchNumberMaxRetry'].$error"
1064 ng-show="nosuchnumberForm['dialNoSuchNumberMaxRetry'].$touched"
1067 <div ng-message="required">
1069 translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED"
1070 >NoSuchNumberMaxRetry field is required</span
1073 <div ng-message="min">
1075 translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1076 >NoSuchNumberMaxRetry must be a valid greater or equal
1081 <div ng-message="max">
1083 translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1084 >NoSuchNumberMaxRetry must be a valid greater or equal
1090 </md-input-container>
1091 <md-input-container class="md-block">
1092 <label translate="MOTIONDIALER.NOSUCHNUMBERRETRYTIME"
1093 >NoSuchNumberRetryTime</label
1097 name="dialNoSuchNumberRetryFrequency"
1098 ng-model="vm.ivrCampaign.dialNoSuchNumberRetryFrequency"
1102 ng-disabled="!vm.crudPermissions.canEdit"
1107 translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"
1111 ng-messages="nosuchnumberForm['dialNoSuchNumberRetryFrequency'].$error"
1112 ng-show="nosuchnumberForm['dialNoSuchNumberRetryFrequency'].$touched"
1115 <div ng-message="required">
1117 translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED"
1118 >NoSuchNumberRetryTime field is required</span
1121 <div ng-message="min">
1123 translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1124 >NoSuchNumberRetryTime must be a valid greater or equal
1129 <div ng-message="max">
1131 translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1132 >NoSuchNumberRetryTime must be a valid greater or equal
1138 </md-input-container>
1142 class="ivrCampaign-detail-form-container drop md-background-bg md-whiteframe-1dp"
1144 <div class="pb-16" layout="row" layout-align="start center">
1145 <div class="h2 secondary-text" translate="MOTIONDIALER.DROP">
1149 <form name="dropForm" novalidate>
1150 <md-input-container class="md-block">
1151 <label translate="MOTIONDIALER.DROPMAXRETRY"
1152 >DropMaxRetry</label
1156 name="dialDropMaxRetry"
1157 ng-model="vm.ivrCampaign.dialDropMaxRetry"
1162 ng-disabled="!vm.crudPermissions.canEdit"
1166 <span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span>
1169 ng-messages="dropForm['dialDropMaxRetry'].$error"
1170 ng-show="dropForm['dialDropMaxRetry'].$touched"
1173 <div ng-message="required">
1174 <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED"
1175 >DropMaxRetry field is required</span
1178 <div ng-message="min">
1180 translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1181 >DropMaxRetry must be a valid greater or equal than</span
1185 <div ng-message="max">
1187 translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1188 >DropMaxRetry must be a valid greater or equal than</span
1193 </md-input-container>
1194 <md-input-container class="md-block">
1195 <label translate="MOTIONDIALER.DROPRETRYTIME"
1196 >DropRetryTime</label
1200 name="dialDropRetryFrequency"
1201 ng-model="vm.ivrCampaign.dialDropRetryFrequency"
1205 ng-disabled="!vm.crudPermissions.canEdit"
1209 <span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span>
1212 ng-messages="dropForm['dialDropRetryFrequency'].$error"
1213 ng-show="dropForm['dialDropRetryFrequency'].$touched"
1216 <div ng-message="required">
1217 <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED"
1218 >DropRetryTime field is required</span
1221 <div ng-message="min">
1223 translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1224 >DropRetryTime must be a valid greater or equal than</span
1228 <div ng-message="max">
1230 translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1231 >DropRetryTime must be a valid greater or equal than</span
1236 </md-input-container>
1240 class="ivrCampaign-detail-form-container abandoned md-background-bg md-whiteframe-1dp"
1242 <div class="pb-16" layout="row" layout-align="start center">
1243 <div class="h2 secondary-text" translate="MOTIONDIALER.ABANDONED">
1247 <form name="abandonedForm" novalidate>
1248 <md-input-container class="md-block">
1249 <label translate="MOTIONDIALER.ABANDONEDMAXRETRY"
1250 >AbandonedMaxRetry</label
1254 name="dialAbandonedMaxRetry"
1255 ng-model="vm.ivrCampaign.dialAbandonedMaxRetry"
1260 ng-disabled="!vm.crudPermissions.canEdit"
1264 <span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span>
1267 ng-messages="abandonedForm['dialAbandonedMaxRetry'].$error"
1268 ng-show="abandonedForm['dialAbandonedMaxRetry'].$touched"
1271 <div ng-message="required">
1273 translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED"
1274 >AbandonedMaxRetry field is required</span
1277 <div ng-message="min">
1279 translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1280 >AbandonedMaxRetry must be a valid greater or equal
1285 <div ng-message="max">
1287 translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1288 >AbandonedMaxRetry must be a valid greater or equal
1294 </md-input-container>
1295 <md-input-container class="md-block">
1296 <label translate="MOTIONDIALER.ABANDONEDRETRYTIME"
1297 >AbandonedRetryTime</label
1301 name="dialAbandonedRetryFrequency"
1302 ng-model="vm.ivrCampaign.dialAbandonedRetryFrequency"
1306 ng-disabled="!vm.crudPermissions.canEdit"
1310 <span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span>
1313 ng-messages="abandonedForm['dialAbandonedRetryFrequency'].$error"
1314 ng-show="abandonedForm['dialAbandonedRetryFrequency'].$touched"
1317 <div ng-message="required">
1319 translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED"
1320 >AbandonedRetryTime field is required</span
1323 <div ng-message="min">
1325 translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1326 >AbandonedRetryTime must be a valid greater or equal
1331 <div ng-message="max">
1333 translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1334 >AbandonedRetryTime must be a valid greater or equal
1340 </md-input-container>
1344 class="ivrCampaign-detail-form-container machine md-background-bg md-whiteframe-1dp"
1346 <div class="pb-16" layout="row" layout-align="start center">
1347 <div class="h2 secondary-text" translate="MOTIONDIALER.MACHINE">
1351 <form name="machineForm" novalidate>
1352 <md-input-container class="md-block">
1353 <label translate="MOTIONDIALER.MACHINEMAXRETRY"
1354 >MachineMaxRetry</label
1358 name="dialMachineMaxRetry"
1359 ng-model="vm.ivrCampaign.dialMachineMaxRetry"
1364 ng-disabled="!vm.crudPermissions.canEdit"
1368 <span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span>
1371 ng-messages="machineForm['dialMachineMaxRetry'].$error"
1372 ng-show="machineForm['dialMachineMaxRetry'].$touched"
1375 <div ng-message="required">
1377 translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED"
1378 >MachineMaxRetry field is required</span
1381 <div ng-message="min">
1383 translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1384 >MachineMaxRetry must be a valid greater or equal
1389 <div ng-message="max">
1391 translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1392 >MachineMaxRetry must be a valid greater or equal
1398 </md-input-container>
1399 <md-input-container class="md-block">
1400 <label translate="MOTIONDIALER.MACHINERETRYTIME"
1401 >MachineRetryTime</label
1405 name="dialMachineRetryFrequency"
1406 ng-model="vm.ivrCampaign.dialMachineRetryFrequency"
1410 ng-disabled="!vm.crudPermissions.canEdit"
1414 <span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span>
1417 ng-messages="machineForm['dialMachineRetryFrequency'].$error"
1418 ng-show="machineForm['dialMachineRetryFrequency'].$touched"
1421 <div ng-message="required">
1423 translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED"
1424 >MachineRetryTime field is required</span
1427 <div ng-message="min">
1429 translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1430 >MachineRetryTime must be a valid greater or equal
1435 <div ng-message="max">
1437 translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1438 >MachineRetryTime must be a valid greater or equal
1444 </md-input-container>
1448 class="ivrCampaign-detail-form-container agentreject md-background-bg md-whiteframe-1dp"
1450 <div class="pb-16" layout="row" layout-align="start center">
1452 class="h2 secondary-text"
1453 translate="MOTIONDIALER.AGENTREJECT"
1458 <form name="agentrejectForm" novalidate>
1459 <md-input-container class="md-block">
1460 <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY"
1461 >AgentRejectMaxRetry</label
1465 name="dialAgentRejectMaxRetry"
1466 ng-model="vm.ivrCampaign.dialAgentRejectMaxRetry"
1471 ng-disabled="!vm.crudPermissions.canEdit"
1476 translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"
1480 ng-messages="agentrejectForm['dialAgentRejectMaxRetry'].$error"
1481 ng-show="agentrejectForm['dialAgentRejectMaxRetry'].$touched"
1484 <div ng-message="required">
1486 translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED"
1487 >AgentRejectMaxRetry field is required</span
1490 <div ng-message="min">
1492 translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1493 >AgentRejectMaxRetry must be a valid greater or equal
1498 <div ng-message="max">
1500 translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1501 >AgentRejectMaxRetry must be a valid greater or equal
1507 </md-input-container>
1508 <md-input-container class="md-block">
1509 <label translate="MOTIONDIALER.AGENTREJECTRETRYTIME"
1510 >AgentRejectRetryTime</label
1514 name="dialAgentRejectRetryFrequency"
1515 ng-model="vm.ivrCampaign.dialAgentRejectRetryFrequency"
1519 ng-disabled="!vm.crudPermissions.canEdit"
1524 translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"
1528 ng-messages="agentrejectForm['dialAgentRejectRetryFrequency'].$error"
1529 ng-show="agentrejectForm['dialAgentRejectRetryFrequency'].$touched"
1532 <div ng-message="required">
1534 translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED"
1535 >AgentRejectRetryTime field is required</span
1538 <div ng-message="min">
1540 translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1541 >AgentRejectRetryTime must be a valid greater or equal
1546 <div ng-message="max">
1548 translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
1549 >AgentRejectRetryTime must be a valid greater or equal
1555 </md-input-container>
1562 <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>
1566 class="ivrCampaign-detail-form-container advanced md-background-bg md-whiteframe-1dp"
1568 <div class="pb-16" layout="row" layout-align="start center">
1569 <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCED">
1573 <form name="advancedForm" novalidate>
1574 <md-input-container class="md-block">
1575 <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT"
1576 >DialOrderByScheduledAt</label
1579 name="dialOrderByScheduledAt"
1580 ng-model="vm.ivrCampaign.dialOrderByScheduledAt"
1582 ng-disabled="!vm.crudPermissions.canEdit"
1584 <md-option ng-value="'DESC'">
1585 {{ 'MOTIONDIALER.DESC' | translate }}
1588 <md-option ng-value="'ASC'">
1589 {{ 'MOTIONDIALER.ASC' | translate }}
1594 translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"
1598 ng-messages="advancedForm['dialOrderByScheduledAt'].$error"
1599 ng-show="advancedForm['dialOrderByScheduledAt'].$touched"
1602 <div ng-message="required">
1604 translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED"
1605 >DialOrderByScheduledAt field is required</span
1609 </md-input-container>
1613 class="ivrCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp"
1615 <div class="pb-16" layout="row" layout-align="start center">
1617 class="h2 secondary-text"
1618 translate="MOTIONDIALER.GLOBALINTERVAL"
1623 <form name="globalintervalForm" novalidate>
1624 <md-input-container class="md-block">
1625 <label translate="MOTIONDIALER.GLOBALINTERVAL"
1626 >GlobalInterval</label
1630 name="dialGlobalInterval"
1631 ng-model="vm.ivrCampaign.dialGlobalInterval"
1634 ng-disabled="!vm.crudPermissions.canEdit"
1638 <span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span>
1641 ng-messages="globalintervalForm['dialGlobalInterval'].$error"
1642 ng-show="globalintervalForm['dialGlobalInterval'].$touched"
1645 <div ng-message="required">
1647 translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED"
1648 >GlobalInterval field is required</span
1652 </md-input-container>
1656 class="ivrCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp"
1658 <div class="pb-16" layout="row" layout-align="start center">
1659 <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">
1663 <form name="timezoneForm" novalidate>
1664 <md-input-container class="md-block">
1665 <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>
1668 ng-model="vm.ivrCampaign.dialTimezone"
1670 ng-disabled="!vm.crudPermissions.canEdit"
1673 <span translate="MOTIONDIALER.HELP.TIMEZONE"></span>
1676 ng-messages="timezoneForm['dialTimezone'].$error"
1677 ng-show="timezoneForm[dialTimezone].$touched"
1680 <div ng-message="required">
1681 <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED"
1682 >Timezone field is required</span
1686 </md-input-container>
1690 class="ivrCampaign-detail-form-container amd md-background-bg md-whiteframe-1dp"
1692 <div class="pb-16" layout="row" layout-align="start center">
1693 <div class="h2 secondary-text" translate="MOTIONDIALER.AMD">
1697 <form name="amdForm" novalidate>
1698 <md-input-container class="md-block">
1700 ng-model="vm.ivrCampaign.dialAMDActive"
1701 aria-label="AMDActive"
1702 ng-disabled="!vm.crudPermissions.canEdit"
1703 ><span translate="MOTIONDIALER.AMDACTIVE"
1709 <span translate="MOTIONDIALER.HELP.AMDACTIVE"></span>
1711 </md-input-container>
1713 ng-if="vm.ivrCampaign.dialAMDActive"
1716 <label translate="MOTIONDIALER.AMDINITIALSILENCE"
1717 >AMDInitialSilence</label
1721 name="dialAMDInitialSilence"
1722 ng-model="vm.ivrCampaign.dialAMDInitialSilence"
1724 ng-disabled="!vm.crudPermissions.canEdit"
1728 <span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span>
1731 ng-messages="amdForm['dialAMDInitialSilence'].$error"
1732 ng-show="amdForm['dialAMDInitialSilence'].$touched"
1735 <div ng-message="required">
1737 translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED"
1738 >AMDInitialSilence field is required</span
1741 <div ng-message="min">
1743 translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1744 >AMDInitialSilence must be a valid greater or equal
1750 </md-input-container>
1752 ng-if="vm.ivrCampaign.dialAMDActive"
1755 <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>
1758 name="dialAMDGreeting"
1759 ng-model="vm.ivrCampaign.dialAMDGreeting"
1761 ng-disabled="!vm.crudPermissions.canEdit"
1765 <span translate="MOTIONDIALER.HELP.AMDGREETING"></span>
1768 ng-messages="amdForm['dialAMDGreeting'].$error"
1769 ng-show="amdForm['dialAMDGreeting'].$touched"
1772 <div ng-message="required">
1773 <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED"
1774 >AMDGreeting field is required</span
1777 <div ng-message="min">
1779 translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1780 >AMDGreeting must be a valid greater or equal than</span
1785 </md-input-container>
1787 ng-if="vm.ivrCampaign.dialAMDActive"
1790 <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE"
1791 >AMDAfterGreetingSilence</label
1795 name="dialAMDAfterGreetingSilence"
1796 ng-model="vm.ivrCampaign.dialAMDAfterGreetingSilence"
1798 ng-disabled="!vm.crudPermissions.canEdit"
1803 translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"
1807 ng-messages="amdForm['dialAMDAfterGreetingSilence'].$error"
1808 ng-show="amdForm['dialAMDAfterGreetingSilence'].$touched"
1811 <div ng-message="required">
1813 translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED"
1814 >AMDAfterGreetingSilence field is required</span
1817 <div ng-message="min">
1819 translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1820 >AMDAfterGreetingSilence must be a valid greater or equal
1826 </md-input-container>
1828 ng-if="vm.ivrCampaign.dialAMDActive"
1831 <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME"
1832 >AMDTotalAnalysisTime</label
1836 name="dialAMDTotalAnalysisTime"
1837 ng-model="vm.ivrCampaign.dialAMDTotalAnalysisTime"
1839 ng-disabled="!vm.crudPermissions.canEdit"
1844 translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"
1848 ng-messages="amdForm['dialAMDTotalAnalysisTime'].$error"
1849 ng-show="amdForm['dialAMDTotalAnalysisTime'].$touched"
1852 <div ng-message="required">
1854 translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED"
1855 >AMDTotalAnalysisTime field is required</span
1858 <div ng-message="min">
1860 translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1861 >AMDTotalAnalysisTime must be a valid greater or equal
1867 </md-input-container>
1869 ng-if="vm.ivrCampaign.dialAMDActive"
1872 <label translate="MOTIONDIALER.AMDMINWORDLENGTH"
1873 >AMDMinWordLength</label
1877 name="dialAMDMinWordLength"
1878 ng-model="vm.ivrCampaign.dialAMDMinWordLength"
1880 ng-disabled="!vm.crudPermissions.canEdit"
1884 <span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span>
1887 ng-messages="amdForm['dialAMDMinWordLength'].$error"
1888 ng-show="amdForm['dialAMDMinWordLength'].$touched"
1891 <div ng-message="required">
1893 translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED"
1894 >AMDMinWordLength field is required</span
1897 <div ng-message="min">
1899 translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1900 >AMDMinWordLength must be a valid greater or equal
1906 </md-input-container>
1908 ng-if="vm.ivrCampaign.dialAMDActive"
1911 <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE"
1912 >AMDBetweenWordsSilence</label
1916 name="dialAMDBetweenWordsSilence"
1917 ng-model="vm.ivrCampaign.dialAMDBetweenWordsSilence"
1919 ng-disabled="!vm.crudPermissions.canEdit"
1924 translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"
1928 ng-messages="amdForm['dialAMDBetweenWordsSilence'].$error"
1929 ng-show="amdForm['dialAMDBetweenWordsSilence'].$touched"
1932 <div ng-message="required">
1934 translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED"
1935 >AMDBetweenWordsSilence field is required</span
1938 <div ng-message="min">
1940 translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1941 >AMDBetweenWordsSilence must be a valid greater or equal
1947 </md-input-container>
1949 ng-if="vm.ivrCampaign.dialAMDActive"
1952 <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS"
1953 >AMDMaximumNumberOfWords</label
1957 name="dialAMDMaximumNumberOfWords"
1958 ng-model="vm.ivrCampaign.dialAMDMaximumNumberOfWords"
1960 ng-disabled="!vm.crudPermissions.canEdit"
1965 translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"
1969 ng-messages="amdForm['dialAMDMaximumNumberOfWords'].$error"
1970 ng-show="amdForm['dialAMDMaximumNumberOfWords'].$touched"
1973 <div ng-message="required">
1975 translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED"
1976 >AMDMaximumNumberOfWords field is required</span
1979 <div ng-message="min">
1981 translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
1982 >AMDMaximumNumberOfWords must be a valid greater or equal
1988 </md-input-container>
1990 ng-if="vm.ivrCampaign.dialAMDActive"
1993 <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD"
1994 >AMDSilenceThreshold</label
1998 name="dialAMDSilenceThreshold"
1999 ng-model="vm.ivrCampaign.dialAMDSilenceThreshold"
2002 ng-disabled="!vm.crudPermissions.canEdit"
2007 translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"
2011 ng-messages="amdForm['dialAMDSilenceThreshold'].$error"
2012 ng-show="amdForm['dialAMDSilenceThreshold'].$touched"
2015 <div ng-message="required">
2017 translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED"
2018 >AMDSilenceThreshold field is required</span
2021 <div ng-message="min">
2023 translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
2024 >AMDSilenceThreshold must be a valid greater or equal
2029 <div ng-message="max">
2031 translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO"
2032 >AMDSilenceThreshold must be a valid greater or equal
2038 </md-input-container>
2040 ng-if="vm.ivrCampaign.dialAMDActive"
2043 <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH"
2044 >AMDMaximumWordLength</label
2048 name="dialAMDMaximumWordLength"
2049 ng-model="vm.ivrCampaign.dialAMDMaximumWordLength"
2051 ng-disabled="!vm.crudPermissions.canEdit"
2056 translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"
2060 ng-messages="amdForm['dialAMDMaximumWordLength'].$error"
2061 ng-show="amdForm['dialAMDMaximumWordLength'].$touched"
2064 <div ng-message="required">
2066 translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED"
2067 >AMDMaximumWordLength field is required</span
2070 <div ng-message="min">
2072 translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
2073 >AMDMaximumWordLength must be a valid greater or equal
2079 </md-input-container>
2086 <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>
2090 class="ivrCampaign-detail-form-container hopperstatistics md-background-bg md-whiteframe-1dp"
2093 ng-controller="IvrCampaignHopperStatisticsController as vm_hs"
2094 ng-init="vm_hs.init(vm.ivrCampaign)"
2096 <md-toolbar class="md-table-toolbar md-default">
2097 <div class="md-toolbar-tools">
2098 <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET"
2103 class="md-icon-button"
2104 ng-click="vm_hs.init(vm.ivrCampaign)"
2105 aria-label="refresh Hopper"
2107 translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS"
2109 <md-icon md-font-icon="icon-refresh"></md-icon>
2113 <!-- WIDGET GROUP -->
2114 <div class="widget-group" layout="row" flex="100" layout-wrap>
2124 <ms-widget-front class="p-16 white-bg" layout="row" flex>
2128 layout-align="center center"
2131 <div class="md-display-1 pb-8">
2132 {{(vm_hs.total || 0) + (vm_hs.closed || 0)}}
2134 <div class="font-weight-500 secondary-text">
2135 {{ 'MOTIONDIALER.TOTAL' | translate }}
2152 <ms-widget-front class="p-16 white-bg" layout="row" flex>
2156 layout-align="center center"
2159 <div class="md-display-1 pb-8">
2160 {{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh ||
2161 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) |
2164 <div class="font-weight-500 secondary-text">
2165 {{ 'MOTIONDIALER.FRESH' | translate }}
2182 <ms-widget-front class="p-16 white-bg" layout="row" flex>
2186 layout-align="center center"
2189 <div class="md-display-1 pb-8">
2190 {{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}}
2191 ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) *
2192 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) |
2195 <div class="font-weight-500 secondary-text">
2196 {{ 'MOTIONDIALER.OPEN' | translate }}
2213 <ms-widget-front class="p-16 white-bg" layout="row" flex>
2217 layout-align="center center"
2220 <div class="md-display-1 pb-8">
2221 {{vm_hs.closed ? (vm_hs.closed || 0) : 0}}
2222 ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed
2223 + (vm_hs.total || 0))) | number: 2) : 0}}%)
2225 <div class="font-weight-500 secondary-text">
2226 {{ 'MOTIONDIALER.CLOSED' | translate }}
2234 <!-- / WIDGET GROUP -->
2238 class="ivrCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp"
2241 ng-controller="IvrCampaignHoppersController as vm_dc"
2242 ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)"
2245 class="md-table-toolbar md-default"
2246 ng-hide="vm_dc.selectedIvrCampaignHoppers.length"
2248 <div class="md-toolbar-tools">
2249 <span class="md-subhead" translate="MOTIONDIALER.HOPPERS"
2253 on-search="vm_dc.query.filter = query"
2254 on-collapse="vm_dc.query.filter = undefined"
2260 class="md-icon-button"
2261 ng-click="vm_dc.getIvrCampaignHoppers()"
2262 aria-label="refresh Hoppers"
2264 translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS"
2266 <md-icon md-font-icon="icon-refresh"></md-icon>
2271 class="md-table-toolbar md-accent"
2272 ng-show="vm_dc.selectedIvrCampaignHoppers.length"
2274 <div class="md-toolbar-tools">
2275 <span class="md-subhead"
2276 >{{vm_dc.selectedIvrCampaignHoppers.length}}
2277 {{vm_dc.selectedIvrCampaignHoppers.length > 1 ? 'items' :
2278 'item'}} selected</span
2282 class="md-icon-button"
2283 ng-csv="vm_dc.exportSelectedIvrCampaignHoppers"
2285 filename="ivrCampaigns.csv"
2287 <md-icon md-font-icon="icon-file-excel"></md-icon>
2290 ng-if="vm_dc.crudPermissions.canDelete"
2291 class="md-icon-button"
2292 ng-click="vm_dc.deleteSelectedIvrCampaignHoppers($event)"
2293 aria-label="delete selected"
2295 translate-attr-label="MOTIONDIALER.DELETE_SELECTED"
2297 <md-icon md-font-icon="icon-delete"></md-icon>
2301 <md-table-container class="font-size-12">
2306 ng-model="vm_dc.selectedIvrCampaignHoppers"
2307 md-progress="vm_dc.promise"
2311 md-order="vm_dc.query.sort"
2312 md-on-reorder="vm_dc.getIvrCampaignHoppers"
2315 <th md-column md-order-by="ContactId">
2316 {{ 'MOTIONDIALER.CONTACTID' | translate }}
2318 <th md-column md-order-by="phone">
2319 {{ 'MOTIONDIALER.PHONE' | translate }}
2321 <th md-column md-order-by="countcongestionretry">
2322 {{ 'MOTIONDIALER.CONGESTION' | translate }}
2324 <th md-column md-order-by="countbusyretry">
2325 {{ 'MOTIONDIALER.BUSY' | translate }}
2327 <th md-column md-order-by="countnoanswerretry">
2328 {{ 'MOTIONDIALER.NOANSWER' | translate }}
2330 <th md-column md-order-by="countnosuchnumberretry">
2331 {{ 'MOTIONDIALER.NOSUCHNUMBER' | translate }}
2333 <th md-column md-order-by="countdropretry">
2334 {{ 'MOTIONDIALER.DROP' | translate }}
2336 <th md-column md-order-by="countabandonedretry">
2337 {{ 'MOTIONDIALER.ABANDONED' | translate }}
2339 <th md-column md-order-by="countmachineretry">
2340 {{ 'MOTIONDIALER.MACHINE' | translate }}
2342 <th md-column md-order-by="countagentrejectretry">
2343 {{ 'MOTIONDIALER.AGENTREJECT' | translate }}
2345 <th md-column md-order-by="scheduledat">
2346 {{ 'MOTIONDIALER.SCHEDULEDAT' | translate }}
2348 <th md-column md-order-by="priority">
2349 {{ 'MOTIONDIALER.PRIORITY' | translate }}
2351 <th md-column width="10px"></th>
2359 ng-repeat="hopper in vm_dc.ivrCampaignHoppers.rows"
2362 ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
2365 {{hopper.ContactId}}
2368 ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
2374 ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
2377 {{hopper.countcongestionretry}}
2380 ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
2383 {{hopper.countbusyretry}}
2386 ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
2389 {{hopper.countnoanswerretry}}
2392 ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
2395 {{hopper.countnosuchnumberretry}}
2398 ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
2401 {{hopper.countdropretry}}
2404 ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
2407 {{hopper.countabandonedretry}}
2410 ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
2413 {{hopper.countmachineretry}}
2416 ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
2419 {{hopper.countagentrejectretry}}
2422 ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
2425 {{ hopper.scheduledat | formatdate }}
2428 ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
2431 {{ vm_dc.arraypriority[hopper.priority].option }}
2437 ng-if="!vm_dc.crudPermissions.readOnly"
2441 class="md-icon-button"
2444 translate-attr-aria-label="MOTIONDIALER.MORE"
2445 ng-click="$mdOpenMenu($event)"
2448 md-font-icon="icon-dots-vertical"
2452 <md-menu-content width="3">
2453 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
2455 ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
2456 translate="MOTIONDIALER.EDIT_HOPPER"
2462 ng-if="vm_dc.crudPermissions.canDelete"
2465 ng-click="vm_dc.deleteConfirm(hopper, $event)"
2466 translate="MOTIONDIALER.DELETE_HOPPER"
2475 <tr md-row ng-if="!vm_dc.ivrCampaignHoppers.rows.length">
2476 <td md-cell colspan="15">
2477 <div layout="row" layout-align="center center">
2479 class="text-boxed-light"
2480 translate="MOTIONDIALER.NO_HOPPER_AVAILABLE"
2481 >No hopper available</span
2488 </md-table-container>
2489 <md-table-pagination
2490 md-label="{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}"
2491 md-limit="vm_dc.query.limit"
2492 md-limit-options="[10, 15, 20, 50, 100, 250]"
2493 md-page="vm_dc.query.page"
2494 md-total="{{vm_dc.ivrCampaignHoppers.count}}"
2495 md-on-paginate="vm_dc.getIvrCampaignHoppers"
2497 ></md-table-pagination>
2504 <span translate="MOTIONDIALER.HISTORY">HISTORY</span>
2508 class="ivrCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp"
2511 ng-controller="IvrCampaignHopperHistoriesController as vm_dc"
2512 ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)"
2515 class="md-table-toolbar md-default"
2516 ng-hide="vm_dc.selectedIvrCampaignHopperHistories.length"
2518 <div class="md-toolbar-tools">
2521 translate="MOTIONDIALER.HOPPERHISTORIES"
2522 >HopperHistories</span
2525 on-search="vm_dc.query.filter = query"
2526 on-collapse="vm_dc.query.filter = undefined"
2532 class="md-icon-button"
2533 ng-click="vm_dc.getIvrCampaignHopperHistories()"
2534 aria-label="refresh HopperHistories"
2536 translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES"
2538 <md-icon md-font-icon="icon-refresh"></md-icon>
2543 class="md-table-toolbar md-accent"
2544 ng-show="vm_dc.selectedIvrCampaignHopperHistories.length"
2546 <div class="md-toolbar-tools">
2547 <span class="md-subhead"
2548 >{{vm_dc.selectedIvrCampaignHopperHistories.length}}
2549 {{vm_dc.selectedIvrCampaignHopperHistories.length > 1 ?
2550 'items' : 'item'}} selected</span
2554 class="md-icon-button"
2555 ng-csv="vm_dc.exportSelectedIvrCampaignHopperHistories"
2557 filename="ivrCampaigns.csv"
2559 <md-icon md-font-icon="icon-file-excel"></md-icon>
2563 <md-table-container class="font-size-12">
2568 ng-model="vm_dc.selectedIvrCampaignHopperHistories"
2569 md-progress="vm_dc.promise"
2573 md-order="vm_dc.query.sort"
2574 md-on-reorder="vm_dc.getIvrCampaignHopperHistories"
2577 <th md-column md-order-by="uniqueid">
2578 {{ 'MOTIONDIALER.UNIQUEID' | translate }}
2580 <th md-column md-order-by="ContactId">
2581 {{ 'MOTIONDIALER.CONTACTID' | translate }}
2583 <th md-column md-order-by="calleridnum">
2584 {{ 'MOTIONDIALER.PHONE' | translate }}
2586 <th md-column md-order-by="calleridname">
2587 {{ 'MOTIONDIALER.NAME' | translate }}
2589 <th md-column md-order-by="statedesc">
2590 {{ 'MOTIONDIALER.STATUS' | translate }}
2592 <th md-column md-order-by="scheduledat">
2593 {{ 'MOTIONDIALER.SCHEDULEDAT' | translate }}
2595 <th md-column md-order-by="starttime">
2596 {{ 'MOTIONDIALER.STARTTIME' | translate }}
2598 <th md-column md-order-by="endtime">
2599 {{ 'MOTIONDIALER.ENDTIME' | translate }}
2601 <th md-column width="10px"></th>
2607 md-select="hopperHistory"
2609 ng-repeat="hopperHistory in vm_dc.ivrCampaignHopperHistories.rows"
2611 <td md-cell>{{hopperHistory.uniqueid}}</td>
2612 <td md-cell>{{hopperHistory.ContactId}}</td>
2613 <td md-cell>{{hopperHistory.calleridnum}}</td>
2614 <td md-cell>{{hopperHistory.calleridname}}</td>
2615 <td md-cell>{{hopperHistory.statedesc}}</td>
2617 {{ hopperHistory.scheduledat | formatdate }}
2620 {{ hopperHistory.starttime | formatdate }}
2622 <td md-cell>{{ hopperHistory.endtime | formatdate }}</td>
2623 <td md-cell class="actions"></td>
2627 ng-if="!vm_dc.ivrCampaignHopperHistories.rows.length"
2629 <td md-cell colspan="11">
2630 <div layout="row" layout-align="center center">
2632 class="text-boxed-light"
2633 translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE"
2634 >No hopperhistory available</span
2641 </md-table-container>
2642 <md-table-pagination
2643 md-label="{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}"
2644 md-limit="vm_dc.query.limit"
2645 md-limit-options="[10, 15, 20, 50, 100, 250]"
2646 md-page="vm_dc.query.page"
2647 md-total="{{vm_dc.ivrCampaignHopperHistories.count}}"
2648 md-on-paginate="vm_dc.getIvrCampaignHopperHistories"
2650 ></md-table-pagination>
2657 <span translate="MOTIONDIALER.FINAL">FINAL</span>
2661 class="ivrCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp"
2664 ng-controller="IvrCampaignHopperFinalsController as vm_dc"
2665 ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)"
2668 class="md-table-toolbar md-default"
2669 ng-hide="vm_dc.selectedIvrCampaignHopperFinals.length"
2671 <div class="md-toolbar-tools">
2672 <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS"
2676 on-search="vm_dc.query.filter = query"
2677 on-collapse="vm_dc.query.filter = undefined"
2683 class="md-icon-button"
2684 ng-click="vm_dc.getIvrCampaignHopperFinals()"
2685 aria-label="refresh HopperFinals"
2687 translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS"
2689 <md-icon md-font-icon="icon-refresh"></md-icon>
2691 <td md-cell class="actions">
2694 class="md-icon-button"
2697 translate-attr-aria-label="MOTIONDIALER.MORE"
2698 ng-click="vm_dc.countContactsIvrCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);"
2700 <md-icon md-font-icon="icon-backup-restore"></md-icon>
2702 ><span translate="MOTIONDIALER.RESTORECONTACTS"></span
2705 <md-menu-content width="3">
2706 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
2708 ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(3)"
2710 <span translate="MOTIONDIALER.NOANSWER "
2714 >({{vm_dc.contacts.noAnswerContacts}})</span
2718 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
2720 ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(5)"
2722 <span translate="MOTIONDIALER.BUSY ">Busy</span>
2724 >({{vm_dc.contacts.busyContacts}})</span
2728 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
2730 ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(8)"
2732 <span translate="MOTIONDIALER.CONGESTION "
2736 >({{vm_dc.contacts.congestionContacts}})</span
2740 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
2742 ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(10)"
2744 <span translate="MOTIONDIALER.DROPPED ">Drop</span>
2746 >({{vm_dc.contacts.dropContacts}})</span
2750 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
2752 ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(11)"
2754 <span translate="MOTIONDIALER.ABANDONED "
2758 >({{vm_dc.contacts.abandonedContacts}})</span
2762 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
2764 ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(22)"
2766 <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT"
2770 >({{vm_dc.contacts.reCallContacts}})</span
2774 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
2776 ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(0)"
2778 <span translate="MOTIONDIALER.NO_SUCH_NUMBER"
2782 >({{vm_dc.contacts.noSuchContacts}})</span
2788 ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(19)"
2790 <span translate="MOTIONDIALER.ANSWERING_MACHINE"
2791 >AnsweringMachine</span
2794 >({{vm_dc.contacts.answeringMachine}})</span
2804 class="md-table-toolbar md-accent"
2805 ng-show="vm_dc.selectedIvrCampaignHopperFinals.length"
2807 <div class="md-toolbar-tools">
2808 <span class="md-subhead"
2809 >{{vm_dc.selectedIvrCampaignHopperFinals.length}}
2810 {{vm_dc.selectedIvrCampaignHopperFinals.length > 1 ? 'items'
2811 : 'item'}} selected</span
2815 class="md-icon-button"
2816 ng-csv="vm_dc.exportSelectedIvrCampaignHopperFinals"
2818 filename="ivrCampaigns.csv"
2820 <md-icon md-font-icon="icon-file-excel"></md-icon>
2823 ng-if="vm_dc.crudPermissions.canEdit"
2824 class="md-icon-button"
2825 ng-click="vm_dc.moveSelectedIvrCampaignHopperFinals($event)"
2826 aria-label="move selected"
2828 translate-attr-label="MOTIONDIALER.MOVE_SELECTED"
2830 <md-icon md-font-icon="icon-restore"></md-icon>
2832 ><span translate="MOTIONDIALER.RESTORECONTACTS"></span
2837 <md-table-container class="font-size-12">
2842 ng-model="vm_dc.selectedIvrCampaignHopperFinals"
2843 md-progress="vm_dc.promise"
2847 md-order="vm_dc.query.sort"
2848 md-on-reorder="vm_dc.getIvrCampaignHopperFinals"
2851 <th md-column md-order-by="uniqueid">
2852 {{ 'MOTIONDIALER.UNIQUEID' | translate }}
2854 <th md-column md-order-by="ContactId">
2855 {{ 'MOTIONDIALER.CONTACTID' | translate }}
2857 <th md-column md-order-by="calleridnum">
2858 {{ 'MOTIONDIALER.PHONE' | translate }}
2860 <th md-column md-order-by="calleridname">
2861 {{ 'MOTIONDIALER.NAME' | translate }}
2863 <th md-column md-order-by="statedesc">
2864 {{ 'MOTIONDIALER.STATUS' | translate }}
2866 <th md-column md-order-by="countcongestionretry">
2867 {{ 'MOTIONDIALER.CONGESTION' | translate }}
2869 <th md-column md-order-by="countbusyretry">
2870 {{ 'MOTIONDIALER.BUSY' | translate }}
2872 <th md-column md-order-by="countnoanswerretry">
2873 {{ 'MOTIONDIALER.NOANSWER' | translate }}
2875 <th md-column md-order-by="countnosuchnumberretry">
2876 {{ 'MOTIONDIALER.NOSUCHNUMBER' | translate }}
2878 <th md-column md-order-by="countdropretry">
2879 {{ 'MOTIONDIALER.DROP' | translate }}
2881 <th md-column md-order-by="countabandonedretry">
2882 {{ 'MOTIONDIALER.ABANDONED' | translate }}
2884 <th md-column md-order-by="countmachineretry">
2885 {{ 'MOTIONDIALER.MACHINE' | translate }}
2887 <th md-column md-order-by="countagentrejectretry">
2888 {{ 'MOTIONDIALER.AGENTREJECT' | translate }}
2890 <th md-column md-order-by="starttime">
2891 {{ 'MOTIONDIALER.STARTTIME' | translate }}
2893 <th md-column md-order-by="endtime">
2894 {{ 'MOTIONDIALER.ENDTIME' | translate }}
2896 <th md-column md-order-by="disposition">
2897 {{ 'MOTIONDIALER.DISPOSITION' | translate }}
2899 <th md-column width="10px"></th>
2905 md-select="hopperFinal"
2907 ng-repeat="hopperFinal in vm_dc.ivrCampaignHopperFinals.rows"
2909 <td md-cell>{{hopperFinal.uniqueid}}</td>
2910 <td md-cell>{{hopperFinal.ContactId}}</td>
2911 <td md-cell>{{hopperFinal.calleridnum}}</td>
2912 <td md-cell>{{hopperFinal.calleridname}}</td>
2913 <td md-cell>{{hopperFinal.statedesc}}</td>
2914 <td md-cell>{{hopperFinal.countcongestionretry}}</td>
2915 <td md-cell>{{hopperFinal.countbusyretry}}</td>
2916 <td md-cell>{{hopperFinal.countnoanswerretry}}</td>
2917 <td md-cell>{{hopperFinal.countnosuchnumberretry}}</td>
2918 <td md-cell>{{hopperFinal.countdropretry}}</td>
2919 <td md-cell>{{hopperFinal.countabandonedretry}}</td>
2920 <td md-cell>{{hopperFinal.countmachineretry}}</td>
2921 <td md-cell>{{hopperFinal.countagentrejectretry}}</td>
2922 <td md-cell>{{ hopperFinal.starttime | formatdate }}</td>
2923 <td md-cell>{{ hopperFinal.endtime | formatdate }}</td>
2924 <td md-cell>{{hopperFinal.disposition}}</td>
2928 ng-if="!vm_dc.crudPermissions.readOnly"
2932 class="md-icon-button"
2935 translate-attr-aria-label="MOTIONDIALER.MORE"
2936 ng-click="$mdOpenMenu($event)"
2939 md-font-icon="icon-dots-vertical"
2943 <md-menu-content width="3">
2944 <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
2946 ng-click="vm_dc.moveConfirm(hopperFinal, $event)"
2947 translate="MOTIONDIALER.MOVE_HOPPERFINAL"
2958 ng-if="!vm_dc.ivrCampaignHopperFinals.rows.length"
2960 <td md-cell colspan="28">
2961 <div layout="row" layout-align="center center">
2963 class="text-boxed-light"
2964 translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE"
2965 >No hopperfinal available</span
2972 </md-table-container>
2973 <md-table-pagination
2974 md-label="{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}"
2975 md-limit="vm_dc.query.limit"
2976 md-limit-options="[10, 15, 20, 50, 100, 250]"
2977 md-page="vm_dc.query.page"
2978 md-total="{{vm_dc.ivrCampaignHopperFinals.count}}"
2979 md-on-paginate="vm_dc.getIvrCampaignHopperFinals"
2981 ></md-table-pagination>
2988 <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>
2992 class="ivrCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp"
2995 ng-controller="IvrCampaignHopperBlacksController as vm_dc"
2996 ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)"
2999 class="md-table-toolbar md-default"
3000 ng-hide="vm_dc.selectedIvrCampaignHopperBlacks.length"
3002 <div class="md-toolbar-tools">
3003 <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS"
3007 on-search="vm_dc.query.filter = query"
3008 on-collapse="vm_dc.query.filter = undefined"
3016 class="md-table-toolbar md-accent"
3017 ng-show="vm_dc.selectedIvrCampaignHopperBlacks.length"
3019 <div class="md-toolbar-tools">
3020 <span class="md-subhead"
3021 >{{vm_dc.selectedIvrCampaignHopperBlacks.length}}
3022 {{vm_dc.selectedIvrCampaignHopperBlacks.length > 1 ? 'items'
3023 : 'item'}} selected</span
3027 class="md-icon-button"
3028 ng-csv="vm_dc.exportSelectedIvrCampaignHopperBlacks"
3030 filename="ivrCampaigns.csv"
3032 <md-icon md-font-icon="icon-file-excel"></md-icon>
3036 <md-table-container class="font-size-12">
3041 ng-model="vm_dc.selectedIvrCampaignHopperBlacks"
3042 md-progress="vm_dc.promise"
3046 md-order="vm_dc.query.sort"
3047 md-on-reorder="vm_dc.getIvrCampaignHopperBlacks"
3050 <th md-column md-order-by="ContactId">
3051 {{ 'MOTIONDIALER.CONTACTID' | translate }}
3053 <th md-column md-order-by="phone">
3054 {{ 'MOTIONDIALER.PHONE' | translate }}
3056 <th md-column width="10px"></th>
3062 md-select="hopperBlack"
3064 ng-repeat="hopperBlack in vm_dc.ivrCampaignHopperBlacks.rows"
3066 <td md-cell>{{hopperBlack.ContactId}}</td>
3067 <td md-cell>{{hopperBlack.phone}}</td>
3068 <td md-cell class="actions"></td>
3072 ng-if="!vm_dc.ivrCampaignHopperBlacks.rows.length"
3074 <td md-cell colspan="4">
3075 <div layout="row" layout-align="center center">
3077 class="text-boxed-light"
3078 translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE"
3079 >No hopperblack available</span
3086 </md-table-container>
3087 <md-table-pagination
3088 md-label="{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}"
3089 md-limit="vm_dc.query.limit"
3090 md-limit-options="[10, 15, 20, 50, 100, 250]"
3091 md-page="vm_dc.query.page"
3092 md-total="{{vm_dc.ivrCampaignHopperBlacks.count}}"
3093 md-on-paginate="vm_dc.getIvrCampaignHopperBlacks"
3095 ></md-table-pagination>