From 2be62588ee69b8751812a17180759dffae1f19b5 Mon Sep 17 00:00:00 2001 From: Andrea Bianco Date: Mon, 15 Feb 2021 22:30:25 +0100 Subject: [PATCH] Built motion from commit (unavailable).|2.5.17 --- apidoc/api_data.js | 184 ++-- apidoc/api_data.json | 184 ++-- apidoc/api_project.js | 2 +- apidoc/api_project.json | 2 +- public/app/main/apps/callysquare/i18n/ar.json | 2 +- public/app/main/apps/callysquare/i18n/cs.json | 2 +- public/app/main/apps/callysquare/i18n/da.json | 2 +- public/app/main/apps/callysquare/i18n/de.json | 2 +- public/app/main/apps/callysquare/i18n/en.json | 2 +- public/app/main/apps/callysquare/i18n/es.json | 2 +- public/app/main/apps/callysquare/i18n/et.json | 2 +- public/app/main/apps/callysquare/i18n/fa.json | 2 +- public/app/main/apps/callysquare/i18n/fi.json | 2 +- public/app/main/apps/callysquare/i18n/fr.json | 2 +- public/app/main/apps/callysquare/i18n/he.json | 2 +- public/app/main/apps/callysquare/i18n/hi.json | 2 +- public/app/main/apps/callysquare/i18n/id.json | 2 +- public/app/main/apps/callysquare/i18n/it.json | 2 +- public/app/main/apps/callysquare/i18n/ja.json | 2 +- public/app/main/apps/callysquare/i18n/ko.json | 2 +- public/app/main/apps/callysquare/i18n/lt.json | 2 +- public/app/main/apps/callysquare/i18n/lv.json | 2 +- public/app/main/apps/callysquare/i18n/nl.json | 2 +- public/app/main/apps/callysquare/i18n/no.json | 2 +- public/app/main/apps/callysquare/i18n/pl.json | 2 +- public/app/main/apps/callysquare/i18n/pt-BR.json | 2 +- public/app/main/apps/callysquare/i18n/pt-PT.json | 2 +- public/app/main/apps/callysquare/i18n/ru.json | 2 +- public/app/main/apps/callysquare/i18n/sv.json | 2 +- public/app/main/apps/callysquare/i18n/tr.json | 2 +- public/app/main/apps/callysquare/i18n/zh-CN.json | 2 +- public/app/main/apps/callysquare/i18n/zh-TW.json | 2 +- public/app/main/apps/dashboards/i18n/en.json | 1135 ++++++++++---------- public/app/main/apps/dashboards/i18n/it.json | 11 +- public/app/main/apps/tools/i18n/he.json | 8 +- public/app/main/apps/voice/i18n/he.json | 16 +- .../plugins/square/stencils/tts/tts_128x128.png | Bin 21276 -> 22003 bytes public/index.html | 4 +- public/scripts/app.8ca158ef.js | 1 + public/scripts/app.c08817b3.js | 1 - public/styles/app.e8671577.css | 1 + public/styles/app.f799a460.css | 1 - server/api/action/action.attributes.js | 2 +- server/api/action/action.controller.js | 2 +- server/api/action/action.model.js | 2 +- server/api/action/action.rpc.js | 2 +- server/api/action/index.js | 2 +- .../analyticCustomReport.attributes.js | 2 +- .../analyticCustomReport.controller.js | 2 +- .../analyticCustomReport.model.js | 2 +- .../analyticCustomReport.rpc.js | 2 +- server/api/analyticCustomReport/index.js | 2 +- .../analyticDefaultReport.attributes.js | 2 +- .../analyticDefaultReport.controller.js | 2 +- .../analyticDefaultReport.model.js | 2 +- .../analyticDefaultReport.rpc.js | 2 +- server/api/analyticDefaultReport/index.js | 2 +- .../analyticExtractedReport.attributes.js | 2 +- .../analyticExtractedReport.controller.js | 2 +- .../analyticExtractedReport.model.js | 2 +- .../analyticExtractedReport.rpc.js | 2 +- server/api/analyticExtractedReport/index.js | 2 +- .../analyticFieldReport.attributes.js | 2 +- .../analyticFieldReport.controller.js | 2 +- .../analyticFieldReport.model.js | 2 +- .../analyticFieldReport/analyticFieldReport.rpc.js | 2 +- server/api/analyticFieldReport/index.js | 2 +- .../analyticMetric/analyticMetric.attributes.js | 2 +- .../analyticMetric/analyticMetric.controller.js | 2 +- server/api/analyticMetric/analyticMetric.model.js | 2 +- server/api/analyticMetric/analyticMetric.rpc.js | 2 +- server/api/analyticMetric/index.js | 2 +- .../analyticTreeReport.attributes.js | 2 +- .../analyticTreeReport.controller.js | 2 +- .../analyticTreeReport/analyticTreeReport.model.js | 2 +- .../analyticTreeReport/analyticTreeReport.rpc.js | 2 +- server/api/analyticTreeReport/index.js | 2 +- server/api/attachment/attachment.attributes.js | 2 +- server/api/attachment/attachment.controller.js | 2 +- server/api/attachment/attachment.model.js | 2 +- server/api/attachment/attachment.rpc.js | 2 +- server/api/attachment/index.js | 2 +- server/api/authGoogle/authGoogle.controller.js | 2 +- server/api/authGoogle/index.js | 2 +- server/api/authLocal/authLocal.controller.js | 2 +- server/api/authLocal/index.js | 2 +- server/api/automation/automation.attributes.js | 2 +- server/api/automation/automation.controller.js | 2 +- server/api/automation/automation.model.js | 2 +- server/api/automation/automation.rpc.js | 2 +- server/api/automation/index.js | 2 +- server/api/campaign/campaign.attributes.js | 2 +- server/api/campaign/campaign.controller.js | 2 +- server/api/campaign/campaign.model.js | 2 +- server/api/campaign/campaign.rpc.js | 2 +- server/api/campaign/index.js | 2 +- server/api/cannedAnswer/cannedAnswer.attributes.js | 2 +- server/api/cannedAnswer/cannedAnswer.controller.js | 2 +- server/api/cannedAnswer/cannedAnswer.model.js | 2 +- server/api/cannedAnswer/cannedAnswer.rpc.js | 2 +- server/api/cannedAnswer/index.js | 2 +- server/api/cdr/cdr.attributes.js | 2 +- server/api/cdr/cdr.controller.js | 2 +- server/api/cdr/cdr.model.js | 2 +- server/api/cdr/cdr.rpc.js | 2 +- server/api/cdr/index.js | 2 +- .../chatApplication/chatApplication.attributes.js | 2 +- .../chatApplication/chatApplication.controller.js | 2 +- .../api/chatApplication/chatApplication.model.js | 2 +- server/api/chatApplication/chatApplication.rpc.js | 2 +- server/api/chatApplication/index.js | 2 +- server/api/chatGroup/chatGroup.attributes.js | 2 +- server/api/chatGroup/chatGroup.controller.js | 2 +- server/api/chatGroup/chatGroup.events.js | 2 +- server/api/chatGroup/chatGroup.model.js | 2 +- server/api/chatGroup/chatGroup.rpc.js | 2 +- server/api/chatGroup/chatGroup.socket.js | 2 +- server/api/chatGroup/index.js | 2 +- .../chatInteraction/chatInteraction.attributes.js | 2 +- .../chatInteraction/chatInteraction.controller.js | 2 +- .../api/chatInteraction/chatInteraction.events.js | 2 +- .../api/chatInteraction/chatInteraction.model.js | 2 +- server/api/chatInteraction/chatInteraction.rpc.js | 2 +- .../api/chatInteraction/chatInteraction.socket.js | 2 +- server/api/chatInteraction/index.js | 2 +- .../chatInternalMessage.attributes.js | 2 +- .../chatInternalMessage.controller.js | 2 +- .../chatInternalMessage.events.js | 2 +- .../chatInternalMessage.model.js | 2 +- .../chatInternalMessage/chatInternalMessage.rpc.js | 2 +- .../chatInternalMessage.socket.js | 2 +- server/api/chatInternalMessage/index.js | 2 +- server/api/chatMessage/chatMessage.attributes.js | 2 +- server/api/chatMessage/chatMessage.controller.js | 2 +- server/api/chatMessage/chatMessage.events.js | 2 +- server/api/chatMessage/chatMessage.model.js | 2 +- server/api/chatMessage/chatMessage.rpc.js | 2 +- server/api/chatMessage/chatMessage.socket.js | 2 +- server/api/chatMessage/index.js | 2 +- .../chatOfflineMessage.attributes.js | 2 +- .../chatOfflineMessage.controller.js | 2 +- .../chatOfflineMessage/chatOfflineMessage.model.js | 2 +- .../chatOfflineMessage/chatOfflineMessage.rpc.js | 2 +- server/api/chatOfflineMessage/index.js | 2 +- .../chatProactiveAction.attributes.js | 2 +- .../chatProactiveAction.controller.js | 2 +- .../chatProactiveAction.model.js | 2 +- .../chatProactiveAction/chatProactiveAction.rpc.js | 2 +- server/api/chatProactiveAction/index.js | 2 +- server/api/chatQueue/chatQueue.attributes.js | 2 +- server/api/chatQueue/chatQueue.controller.js | 2 +- server/api/chatQueue/chatQueue.events.js | 2 +- server/api/chatQueue/chatQueue.model.js | 2 +- server/api/chatQueue/chatQueue.rpc.js | 2 +- server/api/chatQueue/chatQueue.socket.js | 2 +- server/api/chatQueue/index.js | 2 +- .../chatQueueReport/chatQueueReport.attributes.js | 2 +- .../chatQueueReport/chatQueueReport.controller.js | 2 +- .../api/chatQueueReport/chatQueueReport.model.js | 2 +- server/api/chatQueueReport/chatQueueReport.rpc.js | 2 +- server/api/chatQueueReport/index.js | 2 +- .../chatTransferReport.attributes.js | 2 +- .../chatTransferReport.controller.js | 2 +- .../chatTransferReport/chatTransferReport.model.js | 2 +- .../chatTransferReport/chatTransferReport.rpc.js | 2 +- server/api/chatTransferReport/index.js | 2 +- server/api/chatWebsite/chatWebsite.attributes.js | 2 +- server/api/chatWebsite/chatWebsite.controller.js | 2 +- server/api/chatWebsite/chatWebsite.events.js | 2 +- server/api/chatWebsite/chatWebsite.model.js | 2 +- server/api/chatWebsite/chatWebsite.rpc.js | 2 +- server/api/chatWebsite/chatWebsite.socket.js | 2 +- server/api/chatWebsite/index.js | 2 +- .../api/cloudProvider/cloudProvider.attributes.js | 2 +- .../api/cloudProvider/cloudProvider.controller.js | 2 +- server/api/cloudProvider/cloudProvider.model.js | 2 +- server/api/cloudProvider/cloudProvider.rpc.js | 2 +- server/api/cloudProvider/index.js | 2 +- server/api/cmCompany/cmCompany.attributes.js | 2 +- server/api/cmCompany/cmCompany.controller.js | 2 +- server/api/cmCompany/cmCompany.model.js | 2 +- server/api/cmCompany/cmCompany.rpc.js | 2 +- server/api/cmCompany/index.js | 2 +- server/api/cmContact/cmContact.attributes.js | 2 +- server/api/cmContact/cmContact.controller.js | 2 +- server/api/cmContact/cmContact.events.js | 2 +- server/api/cmContact/cmContact.model.js | 2 +- server/api/cmContact/cmContact.rpc.js | 2 +- server/api/cmContact/cmContact.socket.js | 2 +- server/api/cmContact/index.js | 2 +- .../api/cmCustomField/cmCustomField.attributes.js | 2 +- .../api/cmCustomField/cmCustomField.controller.js | 2 +- server/api/cmCustomField/cmCustomField.model.js | 2 +- server/api/cmCustomField/cmCustomField.rpc.js | 2 +- server/api/cmCustomField/index.js | 2 +- server/api/cmHopper/cmHopper.attributes.js | 2 +- server/api/cmHopper/cmHopper.controller.js | 2 +- server/api/cmHopper/cmHopper.model.js | 2 +- server/api/cmHopper/cmHopper.rpc.js | 2 +- server/api/cmHopper/index.js | 2 +- .../api/cmHopperBlack/cmHopperBlack.attributes.js | 2 +- .../api/cmHopperBlack/cmHopperBlack.controller.js | 2 +- server/api/cmHopperBlack/cmHopperBlack.model.js | 2 +- server/api/cmHopperBlack/cmHopperBlack.rpc.js | 2 +- server/api/cmHopperBlack/index.js | 2 +- .../api/cmHopperFinal/cmHopperFinal.attributes.js | 2 +- .../api/cmHopperFinal/cmHopperFinal.controller.js | 2 +- server/api/cmHopperFinal/cmHopperFinal.model.js | 2 +- server/api/cmHopperFinal/cmHopperFinal.rpc.js | 2 +- server/api/cmHopperFinal/index.js | 2 +- .../cmHopperHistory/cmHopperHistory.attributes.js | 2 +- .../cmHopperHistory/cmHopperHistory.controller.js | 2 +- .../api/cmHopperHistory/cmHopperHistory.model.js | 2 +- server/api/cmHopperHistory/cmHopperHistory.rpc.js | 2 +- server/api/cmHopperHistory/index.js | 2 +- server/api/cmList/cmList.attributes.js | 2 +- server/api/cmList/cmList.controller.js | 2 +- server/api/cmList/cmList.events.js | 2 +- server/api/cmList/cmList.model.js | 2 +- server/api/cmList/cmList.rpc.js | 2 +- server/api/cmList/cmList.socket.js | 2 +- server/api/cmList/index.js | 2 +- server/api/condition/condition.attributes.js | 2 +- server/api/condition/condition.controller.js | 2 +- server/api/condition/condition.model.js | 2 +- server/api/condition/condition.rpc.js | 2 +- server/api/condition/index.js | 2 +- server/api/dashboard/dashboard.attributes.js | 2 +- server/api/dashboard/dashboard.controller.js | 2 +- server/api/dashboard/dashboard.events.js | 2 +- server/api/dashboard/dashboard.model.js | 2 +- server/api/dashboard/dashboard.rpc.js | 2 +- server/api/dashboard/dashboard.socket.js | 2 +- server/api/dashboard/index.js | 2 +- .../api/dashboardItem/dashboardItem.attributes.js | 2 +- .../api/dashboardItem/dashboardItem.controller.js | 2 +- server/api/dashboardItem/dashboardItem.events.js | 2 +- server/api/dashboardItem/dashboardItem.model.js | 2 +- server/api/dashboardItem/dashboardItem.rpc.js | 2 +- server/api/dashboardItem/dashboardItem.socket.js | 2 +- server/api/dashboardItem/index.js | 2 +- server/api/disposition/disposition.attributes.js | 2 +- server/api/disposition/disposition.controller.js | 2 +- server/api/disposition/disposition.model.js | 2 +- server/api/disposition/disposition.rpc.js | 2 +- server/api/disposition/index.js | 2 +- server/api/faxAccount/faxAccount.attributes.js | 2 +- server/api/faxAccount/faxAccount.controller.js | 2 +- server/api/faxAccount/faxAccount.events.js | 2 +- server/api/faxAccount/faxAccount.model.js | 2 +- server/api/faxAccount/faxAccount.rpc.js | 2 +- server/api/faxAccount/faxAccount.socket.js | 2 +- server/api/faxAccount/index.js | 2 +- .../faxApplication/faxApplication.attributes.js | 2 +- .../faxApplication/faxApplication.controller.js | 2 +- server/api/faxApplication/faxApplication.model.js | 2 +- server/api/faxApplication/faxApplication.rpc.js | 2 +- server/api/faxApplication/index.js | 2 +- .../faxInteraction/faxInteraction.attributes.js | 2 +- .../faxInteraction/faxInteraction.controller.js | 2 +- server/api/faxInteraction/faxInteraction.events.js | 2 +- server/api/faxInteraction/faxInteraction.model.js | 2 +- server/api/faxInteraction/faxInteraction.rpc.js | 2 +- server/api/faxInteraction/faxInteraction.socket.js | 2 +- server/api/faxInteraction/index.js | 2 +- server/api/faxMessage/faxMessage.attributes.js | 2 +- server/api/faxMessage/faxMessage.controller.js | 2 +- server/api/faxMessage/faxMessage.events.js | 2 +- server/api/faxMessage/faxMessage.model.js | 2 +- server/api/faxMessage/faxMessage.rpc.js | 2 +- server/api/faxMessage/faxMessage.socket.js | 2 +- server/api/faxMessage/index.js | 2 +- server/api/faxQueue/faxQueue.attributes.js | 2 +- server/api/faxQueue/faxQueue.controller.js | 2 +- server/api/faxQueue/faxQueue.events.js | 2 +- server/api/faxQueue/faxQueue.model.js | 2 +- server/api/faxQueue/faxQueue.rpc.js | 2 +- server/api/faxQueue/faxQueue.socket.js | 2 +- server/api/faxQueue/index.js | 2 +- .../faxQueueReport/faxQueueReport.attributes.js | 2 +- .../faxQueueReport/faxQueueReport.controller.js | 2 +- server/api/faxQueueReport/faxQueueReport.model.js | 2 +- server/api/faxQueueReport/faxQueueReport.rpc.js | 2 +- server/api/faxQueueReport/index.js | 2 +- .../faxTransferReport.attributes.js | 2 +- .../faxTransferReport.controller.js | 2 +- .../faxTransferReport/faxTransferReport.model.js | 2 +- .../api/faxTransferReport/faxTransferReport.rpc.js | 2 +- server/api/faxTransferReport/index.js | 2 +- server/api/intDeskAccount/index.js | 2 +- .../intDeskAccount/intDeskAccount.attributes.js | 2 +- .../intDeskAccount/intDeskAccount.controller.js | 2 +- server/api/intDeskAccount/intDeskAccount.model.js | 2 +- server/api/intDeskAccount/intDeskAccount.rpc.js | 2 +- server/api/intDeskConfiguration/index.js | 2 +- .../intDeskConfiguration.attributes.js | 2 +- .../intDeskConfiguration.controller.js | 2 +- .../intDeskConfiguration.model.js | 2 +- .../intDeskConfiguration.rpc.js | 2 +- server/api/intDeskField/index.js | 2 +- server/api/intDeskField/intDeskField.attributes.js | 2 +- server/api/intDeskField/intDeskField.controller.js | 2 +- server/api/intDeskField/intDeskField.model.js | 2 +- server/api/intDeskField/intDeskField.rpc.js | 2 +- server/api/intDynamics365Account/index.js | 2 +- .../intDynamics365Account.attributes.js | 2 +- .../intDynamics365Account.controller.js | 2 +- .../intDynamics365Account.model.js | 2 +- .../intDynamics365Account.rpc.js | 2 +- server/api/intDynamics365Configuration/index.js | 2 +- .../intDynamics365Configuration.attributes.js | 2 +- .../intDynamics365Configuration.controller.js | 2 +- .../intDynamics365Configuration.model.js | 2 +- .../intDynamics365Configuration.rpc.js | 2 +- server/api/intDynamics365Field/index.js | 2 +- .../intDynamics365Field.attributes.js | 2 +- .../intDynamics365Field.controller.js | 2 +- .../intDynamics365Field.model.js | 2 +- .../intDynamics365Field/intDynamics365Field.rpc.js | 2 +- server/api/intFreshdeskAccount/index.js | 2 +- .../intFreshdeskAccount.attributes.js | 2 +- .../intFreshdeskAccount.controller.js | 2 +- .../intFreshdeskAccount.model.js | 2 +- .../intFreshdeskAccount/intFreshdeskAccount.rpc.js | 2 +- server/api/intFreshdeskConfiguration/index.js | 2 +- .../intFreshdeskConfiguration.attributes.js | 2 +- .../intFreshdeskConfiguration.controller.js | 2 +- .../intFreshdeskConfiguration.model.js | 2 +- .../intFreshdeskConfiguration.rpc.js | 2 +- server/api/intFreshdeskField/index.js | 2 +- .../intFreshdeskField.attributes.js | 2 +- .../intFreshdeskField.controller.js | 2 +- .../intFreshdeskField/intFreshdeskField.model.js | 2 +- .../api/intFreshdeskField/intFreshdeskField.rpc.js | 2 +- server/api/intFreshsalesAccount/index.js | 2 +- .../intFreshsalesAccount.attributes.js | 2 +- .../intFreshsalesAccount.controller.js | 2 +- .../intFreshsalesAccount.model.js | 2 +- .../intFreshsalesAccount.rpc.js | 2 +- server/api/intFreshsalesConfiguration/index.js | 2 +- .../intFreshsalesConfiguration.attributes.js | 2 +- .../intFreshsalesConfiguration.controller.js | 2 +- .../intFreshsalesConfiguration.model.js | 2 +- .../intFreshsalesConfiguration.rpc.js | 2 +- server/api/intFreshsalesField/index.js | 2 +- .../intFreshsalesField.attributes.js | 2 +- .../intFreshsalesField.controller.js | 2 +- .../intFreshsalesField/intFreshsalesField.model.js | 2 +- .../intFreshsalesField/intFreshsalesField.rpc.js | 2 +- server/api/intSalesforceAccount/index.js | 2 +- .../intSalesforceAccount.attributes.js | 2 +- .../intSalesforceAccount.controller.js | 2 +- .../intSalesforceAccount.model.js | 2 +- .../intSalesforceAccount.rpc.js | 2 +- server/api/intSalesforceConfiguration/index.js | 2 +- .../intSalesforceConfiguration.attributes.js | 2 +- .../intSalesforceConfiguration.controller.js | 2 +- .../intSalesforceConfiguration.model.js | 2 +- .../intSalesforceConfiguration.rpc.js | 2 +- server/api/intSalesforceField/index.js | 2 +- .../intSalesforceField.attributes.js | 2 +- .../intSalesforceField.controller.js | 2 +- .../intSalesforceField/intSalesforceField.model.js | 2 +- .../intSalesforceField/intSalesforceField.rpc.js | 2 +- server/api/intServicenowAccount/index.js | 2 +- .../intServicenowAccount.attributes.js | 2 +- .../intServicenowAccount.controller.js | 2 +- .../intServicenowAccount.model.js | 2 +- .../intServicenowAccount.rpc.js | 2 +- server/api/intServicenowConfiguration/index.js | 2 +- .../intServicenowConfiguration.attributes.js | 2 +- .../intServicenowConfiguration.controller.js | 2 +- .../intServicenowConfiguration.model.js | 2 +- .../intServicenowConfiguration.rpc.js | 2 +- server/api/intServicenowField/index.js | 2 +- .../intServicenowField.attributes.js | 2 +- .../intServicenowField.controller.js | 2 +- .../intServicenowField/intServicenowField.model.js | 2 +- .../intServicenowField/intServicenowField.rpc.js | 2 +- server/api/intSugarcrmAccount/index.js | 2 +- .../intSugarcrmAccount.attributes.js | 2 +- .../intSugarcrmAccount.controller.js | 2 +- .../intSugarcrmAccount/intSugarcrmAccount.model.js | 2 +- .../intSugarcrmAccount/intSugarcrmAccount.rpc.js | 2 +- server/api/intSugarcrmConfiguration/index.js | 2 +- .../intSugarcrmConfiguration.attributes.js | 2 +- .../intSugarcrmConfiguration.controller.js | 2 +- .../intSugarcrmConfiguration.model.js | 2 +- .../intSugarcrmConfiguration.rpc.js | 2 +- server/api/intSugarcrmField/index.js | 2 +- .../intSugarcrmField.attributes.js | 2 +- .../intSugarcrmField.controller.js | 2 +- .../api/intSugarcrmField/intSugarcrmField.model.js | 2 +- .../api/intSugarcrmField/intSugarcrmField.rpc.js | 2 +- server/api/intVtigerAccount/index.js | 2 +- .../intVtigerAccount.attributes.js | 2 +- .../intVtigerAccount.controller.js | 2 +- .../api/intVtigerAccount/intVtigerAccount.model.js | 2 +- .../api/intVtigerAccount/intVtigerAccount.rpc.js | 2 +- server/api/intVtigerConfiguration/index.js | 2 +- .../intVtigerConfiguration.attributes.js | 2 +- .../intVtigerConfiguration.controller.js | 2 +- .../intVtigerConfiguration.model.js | 2 +- .../intVtigerConfiguration.rpc.js | 2 +- server/api/intVtigerField/index.js | 2 +- .../intVtigerField/intVtigerField.attributes.js | 2 +- .../intVtigerField/intVtigerField.controller.js | 2 +- server/api/intVtigerField/intVtigerField.model.js | 2 +- server/api/intVtigerField/intVtigerField.rpc.js | 2 +- server/api/intZendeskAccount/index.js | 2 +- .../intZendeskAccount.attributes.js | 2 +- .../intZendeskAccount.controller.js | 2 +- .../intZendeskAccount/intZendeskAccount.model.js | 2 +- .../api/intZendeskAccount/intZendeskAccount.rpc.js | 2 +- server/api/intZendeskConfiguration/index.js | 2 +- .../intZendeskConfiguration.attributes.js | 2 +- .../intZendeskConfiguration.controller.js | 2 +- .../intZendeskConfiguration.model.js | 2 +- .../intZendeskConfiguration.rpc.js | 2 +- server/api/intZendeskField/index.js | 2 +- .../intZendeskField/intZendeskField.attributes.js | 2 +- .../intZendeskField/intZendeskField.controller.js | 2 +- .../api/intZendeskField/intZendeskField.model.js | 2 +- server/api/intZendeskField/intZendeskField.rpc.js | 2 +- server/api/intZohoAccount/index.js | 2 +- .../intZohoAccount/intZohoAccount.attributes.js | 2 +- .../intZohoAccount/intZohoAccount.controller.js | 2 +- server/api/intZohoAccount/intZohoAccount.model.js | 2 +- server/api/intZohoAccount/intZohoAccount.rpc.js | 2 +- server/api/intZohoConfiguration/index.js | 2 +- .../intZohoConfiguration.attributes.js | 2 +- .../intZohoConfiguration.controller.js | 2 +- .../intZohoConfiguration.model.js | 2 +- .../intZohoConfiguration.rpc.js | 2 +- server/api/intZohoField/index.js | 2 +- server/api/intZohoField/intZohoField.attributes.js | 2 +- server/api/intZohoField/intZohoField.controller.js | 2 +- server/api/intZohoField/intZohoField.model.js | 2 +- server/api/intZohoField/intZohoField.rpc.js | 2 +- server/api/integration/index.js | 2 +- server/api/integration/integration.attributes.js | 2 +- server/api/integration/integration.controller.js | 2 +- server/api/integration/integration.model.js | 2 +- server/api/integration/integration.rpc.js | 2 +- server/api/integrationReport/index.js | 2 +- .../integrationReport.attributes.js | 2 +- .../integrationReport.controller.js | 2 +- .../integrationReport/integrationReport.model.js | 2 +- .../api/integrationReport/integrationReport.rpc.js | 2 +- server/api/interval/index.js | 2 +- server/api/interval/interval.attributes.js | 2 +- server/api/interval/interval.controller.js | 2 +- server/api/interval/interval.model.js | 2 +- server/api/interval/interval.rpc.js | 2 +- server/api/jira/index.js | 2 +- server/api/jira/jira.controller.js | 2 +- server/api/jscriptyAnswerReport/index.js | 2 +- .../jscriptyAnswerReport.attributes.js | 2 +- .../jscriptyAnswerReport.controller.js | 2 +- .../jscriptyAnswerReport.model.js | 2 +- .../jscriptyAnswerReport.rpc.js | 2 +- server/api/jscriptyProject/index.js | 2 +- .../jscriptyProject/jscriptyProject.attributes.js | 2 +- .../jscriptyProject/jscriptyProject.controller.js | 2 +- .../api/jscriptyProject/jscriptyProject.model.js | 2 +- server/api/jscriptyProject/jscriptyProject.rpc.js | 2 +- server/api/jscriptyQuestionReport/index.js | 2 +- .../jscriptyQuestionReport.attributes.js | 2 +- .../jscriptyQuestionReport.controller.js | 2 +- .../jscriptyQuestionReport.model.js | 2 +- .../jscriptyQuestionReport.rpc.js | 2 +- server/api/jscriptySessionReport/index.js | 2 +- .../jscriptySessionReport.attributes.js | 2 +- .../jscriptySessionReport.controller.js | 2 +- .../jscriptySessionReport.model.js | 2 +- .../jscriptySessionReport.rpc.js | 2 +- server/api/license/index.js | 2 +- server/api/license/license.attributes.js | 2 +- server/api/license/license.controller.js | 2 +- server/api/license/license.model.js | 2 +- server/api/license/license.rpc.js | 2 +- server/api/mailAccount/index.js | 2 +- server/api/mailAccount/mailAccount.attributes.js | 2 +- server/api/mailAccount/mailAccount.controller.js | 2 +- server/api/mailAccount/mailAccount.events.js | 2 +- server/api/mailAccount/mailAccount.model.js | 2 +- server/api/mailAccount/mailAccount.rpc.js | 2 +- server/api/mailAccount/mailAccount.socket.js | 2 +- server/api/mailApplication/index.js | 2 +- .../mailApplication/mailApplication.attributes.js | 2 +- .../mailApplication/mailApplication.controller.js | 2 +- .../api/mailApplication/mailApplication.model.js | 2 +- server/api/mailApplication/mailApplication.rpc.js | 2 +- server/api/mailInteraction/index.js | 2 +- .../mailInteraction/mailInteraction.attributes.js | 2 +- .../mailInteraction/mailInteraction.controller.js | 2 +- .../api/mailInteraction/mailInteraction.events.js | 2 +- .../api/mailInteraction/mailInteraction.model.js | 2 +- server/api/mailInteraction/mailInteraction.rpc.js | 2 +- .../api/mailInteraction/mailInteraction.socket.js | 2 +- server/api/mailMessage/index.js | 2 +- server/api/mailMessage/mailMessage.attributes.js | 2 +- server/api/mailMessage/mailMessage.controller.js | 2 +- server/api/mailMessage/mailMessage.events.js | 2 +- server/api/mailMessage/mailMessage.model.js | 2 +- server/api/mailMessage/mailMessage.rpc.js | 2 +- server/api/mailMessage/mailMessage.socket.js | 2 +- server/api/mailQueue/index.js | 2 +- server/api/mailQueue/mailQueue.attributes.js | 2 +- server/api/mailQueue/mailQueue.controller.js | 2 +- server/api/mailQueue/mailQueue.events.js | 2 +- server/api/mailQueue/mailQueue.model.js | 2 +- server/api/mailQueue/mailQueue.rpc.js | 2 +- server/api/mailQueue/mailQueue.socket.js | 2 +- server/api/mailQueueReport/index.js | 2 +- .../mailQueueReport/mailQueueReport.attributes.js | 2 +- .../mailQueueReport/mailQueueReport.controller.js | 2 +- .../api/mailQueueReport/mailQueueReport.model.js | 2 +- server/api/mailQueueReport/mailQueueReport.rpc.js | 2 +- server/api/mailServerIn/index.js | 2 +- server/api/mailServerIn/mailServerIn.attributes.js | 2 +- server/api/mailServerIn/mailServerIn.model.js | 2 +- server/api/mailServerIn/mailServerIn.rpc.js | 2 +- server/api/mailServerOut/index.js | 2 +- .../api/mailServerOut/mailServerOut.attributes.js | 2 +- .../api/mailServerOut/mailServerOut.controller.js | 2 +- server/api/mailServerOut/mailServerOut.model.js | 2 +- server/api/mailServerOut/mailServerOut.rpc.js | 2 +- server/api/mailSubstatus/index.js | 2 +- .../api/mailSubstatus/mailSubstatus.attributes.js | 2 +- .../api/mailSubstatus/mailSubstatus.controller.js | 2 +- server/api/mailSubstatus/mailSubstatus.model.js | 2 +- server/api/mailSubstatus/mailSubstatus.rpc.js | 2 +- server/api/mailTransferReport/index.js | 2 +- .../mailTransferReport.attributes.js | 2 +- .../mailTransferReport.controller.js | 2 +- .../mailTransferReport/mailTransferReport.model.js | 2 +- .../mailTransferReport/mailTransferReport.rpc.js | 2 +- server/api/memberReport/index.js | 2 +- server/api/memberReport/memberReport.attributes.js | 2 +- server/api/memberReport/memberReport.controller.js | 2 +- server/api/memberReport/memberReport.model.js | 2 +- server/api/memberReport/memberReport.rpc.js | 2 +- server/api/migration/index.js | 2 +- server/api/migration/migration.attributes.js | 2 +- server/api/migration/migration.controller.js | 2 +- server/api/migration/migration.model.js | 2 +- server/api/migration/migration.rpc.js | 2 +- server/api/network/index.js | 2 +- server/api/network/network.attributes.js | 2 +- server/api/network/network.controller.js | 2 +- server/api/network/network.model.js | 2 +- server/api/network/network.rpc.js | 2 +- server/api/notification/index.js | 2 +- server/api/notification/notification.attributes.js | 2 +- server/api/notification/notification.controller.js | 2 +- server/api/notification/notification.events.js | 2 +- server/api/notification/notification.model.js | 2 +- server/api/notification/notification.rpc.js | 2 +- server/api/notification/notification.socket.js | 2 +- server/api/openchannelAccount/index.js | 2 +- .../openchannelAccount.attributes.js | 2 +- .../openchannelAccount.controller.js | 2 +- .../openchannelAccount.events.js | 2 +- .../openchannelAccount/openchannelAccount.model.js | 2 +- .../openchannelAccount/openchannelAccount.rpc.js | 2 +- .../openchannelAccount.socket.js | 2 +- server/api/openchannelApplication/index.js | 2 +- .../openchannelApplication.attributes.js | 2 +- .../openchannelApplication.controller.js | 2 +- .../openchannelApplication.model.js | 2 +- .../openchannelApplication.rpc.js | 2 +- server/api/openchannelInteraction/index.js | 2 +- .../openchannelInteraction.attributes.js | 2 +- .../openchannelInteraction.controller.js | 2 +- .../openchannelInteraction.events.js | 2 +- .../openchannelInteraction.model.js | 2 +- .../openchannelInteraction.rpc.js | 2 +- .../openchannelInteraction.socket.js | 2 +- server/api/openchannelMessage/index.js | 2 +- .../openchannelMessage.attributes.js | 2 +- .../openchannelMessage.controller.js | 2 +- .../openchannelMessage.events.js | 2 +- .../openchannelMessage/openchannelMessage.model.js | 2 +- .../openchannelMessage/openchannelMessage.rpc.js | 2 +- .../openchannelMessage.socket.js | 2 +- server/api/openchannelQueue/index.js | 2 +- .../openchannelQueue.attributes.js | 2 +- .../openchannelQueue.controller.js | 2 +- .../openchannelQueue/openchannelQueue.events.js | 2 +- .../api/openchannelQueue/openchannelQueue.model.js | 2 +- .../api/openchannelQueue/openchannelQueue.rpc.js | 2 +- .../openchannelQueue/openchannelQueue.socket.js | 2 +- server/api/openchannelQueueReport/index.js | 2 +- .../openchannelQueueReport.attributes.js | 2 +- .../openchannelQueueReport.controller.js | 2 +- .../openchannelQueueReport.model.js | 2 +- .../openchannelQueueReport.rpc.js | 2 +- server/api/openchannelTransferReport/index.js | 2 +- .../openchannelTransferReport.attributes.js | 2 +- .../openchannelTransferReport.controller.js | 2 +- .../openchannelTransferReport.model.js | 2 +- .../openchannelTransferReport.rpc.js | 2 +- server/api/pause/index.js | 2 +- server/api/pause/pause.attributes.js | 2 +- server/api/pause/pause.controller.js | 2 +- server/api/pause/pause.model.js | 2 +- server/api/pause/pause.rpc.js | 2 +- server/api/plugin/index.js | 2 +- server/api/plugin/plugin.attributes.js | 2 +- server/api/plugin/plugin.controller.js | 2 +- server/api/plugin/plugin.events.js | 2 +- server/api/plugin/plugin.model.js | 2 +- server/api/plugin/plugin.rpc.js | 2 +- server/api/plugin/plugin.socket.js | 2 +- server/api/pm2/index.js | 2 +- server/api/pm2/pm2.controller.js | 2 +- server/api/reportAgentPreview/index.js | 2 +- .../reportAgentPreview.attributes.js | 2 +- .../reportAgentPreview/reportAgentPreview.model.js | 2 +- .../reportAgentPreview/reportAgentPreview.rpc.js | 2 +- server/api/rpc/index.js | 2 +- server/api/rpc/rpc.controller.js | 2 +- server/api/schedule/index.js | 2 +- server/api/schedule/schedule.attributes.js | 2 +- server/api/schedule/schedule.controller.js | 2 +- server/api/schedule/schedule.model.js | 2 +- server/api/schedule/schedule.rpc.js | 2 +- server/api/screenRecording/index.js | 2 +- .../screenRecording/screenRecording.attributes.js | 2 +- .../screenRecording/screenRecording.controller.js | 2 +- .../api/screenRecording/screenRecording.model.js | 2 +- server/api/screenRecording/screenRecording.rpc.js | 2 +- server/api/setting/index.js | 2 +- server/api/setting/setting.attributes.js | 2 +- server/api/setting/setting.controller.js | 2 +- server/api/setting/setting.model.js | 2 +- server/api/setting/setting.rpc.js | 2 +- server/api/smsAccount/index.js | 2 +- server/api/smsAccount/smsAccount.attributes.js | 2 +- server/api/smsAccount/smsAccount.controller.js | 2 +- server/api/smsAccount/smsAccount.events.js | 2 +- server/api/smsAccount/smsAccount.model.js | 2 +- server/api/smsAccount/smsAccount.rpc.js | 2 +- server/api/smsAccount/smsAccount.socket.js | 2 +- server/api/smsApplication/index.js | 2 +- .../smsApplication/smsApplication.attributes.js | 2 +- .../smsApplication/smsApplication.controller.js | 2 +- server/api/smsApplication/smsApplication.model.js | 2 +- server/api/smsApplication/smsApplication.rpc.js | 2 +- server/api/smsInteraction/index.js | 2 +- .../smsInteraction/smsInteraction.attributes.js | 2 +- .../smsInteraction/smsInteraction.controller.js | 2 +- server/api/smsInteraction/smsInteraction.events.js | 2 +- server/api/smsInteraction/smsInteraction.model.js | 2 +- server/api/smsInteraction/smsInteraction.rpc.js | 2 +- server/api/smsInteraction/smsInteraction.socket.js | 2 +- server/api/smsMessage/index.js | 2 +- server/api/smsMessage/smsMessage.attributes.js | 2 +- server/api/smsMessage/smsMessage.controller.js | 2 +- server/api/smsMessage/smsMessage.events.js | 2 +- server/api/smsMessage/smsMessage.model.js | 2 +- server/api/smsMessage/smsMessage.rpc.js | 2 +- server/api/smsMessage/smsMessage.socket.js | 2 +- server/api/smsQueue/index.js | 2 +- server/api/smsQueue/smsQueue.attributes.js | 2 +- server/api/smsQueue/smsQueue.controller.js | 2 +- server/api/smsQueue/smsQueue.events.js | 2 +- server/api/smsQueue/smsQueue.model.js | 2 +- server/api/smsQueue/smsQueue.rpc.js | 2 +- server/api/smsQueue/smsQueue.socket.js | 2 +- server/api/smsQueueReport/index.js | 2 +- .../smsQueueReport/smsQueueReport.attributes.js | 2 +- .../smsQueueReport/smsQueueReport.controller.js | 2 +- server/api/smsQueueReport/smsQueueReport.model.js | 2 +- server/api/smsQueueReport/smsQueueReport.rpc.js | 2 +- server/api/smsTransferReport/index.js | 2 +- .../smsTransferReport.attributes.js | 2 +- .../smsTransferReport.controller.js | 2 +- .../smsTransferReport/smsTransferReport.model.js | 2 +- .../api/smsTransferReport/smsTransferReport.rpc.js | 2 +- server/api/sound/index.js | 2 +- server/api/sound/sound.attributes.js | 2 +- server/api/sound/sound.controller.js | 2 +- server/api/sound/sound.model.js | 2 +- server/api/sound/sound.rpc.js | 2 +- server/api/squareMessage/index.js | 2 +- .../api/squareMessage/squareMessage.attributes.js | 2 +- .../api/squareMessage/squareMessage.controller.js | 2 +- server/api/squareMessage/squareMessage.model.js | 2 +- server/api/squareMessage/squareMessage.rpc.js | 2 +- server/api/squareOdbc/index.js | 2 +- server/api/squareOdbc/squareOdbc.attributes.js | 2 +- server/api/squareOdbc/squareOdbc.controller.js | 2 +- server/api/squareOdbc/squareOdbc.model.js | 2 +- server/api/squareOdbc/squareOdbc.rpc.js | 2 +- server/api/squareProject/index.js | 2 +- .../api/squareProject/squareProject.attributes.js | 2 +- .../api/squareProject/squareProject.controller.js | 2 +- server/api/squareProject/squareProject.events.js | 2 +- server/api/squareProject/squareProject.model.js | 2 +- server/api/squareProject/squareProject.rpc.js | 2 +- server/api/squareProject/squareProject.socket.js | 2 +- server/api/squareRecording/index.js | 2 +- .../squareRecording/squareRecording.attributes.js | 2 +- .../squareRecording/squareRecording.controller.js | 2 +- .../api/squareRecording/squareRecording.model.js | 2 +- server/api/squareRecording/squareRecording.rpc.js | 2 +- server/api/squareReport/index.js | 2 +- server/api/squareReport/squareReport.attributes.js | 2 +- server/api/squareReport/squareReport.controller.js | 2 +- server/api/squareReport/squareReport.model.js | 2 +- server/api/squareReport/squareReport.rpc.js | 2 +- server/api/squareReportDetail/index.js | 2 +- .../squareReportDetail.attributes.js | 2 +- .../squareReportDetail.controller.js | 2 +- .../squareReportDetail/squareReportDetail.model.js | 2 +- .../squareReportDetail/squareReportDetail.rpc.js | 2 +- server/api/system/index.js | 2 +- server/api/system/system.controller.js | 2 +- server/api/tag/index.js | 2 +- server/api/tag/tag.attributes.js | 2 +- server/api/tag/tag.controller.js | 2 +- server/api/tag/tag.model.js | 2 +- server/api/tag/tag.rpc.js | 2 +- server/api/team/index.js | 2 +- server/api/team/team.attributes.js | 2 +- server/api/team/team.controller.js | 2 +- server/api/team/team.events.js | 2 +- server/api/team/team.model.js | 2 +- server/api/team/team.rpc.js | 2 +- server/api/team/team.socket.js | 2 +- server/api/template/index.js | 2 +- server/api/template/template.attributes.js | 2 +- server/api/template/template.controller.js | 2 +- server/api/template/template.model.js | 2 +- server/api/template/template.rpc.js | 2 +- server/api/trigger/index.js | 2 +- server/api/trigger/trigger.attributes.js | 2 +- server/api/trigger/trigger.controller.js | 2 +- server/api/trigger/trigger.model.js | 2 +- server/api/trigger/trigger.rpc.js | 2 +- server/api/trunk/index.js | 2 +- server/api/trunk/trunk.attributes.js | 2 +- server/api/trunk/trunk.controller.js | 2 +- server/api/trunk/trunk.model.js | 2 +- server/api/trunk/trunk.rpc.js | 2 +- server/api/user/index.js | 2 +- server/api/user/user.attributes.js | 2 +- server/api/user/user.controller.js | 2 +- server/api/user/user.events.js | 2 +- server/api/user/user.model.js | 2 +- server/api/user/user.rpc.js | 2 +- server/api/user/user.socket.js | 2 +- server/api/userChatQueue/index.js | 2 +- .../api/userChatQueue/userChatQueue.attributes.js | 2 +- server/api/userChatQueue/userChatQueue.model.js | 2 +- server/api/userChatQueue/userChatQueue.rpc.js | 2 +- server/api/userFaxQueue/index.js | 2 +- server/api/userFaxQueue/userFaxQueue.attributes.js | 2 +- server/api/userFaxQueue/userFaxQueue.model.js | 2 +- server/api/userFaxQueue/userFaxQueue.rpc.js | 2 +- server/api/userMailQueue/index.js | 2 +- .../api/userMailQueue/userMailQueue.attributes.js | 2 +- server/api/userMailQueue/userMailQueue.model.js | 2 +- server/api/userMailQueue/userMailQueue.rpc.js | 2 +- server/api/userOpenchannelQueue/index.js | 2 +- .../userOpenchannelQueue.attributes.js | 2 +- .../userOpenchannelQueue.model.js | 2 +- .../userOpenchannelQueue.rpc.js | 2 +- server/api/userProfile/index.js | 2 +- server/api/userProfile/userProfile.attributes.js | 2 +- server/api/userProfile/userProfile.controller.js | 2 +- server/api/userProfile/userProfile.events.js | 2 +- server/api/userProfile/userProfile.model.js | 2 +- server/api/userProfile/userProfile.rpc.js | 2 +- server/api/userProfile/userProfile.socket.js | 2 +- server/api/userProfileResource/index.js | 2 +- .../userProfileResource.attributes.js | 2 +- .../userProfileResource.controller.js | 2 +- .../userProfileResource.model.js | 2 +- .../userProfileResource/userProfileResource.rpc.js | 2 +- server/api/userProfileSection/index.js | 2 +- .../userProfileSection.attributes.js | 2 +- .../userProfileSection.controller.js | 2 +- .../userProfileSection/userProfileSection.model.js | 2 +- .../userProfileSection/userProfileSection.rpc.js | 2 +- server/api/userSmsQueue/index.js | 2 +- server/api/userSmsQueue/userSmsQueue.attributes.js | 2 +- server/api/userSmsQueue/userSmsQueue.model.js | 2 +- server/api/userSmsQueue/userSmsQueue.rpc.js | 2 +- server/api/userVoiceQueue/index.js | 2 +- .../userVoiceQueue/userVoiceQueue.attributes.js | 2 +- server/api/userVoiceQueue/userVoiceQueue.model.js | 2 +- server/api/userVoiceQueue/userVoiceQueue.rpc.js | 2 +- server/api/userVoiceQueueRt/index.js | 2 +- .../userVoiceQueueRt.attributes.js | 2 +- .../userVoiceQueueRt/userVoiceQueueRt.events.js | 2 +- .../api/userVoiceQueueRt/userVoiceQueueRt.model.js | 2 +- .../api/userVoiceQueueRt/userVoiceQueueRt.rpc.js | 2 +- .../userVoiceQueueRt/userVoiceQueueRt.socket.js | 2 +- server/api/userWhatsappQueue/index.js | 2 +- .../userWhatsappQueue.attributes.js | 2 +- .../userWhatsappQueue/userWhatsappQueue.model.js | 2 +- .../api/userWhatsappQueue/userWhatsappQueue.rpc.js | 2 +- server/api/variable/index.js | 2 +- server/api/variable/variable.attributes.js | 2 +- server/api/variable/variable.controller.js | 2 +- server/api/variable/variable.model.js | 2 +- server/api/variable/variable.rpc.js | 2 +- server/api/version/index.js | 2 +- server/api/version/version.controller.js | 2 +- server/api/voiceAgentReport/index.js | 2 +- .../voiceAgentReport.attributes.js | 2 +- .../voiceAgentReport.controller.js | 2 +- .../api/voiceAgentReport/voiceAgentReport.model.js | 2 +- .../api/voiceAgentReport/voiceAgentReport.rpc.js | 2 +- server/api/voiceCallReport/index.js | 2 +- .../voiceCallReport/voiceCallReport.attributes.js | 2 +- .../voiceCallReport/voiceCallReport.controller.js | 2 +- .../api/voiceCallReport/voiceCallReport.model.js | 2 +- server/api/voiceCallReport/voiceCallReport.rpc.js | 2 +- server/api/voiceChanSpy/index.js | 2 +- server/api/voiceChanSpy/voiceChanSpy.attributes.js | 2 +- server/api/voiceChanSpy/voiceChanSpy.controller.js | 2 +- server/api/voiceChanSpy/voiceChanSpy.model.js | 2 +- server/api/voiceChanSpy/voiceChanSpy.rpc.js | 2 +- server/api/voiceContext/index.js | 2 +- server/api/voiceContext/voiceContext.attributes.js | 2 +- server/api/voiceContext/voiceContext.controller.js | 2 +- server/api/voiceContext/voiceContext.model.js | 2 +- server/api/voiceContext/voiceContext.rpc.js | 2 +- server/api/voiceDialReport/index.js | 2 +- .../voiceDialReport/voiceDialReport.attributes.js | 2 +- .../voiceDialReport/voiceDialReport.controller.js | 2 +- .../api/voiceDialReport/voiceDialReport.model.js | 2 +- server/api/voiceDialReport/voiceDialReport.rpc.js | 2 +- server/api/voiceExtension/index.js | 2 +- .../voiceExtension/voiceExtension.attributes.js | 2 +- .../voiceExtension/voiceExtension.controller.js | 2 +- server/api/voiceExtension/voiceExtension.events.js | 2 +- server/api/voiceExtension/voiceExtension.model.js | 2 +- server/api/voiceExtension/voiceExtension.rpc.js | 2 +- server/api/voiceExtension/voiceExtension.socket.js | 2 +- server/api/voiceMail/index.js | 2 +- server/api/voiceMail/voiceMail.attributes.js | 2 +- server/api/voiceMail/voiceMail.controller.js | 2 +- server/api/voiceMail/voiceMail.model.js | 2 +- server/api/voiceMail/voiceMail.rpc.js | 2 +- server/api/voiceMailMessage/index.js | 2 +- .../voiceMailMessage.attributes.js | 2 +- .../voiceMailMessage.controller.js | 2 +- .../api/voiceMailMessage/voiceMailMessage.model.js | 2 +- .../api/voiceMailMessage/voiceMailMessage.rpc.js | 2 +- server/api/voiceMusicOnHold/index.js | 2 +- .../voiceMusicOnHold.attributes.js | 2 +- .../voiceMusicOnHold.controller.js | 2 +- .../api/voiceMusicOnHold/voiceMusicOnHold.model.js | 2 +- .../api/voiceMusicOnHold/voiceMusicOnHold.rpc.js | 2 +- server/api/voicePrefix/index.js | 2 +- server/api/voicePrefix/voicePrefix.attributes.js | 2 +- server/api/voicePrefix/voicePrefix.controller.js | 2 +- server/api/voicePrefix/voicePrefix.events.js | 2 +- server/api/voicePrefix/voicePrefix.model.js | 2 +- server/api/voicePrefix/voicePrefix.rpc.js | 2 +- server/api/voicePrefix/voicePrefix.socket.js | 2 +- server/api/voiceQueue/index.js | 2 +- server/api/voiceQueue/voiceQueue.attributes.js | 2 +- server/api/voiceQueue/voiceQueue.controller.js | 2 +- server/api/voiceQueue/voiceQueue.events.js | 2 +- server/api/voiceQueue/voiceQueue.model.js | 2 +- server/api/voiceQueue/voiceQueue.rpc.js | 2 +- server/api/voiceQueue/voiceQueue.socket.js | 2 +- server/api/voiceQueueReport/index.js | 2 +- .../voiceQueueReport.attributes.js | 2 +- .../voiceQueueReport.controller.js | 2 +- .../voiceQueueReport/voiceQueueReport.events.js | 2 +- .../api/voiceQueueReport/voiceQueueReport.model.js | 2 +- .../api/voiceQueueReport/voiceQueueReport.rpc.js | 2 +- .../voiceQueueReport/voiceQueueReport.socket.js | 2 +- server/api/voiceQueuesLog/index.js | 2 +- .../voiceQueuesLog/voiceQueuesLog.attributes.js | 2 +- .../voiceQueuesLog/voiceQueuesLog.controller.js | 2 +- server/api/voiceQueuesLog/voiceQueuesLog.model.js | 2 +- server/api/voiceQueuesLog/voiceQueuesLog.rpc.js | 2 +- server/api/voiceRecording/index.js | 2 +- .../voiceRecording/voiceRecording.attributes.js | 2 +- .../voiceRecording/voiceRecording.controller.js | 2 +- server/api/voiceRecording/voiceRecording.model.js | 2 +- server/api/voiceRecording/voiceRecording.rpc.js | 2 +- server/api/voiceTransferReport/index.js | 2 +- .../voiceTransferReport.attributes.js | 2 +- .../voiceTransferReport.controller.js | 2 +- .../voiceTransferReport.model.js | 2 +- .../voiceTransferReport/voiceTransferReport.rpc.js | 2 +- server/api/webbar/index.js | 2 +- server/api/webbar/webbar.controller.js | 2 +- server/api/whatsappAccount/index.js | 2 +- .../whatsappAccount/whatsappAccount.attributes.js | 2 +- .../whatsappAccount/whatsappAccount.controller.js | 2 +- .../api/whatsappAccount/whatsappAccount.events.js | 2 +- .../api/whatsappAccount/whatsappAccount.model.js | 2 +- server/api/whatsappAccount/whatsappAccount.rpc.js | 2 +- .../api/whatsappAccount/whatsappAccount.socket.js | 2 +- server/api/whatsappApplication/index.js | 2 +- .../whatsappApplication.attributes.js | 2 +- .../whatsappApplication.controller.js | 2 +- .../whatsappApplication.model.js | 2 +- .../whatsappApplication/whatsappApplication.rpc.js | 2 +- server/api/whatsappInteraction/index.js | 2 +- .../whatsappInteraction.attributes.js | 2 +- .../whatsappInteraction.controller.js | 2 +- .../whatsappInteraction.events.js | 2 +- .../whatsappInteraction.model.js | 2 +- .../whatsappInteraction/whatsappInteraction.rpc.js | 2 +- .../whatsappInteraction.socket.js | 2 +- server/api/whatsappMessage/index.js | 2 +- .../whatsappMessage/whatsappMessage.attributes.js | 2 +- .../whatsappMessage/whatsappMessage.controller.js | 2 +- .../api/whatsappMessage/whatsappMessage.events.js | 2 +- .../api/whatsappMessage/whatsappMessage.model.js | 2 +- server/api/whatsappMessage/whatsappMessage.rpc.js | 2 +- .../api/whatsappMessage/whatsappMessage.socket.js | 2 +- server/api/whatsappQueue/index.js | 2 +- .../api/whatsappQueue/whatsappQueue.attributes.js | 2 +- .../api/whatsappQueue/whatsappQueue.controller.js | 2 +- server/api/whatsappQueue/whatsappQueue.events.js | 2 +- server/api/whatsappQueue/whatsappQueue.model.js | 2 +- server/api/whatsappQueue/whatsappQueue.rpc.js | 2 +- server/api/whatsappQueue/whatsappQueue.socket.js | 2 +- server/api/whatsappQueueReport/index.js | 2 +- .../whatsappQueueReport.attributes.js | 2 +- .../whatsappQueueReport.controller.js | 2 +- .../whatsappQueueReport.model.js | 2 +- .../whatsappQueueReport/whatsappQueueReport.rpc.js | 2 +- server/api/whatsappTransferReport/index.js | 2 +- .../whatsappTransferReport.attributes.js | 2 +- .../whatsappTransferReport.controller.js | 2 +- .../whatsappTransferReport.model.js | 2 +- .../whatsappTransferReport.rpc.js | 2 +- server/app.js | 2 +- server/components/auth/service.js | 2 +- server/components/encryptor/index.js | 2 +- server/components/export/csv.js | 2 +- server/components/export/pdf.js | 2 +- server/components/export/xlsx.js | 2 +- server/components/extensions/rewrite.js | 2 +- server/components/import/cm/csv.js | 2 +- server/components/import/cm/csv2.js | 2 +- server/components/integrations/configuration.js | 2 +- server/components/interaction/service.js | 2 +- server/components/license/service.js | 2 +- server/components/parsers/advancedSearch.js | 2 +- server/components/parsers/qs.js | 2 +- server/config/express.js | 2 +- server/config/license/hardware.js | 2 +- server/config/license/index.js | 2 +- server/config/license/util.js | 2 +- server/config/local.env.js | 2 +- server/config/logger.js | 2 +- server/config/pm2/config.js | 2 +- server/config/pm2/index.js | 2 +- server/config/schedule/chat.js | 2 +- server/config/schedule/index.js | 2 +- server/config/schedule/transcribe.js | 2 +- server/config/schedule/whatsapp.js | 2 +- server/config/seedContact.js | 2 +- server/config/seedUsers.js | 2 +- server/config/socketio.js | 2 +- server/config/triggers/index.js | 2 +- server/config/utils.js | 2 +- server/errors/index.js | 2 +- server/mysqldb/index.js | 2 +- server/routes.js | 2 +- server/rpc/index.js | 2 +- server/services/agi/channel.js | 2 +- server/services/agi/error.js | 2 +- server/services/agi/graph/index.js | 2 +- server/services/agi/index.js | 2 +- server/services/agi/mailRpc/index.js | 2 +- server/services/agi/reply.js | 2 +- server/services/agi/rpc/index.js | 2 +- server/services/agi/scripts/aws/index.js | 2 +- server/services/agi/scripts/aws/lex/index.js | 2 +- server/services/agi/scripts/aws/lex/lib/api.js | 2 +- server/services/agi/scripts/aws/polly/index.js | 2 +- server/services/agi/scripts/aws/polly/lib/api.js | 2 +- server/services/agi/scripts/google/asr/index.js | 2 +- server/services/agi/scripts/google/asr/lib/api.js | 2 +- server/services/agi/scripts/google/index.js | 2 +- server/services/agi/scripts/index.js | 2 +- server/services/agi/scripts/sestek/index.js | 2 +- server/services/agi/scripts/sestek/nda/index.js | 2 +- server/services/agi/scripts/tilde/asr/index.js | 2 +- server/services/agi/scripts/tilde/asr/lib/api.js | 2 +- server/services/agi/scripts/tilde/index.js | 2 +- server/services/agi/server.js | 2 +- server/services/agi/vertices.js | 2 +- server/services/ami/acw/index.js | 2 +- server/services/ami/ami.js | 2 +- server/services/ami/client.js | 2 +- server/services/ami/dialer/action.js | 2 +- server/services/ami/dialer/agentComplete.js | 2 +- server/services/ami/dialer/final.js | 2 +- server/services/ami/dialer/hangup.js | 2 +- server/services/ami/dialer/history.js | 2 +- server/services/ami/dialer/index.js | 2 +- server/services/ami/dialer/queueCallerAbandon.js | 2 +- server/services/ami/fax/action.js | 2 +- server/services/ami/fax/index.js | 2 +- server/services/ami/fax/rpcDb.js | 2 +- server/services/ami/fax/util/gs.js | 2 +- server/services/ami/fax/util/util.js | 2 +- server/services/ami/index.js | 2 +- server/services/ami/model/agent.js | 2 +- server/services/ami/model/campaign.js | 2 +- server/services/ami/model/channel.js | 2 +- server/services/ami/model/deskAccount.js | 2 +- server/services/ami/model/dynamics365Account.js | 2 +- server/services/ami/model/faxAccount.js | 2 +- server/services/ami/model/freshdeskAccount.js | 2 +- server/services/ami/model/freshsalesAccount.js | 2 +- server/services/ami/model/queueReport.js | 2 +- server/services/ami/model/salesforceAccount.js | 2 +- server/services/ami/model/servicenowAccount.js | 2 +- server/services/ami/model/sugarcrmAccount.js | 2 +- server/services/ami/model/telephone.js | 2 +- server/services/ami/model/template.js | 2 +- server/services/ami/model/trigger.js | 2 +- server/services/ami/model/trunk.js | 2 +- server/services/ami/model/voiceExtension.js | 2 +- server/services/ami/model/voiceQueue.js | 2 +- server/services/ami/model/vtigerAccount.js | 2 +- server/services/ami/model/zendeskAccount.js | 2 +- server/services/ami/model/zohoAccount.js | 2 +- server/services/ami/preview/action.js | 2 +- server/services/ami/preview/index.js | 2 +- server/services/ami/preview/rpcDb.js | 2 +- server/services/ami/preview/util/util.js | 2 +- server/services/ami/properties.js | 2 +- server/services/ami/realtime/index.js | 2 +- server/services/ami/report/index.js | 2 +- server/services/ami/report/userReport.js | 2 +- server/services/ami/report/voiceAgentReport.js | 2 +- server/services/ami/report/voiceCallReport.js | 2 +- server/services/ami/report/voiceDialReport.js | 2 +- server/services/ami/report/voiceQueueReport.js | 2 +- server/services/ami/rpc/agentReportPreview.js | 2 +- server/services/ami/rpc/attachment.js | 2 +- server/services/ami/rpc/campaign.js | 2 +- server/services/ami/rpc/cmContact.js | 2 +- server/services/ami/rpc/cmHopper.js | 2 +- server/services/ami/rpc/cmHopperBlack.js | 2 +- server/services/ami/rpc/cmHopperFinal.js | 2 +- server/services/ami/rpc/cmHopperHistory.js | 2 +- server/services/ami/rpc/faxAccount.js | 2 +- server/services/ami/rpc/faxMessage.js | 2 +- server/services/ami/rpc/integrations/desk.js | 2 +- .../services/ami/rpc/integrations/dynamics365.js | 2 +- server/services/ami/rpc/integrations/freshdesk.js | 2 +- server/services/ami/rpc/integrations/freshsales.js | 2 +- server/services/ami/rpc/integrations/salesforce.js | 2 +- server/services/ami/rpc/integrations/servicenow.js | 2 +- server/services/ami/rpc/integrations/sugarcrm.js | 2 +- server/services/ami/rpc/integrations/vtiger.js | 2 +- server/services/ami/rpc/integrations/zendesk.js | 2 +- server/services/ami/rpc/integrations/zoho.js | 2 +- server/services/ami/rpc/memberReport.js | 2 +- server/services/ami/rpc/template.js | 2 +- server/services/ami/rpc/trigger.js | 2 +- server/services/ami/rpc/trunk.js | 2 +- server/services/ami/rpc/user.js | 2 +- server/services/ami/rpc/voiceAgentReport.js | 2 +- server/services/ami/rpc/voiceCallReport.js | 2 +- server/services/ami/rpc/voiceDialReport.js | 2 +- server/services/ami/rpc/voiceExtension.js | 2 +- server/services/ami/rpc/voiceQueue.js | 2 +- server/services/ami/rpc/voiceQueueReport.js | 2 +- server/services/ami/rpc/voiceQueueRt.js | 2 +- server/services/ami/rpc/voiceRecording.js | 2 +- server/services/ami/rpc/voiceTransferReport.js | 2 +- server/services/ami/server/index.js | 2 +- server/services/ami/trigger/cmContact/index.js | 2 +- server/services/ami/trigger/index.js | 2 +- server/services/ami/trigger/integration/desk.js | 2 +- .../ami/trigger/integration/dynamics365.js | 2 +- .../services/ami/trigger/integration/freshdesk.js | 2 +- .../services/ami/trigger/integration/freshsales.js | 2 +- server/services/ami/trigger/integration/index.js | 2 +- .../services/ami/trigger/integration/salesforce.js | 2 +- .../services/ami/trigger/integration/servicenow.js | 2 +- .../services/ami/trigger/integration/sugarcrm.js | 2 +- server/services/ami/trigger/integration/util.js | 2 +- server/services/ami/trigger/integration/vtiger.js | 2 +- server/services/ami/trigger/integration/zendesk.js | 2 +- server/services/ami/trigger/integration/zoho.js | 2 +- server/services/ami/trigger/script/index.js | 2 +- server/services/ami/trigger/urlforward/index.js | 2 +- server/services/email/client.js | 2 +- server/services/email/index.js | 2 +- server/services/email/lib/email.js | 2 +- server/services/email/lib/imap.js | 2 +- server/services/email/lib/smtp.js | 2 +- server/services/email/lib/utils.js | 2 +- server/services/email/model/mailAccount.js | 2 +- server/services/email/realtime/index.js | 2 +- server/services/email/rpc/mailAccount.js | 2 +- server/services/email/server/index.js | 2 +- server/services/express/index.js | 2 +- server/services/routing/client.js | 2 +- server/services/routing/index.js | 2 +- server/services/routing/lib/rule-engine.js | 2 +- server/services/routing/mailRpc/index.js | 2 +- server/services/routing/model/agent.js | 2 +- server/services/routing/model/chatQueue.js | 2 +- server/services/routing/model/faxQueue.js | 2 +- server/services/routing/model/interval.js | 2 +- server/services/routing/model/mailQueue.js | 2 +- server/services/routing/model/openchannelQueue.js | 2 +- server/services/routing/model/smsQueue.js | 2 +- server/services/routing/model/whatsappQueue.js | 2 +- server/services/routing/realtime/index.js | 2 +- server/services/routing/rpc/chatInteraction.js | 2 +- server/services/routing/rpc/chatMessage.js | 2 +- server/services/routing/rpc/chatQueue.js | 2 +- server/services/routing/rpc/chatQueueReport.js | 2 +- server/services/routing/rpc/faxInteraction.js | 2 +- server/services/routing/rpc/faxMessage.js | 2 +- server/services/routing/rpc/faxQueue.js | 2 +- server/services/routing/rpc/faxQueueReport.js | 2 +- server/services/routing/rpc/interval.js | 2 +- server/services/routing/rpc/mailInteraction.js | 2 +- server/services/routing/rpc/mailMessage.js | 2 +- server/services/routing/rpc/mailQueue.js | 2 +- server/services/routing/rpc/mailQueueReport.js | 2 +- .../services/routing/rpc/openchannelInteraction.js | 2 +- server/services/routing/rpc/openchannelMessage.js | 2 +- server/services/routing/rpc/openchannelQueue.js | 2 +- .../services/routing/rpc/openchannelQueueReport.js | 2 +- server/services/routing/rpc/smsInteraction.js | 2 +- server/services/routing/rpc/smsMessage.js | 2 +- server/services/routing/rpc/smsQueue.js | 2 +- server/services/routing/rpc/smsQueueReport.js | 2 +- server/services/routing/rpc/user.js | 2 +- server/services/routing/rpc/whatsappInteraction.js | 2 +- server/services/routing/rpc/whatsappMessage.js | 2 +- server/services/routing/rpc/whatsappQueue.js | 2 +- server/services/routing/rpc/whatsappQueueReport.js | 2 +- .../services/routing/server/applications/agent.js | 2 +- .../routing/server/applications/amazonlex.js | 2 +- .../routing/server/applications/autoreply.js | 2 +- .../services/routing/server/applications/close.js | 2 +- .../routing/server/applications/dialogflow.js | 2 +- .../routing/server/applications/dialogflowV2.js | 2 +- .../services/routing/server/applications/gotoif.js | 2 +- .../services/routing/server/applications/gotop.js | 2 +- .../routing/server/applications/message.js | 2 +- .../services/routing/server/applications/noop.js | 2 +- .../services/routing/server/applications/queue.js | 2 +- .../routing/server/applications/strategy/agent.js | 2 +- .../server/applications/strategy/beepall.js | 2 +- .../routing/server/applications/strategy/index.js | 2 +- .../server/applications/strategy/rrmemory.js | 2 +- .../routing/server/applications/strategy/util.js | 2 +- .../services/routing/server/applications/system.js | 2 +- server/services/routing/server/applications/tag.js | 2 +- .../services/routing/server/applications/utils.js | 2 +- server/services/routing/server/index.js | 2 +- server/services/routing/server/interval.js | 2 +- server/services/xdr/agents.controller.js | 2 +- server/services/xdr/calls.controller.js | 2 +- server/services/xdr/core.controller.js | 2 +- server/services/xdr/dials.controller.js | 2 +- server/services/xdr/index.js | 2 +- server/services/xdr/members.controller.js | 2 +- server/services/xdr/queues.controller.js | 2 +- server/services/xdr/recordings.controller.js | 2 +- server/services/xdr/transfers.controller.js | 2 +- server/services/xdr/utils.js | 2 +- 1179 files changed, 1919 insertions(+), 1961 deletions(-) create mode 100644 public/scripts/app.8ca158ef.js delete mode 100644 public/scripts/app.c08817b3.js create mode 100644 public/styles/app.e8671577.css delete mode 100644 public/styles/app.f799a460.css diff --git a/apidoc/api_data.js b/apidoc/api_data.js index 6c4c071..2c8df39 100644 --- a/apidoc/api_data.js +++ b/apidoc/api_data.js @@ -1301,12 +1301,12 @@ define({ "api": [ }, { "type": "post", - "url": "/api/auth/local", + "url": "/api/auth/google", "title": "Creates a new User token", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/auth/local -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", + "content": "curl https://{domain}/api/auth/google -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], @@ -1334,17 +1334,17 @@ define({ "api": [ }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/authLocal/index.js", + "filename": "server/api/authGoogle/index.js", "groupTitle": "Authentication" }, { "type": "post", - "url": "/api/auth/google", + "url": "/api/auth/local", "title": "Creates a new User token", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/auth/google -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", + "content": "curl https://{domain}/api/auth/local -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], @@ -1372,7 +1372,7 @@ define({ "api": [ }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/authGoogle/index.js", + "filename": "server/api/authLocal/index.js", "groupTitle": "Authentication" }, { @@ -2434,6 +2434,24 @@ define({ "api": [ "groupTitle": "Chat_Interactions" }, { + "type": "put", + "url": "/api/chat/interactions/{id}/close", + "title": "Close Interaction", + "examples": [ + { + "title": "Example usage:", + "content": "curl https://{domain}/api/chat/interactions/{id}/close -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", + "type": "json" + } + ], + "name": "addMessage", + "group": "Chat_Interactions", + "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", + "version": "0.0.0", + "filename": "server/api/chatInteraction/index.js", + "groupTitle": "Chat_Interactions" + }, + { "type": "post", "url": "/api/chat/interactions/{id}/messages", "title": "Creates new messages", @@ -2511,24 +2529,6 @@ define({ "api": [ "groupTitle": "Chat_Interactions" }, { - "type": "put", - "url": "/api/chat/interactions/{id}/close", - "title": "Close Interaction", - "examples": [ - { - "title": "Example usage:", - "content": "curl https://{domain}/api/chat/interactions/{id}/close -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", - "type": "json" - } - ], - "name": "addMessage", - "group": "Chat_Interactions", - "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", - "version": "0.0.0", - "filename": "server/api/chatInteraction/index.js", - "groupTitle": "Chat_Interactions" - }, - { "type": "post", "url": "/api/chat/interactions/{id}/attachment_upload", "title": "Add attachment", @@ -9803,12 +9803,12 @@ define({ "api": [ }, { "type": "post", - "url": "/api/fax/accounts/addaccountapplications", - "title": "Creates new account and applications", + "url": "/api/fax/accounts/{id}/applications", + "title": "Creates new applications", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/fax/accounts/addaccountapplications -d '[{\"name\": \"name\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", + "content": "curl https://{domain}/api/fax/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], @@ -9862,12 +9862,12 @@ define({ "api": [ }, { "type": "post", - "url": "/api/fax/accounts/{id}/applications", - "title": "Creates new applications", + "url": "/api/fax/accounts/addaccountapplications", + "title": "Creates new account and applications", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/fax/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", + "content": "curl https://{domain}/api/fax/accounts/addaccountapplications -d '[{\"name\": \"name\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], @@ -19362,37 +19362,37 @@ define({ "api": [ "groupTitle": "Plugins" }, { - "type": "post", + "type": "get", "url": "/api/plugins/webhook?hostname={host}&port={port}&encoding={encoding}&json={json}&path={path}", "title": "Redirect a plugin request to the specified path", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/plugins/webhook?port={port}&path={path} -H 'Content-Type: application/json' -X POST", + "content": "curl https://{domain}/api/plugins/webhook?port={port}&path={path} -v -u {name}:{password} -X GET", "type": "json" } ], "name": "webhookPlugin", "group": "Plugins", - "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", + "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/plugin/index.js", "groupTitle": "Plugins" }, { - "type": "get", + "type": "post", "url": "/api/plugins/webhook?hostname={host}&port={port}&encoding={encoding}&json={json}&path={path}", "title": "Redirect a plugin request to the specified path", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/plugins/webhook?port={port}&path={path} -v -u {name}:{password} -X GET", + "content": "curl https://{domain}/api/plugins/webhook?port={port}&path={path} -H 'Content-Type: application/json' -X POST", "type": "json" } ], "name": "webhookPlugin", "group": "Plugins", - "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", + "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/plugin/index.js", "groupTitle": "Plugins" @@ -19869,36 +19869,36 @@ define({ "api": [ }, { "type": "get", - "url": "/api/rpc/voice/queues", - "title": "Gets a list of RTVoiceQueues", + "url": "/api/rpc/outbound", + "title": "Gets a list of RTOutbound", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}", + "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueues", "group": "RPC_Realtime", - "description": "

Motion will return a list of realtime voice queues parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", + "description": "

Motion will return a list of realtime outbound parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", - "url": "/api/rpc/outbound", - "title": "Gets a list of RTOutbound", + "url": "/api/rpc/voice/queues", + "title": "Gets a list of RTVoiceQueues", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}", + "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueues", "group": "RPC_Realtime", - "description": "

Motion will return a list of realtime outbound parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", + "description": "

Motion will return a list of realtime voice queues parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" @@ -22742,49 +22742,49 @@ define({ "api": [ "groupTitle": "Sms_Accounts" }, { - "type": "post", + "type": "get", "url": "/api/sms/accounts/{id}/status", - "title": "Receive message status", + "title": "Receive message status as get request", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X POST", + "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X GET", "type": "json" } ], "name": "statusMessage", "group": "Sms_Accounts", - "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", + "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { - "type": "get", - "url": "/api/sms/accounts/{id}/status", - "title": "Receive message status as get request", + "type": "post", + "url": "/api/sms/messages/{id}/status", + "title": "Receive message status", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X GET", + "content": "curl https://{domain}/api/sms/messages/{id}/status \\ \n -H 'Content-Type: application/json' -v -X POST", "type": "json" } ], "name": "statusMessage", "group": "Sms_Accounts", - "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", + "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/smsAccount/index.js", + "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", - "url": "/api/sms/messages/{id}/status", + "url": "/api/sms/accounts/{id}/status", "title": "Receive message status", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/sms/messages/{id}/status \\ \n -H 'Content-Type: application/json' -v -X POST", + "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X POST", "type": "json" } ], @@ -22792,7 +22792,7 @@ define({ "api": [ "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/smsMessage/index.js", + "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { @@ -26124,12 +26124,12 @@ define({ "api": [ }, { "type": "delete", - "url": "/api/sms/queues/{id}/teams", + "url": "/api/whatsapp/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/sms/queues/{id}/teams -v -u {name}:{password} -X DELETE", + "content": "curl https://{domain}/api/whatsapp/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], @@ -26137,17 +26137,17 @@ define({ "api": [ "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/smsQueue/index.js", + "filename": "server/api/whatsappQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", - "url": "/api/voice/queues/{id}/teams", + "url": "/api/openchannel/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE", + "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], @@ -26155,17 +26155,17 @@ define({ "api": [ "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/voiceQueue/index.js", + "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", - "url": "/api/chat/queues/{id}/teams", + "url": "/api/voice/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE", + "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], @@ -26173,17 +26173,17 @@ define({ "api": [ "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/chatQueue/index.js", + "filename": "server/api/voiceQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", - "url": "/api/whatsapp/queues/{id}/teams", + "url": "/api/sms/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/whatsapp/queues/{id}/teams -v -u {name}:{password} -X DELETE", + "content": "curl https://{domain}/api/sms/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], @@ -26191,17 +26191,17 @@ define({ "api": [ "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/whatsappQueue/index.js", + "filename": "server/api/smsQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", - "url": "/api/fax/queues/{id}/teams", + "url": "/api/chat/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE", + "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], @@ -26209,7 +26209,7 @@ define({ "api": [ "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/faxQueue/index.js", + "filename": "server/api/chatQueue/index.js", "groupTitle": "Teams" }, { @@ -26232,12 +26232,12 @@ define({ "api": [ }, { "type": "delete", - "url": "/api/openchannel/queues/{id}/teams", + "url": "/api/fax/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE", + "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], @@ -26245,7 +26245,7 @@ define({ "api": [ "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/openchannelQueue/index.js", + "filename": "server/api/faxQueue/index.js", "groupTitle": "Teams" }, { @@ -29648,24 +29648,6 @@ define({ "api": [ "groupTitle": "Users" }, { - "type": "get", - "url": "/api/users/presence", - "title": "Gets agent presence", - "examples": [ - { - "title": "Example usage:", - "content": "curl https://{domain}/api/users/presence -v -u {name}:{password} -X GET", - "type": "json" - } - ], - "name": "getPresence", - "group": "Users", - "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", - "version": "0.0.0", - "filename": "server/api/user/index.js", - "groupTitle": "Users" - }, - { "type": "put", "url": "/api/users/{id}", "title": "Update an existing User", @@ -34063,12 +34045,12 @@ define({ "api": [ }, { "type": "post", - "url": "/api/webbar/hold", - "title": "hold webrtc call", + "url": "/api/webbar/unhold", + "title": "unhold webrtc call", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/webbar/hold -d '{\"sessionId\": \"\", \"userId\": 54}' \\\n -H \"Content-Type: application/json\" -X POST", + "content": "curl https://{domain}/api/webbar/unhold -d '{\"sessionId\": \"\", \"userId\": 54}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], @@ -34080,7 +34062,7 @@ define({ "api": [ { "group": "Body", "type": "String", - "optional": true, + "optional": false, "field": "sessionId", "description": "" }, @@ -34101,12 +34083,12 @@ define({ "api": [ }, { "type": "post", - "url": "/api/webbar/unhold", - "title": "unhold webrtc call", + "url": "/api/webbar/hold", + "title": "hold webrtc call", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/webbar/unhold -d '{\"sessionId\": \"\", \"userId\": 54}' \\\n -H \"Content-Type: application/json\" -X POST", + "content": "curl https://{domain}/api/webbar/hold -d '{\"sessionId\": \"\", \"userId\": 54}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], @@ -34118,7 +34100,7 @@ define({ "api": [ { "group": "Body", "type": "String", - "optional": false, + "optional": true, "field": "sessionId", "description": "" }, diff --git a/apidoc/api_data.json b/apidoc/api_data.json index df62e2b..24626b5 100644 --- a/apidoc/api_data.json +++ b/apidoc/api_data.json @@ -1301,12 +1301,12 @@ }, { "type": "post", - "url": "/api/auth/local", + "url": "/api/auth/google", "title": "Creates a new User token", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/auth/local -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", + "content": "curl https://{domain}/api/auth/google -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], @@ -1334,17 +1334,17 @@ }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/authLocal/index.js", + "filename": "server/api/authGoogle/index.js", "groupTitle": "Authentication" }, { "type": "post", - "url": "/api/auth/google", + "url": "/api/auth/local", "title": "Creates a new User token", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/auth/google -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", + "content": "curl https://{domain}/api/auth/local -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], @@ -1372,7 +1372,7 @@ }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/authGoogle/index.js", + "filename": "server/api/authLocal/index.js", "groupTitle": "Authentication" }, { @@ -2434,6 +2434,24 @@ "groupTitle": "Chat_Interactions" }, { + "type": "put", + "url": "/api/chat/interactions/{id}/close", + "title": "Close Interaction", + "examples": [ + { + "title": "Example usage:", + "content": "curl https://{domain}/api/chat/interactions/{id}/close -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", + "type": "json" + } + ], + "name": "addMessage", + "group": "Chat_Interactions", + "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", + "version": "0.0.0", + "filename": "server/api/chatInteraction/index.js", + "groupTitle": "Chat_Interactions" + }, + { "type": "post", "url": "/api/chat/interactions/{id}/messages", "title": "Creates new messages", @@ -2511,24 +2529,6 @@ "groupTitle": "Chat_Interactions" }, { - "type": "put", - "url": "/api/chat/interactions/{id}/close", - "title": "Close Interaction", - "examples": [ - { - "title": "Example usage:", - "content": "curl https://{domain}/api/chat/interactions/{id}/close -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", - "type": "json" - } - ], - "name": "addMessage", - "group": "Chat_Interactions", - "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", - "version": "0.0.0", - "filename": "server/api/chatInteraction/index.js", - "groupTitle": "Chat_Interactions" - }, - { "type": "post", "url": "/api/chat/interactions/{id}/attachment_upload", "title": "Add attachment", @@ -9803,12 +9803,12 @@ }, { "type": "post", - "url": "/api/fax/accounts/addaccountapplications", - "title": "Creates new account and applications", + "url": "/api/fax/accounts/{id}/applications", + "title": "Creates new applications", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/fax/accounts/addaccountapplications -d '[{\"name\": \"name\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", + "content": "curl https://{domain}/api/fax/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], @@ -9862,12 +9862,12 @@ }, { "type": "post", - "url": "/api/fax/accounts/{id}/applications", - "title": "Creates new applications", + "url": "/api/fax/accounts/addaccountapplications", + "title": "Creates new account and applications", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/fax/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", + "content": "curl https://{domain}/api/fax/accounts/addaccountapplications -d '[{\"name\": \"name\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], @@ -19362,37 +19362,37 @@ "groupTitle": "Plugins" }, { - "type": "post", + "type": "get", "url": "/api/plugins/webhook?hostname={host}&port={port}&encoding={encoding}&json={json}&path={path}", "title": "Redirect a plugin request to the specified path", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/plugins/webhook?port={port}&path={path} -H 'Content-Type: application/json' -X POST", + "content": "curl https://{domain}/api/plugins/webhook?port={port}&path={path} -v -u {name}:{password} -X GET", "type": "json" } ], "name": "webhookPlugin", "group": "Plugins", - "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", + "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/plugin/index.js", "groupTitle": "Plugins" }, { - "type": "get", + "type": "post", "url": "/api/plugins/webhook?hostname={host}&port={port}&encoding={encoding}&json={json}&path={path}", "title": "Redirect a plugin request to the specified path", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/plugins/webhook?port={port}&path={path} -v -u {name}:{password} -X GET", + "content": "curl https://{domain}/api/plugins/webhook?port={port}&path={path} -H 'Content-Type: application/json' -X POST", "type": "json" } ], "name": "webhookPlugin", "group": "Plugins", - "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", + "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/plugin/index.js", "groupTitle": "Plugins" @@ -19869,36 +19869,36 @@ }, { "type": "get", - "url": "/api/rpc/voice/queues", - "title": "Gets a list of RTVoiceQueues", + "url": "/api/rpc/outbound", + "title": "Gets a list of RTOutbound", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}", + "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueues", "group": "RPC_Realtime", - "description": "

Motion will return a list of realtime voice queues parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", + "description": "

Motion will return a list of realtime outbound parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", - "url": "/api/rpc/outbound", - "title": "Gets a list of RTOutbound", + "url": "/api/rpc/voice/queues", + "title": "Gets a list of RTVoiceQueues", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}", + "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueues", "group": "RPC_Realtime", - "description": "

Motion will return a list of realtime outbound parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", + "description": "

Motion will return a list of realtime voice queues parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" @@ -22742,49 +22742,49 @@ "groupTitle": "Sms_Accounts" }, { - "type": "post", + "type": "get", "url": "/api/sms/accounts/{id}/status", - "title": "Receive message status", + "title": "Receive message status as get request", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X POST", + "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X GET", "type": "json" } ], "name": "statusMessage", "group": "Sms_Accounts", - "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", + "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { - "type": "get", - "url": "/api/sms/accounts/{id}/status", - "title": "Receive message status as get request", + "type": "post", + "url": "/api/sms/messages/{id}/status", + "title": "Receive message status", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X GET", + "content": "curl https://{domain}/api/sms/messages/{id}/status \\ \n -H 'Content-Type: application/json' -v -X POST", "type": "json" } ], "name": "statusMessage", "group": "Sms_Accounts", - "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", + "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/smsAccount/index.js", + "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", - "url": "/api/sms/messages/{id}/status", + "url": "/api/sms/accounts/{id}/status", "title": "Receive message status", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/sms/messages/{id}/status \\ \n -H 'Content-Type: application/json' -v -X POST", + "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X POST", "type": "json" } ], @@ -22792,7 +22792,7 @@ "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/smsMessage/index.js", + "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { @@ -26124,12 +26124,12 @@ }, { "type": "delete", - "url": "/api/sms/queues/{id}/teams", + "url": "/api/whatsapp/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/sms/queues/{id}/teams -v -u {name}:{password} -X DELETE", + "content": "curl https://{domain}/api/whatsapp/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], @@ -26137,17 +26137,17 @@ "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/smsQueue/index.js", + "filename": "server/api/whatsappQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", - "url": "/api/voice/queues/{id}/teams", + "url": "/api/openchannel/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE", + "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], @@ -26155,17 +26155,17 @@ "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/voiceQueue/index.js", + "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", - "url": "/api/chat/queues/{id}/teams", + "url": "/api/voice/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE", + "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], @@ -26173,17 +26173,17 @@ "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/chatQueue/index.js", + "filename": "server/api/voiceQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", - "url": "/api/whatsapp/queues/{id}/teams", + "url": "/api/sms/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/whatsapp/queues/{id}/teams -v -u {name}:{password} -X DELETE", + "content": "curl https://{domain}/api/sms/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], @@ -26191,17 +26191,17 @@ "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/whatsappQueue/index.js", + "filename": "server/api/smsQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", - "url": "/api/fax/queues/{id}/teams", + "url": "/api/chat/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE", + "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], @@ -26209,7 +26209,7 @@ "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/faxQueue/index.js", + "filename": "server/api/chatQueue/index.js", "groupTitle": "Teams" }, { @@ -26232,12 +26232,12 @@ }, { "type": "delete", - "url": "/api/openchannel/queues/{id}/teams", + "url": "/api/fax/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE", + "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], @@ -26245,7 +26245,7 @@ "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/openchannelQueue/index.js", + "filename": "server/api/faxQueue/index.js", "groupTitle": "Teams" }, { @@ -29648,24 +29648,6 @@ "groupTitle": "Users" }, { - "type": "get", - "url": "/api/users/presence", - "title": "Gets agent presence", - "examples": [ - { - "title": "Example usage:", - "content": "curl https://{domain}/api/users/presence -v -u {name}:{password} -X GET", - "type": "json" - } - ], - "name": "getPresence", - "group": "Users", - "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", - "version": "0.0.0", - "filename": "server/api/user/index.js", - "groupTitle": "Users" - }, - { "type": "put", "url": "/api/users/{id}", "title": "Update an existing User", @@ -34063,12 +34045,12 @@ }, { "type": "post", - "url": "/api/webbar/hold", - "title": "hold webrtc call", + "url": "/api/webbar/unhold", + "title": "unhold webrtc call", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/webbar/hold -d '{\"sessionId\": \"\", \"userId\": 54}' \\\n -H \"Content-Type: application/json\" -X POST", + "content": "curl https://{domain}/api/webbar/unhold -d '{\"sessionId\": \"\", \"userId\": 54}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], @@ -34080,7 +34062,7 @@ { "group": "Body", "type": "String", - "optional": true, + "optional": false, "field": "sessionId", "description": "" }, @@ -34101,12 +34083,12 @@ }, { "type": "post", - "url": "/api/webbar/unhold", - "title": "unhold webrtc call", + "url": "/api/webbar/hold", + "title": "hold webrtc call", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/webbar/unhold -d '{\"sessionId\": \"\", \"userId\": 54}' \\\n -H \"Content-Type: application/json\" -X POST", + "content": "curl https://{domain}/api/webbar/hold -d '{\"sessionId\": \"\", \"userId\": 54}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], @@ -34118,7 +34100,7 @@ { "group": "Body", "type": "String", - "optional": false, + "optional": true, "field": "sessionId", "description": "" }, diff --git a/apidoc/api_project.js b/apidoc/api_project.js index 0740f11..eab67c6 100644 --- a/apidoc/api_project.js +++ b/apidoc/api_project.js @@ -17,7 +17,7 @@ define({ "apidoc": "0.3.0", "generator": { "name": "apidoc", - "time": "2021-02-09T14:22:28.061Z", + "time": "2021-02-15T21:16:08.133Z", "url": "http://apidocjs.com", "version": "0.24.0" } diff --git a/apidoc/api_project.json b/apidoc/api_project.json index cd82942..c32049c 100644 --- a/apidoc/api_project.json +++ b/apidoc/api_project.json @@ -17,7 +17,7 @@ "apidoc": "0.3.0", "generator": { "name": "apidoc", - "time": "2021-02-09T14:22:28.061Z", + "time": "2021-02-15T21:16:08.133Z", "url": "http://apidocjs.com", "version": "0.24.0" } diff --git a/public/app/main/apps/callysquare/i18n/ar.json b/public/app/main/apps/callysquare/i18n/ar.json index dbb2c12..fd64890 100644 --- a/public/app/main/apps/callysquare/i18n/ar.json +++ b/public/app/main/apps/callysquare/i18n/ar.json @@ -108,7 +108,7 @@ "CC": " (john.doe@xcally.com ، jane.miller@xcally.com)يمكنك إضافة عناوين متعددة مفصولة بفواصل على سبيل المثال", "DSN": " DRIVER = MySQL ؛ الخادم = 127.0.0.1 ؛ UID = xcall ؛ PWD = كلمة المرور ؛ DATABASE = مثال قاعدة البيانات", "MAILBOX": "صندوق البريد ", - "MAX_TEXT_TTS": "الحد الأقصى المسموح به لعدد الأحرف هو 250", + "MAX_TEXT_TTS": "الحد الأقصى المسموح به لعدد الأحرف هو 200", "TO": " (john.doe@xcally.com ، jane.miller@xcally.com)يمكنك إضافة عناوين متعددة مفصولة بفواصل على سبيل المثال" }, "HIDDENDIGITSNUM": "رقم الخانات المخفية", diff --git a/public/app/main/apps/callysquare/i18n/cs.json b/public/app/main/apps/callysquare/i18n/cs.json index e3c22f3..a00b4f9 100644 --- a/public/app/main/apps/callysquare/i18n/cs.json +++ b/public/app/main/apps/callysquare/i18n/cs.json @@ -108,7 +108,7 @@ "CC": "You can add multiple addresses separated by commas (e.g. john.doe@xcally.com, jane.miller@xcally.com)", "DSN": "Example: DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion", "MAILBOX": "mailbox@context", - "MAX_TEXT_TTS": "Maximální počet podporovaných znaků je 250", + "MAX_TEXT_TTS": "Maximální počet podporovaných znaků je 200", "TO": "You can add multiple addresses separated by commas (e.g. john.doe@xcally.com, jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Hiddden Digits Number", diff --git a/public/app/main/apps/callysquare/i18n/da.json b/public/app/main/apps/callysquare/i18n/da.json index 95b2959..0db43dd 100644 --- a/public/app/main/apps/callysquare/i18n/da.json +++ b/public/app/main/apps/callysquare/i18n/da.json @@ -108,7 +108,7 @@ "CC": "Du kan tilføje flere adresser med komma (f.eks. john.doe@xcally.com, Jane.miller@xcally.com)", "DSN": "Eksempel: DRIVER=MySQL Server=127,0.;0,1;UID=installation;PWD=password; DATABASE=motion", "MAILBOX": "Postkasse@sammenhæng", - "MAX_TEXT_TTS": "Det maksimale antal understøttede tegn er 250", + "MAX_TEXT_TTS": "Det maksimale antal understøttede tegn er 200", "TO": "Du kan tilføje flere adresser med komma (f.eks. john.doe@xcally.com, Jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Hiddden Digits Number", diff --git a/public/app/main/apps/callysquare/i18n/de.json b/public/app/main/apps/callysquare/i18n/de.json index 7186b18..bc9e08b 100644 --- a/public/app/main/apps/callysquare/i18n/de.json +++ b/public/app/main/apps/callysquare/i18n/de.json @@ -108,7 +108,7 @@ "CC": "Sie können mehrere Adressen durch Kommas hinzufügen(z. b. John.doe@xcally.com, jane.miller@xcally.com)", "DSN": "\"Beispiel: DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion\",", "MAILBOX": "\"mailbox@context\"", - "MAX_TEXT_TTS": "Die maximal unterstützte Anzahl von Zeichen beträgt 250", + "MAX_TEXT_TTS": "Die maximal unterstützte Anzahl von Zeichen beträgt 200", "TO": "Sie können mehrere Adressen durch Kommas hinzufügen (z. b. John.doe@xcally.com, jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Hiddden Digits Number", diff --git a/public/app/main/apps/callysquare/i18n/en.json b/public/app/main/apps/callysquare/i18n/en.json index 68d6920..c52ce89 100644 --- a/public/app/main/apps/callysquare/i18n/en.json +++ b/public/app/main/apps/callysquare/i18n/en.json @@ -112,7 +112,7 @@ "CC": "You can add multiple addresses separated by commas (e.g. john.doe@xcally.com, jane.miller@xcally.com)", "DSN": "Example: DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion", "MAILBOX": "mailbox@context", - "MAX_TEXT_TTS": "The maximum number of characters supported is 250", + "MAX_TEXT_TTS": "The maximum number of characters supported is 200", "TO": "You can add multiple addresses separated by commas (e.g. john.doe@xcally.com, jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Hiddden Digits Number", diff --git a/public/app/main/apps/callysquare/i18n/es.json b/public/app/main/apps/callysquare/i18n/es.json index 0b8a5b9..8161bc3 100644 --- a/public/app/main/apps/callysquare/i18n/es.json +++ b/public/app/main/apps/callysquare/i18n/es.json @@ -108,7 +108,7 @@ "CC": "Puede agregar varias direcciones separadas por comas (por ejemplo, john.doe@xcally.com, jane.miller@xcally.com)", "DSN": "Ejemplo: DRIVER = MySQL; SERVER = 127.0.0.1; UID = xcall; PWD = contraseña; DATABASE = Motion", "MAILBOX": "buzón@contexto", - "MAX_TEXT_TTS": "El número máximo de caracteres admitidos es 250", + "MAX_TEXT_TTS": "El número máximo de caracteres admitidos es 200", "TO": "Puede agregar varias direcciones separadas por comas (por ejemplo, john.doe@xcally.com, jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Número de dígitos escondidos", diff --git a/public/app/main/apps/callysquare/i18n/et.json b/public/app/main/apps/callysquare/i18n/et.json index f222c13..cf76291 100644 --- a/public/app/main/apps/callysquare/i18n/et.json +++ b/public/app/main/apps/callysquare/i18n/et.json @@ -108,7 +108,7 @@ "CC": "You can add multiple addresses separated by commas (e.g. john.doe@xcally.com, jane.miller@xcally.com)", "DSN": "Example: DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion", "MAILBOX": "mailbox@context", - "MAX_TEXT_TTS": "Toetatavate tähemärkide maksimaalne arv on 250", + "MAX_TEXT_TTS": "Toetatavate tähemärkide maksimaalne arv on 200", "TO": "You can add multiple addresses separated by commas (e.g. john.doe@xcally.com, jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Hiddden Digits Number", diff --git a/public/app/main/apps/callysquare/i18n/fa.json b/public/app/main/apps/callysquare/i18n/fa.json index 0c9d62c..187f76e 100644 --- a/public/app/main/apps/callysquare/i18n/fa.json +++ b/public/app/main/apps/callysquare/i18n/fa.json @@ -108,7 +108,7 @@ "CC": "شما می توانید با استفاده از آدرس های چندگانه (مثلاً Commas John.doe@xcally.com، Jane.miller@xcally.com)", "DSN": "مثال: 31 دسامبر 2012 راننده=MySQL SERVER=127.0.0.1 31 دسامبر 2012 31 دسامبر 2012 xcall UID=PWD=رمز عبور پایگاه داده، حركت=31 دسامبر 2012", "MAILBOX": "Mailbox@متن", - "MAX_TEXT_TTS": "حداکثر تعداد نویسه های پشتیبانی شده 250 است", + "MAX_TEXT_TTS": "حداکثر تعداد نویسه های پشتیبانی شده 200 است", "TO": "شما می توانید با استفاده از آدرس های چندگانه (مثلاً Commas John.doe@xcally.com، Jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Hiddden Digits Number", diff --git a/public/app/main/apps/callysquare/i18n/fi.json b/public/app/main/apps/callysquare/i18n/fi.json index 4522460..42db6c3 100644 --- a/public/app/main/apps/callysquare/i18n/fi.json +++ b/public/app/main/apps/callysquare/i18n/fi.json @@ -108,7 +108,7 @@ "CC": "Voit lisätä useita osoitteisiin pilkkuja (esim. john.doe@xcally.com, jane.miller@xcally.com)", "DSN": "Esimerkki: kuljettajan=MySQL;SERVER=127,0.0.1;UID=xcall;PWD=salasana;DATABASE=liike", "MAILBOX": "Postilaatikko@yhteydessä", - "MAX_TEXT_TTS": "Tuettujen merkkien enimmäismäärä on 250", + "MAX_TEXT_TTS": "Tuettujen merkkien enimmäismäärä on 200", "TO": "Voit lisätä useita osoitteisiin pilkkuja (esim. john.doe@xcally.com, jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Hiddden Digits Number", diff --git a/public/app/main/apps/callysquare/i18n/fr.json b/public/app/main/apps/callysquare/i18n/fr.json index 62da1e3..366a5c9 100644 --- a/public/app/main/apps/callysquare/i18n/fr.json +++ b/public/app/main/apps/callysquare/i18n/fr.json @@ -108,7 +108,7 @@ "CC": "Vous pouvez ajouter plusieurs adresses par des virgules (p. ex., jane.miller@xcally.com) john.doe@xcally.com", "DSN": "Exemple : DRIVER =MySQL;Server =127.0.0.1;UID =xcall;pwd =mot de passe;Database =motion", "MAILBOX": "Contexte@boîte aux lettres", - "MAX_TEXT_TTS": "Le nombre maximum de caractères pris en charge est de 250", + "MAX_TEXT_TTS": "Le nombre maximum de caractères pris en charge est de 200", "TO": "Vous pouvez ajouter plusieurs adresses par des virgules (p. ex., jane.miller@xcally.com) john.doe@xcally.com" }, "HIDDENDIGITSNUM": "Hiddden Digits Number", diff --git a/public/app/main/apps/callysquare/i18n/he.json b/public/app/main/apps/callysquare/i18n/he.json index 7009e9b..d8c7b55 100644 --- a/public/app/main/apps/callysquare/i18n/he.json +++ b/public/app/main/apps/callysquare/i18n/he.json @@ -108,7 +108,7 @@ "CC": "ניתן להוסיף מספר כתובות ולהפריד ביניהן בפסיקים (לדוגמה, john.doe@xcally.com, jane.miller@xcally.com)", "DSN": "דוגמה: DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion", "MAILBOX": "mailbox@context", - "MAX_TEXT_TTS": "המספר המרבי של תווים הנתמכים הוא 250", + "MAX_TEXT_TTS": "המספר המרבי של תווים הנתמכים הוא 200", "TO": "ניתן להוסיף מספר כתובות ולהפריד ביניהן בפסיקים (לדוגמה, john.doe@xcally.com, jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "מספר ספרות מוסתרות", diff --git a/public/app/main/apps/callysquare/i18n/hi.json b/public/app/main/apps/callysquare/i18n/hi.json index 1fd2483..3d02969 100644 --- a/public/app/main/apps/callysquare/i18n/hi.json +++ b/public/app/main/apps/callysquare/i18n/hi.json @@ -108,7 +108,7 @@ "CC": "आप एकाधिक पते का उपयोग करते हुए जोड़ सकते हैं (उदाहरण के लिए, अल्पविराम john.doe@xcally.com jane.miller@xcally.com)", "DSN": "उदाहरण के लिए: चालक=MySQL वंशवृक्ष सर्वर 0.1.127.0 UID=xcall वंशवृक्ष वंशवृक्ष=लोकनिर्माण=पासवर्ड वंशवृक्ष डाटाबेस=प्रस्ताव", "MAILBOX": "मेलबॉक्स@वर्ल्ड कप के संदर्भ", - "MAX_TEXT_TTS": "समर्थित वर्णों की अधिकतम संख्या 250 है", + "MAX_TEXT_TTS": "समर्थित वर्णों की अधिकतम संख्या 200 है", "TO": "आप एकाधिक पते का उपयोग करते हुए जोड़ सकते हैं (उदाहरण के लिए, अल्पविराम john.doe@xcally.com jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Hiddden Digits Number", diff --git a/public/app/main/apps/callysquare/i18n/id.json b/public/app/main/apps/callysquare/i18n/id.json index 7e0a39c..6fe68db 100644 --- a/public/app/main/apps/callysquare/i18n/id.json +++ b/public/app/main/apps/callysquare/i18n/id.json @@ -108,7 +108,7 @@ "CC": "Anda dapat menambahkan beberapa alamat yang dipisahkan oleh koma (mis. John.doe@xcally.com, jane.miller@xcally.com)", "DSN": "Contoh: DRIVER = MySQL; SERVER = 127.0.0.1; UID = xcall; PWD = kata sandi; DATABASE = gerak", "MAILBOX": "kotak surat @ konteks", - "MAX_TEXT_TTS": "Jumlah karakter maksimum yang didukung adalah 250", + "MAX_TEXT_TTS": "Jumlah karakter maksimum yang didukung adalah 200", "TO": "Anda dapat menambahkan beberapa alamat yang dipisahkan oleh koma (mis. John.doe@xcally.com, jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Nomor Hiddden Digits", diff --git a/public/app/main/apps/callysquare/i18n/it.json b/public/app/main/apps/callysquare/i18n/it.json index ac5e70b..d1dc96e 100644 --- a/public/app/main/apps/callysquare/i18n/it.json +++ b/public/app/main/apps/callysquare/i18n/it.json @@ -108,7 +108,7 @@ "CC": "E' possibile aggiungere indirizzi multipli usando le virgole (es. john.doe@xcally.com, jane.miller@xcally.com)", "DSN": "Esempio:DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion", "MAILBOX": "Mailbox@context", - "MAX_TEXT_TTS": "Numero massimo di caratteri supportati è 250", + "MAX_TEXT_TTS": "Numero massimo di caratteri supportati è 200", "TO": "E' possibile aggiungere indirizzi multipli usando le virgole (es. john.doe@xcally.com, jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Numero Digits nascosti", diff --git a/public/app/main/apps/callysquare/i18n/ja.json b/public/app/main/apps/callysquare/i18n/ja.json index 045e0ea..e246813 100644 --- a/public/app/main/apps/callysquare/i18n/ja.json +++ b/public/app/main/apps/callysquare/i18n/ja.json @@ -108,7 +108,7 @@ "CC": "コンマで区切って複数の住所を追加することができます(例:john.doe@xcally.com、jane.miller@xcally.com)", "DSN": "例:DRIVER = MySQL; SERVER = 127.0.0.1; UID = xcall; PWD =パスワード; DATABASE =モーション", "MAILBOX": "メールボックス@コンテキスト", - "MAX_TEXT_TTS": "サポートされる最大文字数は250です", + "MAX_TEXT_TTS": "サポートされる最大文字数は200です", "TO": "コンマで区切って複数の住所を追加することができます(例:john.doe@xcally.com、jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "隠し桁数", diff --git a/public/app/main/apps/callysquare/i18n/ko.json b/public/app/main/apps/callysquare/i18n/ko.json index 6027806..a5f3d06 100644 --- a/public/app/main/apps/callysquare/i18n/ko.json +++ b/public/app/main/apps/callysquare/i18n/ko.json @@ -108,7 +108,7 @@ "CC": "CC", "DSN": "DSN", "MAILBOX": "사서함", - "MAX_TEXT_TTS": "지원되는 최대 문자 수는 250 자입니다.", + "MAX_TEXT_TTS": "지원되는 최대 문자 수는 200 자입니다.", "TO": "TO" }, "HIDDENDIGITSNUM": "숨겨진 번호", diff --git a/public/app/main/apps/callysquare/i18n/lt.json b/public/app/main/apps/callysquare/i18n/lt.json index 8a48cd0..94e308f 100644 --- a/public/app/main/apps/callysquare/i18n/lt.json +++ b/public/app/main/apps/callysquare/i18n/lt.json @@ -108,7 +108,7 @@ "CC": "Galite pridėti kelis adresus, atskirtus kableliais (e.g. john.doe@xcally.com, jane.miller@xcally.com)", "DSN": "Pavyzdys: DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion", "MAILBOX": "pašto dėžutė@kontekstas", - "MAX_TEXT_TTS": "Didžiausias palaikomų simbolių skaičius yra 250", + "MAX_TEXT_TTS": "Didžiausias palaikomų simbolių skaičius yra 200", "TO": "Galite pridėti kelis adresus, atskirtus kableliais (e.g. john.doe@xcally.com, jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Paslėptų skaitmenų skaičius", diff --git a/public/app/main/apps/callysquare/i18n/lv.json b/public/app/main/apps/callysquare/i18n/lv.json index 3aef57c..c609903 100644 --- a/public/app/main/apps/callysquare/i18n/lv.json +++ b/public/app/main/apps/callysquare/i18n/lv.json @@ -108,7 +108,7 @@ "CC": "Varat pievienot vairākas adreses, kas ir atdalītas ar komatiem (piemēram, john.doe@xcally.com, jane.miller@xcally.com)", "DSN": "Piemērs: DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion", "MAILBOX": "mailbox@context", - "MAX_TEXT_TTS": "Maksimālais atbalstīto rakstzīmju skaits ir 250", + "MAX_TEXT_TTS": "Maksimālais atbalstīto rakstzīmju skaits ir 200", "TO": "Varat pievienot vairākas adreses, kas ir atdalītas ar komatiem (piemēram, john.doe@xcally.com, jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Slēpto ciparu skaitlis", diff --git a/public/app/main/apps/callysquare/i18n/nl.json b/public/app/main/apps/callysquare/i18n/nl.json index 2cb63b4..5eb16f7 100644 --- a/public/app/main/apps/callysquare/i18n/nl.json +++ b/public/app/main/apps/callysquare/i18n/nl.json @@ -108,7 +108,7 @@ "CC": "U kunt meerdere adressen met een komma (bijvoorbeeld John.doe@xcally.com, jane.miller@xcally.com)", "DSN": "Voorbeeld: DRIVER=MySQL;SERVER=127.0.0.1;uid=xcall;pwd=wachtwoord;DATABASE=motion", "MAILBOX": "Mailbox@context", - "MAX_TEXT_TTS": "Het maximale aantal ondersteunde tekens is 250", + "MAX_TEXT_TTS": "Het maximale aantal ondersteunde tekens is 200", "TO": "U kunt meerdere adressen met een komma (bijvoorbeeld John.doe@xcally.com, jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Hiddden Digits Number", diff --git a/public/app/main/apps/callysquare/i18n/no.json b/public/app/main/apps/callysquare/i18n/no.json index 581e8be..4047c20 100644 --- a/public/app/main/apps/callysquare/i18n/no.json +++ b/public/app/main/apps/callysquare/i18n/no.json @@ -108,7 +108,7 @@ "CC": "Du kan legge til flere adresser med komma (f.eks. john.doe@xcally.com, jane.miller@xcally.com)", "DSN": "Eksempel: DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=passord;DATABASE=bevegelse", "MAILBOX": "Postboksen@kontekst", - "MAX_TEXT_TTS": "Maksimalt antall tegn som støttes er 250", + "MAX_TEXT_TTS": "Maksimalt antall tegn som støttes er 200", "TO": "Du kan legge til flere adresser med komma (f.eks. john.doe@xcally.com, jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Hiddden Digits Number", diff --git a/public/app/main/apps/callysquare/i18n/pl.json b/public/app/main/apps/callysquare/i18n/pl.json index cd9199d..3807bc8 100644 --- a/public/app/main/apps/callysquare/i18n/pl.json +++ b/public/app/main/apps/callysquare/i18n/pl.json @@ -108,7 +108,7 @@ "CC": "Można dodać kilka adresów oddzielonych przecinkiem (np. john.doe@xcally.com, jane.miller@xcally.com)", "DSN": "Przykład: Kierowca=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=hasło;DATABASE=motion", "MAILBOX": "Skrzynka pocztowa@kontekst", - "MAX_TEXT_TTS": "Maksymalna liczba obsługiwanych znaków to 250", + "MAX_TEXT_TTS": "Maksymalna liczba obsługiwanych znaków to 200", "TO": "Można dodać kilka adresów oddzielonych przecinkiem (np. john.doe@xcally.com, jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Hiddden cyfry numeru", diff --git a/public/app/main/apps/callysquare/i18n/pt-BR.json b/public/app/main/apps/callysquare/i18n/pt-BR.json index 79b0c56..5ba438e 100644 --- a/public/app/main/apps/callysquare/i18n/pt-BR.json +++ b/public/app/main/apps/callysquare/i18n/pt-BR.json @@ -108,7 +108,7 @@ "CC": "Você pode adicionar vários endereços separados por vírgulas (por exemplo, john.doe@xcally.com, jane.miller@xcally.com)", "DSN": "Example: DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion", "MAILBOX": "mailbox@context", - "MAX_TEXT_TTS": "O número máximo de caracteres suportados é 250", + "MAX_TEXT_TTS": "O número máximo de caracteres suportados é 200", "TO": "Você pode adicionar vários endereços separados por vírgulas (por exemplo, john.doe@xcally.com, jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Número de dígitos ocultos", diff --git a/public/app/main/apps/callysquare/i18n/pt-PT.json b/public/app/main/apps/callysquare/i18n/pt-PT.json index d99914b..c279e3d 100644 --- a/public/app/main/apps/callysquare/i18n/pt-PT.json +++ b/public/app/main/apps/callysquare/i18n/pt-PT.json @@ -108,7 +108,7 @@ "CC": "Você pode adicionar vários endereços com vírgulas (por exemplo, Jane.miller@xcally.com) john.doe@xcally.com", "DSN": "Exemplo: DRIVER=MySQL;servidor=127.0.0.1;UID=xcall;PWD=senha;DATABASE=motion", "MAILBOX": "Caixa de correio@contexto", - "MAX_TEXT_TTS": "O número máximo de caracteres suportados é 250", + "MAX_TEXT_TTS": "O número máximo de caracteres suportados é 200", "TO": "Você pode adicionar vários endereços com vírgulas (por exemplo, Jane.miller@xcally.com) john.doe@xcally.com" }, "HIDDENDIGITSNUM": "Hiddden Digits Number", diff --git a/public/app/main/apps/callysquare/i18n/ru.json b/public/app/main/apps/callysquare/i18n/ru.json index a37babc..4a06a5a 100644 --- a/public/app/main/apps/callysquare/i18n/ru.json +++ b/public/app/main/apps/callysquare/i18n/ru.json @@ -108,7 +108,7 @@ "CC": "Вы можете добавить несколько адресов с помощью запятыми (например, John.doe@xcally.com, jane.miller@xcally.com)", "DSN": "Пример: DRIVER=MySQL;сервер = 127.0.0.1;uid=xcall;PWD=Пароль;БАЗЫ ДАННЫХ=motion", "MAILBOX": "Фотогалерея@контексте", - "MAX_TEXT_TTS": "Максимальное поддерживаемое количество символов - 250.", + "MAX_TEXT_TTS": "Максимальное поддерживаемое количество символов - 200.", "TO": "Вы можете добавить несколько адресов с помощью запятыми (например, John.doe@xcally.com, jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Hiddden Digits Number", diff --git a/public/app/main/apps/callysquare/i18n/sv.json b/public/app/main/apps/callysquare/i18n/sv.json index 703f93a..bbc08eb 100644 --- a/public/app/main/apps/callysquare/i18n/sv.json +++ b/public/app/main/apps/callysquare/i18n/sv.json @@ -108,7 +108,7 @@ "CC": "Du kan lägga till flera adresser separerade med kommatecken (t.ex. john.doe@xcally.com jane.miller@xcally.com)", "DSN": "Exempel: DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion", "MAILBOX": "epost@sammanhang", - "MAX_TEXT_TTS": "Det maximala antalet tecken som stöds är 250", + "MAX_TEXT_TTS": "Det maximala antalet tecken som stöds är 200", "TO": "Du kan lägga till flera adresser separerade med kommatecken (t.ex. john.doe@xcally.com jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Antal dolda siffror", diff --git a/public/app/main/apps/callysquare/i18n/tr.json b/public/app/main/apps/callysquare/i18n/tr.json index 5a2e3f1..47c9aa3 100644 --- a/public/app/main/apps/callysquare/i18n/tr.json +++ b/public/app/main/apps/callysquare/i18n/tr.json @@ -108,7 +108,7 @@ "CC": "Eklemek birden fazla adreslerini virgülle (örneğin john.doe@xcally.com, Jane.miller@xcally.com)", "DSN": "Örnek: SÜRÜCÜ=MySQL;SERVER=127,0.0,1;UID=xcall;PWD=parola;DATABASE=hareket", "MAILBOX": "Posta kutusu@içerik", - "MAX_TEXT_TTS": "Desteklenen maksimum karakter sayısı 250'dir", + "MAX_TEXT_TTS": "Desteklenen maksimum karakter sayısı 200'dir", "TO": "Eklemek birden fazla adreslerini virgülle (örneğin john.doe@xcally.com, Jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Hiddden Digits Number", diff --git a/public/app/main/apps/callysquare/i18n/zh-CN.json b/public/app/main/apps/callysquare/i18n/zh-CN.json index 3ee462c..b3165fe 100644 --- a/public/app/main/apps/callysquare/i18n/zh-CN.json +++ b/public/app/main/apps/callysquare/i18n/zh-CN.json @@ -108,7 +108,7 @@ "CC": "您可以添加多个地址时使用逗号分隔(例如, john.doe@xcally.com jane.miller@xcally.com)", "DSN": "例如: 驱动程序= MySQL; SERVER = 127.0 0.1 文件; UID = xcall; PWD =密码; DATABASE = motion", "MAILBOX": "邮箱@上下文", - "MAX_TEXT_TTS": "支持的最大字符数为250", + "MAX_TEXT_TTS": "支持的最大字符数为200", "TO": "您可以添加多个地址时使用逗号分隔(例如, john.doe@xcally.com jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Hiddden Digits Number", diff --git a/public/app/main/apps/callysquare/i18n/zh-TW.json b/public/app/main/apps/callysquare/i18n/zh-TW.json index 51b287b..40f4a3c 100644 --- a/public/app/main/apps/callysquare/i18n/zh-TW.json +++ b/public/app/main/apps/callysquare/i18n/zh-TW.json @@ -108,7 +108,7 @@ "CC": "您可以將多個地址使用逗號 ( 例如 john.doe@xcally.com 、 jane.miller@xcally.com)", "DSN": "例如 : 驅動程式 = MySQL ; 伺服器 = 127.0.0.1 ; UID = xcall ; 密碼 = 密碼 ; 資料庫 = 動作", "MAILBOX": "信箱與內容", - "MAX_TEXT_TTS": "支持的最大字符數為250", + "MAX_TEXT_TTS": "支持的最大字符數為200", "TO": "您可以將多個地址使用逗號 ( 例如 john.doe@xcally.com 、 jane.miller@xcally.com)" }, "HIDDENDIGITSNUM": "Hiddden Digits Number", diff --git a/public/app/main/apps/dashboards/i18n/en.json b/public/app/main/apps/dashboards/i18n/en.json index 32d5c94..208fa01 100644 --- a/public/app/main/apps/dashboards/i18n/en.json +++ b/public/app/main/apps/dashboards/i18n/en.json @@ -1,571 +1,568 @@ { - "DASHBOARDS": { - "VISIBILITY": "Visibility", - "PUBLIC": "Public", - "PRIVATE": "Private", - "PUBLIC_INTERACTION": "The interaction is public", - "LOST_CONNECTION": "Experiencing network connectivity issues. Please check your internet connection.", - "SCHEDULED_CALLS": "Scheduled Calls", - "DOWNLOAD": "Download", - "DOWNLOAD_WITH_ATTACHMENTS": "Download with attachments", - "DOWNLOAD_WITHOUT_ATTACHMENTS": "Download without attachments", - "UNMANAGED_RATE": "Unmanaged Rate", - "UNMANAGED_RATE_TEXT": "Interactions Unmanaged Rate", - "VOICE_WAITING": "WAITING", - "VOICE_WAITING_TEXT": "WAITING QUEUE CALLS", - "VOICE_TALKING": "TALKING", - "VOICE_TALKING_TEXT": "ACTIVE QUEUE CALLS", - "VOICE_ANSWERED": "ANSWERED", - "VOICE_ANSWERED_TEXT": "ANSWERED QUEUE CALLS", - "VOICE_ABANDONED": "ABANDONED", - "VOICE_ABANDONED_TEXT": "ABANDONED QUEUE CALLS", - "VOICE_TOTAL_OFFERED": "TOTAL OFFERED", - "VOICE_TOTAL_OFFERED_TEXT": "TOTAL QUEUE CALLS", - "TODAY_INTERACTIONS_STATS": "Interactions Daily Stats", - "VOICE_AVG_HOLD_TIME": "AVERAGE HOLD TIME", - "VOICE_AVG_HOLD_TIME_TEXT": "QUEUE CALLS AVG HOLD TIME", - "VOICE_AVG_TALK_TIME": "AVERAGE TALK TIME", - "VOICE_AVG_TALK_TIME_TEXT": "QUEUE CALLS TALK TIME", - "VOICE_ANSWER_RATE": "ANSWER RATE", - "VOICE_ANSWER_RATE_TEXT": "QUEUE CALLS ANSWER RATE", - "VOICE_ABANDON_RATE": "ABANDON RATE", - "VOICE_ABANDON_RATE_TEXT": "QUEUE CALLS ABANDON RATE", - "VOICE_UNMANAGED": "UNMANAGED", - "VOICE_UNMANAGED_TEXT": "UNMANAGED QUEUE CALLS", - "OPENED_TEXT": "Opened Interactions", - "MANAGED": "Managed", - "MANAGED_TEXT": "Managed Interactions", - "ABANDONED": "Abandoned", - "ABANDONED_TEXT": "Abandoned Interactions", - "ABANDONED_RATE": "Abandoned Rate", - "ABANDONED_RATE_TEXT": "Interactions Abandon Rate", - "TOTAL_OFFERED": "Total Offered", - "TOTAL_OFFERED_TEXT": "Offered Interactions", - "AVG_HOLD_TIME_TEXT": "Interactions AVG Hold Time", - "MANAGED_RATE": "Managed Rate", - "MANAGED_RATE_TEXT": "Interactions Managed Rate ", - "AVG_MANAGED_TIME": "AVG Management Time", - "AVG_MANAGED_TIME_TEXT": "Interactions AVG Management Time", - "NO_DISPOSITION_SET": "No disposition set", - "AGENTS": "Agents", - "TRANSFER": "Transfer", - "NO_DATA_AVAILABLE": "No data available", - "CUSTOMER_JOURNEY": "Customer Journey", - "ME": "Me", - "CURRENTLY_IN_USE_BY": "Currently in use by", - "NOTAVAILABLE": "Not available", - "CLICKRELOAD": "New abandoned calls! Reload please", - "ASSIGNTO": "Assign to", - "SELECT_QUEUE": "Select Queue", - "SELECT_CAMPAIGN": "Select Queue", - "FREE": "Free", - "RESERVED": "Reserved", - "QUEUECALLEREXITREASON": "Reason", - "QUEUECALLEREXITAT": "Dropped", - "LASTASSIGNEDTO": "Last Assigned To", - "ABANDONEDQUEUECALLS": "Abandoned Queue Calls", - "ABANDONAT": "Abandoned", - "QUEUE": "Queue", - "SELECT_SUBSTATUS": "Select Substatus", - "READ": "Read", - "UNREAD": "Unread", - "SELECT_READ_UNREAD": "Select Read/Unread", - "SELECT_AGENT": "Select Agent", - "MARK_AS_UNREAD": "Mark as unread", - "FILTER_VOICE_QUEUES": "Filter Voice Queues", - "CHANNEL_WAITING_TEXT": "Waiting Queue Interactions", - "CHANNEL_QUEUE": "Queue", - "CHANNEL_FROM": "From", - "LOADING_INTERACTION": "We are loading the interaction...", - "JANUARY": "January", - "FEBRUARY": "February", - "MARCH": "March", - "APRIL": "April", - "MAY": "May", - "JUNE": "June", - "JULY": "July", - "AUGUST": "August", - "SEPTEMBER": "September", - "OCTOBER": "October", - "NOVEMBER": "November", - "DECEMBER": "December", - "MON": "Mon", - "TUE": "Tue", - "WED": "Wed", - "THU": "Thu", - "FRI": "Fri", - "SAT": "Sat", - "SUN": "Sun", - "DELETE": "Delete", - "LAST_3_DAYS": "Last 3 Day", - "LAST_YEAR": "Last Year", - "THIS_YEAR": "This Year", - "LAST_MONTH": "Last Month", - "THIS_MONTH": "This Month", - "LAST_WEEK": "Last Week", - "THIS_WEEK": "This Week", - "YESTERDAY": "Yesterday", - "TODAY": "Today", - "SELECT_DATE": "Select Start Date", - "HOME": "Home", - "SET_AS": "Set As", - "PENDING": "Pending", - "CANNED_ANSWER_NOT_FOUND": "No Canned Answers were found", - "CANNED_ANSWER_SEARCH": "Enter a text to search a Canned Answer", - "TAGS": "Tags", - "SELECT_TAG": "Select Tag", - "TYPE": "Type", - "SOURCE": "Source", - "DESTINATION": "Destination", - "CALLERID": "Caller ID", - "END_AT": "End At", - "DURATION": "Duration", - "CHAT": "Chat", - "MAIL": "Email", - "SMS": "Sms", - "OPENCHANNEL": "Open Channel", - "FAX": "Fax", - "NOT_ASSIGNED": "Not Assigned", - "UNKNOWN": "Unknown", - "SELECT_USER": "Select User", - "LAST_MESSAGE": "Last message", - "USER": "User", - "RATING": "Rating", - "FEEDBACK": "Feedback", - "SUBJECT": "Subject", - "CUSTOMER_IP": "Originating IP Address", - "REFERER": "Referer", - "ACCOUNT": "Account", - "WEBSITE": "Website", - "AGENT": "Agent", - "CREATED_AT": "Created At", - "CLOSED_AT": "Closed At", - "DISPOSITION": "Disposition", - "CONTACT": "Contact", - "INTERACTION": "Interaction", - "BROWSER_NAME": "Browser Name", - "BROWSER_VERSION": "Browser Version", - "OS_NAME": "Operating System Name", - "OS_VERSION": "Operating System Version", - "DEVICE_MODEL": "Device Model", - "DEVICE_VENDOR": "Device Vendor", - "DEVICE_TYPE": "Device Type", - "RECALLME": "Recall Me", - "DROP_RATE": "Drop Rate", - "DROPPED": "Dropped", - "DROPPED_TEXT": "Dropped Queue Calls", - "DETAIL": "Detail", - "MOTION_BULL": "Motion Bull", - "LIMITED": "Limited", - "LIMITED_TEXT": "IVR Campaigns Calls Originated/Limit", - "DASHBOARDS": "Dashboards", - "RECORDINGS": "Recordings", - "TODAY_MOTION_BULL_STATS": "Queue Campaigns Daily Stats", - "ORIGINATED": "Originated", - "ORIGINATED_TEXT": "Queue Calls Originated", - "UPDATE": "Update", - "MORE": "More", - "MOTIONDIALER": "Motion Bull", - "DISPOSE": "Dispose", - "QUEUES": "Queues", - "DIALER_CALL": "Dialer Call", - "ELAPSED_TIME": "Elapsed Time", - "EDIT": "Edit", - "MERGE": "Merge", - "DUPLICATE": "Duplicate", - "UNIQUEID": "Uniqueid", - "AUTOCLOSE": "Automatically close contact tab after disposal", - "CAMPAIGN": "Campaign", - "NONE": "None", - "NAME": "Name", - "ANSWER_MACHINE": "Answer Machine", - "INTERESTED": "Interested", - "NOT_INTERESTED": "Not Interested", - "PERSONAL_INFO": "Personal Info", - "SOLD": "Sold", - "SPECIAL": "Special", - "BLACKLIST": "Blacklist", - "RESCHEDULE": "Reschedule", - "FIRSTNAME": "Firstname", - "LASTNAME": "Lastname", - "MOBILE": "Mobile", - "DATE_OF_BIRTH": "Birthdate", - "COMPANY": "Company", - "TAG": "Tag", - "COUNTRY": "Country", - "CITY": "City", - "STREET": "Address", - "POSTALCODE": "Postal Code", - "CUSTOM_FIELDS": "Custom Fields", - "GENERAL": "General", - "VOICE": "Voice", - "TODAY_IVR_CAMPAIGNS_STATS": "Daily Ivr Campaigns Stats", - "TODAY_INBOUND_STATS": "Inbound Queue Daily Stats", - "TODAY_OUTBOUND_STATS": "Outbound Daily Stats", - "WAITING": "Waiting", - "TALKING": "Talking", - "INBOUND_ANSWERED": "Answered", - "OUTBOUND_ANSWERED": "Answered", - "AVG_HOLD_TIME": "Average Hold Time", - "INBOUND_ANSWER_RATE": "Answer Rate", - "OUTBOUND_ANSWER_RATE": "Answer Rate", - "ABANDON_RATE": "Abandon Rate", - "UNMANAGED": "Unmanaged", - "TOTAL": "Total", - "TOT_DURATION": "Total Duration", - "AVG_DURATION": "Average Duration", - "HELP": { - "MANDATORY_DISPOSITION_ENABLED": "Mandatory disposition enabled for this account", - "UNMANAGED_RATE": "The Unmanaged Rate of all the Interactions", - "WAITING": "The total number of Waiting Interactions", - "OPENED": "The total number of Active Interactions", - "MANAGED": "The total number of Completed Interactions", - "ABANDONED": "The total number of Abandoned Interactions", - "TOTAL_OFFERED": "The total number of Interactions (completed + abandoned)", - "AVG_HOLD_TIME": "The Average Interaction Hold Time, namely the average time spent waiting for an agent to answer, for all the existing Interactions", - "AVG_MANAGED_TIME": "The Average Interaction Managed Time, namely the average time spent during conversation", - "MANAGED_RATE": "The Managed Rate of all the Interactions", - "ABANDONED_RATE": "The Abandon Rate of all the Interactions", - "UNMANAGED": "The total number of Unmanaged Interactions", - "VOICE_WAITING": "The total number of Waiting Queue Calls, for all the existing Queues", - "VOICE_TALKING": "The total number of Active Queue Calls, for all the existing Queues", - "VOICE_ANSWERED": "The total number of Completed Queue Calls, for all the existing Queues", - "VOICE_ABANDONED": "The total number of Abandoned Queue Calls, considering all the existing Queues. Note that the calls which are abandoned for timeout and joinempty will not be considered", - "VOICE_TOTAL_OFFERED": "The total number of Queue Calls (completed + abandoned + unmanaged in the last queue of the flow). Note that the calls which enter in an IVR and not in a queue, will not be considered", - "VOICE_AVG_TALK_TIME": "The Average Queue Talk Time, namely the average time spent during conversation, for all the existing Queues", - "VOICE_AVG_HOLD_TIME": "The Average Queue Hold Time, namely the average time spent waiting for an agent to answer, for all the existing Queues", - "VOICE_ANSWER_RATE": "The Answer Rate of all the Queue Calls", - "VOICE_UNMANAGED": "The total number of Unmanaged Queue Calls, for all the existing Queues. It includes the calls which are abandoned for timeout, joinempty, leavewhenempty and exitwithkey (cfr. asterisk doc for more information)", - "ORIGINATED": "Total number of calls dialed in the queue campaigns", - "ORIGINATEDLIMITED": "IVR Campaigns Calls Originated/Limit", - "DROPPED": "The total number of Dropped Queue Calls, for all the existing Queues", - "DROP_RATE": "The Drop Rate of all the Queue Calls", - "OUTBOUND_ANSWERED": "The total number of Completed Outbound Calls", - "OUTBOUND_ANSWER_RATE": "The Answer Rate of all the Outbound Calls", - "ABANDON_RATE": "The Abandon Rate of all the Queue Calls", - "TOTAL": "The total number of Outbound Calls", - "TOT_DURATION": "The total duration of all the Outbound Calls", - "AVG_DURATION": "The average duration of all the Completed Outbound Calls", - "EXACT_MATCH_FILTER": "Search for an exact match", - "LIKE_FILTER": "Search for the specified pattern" - }, - "ERRORS": { - "CAMPAIGN_REQUIRED": "Mandatory field", - "FIRSTNAME_REQUIRED": "Mandatory field", - "PHONE_REQUIRED": "Mandatory field", - "DISPOSITION_REQUIRED": "Mandatory field", - "AGENT_REQUIRED": "Mandatory field", - "QUEUE_REQUIRED": "Mandatory field", - "FAILED_INITIALIZATION": "Error during initialization" - }, - "NO_AVAILABLE_INFO": "No available info", - "WELCOME_TO_MOTION": "Welcome to Motion", - "WELCOME_MESSAGE": "Use the left sidebar to navigate through available sections", - "ADD": "Add", - "CONTACTMANAGER": "Contact Manager", - "DASHBOARD": "Dashboard", - "EDIT_CONTACT": "Edit contact", - "EMAIL": "Email", - "FULLNAME": "Fullname", - "CREATEDAT": "Created At", - "LIST": "List", - "NEW_CONTACT": "New Contact", - "PHONE": "Phone", - "SAVE": "Save", - "INBOUND_WAITING_CALLS": "Inbound Waiting Calls", - "CONTACTS": "Contacts", - "MYCONTACTS": "My Contacts", - "ADD_CONTACT": "Add Contact", - "RELOAD": "Reload", - "WAITING_TEXT": "Waiting Interactions", - "TALKING_TEXT": "Active Queue Calls", - "INBOUND_ANSWERED_TEXT": "Answered Queue Calls", - "DROP_RATE_TEXT": "Queue Calls Drop Rate", - "AVG_TALK_TIME_TEXT": "Queue Calls Talk Time", - "INBOUND_ANSWER_RATE_TEXT": "Queue Calls Answer Rate", - "UNMANAGED_TEXT": "Unmanaged Interactions", - "TOTAL_TEXT": "Total Outbound Calls", - "OUTBOUND_ANSWERED_TEXT": "Outbound Answered Calls", - "TOT_DURATION_TEXT": "Outbound Calls Total Duration", - "AVG_DURATION_TEXT": "Outbound Calls Average Duration", - "OUTBOUND_ANSWER_RATE_TEXT": "Outbound calls Answer Rate", - "PAGE": "Page", - "ROWSPERPAGE": "Rows per page", - "OF": "of", - "REPLY_PLACEHOLDER": "Type and hit enter to send a message", - "CONTACT_INFO": "Contact Info", - "CLOSE_AND_DISPOSE": "Close and dispose", - "DISPOSITIONS": "Dispositions", - "CLOSE_WITHOUT_DISPOSE": "Close without dispose", - "ACCEPT": "Accept", - "REJECT": "Reject", - "CLOSED": "Closed", - "INFO": "Info", - "NOTE": "Note", - "ACCEPT_ELSEWHERE": "Accepted elsewhere", - "ATTENTION": "Attention", - "SOCIAL": "Social", - "NO_JSCRIPTY_PROJECTS_AVAILABLE": "No Jscripty Projects available", - "OPENED": "Opened", - "FILTER": "Filter", - "SELECT_STATUS": "Select Status", - "SELECT_ACCOUNT": "Select Account", - "SELECT_WEBSITE": "Select Website", - "ALL": "All", - "INTERACTIONS": "Interactions", - "STARTEDAT": "Started At", - "STATUS": "Status", - "OPEN": "Open", - "SHOW": "Show", - "SHOW_DETAILS": "Show Details", - "HIDE_DETAILS": "Hide Details", - "EXTERNAL_URL": "External Link", - "NO_MAIL_ACCOUNTS_AVAILABLE": "No Email Accounts available", - "NO_FAX_ACCOUNTS_AVAILABLE": "No Fax Accounts available", - "NO_SMS_ACCOUNTS_AVAILABLE": "No SMS Accounts available", - "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "No Whatsapp Account available", - "SELECT_DATE_RANGE": "Select Date Range", - "CLEAR": "Clear", - "CALL_NUMBER": "Call", - "TRANSFER_NUMBER": "Transfer", - "CALL_SAVED": "Call properly saved", - "CALL_DISPOSED": "Call properly disposed", - "CUSTOMER_PORT": "Originating TCP Port", - "INTERACTION_CLOSED": "Interaction properly closed", - "INTERACTION_DISPOSED": "Interaction properly disposed", - "INTERACTION_CLOSED_DISPOSED": "Interaction properly closed and disposed", - "SELECT_ALL": "Select all", - "ASSIGNED_TO_OTHERS": "Assigned to others", - "ID": "Id", - "CHAT_INTERACTIONS": "Chat Interactions", - "MAIL_INTERACTIONS": "Email Interactions", - "SMS_INTERACTIONS": "SMS Interactions", - "OPENCHANNEL_INTERACTIONS": "Open Channel Interactions", - "FAX_INTERACTIONS": "Fax Interactions", - "DRAFT": "Draft", - "DRAFT_SAVE_WARNING_TITLE": "Overwrite existing draft?", - "DRAFT_SAVE_WARNING_MESSAGE": "There is already a draft saved for this interaction. Are you sure you want to overwrite it?", - "OVERWRITE": "Overwrite", - "CANCEL": "Cancel", - "UNTITLED": "Untitled", - "SAVE_AS_DRAFT": "Save as draft", - "UPDATE_DRAFT": "Update draft", - "NO_AVAILABLE_INTERACTION": "No available interaction", - "DOSSIERS": "Dossiers", - "DOSSIER": "Dossier", - "DOSSIER_INFO": "Information", - "SELECT_COMPANY": "Select Company", - "DOSSIERNAME": "Dossier Name", - "OPENDATE": "Open Date", - "ALL_COMPANIES": "All Companies", - "SELECT_WORKFLOW": "Select Workflow", - "WORKFLOW": "Select Workflow", - "SELECT_WORKFLOWSTEPS": "Select Workflow State", - "ALL_WORKFLOW": "All Workflow", - "STATE": "State", - "STEP": "Step", - "NEW_DOSSIER": "New Dossier", - "PRICELIST": "Price List", - "PRODUCTFILTERNAME": "Filter Name", - "PRODUCTNAME": "Product", - "PRODUCTINQUOTATION": "PRODUCT DETAILS", - "REQUEST": "REQUEST", - "QUOTATION": "QUOTATION", - "DOSSIERID": "Dossier ID", - "QUOTATIONNAME": "Quotation Name", - "QUOTATIONNOTES": "Quotation Notes", - "QUOTATIONSTATUS": "State", - "REQUESTNAME": "Request Name", - "REQUESTNOTES": "Request Notes", - "ALL_STEP": "All", - "UPDATED_AT": "Modified on", - "BY": "By", - "ORDER": "Order", - "PROFORMA": "PROFORMA", - "INVOICE": "INVOICE", - "REQUESTID": "Request", - "QUOTATIONID": "Offer", - "ORDERID": "Order", - "PRICELISTNAME": "Price List", - "PRODUCTCODE": "Product Code", - "PRICELISTNETPRICE": "Net Price", - "PRICELISTDISCOUNT": "Price list discount", - "QUOTATIONQTY": "Quantity", - "QUOTATIONTAX": "Tax", - "QUOTATIONPROFORMAID": "Proforma ID", - "QUOTATIONINVOICEID": "Invoice ID", - "QUOTATIONDISCOUNT": "Quotation Discount", - "ORDER_INFO": "Order", - "REQUEST_INFO": "Request", - "QUOTATION_INFO": "Quotation", - "ORDERCLIENTCODE": "Customer Code", - "ORDERNOTES": "Note", - "PROFORMANAME": "Proforma name", - "AGENTFULLNAME": "Agent", - "PROFORMANOTES": "Note", - "PRODUCTINPROFORMA": "Products in proforma", - "INVOICENAME": "Invoice Name", - "INVOICENOTES": "Note", - "DOSSIERNOTES": "Note", - "QUOTATIONTOTALPRICE": "Total net", - "QUOTATIONTOTALTAX": "Total tax", - "PROFORMA_INFO": "Proforma", - "PROFORMAID": "Id Proforma", - "PRICESALELISTNETPRICE": "Prezzo listino", - "PROFORMASTATUS": "State", - "INVOICESTATUS": "State", - "NO_PRODUCTINVOICE_AVAILABLE": "No product", - "INVOICEID": "Invoice", - "PRODUCTNOTE": "Note", - "INVOICE_INFO": "Invoice", - "COMPANYSTREET": "Address", - "COMPANYCITY": "City", - "COMPANYPOSTALCODE": "Postal Code", - "COMPANYCOUNTRY": "Country", - "COMPANYFAX": "Fax", - "COMPANYVAT": "Fiscal Code/VAT", - "COMPANYPHONE": "Telephone", - "COMPANYEMAIL": "Email", - "NOTES": "Note", - "QUOTATIONPRODUCTNOTE": "Product Note", - "QUOTATIONVAT": "VAT", - "AUTOPROFORMA": "SELF-PROFORMA", - "AUTOINVOICE": "SELF-INVOICE", - "MOVEASSET": "ASSET", - "ORDERSTATUS": "State", - "QUOTATIONTOTALS": "Total", - "QUOTATIONTOTAL": "TOTAL", - "PRODUCTTYPE": "Type", - "PRODUCTSUBSCRIPTION": "Duration", - "PRODUCTATUNIT": "Unit", - "INASSET": "Asset", - "PRODUCTININVOICE": "Products on the invoice", - "SUBSCRIPTIONS": "CUSTOMER SCHEDULE", - "SUBSCRIPTIONNAME": "Subscription", - "COMPANYNAME": "Company", - "NEXTINVOICE": "Next Invoice", - "SUBSCRIPTIONDETAIL": "Detail", - "PRODUCTDESCRIPTION": "Description", - "NETPRICE": "Price", - "DISCOUNT": "Discount", - "TAX": "Tax", - "ATTENDACELASTINVOICE": "Last invoice", - "ATTENDACENEXTINVOICE": "Next invoice", - "SELECT_PRODUCT": "Select product", - "SELECT_PRODUCTTYPE": "Select type", - "ALL_PRODUCTS": "All", - "ALL_STATUS": "All", - "PAYMENT_INFO": "Payment information", - "PAYMENTMETHOD": "Payment methods", - "PAYMENT": "Payment", - "DETAILS": "Details", - "INVOICEDETAILS": "INVOICE DETAILS", - "QUANTITY": "Quantity", - "MANAGESALES": "Subscriptions", - "ACCOUNTINGDOC": "Accounting", - "INVOICES": "INVOICES", - "PROFORMAS": "PROFORMA", - "PAYMENTS": "PAYMENTS", - "SELECT_PERIOD": "Select range", - "NO_PRODUCTPROFORMA_AVAILABLE": "No data available", - "NO_PRODUCTPRICELIST_AVAILABLE": "No data available", - "PROFORMAAUTHORIZED": "Authorized proforma", - "ADD_PRODUCTPRICELIST": "ADD PRODUCT", - "DELETE_PRODUCT": "Delete Product", - "AUTHORIZED": "AUTHORIZED", - "INVOICEDISCOUNT": "Discount", - "DEPOSIT": "DEPOSIT", - "BALANCE": "BALANCE", - "PRODUCTS": "PRODUCTS", - "INVOICENOPRODUCTDESCRIPTION": "Description on the invoice", - "INVOICENOPRODUCTAMOUNT": "Amount", - "INVOICENOTAXAMOUNT": "TAX", - "INVOICENOPRODUCTSAVE": "Save", - "INVOICENOPRODUCTUPDATE": "Update", - "PDFPROFORMA": "PDF", - "PDFINVOICE": "PDF", - "PAIDANDEXPIRED": "Payment", - "CREDITNOTE": "CREDIT NOTE", - "CREDITNOTE_INFO": "Credit Note", - "MOVECREDITNOTE": "SELF-CREDIT NOTE", - "CREDITNOTEDETAILS": "Credit Note Detail", - "PDFCREDITNOTE": "PDF", - "CREDITINOTENAME": "Name", - "TOTALPAYMENTS": "Total payments", - "PROFORMADETAILS": "Details", - "CREATIONDATE": "Created at", - "STARTDATE": "Invoice Date", - "ENDDATE": "Expiry Date", - "NUMBER": "Number", - "PRODUCTPRICE": "Price", - "PRODUCTTAX": "Tax percentage", - "PRODUCTQTY": "Quantity", - "UPDATE_PRODUCT": "Update Product", - "QUOTATIONPRODUCTTYPE": "Type", - "QUOTATIONUNIT": "Unit", - "QUOTATIONSUBSCRIPTION": "Duration", - "SELECT_PERIOD_CREATION": "Select Creation Date", - "SELECT_PERIOD_START": "Select Date", - "SELECT_PERIOD_EXPIRE": "Select Expiry Date", - "NEW_COMPANY": "New", - "COMPANIES": "Companies", - "PAYED_AY": "Payed on", - "CLONEPROFORMA": "Clone", - "COMPANYDESC": "Description", - "COMPANYNATION": "Nation", - "GRAPHINVOICES": "Invoice emission chart", - "YEARS": "Years", - "FROM": "From", - "TO": "To", - "INVOICEEMITED": "Issued", - "INVOICEPAYED": "Payed", - "INVOICETOTAL": "Total", - "CHOOSE": "Choose", - "ADVANCED_SEARCH": "Advanced Search", - "NEW_CONDITION": "New Condition", - "SELECT_FIELD": "Select field", - "SELECT_OPERATOR": "Select operator", - "VALUE": "Value", - "VALUES": "Values", - "APPLY": "Apply", - "MEET_ALL_CONDITIONS": "Meet all conditions", - "MEET_ANY_CONDITIONS": "Meet at least one condition", - "EQUALS": "Equals", - "IS_NOT_EQUAL": "Does not equal", - "IS_AMONG": "Is among", - "IS_NOT_AMONG": "Is not among", - "IS_GREATER_THAN": "Is greater than", - "IS_GREATER_THAN_OR_EQUAL_TO": "Is greater than or equal to", - "IS_LESS_THAN": "Is less than", - "IS_LESS_THAN_OR_EQUAL_TO": "Is less than or equal to", - "IS_BETWEEN": "Is between", - "CONTAINS": "Contains", - "STARTS_WITH": "Starts with", - "ENDS_WITH": "Ends with", - "STARTING_DATE": "Starting date", - "ENDING_DATE": "Ending date", - "STARTING_VALUE": "Starting value", - "ENDING_VALUE": "Ending value", - "VALUE_RANGE_CHECK": "Value must be greater than", - "AND": "And", - "ENABLED": "Enabled", - "DISABLED": "Disabled", - "ELAPSED_ANSWERED": "Elapsed time since call started", - "ELAPSED_DISPOSED": "Elapsed time since call ended", - "WHATSAPP": "WhatsApp Connector", - "WHATSAPP_INTERACTIONS": "WhatsApp Connector Interactions", - "SECOND_LEVEL_DISPOSITION": "Second Level Disposition", - "THIRD_LEVEL_DISPOSITION": "Third Level Disposition", - "VIDAOOSESSION": "Start Video Call", - "SELECT_CONTACT": "Select contact", - "SELECT": "Select", - "LAST_UPDATED": "Last updated", - "MATCHING_FIELD": "Matching field", - "MULTIPLE_CONTACTS_FOUND": "Multiple contacts found for number", - "WHICH_ONE_TO_USE": "Which one do you want to use?", - "LICENSE_EXPIRE_REMAINING_DAYS": "Your license is about to expire! Please contact your Administrator", - "NO_RESULTS_AVAILABLE": "No results available", - "AGENT_PRESENCE": "Agent Presence", - "SELECT_TEAM": "Select Team" - } + "DASHBOARDS": { + "VISIBILITY": "Visibility", + "PUBLIC": "Public", + "PRIVATE": "Private", + "PUBLIC_INTERACTION": "The interaction is public", + "LOST_CONNECTION": "Experiencing network connectivity issues. Please check your internet connection.", + "SCHEDULED_CALLS": "Scheduled Calls", + "DOWNLOAD": "Download", + "DOWNLOAD_WITH_ATTACHMENTS": "Download with attachments", + "DOWNLOAD_WITHOUT_ATTACHMENTS": "Download without attachments", + "UNMANAGED_RATE": "Unmanaged Rate", + "UNMANAGED_RATE_TEXT": "Interactions Unmanaged Rate", + "VOICE_WAITING": "WAITING", + "VOICE_WAITING_TEXT": "WAITING QUEUE CALLS", + "VOICE_TALKING": "TALKING", + "VOICE_TALKING_TEXT": "ACTIVE QUEUE CALLS", + "VOICE_ANSWERED": "ANSWERED", + "VOICE_ANSWERED_TEXT": "ANSWERED QUEUE CALLS", + "VOICE_ABANDONED": "ABANDONED", + "VOICE_ABANDONED_TEXT": "ABANDONED QUEUE CALLS", + "VOICE_TOTAL_OFFERED": "TOTAL OFFERED", + "VOICE_TOTAL_OFFERED_TEXT": "TOTAL QUEUE CALLS", + "TODAY_INTERACTIONS_STATS": "Interactions Daily Stats", + "VOICE_AVG_HOLD_TIME": "AVERAGE HOLD TIME", + "VOICE_AVG_HOLD_TIME_TEXT": "QUEUE CALLS AVG HOLD TIME", + "VOICE_AVG_TALK_TIME": "AVERAGE TALK TIME", + "VOICE_AVG_TALK_TIME_TEXT": "QUEUE CALLS TALK TIME", + "VOICE_ANSWER_RATE": "ANSWER RATE", + "VOICE_ANSWER_RATE_TEXT": "QUEUE CALLS ANSWER RATE", + "VOICE_ABANDON_RATE": "ABANDON RATE", + "VOICE_ABANDON_RATE_TEXT": "QUEUE CALLS ABANDON RATE", + "VOICE_UNMANAGED": "UNMANAGED", + "VOICE_UNMANAGED_TEXT": "UNMANAGED QUEUE CALLS", + "OPENED_TEXT": "Opened Interactions", + "MANAGED": "Managed", + "MANAGED_TEXT": "Managed Interactions", + "ABANDONED": "Abandoned", + "ABANDONED_TEXT": "Abandoned Interactions", + "ABANDONED_RATE": "Abandoned Rate", + "ABANDONED_RATE_TEXT": "Interactions Abandon Rate", + "TOTAL_OFFERED": "Total Offered", + "TOTAL_OFFERED_TEXT": "Offered Interactions", + "AVG_HOLD_TIME_TEXT": "Interactions AVG Hold Time", + "MANAGED_RATE": "Managed Rate", + "MANAGED_RATE_TEXT": "Interactions Managed Rate ", + "AVG_MANAGED_TIME": "AVG Management Time", + "AVG_MANAGED_TIME_TEXT": "Interactions AVG Management Time", + "NO_DISPOSITION_SET": "No disposition set", + "AGENTS": "Agents", + "TRANSFER": "Transfer", + "NO_DATA_AVAILABLE": "No data available", + "CUSTOMER_JOURNEY": "Customer Journey", + "ME": "Me", + "CURRENTLY_IN_USE_BY": "Currently in use by", + "NOTAVAILABLE": "Not available", + "CLICKRELOAD": "New abandoned calls! Reload please", + "ASSIGNTO": "Assign to", + "SELECT_QUEUE": "Select a Queue", + "SELECT_CAMPAIGN": "Select a Queue", + "FREE": "Free", + "RESERVED": "Reserved", + "QUEUECALLEREXITREASON": "Reason", + "QUEUECALLEREXITAT": "Dropped", + "LASTASSIGNEDTO": "Last Assigned To", + "ABANDONEDQUEUECALLS": "Abandoned Queue Calls", + "ABANDONAT": "Abandoned", + "QUEUE": "Queue", + "SELECT_SUBSTATUS": "Select Substatus", + "READ": "Read", + "UNREAD": "Unread", + "SELECT_READ_UNREAD": "Select Read/Unread", + "SELECT_AGENT": "Select Agent", + "MARK_AS_UNREAD": "Mark as unread", + "FILTER_VOICE_QUEUES": "Filter Voice Queues", + "CHANNEL_WAITING_TEXT": "Waiting Queue Interactions", + "CHANNEL_QUEUE": "Queue", + "CHANNEL_FROM": "From", + "LOADING_INTERACTION": "We are loading the interaction...", + "JANUARY": "January", + "FEBRUARY": "February", + "MARCH": "March", + "APRIL": "April", + "MAY": "May", + "JUNE": "June", + "JULY": "July", + "AUGUST": "August", + "SEPTEMBER": "September", + "OCTOBER": "October", + "NOVEMBER": "November", + "DECEMBER": "December", + "MON": "Mon", + "TUE": "Tue", + "WED": "Wed", + "THU": "Thu", + "FRI": "Fri", + "SAT": "Sat", + "SUN": "Sun", + "DELETE": "Delete", + "LAST_3_DAYS": "Last 3 Day", + "LAST_YEAR": "Last Year", + "THIS_YEAR": "This Year", + "LAST_MONTH": "Last Month", + "THIS_MONTH": "This Month", + "LAST_WEEK": "Last Week", + "THIS_WEEK": "This Week", + "YESTERDAY": "Yesterday", + "TODAY": "Today", + "SELECT_DATE": "Select Start Date", + "HOME": "Home", + "SET_AS": "Set As", + "PENDING": "Pending", + "CANNED_ANSWER_NOT_FOUND": "No Canned Answers were found", + "CANNED_ANSWER_SEARCH": "Enter a text to search a Canned Answer", + "TAGS": "Tags", + "SELECT_TAG": "Select Tag", + "TYPE": "Type", + "SOURCE": "Source", + "DESTINATION": "Destination", + "CALLERID": "Caller ID", + "END_AT": "End At", + "DURATION": "Duration", + "CHAT": "Chat", + "MAIL": "Email", + "SMS": "Sms", + "OPENCHANNEL": "Open Channel", + "FAX": "Fax", + "NOT_ASSIGNED": "Not Assigned", + "UNKNOWN": "Unknown", + "SELECT_USER": "Select User", + "LAST_MESSAGE": "Last message", + "USER": "User", + "RATING": "Rating", + "FEEDBACK": "Feedback", + "SUBJECT": "Subject", + "CUSTOMER_IP": "Originating IP Address", + "REFERER": "Referer", + "ACCOUNT": "Account", + "WEBSITE": "Website", + "AGENT": "Agent", + "CREATED_AT": "Created At", + "CLOSED_AT": "Closed At", + "DISPOSITION": "Disposition", + "CONTACT": "Contact", + "INTERACTION": "Interaction", + "BROWSER_NAME": "Browser Name", + "BROWSER_VERSION": "Browser Version", + "OS_NAME": "Operating System Name", + "OS_VERSION": "Operating System Version", + "DEVICE_MODEL": "Device Model", + "DEVICE_VENDOR": "Device Vendor", + "DEVICE_TYPE": "Device Type", + "RECALLME": "Recall Me", + "DROP_RATE": "Drop Rate", + "DROPPED": "Dropped", + "DROPPED_TEXT": "Dropped Queue Calls", + "DETAIL": "Detail", + "MOTION_BULL": "Motion Bull", + "LIMITED": "Limited", + "LIMITED_TEXT": "IVR Campaigns Calls Originated/Limit", + "DASHBOARDS": "Dashboards", + "RECORDINGS": "Recordings", + "TODAY_MOTION_BULL_STATS": "Queue Campaigns Daily Stats", + "ORIGINATED": "Originated", + "ORIGINATED_TEXT": "Queue Calls Originated", + "UPDATE": "Update", + "MORE": "More", + "MOTIONDIALER": "Motion Bull", + "DISPOSE": "Dispose", + "QUEUES": "Queues", + "DIALER_CALL": "Dialer Call", + "ELAPSED_TIME": "Elapsed Time", + "EDIT": "Edit", + "MERGE": "Merge", + "DUPLICATE": "Duplicate", + "UNIQUEID": "Uniqueid", + "AUTOCLOSE": "Automatically close contact tab after disposal", + "CAMPAIGN": "Campaign", + "NONE": "None", + "NAME": "Name", + "ANSWER_MACHINE": "Answer Machine", + "INTERESTED": "Interested", + "NOT_INTERESTED": "Not Interested", + "PERSONAL_INFO": "Personal Info", + "SOLD": "Sold", + "SPECIAL": "Special", + "BLACKLIST": "Blacklist", + "RESCHEDULE": "Reschedule", + "FIRSTNAME": "Firstname", + "LASTNAME": "Lastname", + "MOBILE": "Mobile", + "DATE_OF_BIRTH": "Birthdate", + "COMPANY": "Company", + "TAG": "Tag", + "COUNTRY": "Country", + "CITY": "City", + "STREET": "Address", + "POSTALCODE": "Postal Code", + "CUSTOM_FIELDS": "Custom Fields", + "GENERAL": "General", + "VOICE": "Voice", + "TODAY_IVR_CAMPAIGNS_STATS": "Daily Ivr Campaigns Stats", + "TODAY_INBOUND_STATS": "Inbound Queue Daily Stats", + "TODAY_OUTBOUND_STATS": "Outbound Daily Stats", + "WAITING": "Waiting", + "TALKING": "Talking", + "INBOUND_ANSWERED": "Answered", + "OUTBOUND_ANSWERED": "Answered", + "AVG_HOLD_TIME": "Average Hold Time", + "INBOUND_ANSWER_RATE": "Answer Rate", + "OUTBOUND_ANSWER_RATE": "Answer Rate", + "ABANDON_RATE": "Abandon Rate", + "UNMANAGED": "Unmanaged", + "TOTAL": "Total", + "TOT_DURATION": "Total Duration", + "AVG_DURATION": "Average Duration", + "HELP": { + "MANDATORY_DISPOSITION_ENABLED": "Mandatory disposition enabled for this account", + "UNMANAGED_RATE": "The Unmanaged Rate of all the Interactions", + "WAITING": "The total number of Waiting Interactions", + "OPENED": "The total number of Active Interactions", + "MANAGED": "The total number of Completed Interactions", + "ABANDONED": "The total number of Abandoned Interactions", + "TOTAL_OFFERED": "The total number of Interactions (completed + abandoned)", + "AVG_HOLD_TIME": "The Average Interaction Hold Time, namely the average time spent waiting for an agent to answer, for all the existing Interactions", + "AVG_MANAGED_TIME": "The Average Interaction Managed Time, namely the average time spent during conversation", + "MANAGED_RATE": "The Managed Rate of all the Interactions", + "ABANDONED_RATE": "The Abandon Rate of all the Interactions", + "UNMANAGED": "The total number of Unmanaged Interactions", + "VOICE_WAITING": "The total number of Waiting Queue Calls, for all the existing Queues", + "VOICE_TALKING": "The total number of Active Queue Calls, for all the existing Queues", + "VOICE_ANSWERED": "The total number of Completed Queue Calls, for all the existing Queues", + "VOICE_ABANDONED": "The total number of Abandoned Queue Calls, considering all the existing Queues. Note that the calls which are abandoned for timeout and joinempty will not be considered", + "VOICE_TOTAL_OFFERED": "The total number of Queue Calls (completed + abandoned + unmanaged in the last queue of the flow). Note that the calls which enter in an IVR and not in a queue, will not be considered", + "VOICE_AVG_TALK_TIME": "The Average Queue Talk Time, namely the average time spent during conversation, for all the existing Queues", + "VOICE_AVG_HOLD_TIME": "The Average Queue Hold Time, namely the average time spent waiting for an agent to answer, for all the existing Queues", + "VOICE_ANSWER_RATE": "The Answer Rate of all the Queue Calls", + "VOICE_UNMANAGED": "The total number of Unmanaged Queue Calls, for all the existing Queues. It includes the calls which are abandoned for timeout, joinempty, leavewhenempty and exitwithkey (cfr. asterisk doc for more information)", + "ORIGINATED": "Total number of calls dialed in the queue campaigns", + "ORIGINATEDLIMITED": "IVR Campaigns Calls Originated/Limit", + "DROPPED": "The total number of Dropped Queue Calls, for all the existing Queues", + "DROP_RATE": "The Drop Rate of all the Queue Calls", + "OUTBOUND_ANSWERED": "The total number of Completed Outbound Calls", + "OUTBOUND_ANSWER_RATE": "The Answer Rate of all the Outbound Calls", + "ABANDON_RATE": "The Abandon Rate of all the Queue Calls", + "TOTAL": "The total number of Outbound Calls", + "TOT_DURATION": "The total duration of all the Outbound Calls", + "AVG_DURATION": "The average duration of all the Completed Outbound Calls", + "EXACT_MATCH_FILTER": "Search for an exact match", + "LIKE_FILTER": "Search for the specified pattern" + }, + "ERRORS": { + "CAMPAIGN_REQUIRED": "Mandatory field", + "FIRSTNAME_REQUIRED": "Mandatory field", + "PHONE_REQUIRED": "Mandatory field", + "DISPOSITION_REQUIRED": "Mandatory field", + "AGENT_REQUIRED": "Mandatory field", + "QUEUE_REQUIRED": "Mandatory field" + }, + "NO_AVAILABLE_INFO": "No available info", + "WELCOME_TO_MOTION": "Welcome to Motion", + "WELCOME_MESSAGE": "Use the left sidebar to navigate through available sections", + "ADD": "Add", + "CONTACTMANAGER": "Contact Manager", + "DASHBOARD": "Dashboard", + "EDIT_CONTACT": "Edit contact", + "EMAIL": "Email", + "FULLNAME": "Fullname", + "CREATEDAT": "Created At", + "LIST": "List", + "NEW_CONTACT": "New Contact", + "PHONE": "Phone", + "SAVE": "Save", + "INBOUND_WAITING_CALLS": "Inbound Waiting Calls", + "CONTACTS": "Contacts", + "MYCONTACTS": "My Contacts", + "ADD_CONTACT": "Add Contact", + "RELOAD": "Reload", + "WAITING_TEXT": "Waiting Interactions", + "TALKING_TEXT": "Active Queue Calls", + "INBOUND_ANSWERED_TEXT": "Answered Queue Calls", + "DROP_RATE_TEXT": "Queue Calls Drop Rate", + "AVG_TALK_TIME_TEXT": "Queue Calls Talk Time", + "INBOUND_ANSWER_RATE_TEXT": "Queue Calls Answer Rate", + "UNMANAGED_TEXT": "Unmanaged Interactions", + "TOTAL_TEXT": "Total Outbound Calls", + "OUTBOUND_ANSWERED_TEXT": "Outbound Answered Calls", + "TOT_DURATION_TEXT": "Outbound Calls Total Duration", + "AVG_DURATION_TEXT": "Outbound Calls Average Duration", + "OUTBOUND_ANSWER_RATE_TEXT": "Outbound calls Answer Rate", + "PAGE": "Page", + "ROWSPERPAGE": "Rows per page", + "OF": "of", + "REPLY_PLACEHOLDER": "Type and hit enter to send a message", + "CONTACT_INFO": "Contact Info", + "CLOSE_AND_DISPOSE": "Close and dispose", + "DISPOSITIONS": "Dispositions", + "CLOSE_WITHOUT_DISPOSE": "Close without dispose", + "ACCEPT": "Accept", + "REJECT": "Reject", + "CLOSED": "Closed", + "INFO": "Info", + "NOTE": "Note", + "ACCEPT_ELSEWHERE": "Accepted elsewhere", + "ATTENTION": "Attention", + "SOCIAL": "Social", + "NO_JSCRIPTY_PROJECTS_AVAILABLE": "No Jscripty Projects available", + "OPENED": "Opened", + "FILTER": "Filter", + "SELECT_STATUS": "Select Status", + "SELECT_ACCOUNT": "Select Account", + "SELECT_WEBSITE": "Select Website", + "ALL": "All", + "INTERACTIONS": "Interactions", + "STARTEDAT": "Started At", + "STATUS": "Status", + "OPEN": "Open", + "SHOW": "Show", + "SHOW_DETAILS": "Show Details", + "HIDE_DETAILS": "Hide Details", + "EXTERNAL_URL": "External Link", + "NO_MAIL_ACCOUNTS_AVAILABLE": "No Email Accounts available", + "NO_FAX_ACCOUNTS_AVAILABLE": "No Fax Accounts available", + "NO_SMS_ACCOUNTS_AVAILABLE": "No SMS Accounts available", + "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "No Whatsapp Account available", + "SELECT_DATE_RANGE": "Select Date Range", + "CLEAR": "Clear", + "CALL_NUMBER": "Call", + "TRANSFER_NUMBER": "Transfer", + "CALL_SAVED": "Call properly saved", + "CALL_DISPOSED": "Call properly disposed", + "CUSTOMER_PORT": "Originating TCP Port", + "INTERACTION_CLOSED": "Interaction properly closed", + "INTERACTION_DISPOSED": "Interaction properly disposed", + "INTERACTION_CLOSED_DISPOSED": "Interaction properly closed and disposed", + "SELECT_ALL": "Select all", + "ASSIGNED_TO_OTHERS": "Assigned to others", + "ID": "Id", + "CHAT_INTERACTIONS": "Chat Interactions", + "MAIL_INTERACTIONS": "Email Interactions", + "SMS_INTERACTIONS": "SMS Interactions", + "OPENCHANNEL_INTERACTIONS": "Open Channel Interactions", + "FAX_INTERACTIONS": "Fax Interactions", + "DRAFT": "Draft", + "DRAFT_SAVE_WARNING_TITLE": "Overwrite existing draft?", + "DRAFT_SAVE_WARNING_MESSAGE": "There is already a draft saved for this interaction. Are you sure you want to overwrite it?", + "OVERWRITE": "Overwrite", + "CANCEL": "Cancel", + "UNTITLED": "Untitled", + "SAVE_AS_DRAFT": "Save as draft", + "UPDATE_DRAFT": "Update draft", + "NO_AVAILABLE_INTERACTION": "No available interaction", + "DOSSIERS": "Dossiers", + "DOSSIER": "Dossier", + "DOSSIER_INFO": "Information", + "SELECT_COMPANY": "Select Company", + "DOSSIERNAME": "Dossier Name", + "OPENDATE": "Open Date", + "ALL_COMPANIES": "All Companies", + "SELECT_WORKFLOW": "Select Workflow", + "WORKFLOW": "Select Workflow", + "SELECT_WORKFLOWSTEPS": "Select Workflow State", + "ALL_WORKFLOW": "All Workflow", + "STATE": "State", + "STEP": "Step", + "NEW_DOSSIER": "New Dossier", + "PRICELIST": "Price List", + "PRODUCTFILTERNAME": "Filter Name", + "PRODUCTNAME": "Product", + "PRODUCTINQUOTATION": "PRODUCT DETAILS", + "REQUEST": "REQUEST", + "QUOTATION": "QUOTATION", + "DOSSIERID": "Dossier ID", + "QUOTATIONNAME": "Quotation Name", + "QUOTATIONNOTES": "Quotation Notes", + "QUOTATIONSTATUS": "State", + "REQUESTNAME": "Request Name", + "REQUESTNOTES": "Request Notes", + "ALL_STEP": "All", + "UPDATED_AT": "Modified on", + "BY": "By", + "ORDER": "Order", + "PROFORMA": "PROFORMA", + "INVOICE": "INVOICE", + "REQUESTID": "Request", + "QUOTATIONID": "Offer", + "ORDERID": "Order", + "PRICELISTNAME": "Price List", + "PRODUCTCODE": "Product Code", + "PRICELISTNETPRICE": "Net Price", + "PRICELISTDISCOUNT": "Price list discount", + "QUOTATIONQTY": "Quantity", + "QUOTATIONTAX": "Tax", + "QUOTATIONPROFORMAID": "Proforma ID", + "QUOTATIONINVOICEID": "Invoice ID", + "QUOTATIONDISCOUNT": "Quotation Discount", + "ORDER_INFO": "Order", + "REQUEST_INFO": "Request", + "QUOTATION_INFO": "Quotation", + "ORDERCLIENTCODE": "Customer Code", + "ORDERNOTES": "Note", + "PROFORMANAME": "Proforma name", + "AGENTFULLNAME": "Agent", + "PROFORMANOTES": "Note", + "PRODUCTINPROFORMA": "Products in proforma", + "INVOICENAME": "Invoice Name", + "INVOICENOTES": "Note", + "DOSSIERNOTES": "Note", + "QUOTATIONTOTALPRICE": "Total net", + "QUOTATIONTOTALTAX": "Total tax", + "PROFORMA_INFO": "Proforma", + "PROFORMAID": "Id Proforma", + "PRICESALELISTNETPRICE": "Prezzo listino", + "PROFORMASTATUS": "State", + "INVOICESTATUS": "State", + "NO_PRODUCTINVOICE_AVAILABLE": "No product", + "INVOICEID": "Invoice", + "PRODUCTNOTE": "Note", + "INVOICE_INFO": "Invoice", + "COMPANYSTREET": "Address", + "COMPANYCITY": "City", + "COMPANYPOSTALCODE": "Postal Code", + "COMPANYCOUNTRY": "Country", + "COMPANYFAX": "Fax", + "COMPANYVAT": "Fiscal Code/VAT", + "COMPANYPHONE": "Telephone", + "COMPANYEMAIL": "Email", + "NOTES": "Note", + "QUOTATIONPRODUCTNOTE": "Product Note", + "QUOTATIONVAT": "VAT", + "AUTOPROFORMA": "SELF-PROFORMA", + "AUTOINVOICE": "SELF-INVOICE", + "MOVEASSET": "ASSET", + "ORDERSTATUS": "State", + "QUOTATIONTOTALS": "Total", + "QUOTATIONTOTAL": "TOTAL", + "PRODUCTTYPE": "Type", + "PRODUCTSUBSCRIPTION": "Duration", + "PRODUCTATUNIT": "Unit", + "INASSET": "Asset", + "PRODUCTININVOICE": "Products on the invoice", + "SUBSCRIPTIONS": "CUSTOMER SCHEDULE", + "SUBSCRIPTIONNAME": "Subscription", + "COMPANYNAME": "Company", + "NEXTINVOICE": "Next Invoice", + "SUBSCRIPTIONDETAIL": "Detail", + "PRODUCTDESCRIPTION": "Description", + "NETPRICE": "Price", + "DISCOUNT": "Discount", + "TAX": "Tax", + "ATTENDACELASTINVOICE": "Last invoice", + "ATTENDACENEXTINVOICE": "Next invoice", + "SELECT_PRODUCT": "Select product", + "SELECT_PRODUCTTYPE": "Select type", + "ALL_PRODUCTS": "All", + "ALL_STATUS": "All", + "PAYMENT_INFO": "Payment information", + "PAYMENTMETHOD": "Payment methods", + "PAYMENT": "Payment", + "DETAILS": "Details", + "INVOICEDETAILS": "INVOICE DETAILS", + "QUANTITY": "Quantity", + "MANAGESALES": "Subscriptions", + "ACCOUNTINGDOC": "Accounting", + "INVOICES": "INVOICES", + "PROFORMAS": "PROFORMA", + "PAYMENTS": "PAYMENTS", + "SELECT_PERIOD": "Select range", + "NO_PRODUCTPROFORMA_AVAILABLE": "No data available", + "NO_PRODUCTPRICELIST_AVAILABLE": "No data available", + "PROFORMAAUTHORIZED": "Authorized proforma", + "ADD_PRODUCTPRICELIST": "ADD PRODUCT", + "DELETE_PRODUCT": "Delete Product", + "AUTHORIZED": "AUTHORIZED", + "INVOICEDISCOUNT": "Discount", + "DEPOSIT": "DEPOSIT", + "BALANCE": "BALANCE", + "PRODUCTS": "PRODUCTS", + "INVOICENOPRODUCTDESCRIPTION": "Description on the invoice", + "INVOICENOPRODUCTAMOUNT": "Amount", + "INVOICENOTAXAMOUNT": "TAX", + "INVOICENOPRODUCTSAVE": "Save", + "INVOICENOPRODUCTUPDATE": "Update", + "PDFPROFORMA": "PDF", + "PDFINVOICE": "PDF", + "PAIDANDEXPIRED": "Payment", + "CREDITNOTE": "CREDIT NOTE", + "CREDITNOTE_INFO": "Credit Note", + "MOVECREDITNOTE": "SELF-CREDIT NOTE", + "CREDITNOTEDETAILS": "Credit Note Detail", + "PDFCREDITNOTE": "PDF", + "CREDITINOTENAME": "Name", + "TOTALPAYMENTS": "Total payments", + "PROFORMADETAILS": "Details", + "CREATIONDATE": "Created at", + "STARTDATE": "Invoice Date", + "ENDDATE": "Expiry Date", + "NUMBER": "Number", + "PRODUCTPRICE": "Price", + "PRODUCTTAX": "Tax percentage", + "PRODUCTQTY": "Quantity", + "UPDATE_PRODUCT": "Update Product", + "QUOTATIONPRODUCTTYPE": "Type", + "QUOTATIONUNIT": "Unit", + "QUOTATIONSUBSCRIPTION": "Duration", + "SELECT_PERIOD_CREATION": "Select Creation Date", + "SELECT_PERIOD_START": "Select Date", + "SELECT_PERIOD_EXPIRE": "Select Expiry Date", + "NEW_COMPANY": "New", + "COMPANIES": "Companies", + "PAYED_AY": "Payed on", + "CLONEPROFORMA": "Clone", + "COMPANYDESC": "Description", + "COMPANYNATION": "Nation", + "GRAPHINVOICES": "Invoice emission chart", + "YEARS": "Years", + "FROM": "From", + "TO": "To", + "INVOICEEMITED": "Issued", + "INVOICEPAYED": "Payed", + "INVOICETOTAL": "Total", + "CHOOSE": "Choose", + "ADVANCED_SEARCH": "Advanced Search", + "NEW_CONDITION": "New Condition", + "SELECT_FIELD": "Select field", + "SELECT_OPERATOR": "Select operator", + "VALUE": "Value", + "VALUES": "Values", + "APPLY": "Apply", + "MEET_ALL_CONDITIONS": "Meet all conditions", + "MEET_ANY_CONDITIONS": "Meet at least one condition", + "EQUALS": "Equals", + "IS_NOT_EQUAL": "Does not equal", + "IS_AMONG": "Is among", + "IS_NOT_AMONG": "Is not among", + "IS_GREATER_THAN": "Is greater than", + "IS_GREATER_THAN_OR_EQUAL_TO": "Is greater than or equal to", + "IS_LESS_THAN": "Is less than", + "IS_LESS_THAN_OR_EQUAL_TO": "Is less than or equal to", + "IS_BETWEEN": "Is between", + "CONTAINS": "Contains", + "STARTS_WITH": "Starts with", + "ENDS_WITH": "Ends with", + "STARTING_DATE": "Starting date", + "ENDING_DATE": "Ending date", + "STARTING_VALUE": "Starting value", + "ENDING_VALUE": "Ending value", + "VALUE_RANGE_CHECK": "Value must be greater than", + "AND": "And", + "ENABLED": "Enabled", + "DISABLED": "Disabled", + "ELAPSED_ANSWERED": "Elapsed time since call started", + "ELAPSED_DISPOSED": "Elapsed time since call ended", + "WHATSAPP": "WhatsApp Connector", + "WHATSAPP_INTERACTIONS": "WhatsApp Connector Interactions", + "SECOND_LEVEL_DISPOSITION": "Second Level Disposition", + "THIRD_LEVEL_DISPOSITION": "Third Level Disposition", + "VIDAOOSESSION": "Start Video Call", + "SELECT_CONTACT": "Select contact", + "SELECT": "Select", + "LAST_UPDATED": "Last updated", + "MATCHING_FIELD": "Matching field", + "MULTIPLE_CONTACTS_FOUND": "Multiple contacts found for number", + "WHICH_ONE_TO_USE": "Which one do you want to use?", + "LICENSE_EXPIRE_REMAINING_DAYS": "Your license is about to expire! Please contact your Administrator", + "NO_RESULTS_AVAILABLE": "No results available" + } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/it.json b/public/app/main/apps/dashboards/i18n/it.json index 012dfe2..9a3e376 100644 --- a/public/app/main/apps/dashboards/i18n/it.json +++ b/public/app/main/apps/dashboards/i18n/it.json @@ -49,8 +49,8 @@ "NOTAVAILABLE": "Non disponibile", "CLICKRELOAD": "Nuove chiamate abandonate! Ricaricare per favore", "ASSIGNTO": "Assegnare a", - "SELECT_QUEUE": "Seleziona Coda", - "SELECT_CAMPAIGN": "Seleziona Coda", + "SELECT_QUEUE": "Seleziona una Coda", + "SELECT_CAMPAIGN": "Seleziona una Coda", "FREE": "Libera", "RESERVED": "Riservato", "QUEUECALLEREXITREASON": "Motivo", @@ -262,8 +262,7 @@ "PHONE_REQUIRED": "Campo obbligatorio", "DISPOSITION_REQUIRED": "Campo obbligatorio", "AGENT_REQUIRED": "Campo obbligatorio", - "QUEUE_REQUIRED": "Campo obbligatorio", - "FAILED_INITIALIZATION": "Errore in fase di inizializzazione" + "QUEUE_REQUIRED": "Campo obbligatorio" }, "MYCONTACTS": "I miei contatti", "ANSWER_MACHINE": "Segreteria Telefonica", @@ -564,8 +563,6 @@ "WHICH_ONE_TO_USE": "Quale vuoi utilizzare?", "LICENSE_EXPIRE_REMAINING_DAYS": "La tua licenza sta per scadere! Contatta il tuo amministratore", "NO_RESULTS_AVAILABLE": "Nessun risultato disponibile", - "LOST_CONNECTION": "Problemi di connettività di rete. Per favore controlla la tua connessione internet.", - "AGENT_PRESENCE": "Presenza Agente", - "SELECT_TEAM": "Seleziona Team" + "LOST_CONNECTION": "Problemi di connettività di rete. Per favore controlla la tua connessione internet." } } \ No newline at end of file diff --git a/public/app/main/apps/tools/i18n/he.json b/public/app/main/apps/tools/i18n/he.json index 5179670..a59569e 100644 --- a/public/app/main/apps/tools/i18n/he.json +++ b/public/app/main/apps/tools/i18n/he.json @@ -19,10 +19,10 @@ "FOREGROUND": "קדמה", "NONE": "ללא", "TOTAL": "סה\"כ", - "ABANDONED": "ננטש", - "WAITING": "בהמתנה", - "TALKING": "משוחח", - "ANSWERED": "נענה", + "ABANDONED": "ננטשו", + "WAITING": "ממתינות", + "TALKING": "בשיחה", + "ANSWERED": "נענו", "UNMANAGED": "לא מנוהלות", "CUSTOMTYPE": "מותאם [נתיב]", "WEBREPORT": "דוח אינטרנט", diff --git a/public/app/main/apps/voice/i18n/he.json b/public/app/main/apps/voice/i18n/he.json index 812271f..9ebbc9d 100644 --- a/public/app/main/apps/voice/i18n/he.json +++ b/public/app/main/apps/voice/i18n/he.json @@ -277,7 +277,7 @@ "NO_SOUND_AVAILABLE": "אין צלילים זמינים", "VOICERECORDINGS": "הקלטות שיחות", "CHANSPIES": "האזנה לשיחות", - "VOICE": "שיחה", + "VOICE": "שיחות", "REALTIME": "זמן אמת", "ID": "מזהה", "VOICEMAIL_CONTEXT": "הקשר", @@ -339,8 +339,8 @@ "REGISTERED": "רשום", "UNREGISTERED": "לא רשום", "LAGGED": "בפיגור", - "REACHABLE": "נגיש", - "UNREACHABLE": "לא נגיש", + "REACHABLE": "זמין", + "UNREACHABLE": "לא זמין", "UNKNOWN": "לא מזוהה", "NOT_INUSE": "לא בשימוש", "INUSE": "בשימוש", @@ -348,7 +348,7 @@ "INVALID": "לא תקף", "UNAVAILABLE": "לא זמין", "RINGING": "מצלצל", - "ONHOLD": "בהמתנה", + "ONHOLD": "ממתינות", "RING": "צלצול", "UP": "מעלה", "INFO": "מידע", @@ -357,16 +357,16 @@ "NO_REGISTRY": "אין רישום", "LOGGED_IN": "מחובר (יש חיבור SIP)", "PAUSED": "בהפסקה", - "WAITING": "ממתינות", - "TALKING": "משוחח", + "WAITING": "בהמתנה", + "TALKING": "בשיחה", "DID": "DID", "CALLER": "מתקשר", "TOTAL": "סה\"כ", - "ANSWERED": "נענה", + "ANSWERED": "נענו", "ABANDONED": "ננטשו", "UNMANAGED": "לא מנוהלות", "AVG_HOLD_TIME": "ממוצע זמן המתנה", - "AVG_DURATION": "משך ממוצע", + "AVG_DURATION": "משך זמן ממוצע", "AVG_BILLABLE": "ממוצע חיוב", "SOURCE": "מקור", "DESTINATION": "יעד", diff --git a/public/assets/plugins/square/stencils/tts/tts_128x128.png b/public/assets/plugins/square/stencils/tts/tts_128x128.png index 44d28ba877624fc7722809b8b6ef247fb64bcc7b..f0fcf4bf6641829d3eaa94eaf8ccb7a05bc6603b 100644 GIT binary patch delta 7128 zcma)hRa9I}w{17>P9R8V+=Dk7+})kvZjC#epaFtI2X_f1G_FBI5*&iNBm@XSg9L}$ z-#HKGzju7&-dhj*p=zx?=UO$ZYE-TKO7PixaHRAHSF& zznG99Cof-yKPvyf4|JhUa=@HCeLa1gJYiz`_JO|Y)1|1Nqq%9eTadc0z^ww-9&=tUraKrvB>{V*MH#tAFltHWQ1d~W>{il zFd-TI2e1Ex`5)pL02(usEuXNED8HQ$wk6Xk+P?+1sK>*4P6|@(E+S&?;T3cH; z4WZeh{(o6!XkiKdd-m2ahMFv~A9&GZi&1Mcti_%KR3H_38U4WJgMu(O+PQ*Dsok;F zkg&u3g)UKll6HEgK*fCX8IIlO;PCw{YPphs~=^CYJR~Uk8 zQ=cRx=;M5xgZ}n!OVNeaeq!N@fup@Rr|)M1XHbZ1D&K{NSvu_G@1}HI-t>%h_q1+N zvYsUZEUk_c`8ht}8yovUPaArCs=iiH!^=0&B|)L5;LQv|P*Eu8>L+R+D;-Gk8gw#@ z8KEVNk%QZd{X@(?=`Wa9XzM~~|J}8F8DT`eB=Mf4mpF_0$9(PjXT*Y)OC~>RevyY| zF`FzA#Q%{=|1$|nB0{NcA&lTMn=a7N>rL1J@}N31?Kq6a84f0jHu7LpZ)TND#}3#d zDS4yi?tJYipTuQ%b5(SrZ&LM7O46c&(#Heh^aeGb8tf^T_T(>9y z=gLREafqf1!+1?~^6JE;)dc#@Sx z(NYr%b}sacQwW@i%^BnP)Z*_m9-4U3hI?EwLTx@hQW*&9`bNSd;k?6N)W9 zMZYalK}63iK7i?~%%a-tv>LwxAM+;AGay&1tM=xKO zHe*N7)7Yqx>a;e=znU>}!%+vz&`adh5o6K6GC`(Y$UZhY_FM_%6Q z8{Ruh<4`sfkC6G+35ftwA4G&pv8ju30vTegK1~~wKsVgJkrAI0vafd+zY|`)Y$7*T zaWS0570bo{mP?39wyQ`(C5Mtm`jj^X5pf-46MhK~xynOec6{4Nu@&EQEAr0>FokhE zkxtsnr?>W0(xhP1(!;v>k&C&29%$o3o;-hdY{}A2Gc%jL3GxD{Gs*7i#=%F%wkI2d z?mZzxJEJX;?HM!HC||jp5|j%&H>~beQR(~qH?>&ZUj~jc?6qIGTR5H$y^Ru-U%jM$ zrg!jYoBnt=WTT>7JPjdID9c(Pz(4zqipAd8b-Q1;K8{f8c~zjArdp|7sau||qB~4x z$gjeY^;ySxO{@ZNg%01PlI3f-%nMN;bn(dZV$l`)wNuXMKSg2XMz@7Z1ic-mb;aYt zeF)TSTFhJwp4P`gYb7Zs3*A>^Ieh=-fKdbW$i(wh3YvSK?CfE}6nI`pgrBBTR9Rwp zx)^4#+Pb=_D{E`csC4Xu4N8OC)CyVLrmbgMBq$@G-qX zLF+ZPk{&gYgr8?>ZvEzI>JPdN)$eQz4;U4jzBETkRG}CCM)VIylh8*$)dmhMc&;xB zK09TLwN6WUt>|ONQvt7I(~KP#8NDbOjrPSX+&Hwnj~FH8y=MJp>(&-(Y8*w^}4*-G7QP9QeWa#@R1J+7R1DlK^$c*`+L> zu%)g=e6BiV^o7K=GHbH^7F!lR*pUV^F?4sw1_vl59yVG)2VJ#qd|!JRcathz(S82F z6w2;GVzJ}@#Zybfm`_HoUIYauIGf9x9W5M8Hu49)v`p0>5|%I%mRw~XhxdxH53x8q zNh>yXt$hpnC%dF;mV*sknTDb{nqhN=LJrQ*4^U?dt|_YU%d~N055lm~PgGF$`X2ag@6I09qay4aYv95QgU}J>d%>Wfwzk@Tr z%te0ji=5-eAfeQ7l1--msXxEG46t4#f5^5nA%C+R$?O*i%&D1!@ZPXtC_<_&A_U{63Gyd~?!M;>i;C! z4xNe!8lMecRtx^=dU<*^umYnoI;1Y0zWbQ{gocEG5-j5yHEPZX`Y0CZo8*E4Y~>24 zi09MIgnCuTXk?iMG@G1WuBekh^F`{e@7XoxknAM|mQILn9Vm`ROP z@Npm&eb5qwOXK`SEyljt+Qtg-MD5{7m|d5|u9Jen0JcE&Htn)D#!C9nF)LZEb-h8d zPp-d>o@ue$c+`95M5?v-fJ9ll&A<&uJq=|*agFJTbY33T5uJYikscTJ>rymQX3W<+ znxsRbMz?zb$LroaDN=V3|K*+0^n>}PCX}V0gxRJU^{11LE}mxgumuhvD&DK$a%lBc zRb312lNdBPc;ArMLJNl6r$8JA;;S8Z=RLY_UDxq82F9u0s{x&v(Y@x3CM~l`H;*3& zOL;1t@j66bU$cl-jZH4z)%l$u6JF0vtt495bo8a!X7kjZOxrzD(?zo5;HPu;syL%{ ze+BWlJcA{!{Z4^CCVC}+t&$~GpXX(A<364dK*i-uQqFaiVhd$tmsx}r#C|7RodvBN z<3X76kJ_%kc;)SI^q=npaMe%st%^LFnH_KaiEAsFhDuq^pFJ8Nz?IKQK{WJN_bPdT z<`hD{42TYqcfaTs?!N1Xx5J+<-a1JOkVGl4n8afDWy0vO3EKdbhtoul@i-}1;FjLF zhJh8kkyL)sJw4aLtLCb?GTd>r@~yi9pgYTAMO?8~4W(Wgrh^_fjzw6E+y#lolX#n<9pWm*niEzitk^W*?{JM#PKzoBsKvqYwt7IgI4~-k0vuzx*Ua zUiR#Fo=Wg@4tNZtqWQAEwFjzRq{qt3cyHNNouky|ZW9WaeRSK8lI%w?WXSzs&(Dbyj*4B z=BC7&8vt~C%%if1W{yM6`FduWLp>~RShQ6T*6*mJRj>@A?3X4Qmdcf{^4U7`ctU-p z*d}~DyLD_jRVuV5Rkw*DQ=G7vM5wMV9-7_63k$W0%*}(_iW7`@CD=IQJ5}I-Hgl6@ zS#@w;M8#~1nWfZP>kz@w))c4`#vqe+2}Y{MfZid8Lp*iSN{wI{**D5)=90)pu_Aln z7z=$f)yc>PTwX#*^jEy>+4*^X;zVncC;Z*HO6&>-BJxbS`<<(LPJ#61&Nvt7tNAF; zNfktsbYcAypBI+j%L$oc>z1B>($FF;v*1pz`h=71VxJ~X&Hl2u+NxHt(psCe+B!6p z23ToK(=DAsLk0id|84$gm2mwa8wt*?Oq==MgvR#F$FD_sa-a?k?Pa>T3!3&MYsxMU zF!}e> z7D~c%)J)g7SXcfhn@*T=RPqeOUk8zA1dymdVgqv;qGimMT~SSI9W{Iri)G(t&vtBJ z_`^D}Yj|ZTq^Z}1Flc@TYpv_4d7glYTYmPaU%;wLr3RFKNhA!YHpZ@BbvRm z6%`B8U46#aJ@na`k8SmsR$4EG7P@B6J7wB@F!W5w^}1^mHkemj@AJGJ_#r%@;aEK zuj814PGYNsodN>lPm|##DsP3#hFNgi+HM&e1}_j2k{1r6X2<3f7U;Pg6;qU{eV8jc zHQyGG$y(sGpU`L+(cp}+HYDyn;VUbvsw2ctojMSjo8vNT{hUOS>0lQKWXto%e{Z-@ zV<9BM%UL4+lAtRT%-qW3N_0wU3`bHEp<26GmGc#r29bqGT77+<>&iU#}*_@#eZ zqxRSZF0OyXXLoXPvkDAE zG4)OYmwQUYH2oWfQ0(}~Z(=G`zM3(nSZ#8J-5HHOC&5bkr&Q0j+kgkkL1MJ+pRv!f z#1loCo4=~QNqudJ{Fb)ZARI9#&whLhm0FpiVrQBYBDQJxqoPr)ri2NNEVs2$9$y|J z_ozLrdM=VcMvw&@pYVl|S2lkYL>)4g8VEZc$Isa5+W`3?{LV zCwZH99X-x&ndND*G7z$_{uobbX%(q__V*ak#14T}!$SHKuy&f!AsZ&AwU!>2P^ELD z?;nyI?nGm*SZgYu(sYGo@Of^e zzve63F_UUP>5RWxZEt;90)HDsft9&MgoWnh>|Da4tJk~(lgu#b!FabgJk2KLv*$$< zW33G2z7?9;0ABrx_lm5HKV4RY!7GbtGFs-5?9(w{&+5;7`<5zzAHrgaT5et6Rgu%= zIKe9-q7ETycX?t8dCf|~lpa4F6oGz(KVe2mi4*%S$-J9M(>+9-4wxR@+$4Gx5o93Q z#1iwl@x#6tUOpY2w0YQ^b1sYP{OYGtg(P6HRlo%J{$^j7)JuXa4bk`IEG*)w$`f@a zl2HF3-d(ehm$%#S6}h%ePyAT=>e||^kxin30mkfDzWr@VcoqjW{*`3kn@^m`8{JQD ziKD}YAm*5nf>FfwH_F)ZlAc%bf%#JneC70x*ND;&nYa!0LJ@%n4TFed^C~S|Mnd4< zpO_XRB}ioo3JO-kF4venfA8;a#ZbHiZSGYSRkpOWxIK;N>=f(l>}dF}w7G~ZPD!MXn?&9iN_VHt$(aRv_w==~+?=jV5@-ksOqFEbfXq>CCoU|l-JmXwrKxL{^x z7Oz-lzyI$2`>hys~l)oD2|h zE`TrzXoeWvw!S7EEH%YR-S262osMwMz_lZilL@G(r~>yY-im}?!CKe<{P6<)lhGsK zV$P@o_FZ;K%uzK@*t4>&P1r2J!h#mr6i7r2^17TZkJjYNbO@eFWG@)yLEV3>Y&<}< zB(Iq^?vDZzk6b-GcH&tJfz2hyq5`jvg}_4)GUUOs6v>gPGNq>6lCrWWQdUj7+pw3R z5x;-CfNUC!|E?m367~PK6xY<$boDAJDV@#ksUt<1^!Km7X1<6H6I&c1-Of-NqoA~#{aNp0mJnE=MN!Z*qiFQ&TcZ zN|@c<-Cb8d5&?TlkLSOtr0&`O;R&HinqFHQ->>UE+AGg;&3MbBo6LXMg;aSW;)@Mm zVaSna_(>F9eaNLp&t>=Vczamy)fb+{CPzYX{{!R+-2UO*(f}lJx$3jDA<){bjsHwC zG`qDG3iVu9M`DTx9Q{N}u%i-0NlUwpO#JvV@PHIPawT1DMiC~cPwTsnRE)mmdD~s+ z#jjN$Wt+w22Bx9I$gl%{caupcpq!<`i9V=W3r z=|e8_-JlJlp3^M$SKe1A*7J3iT1rZTA8vk*WN|7;E_AU(Lfw}?S8C)XWD5ui3hsAe zVqhpUktqBPz5RQL?D(l-juam`V)bhh^-`-l^}xV@ zo>)Fl*9i);ySc4x60l@&VrfR+RMS;5xXoILk`#k}mBfjJ-3Yd=`BUTLkpZs)kM}fE;rTET^^g$p zf1q{E5E?Jfe46_Gne}^D8ob(V)}vs(aHm587nCJ8*MDLxWpY&!4Z<%Iwt$L}hh#d`SuY zOXNA3DSNPB*9VelamIe}l6njEp?29Vp4+se+#_kpgv)6qA{$qu6zmzO?2 zK4V7${g6>OHzN_&$Oxk_D!?altErB)0S@Q*(tp4}Huq^^gxe(mp{ z9jw?6CU57&+VKw$XRszB>_;e$8qBX=BBx%SA+0pHd#H%SKPp3t@_(-x{C7EF247(( zM9v5(V|G@4_&eo!QUUZD$89a*hNIU~h^i9f#9Z~#g^%?tgeTdH8`-OL)`6cG@9ymv z<4camM*mkWf(%!|VV|zxUOVbJhyIny=W5B8Uk2ed_)=ZTT_L#Z1N+o+FE6z`TsJ+5 zzT=~O4-aO(?N_RuDR|%1PHNIz-urQD`0ud0F-~1#O8u?#WVE?d+sAR8 zGhk9SL6S@0T9qnVkzoz4+)+$#HGzNDPn2%O_S#kyH=F{W2PQs3Pl?4q(N4|F3WCv$ zdp^S6Txy0#x{EJV9L_qS#12>VTj!sL$KiVQLjEbKNYQO#RCZi|J%~()#A9;8tFEkz pwf;LJs{dMH`M(rj7Kra3!63wWMv}z|4<`uOR1`Gj5wcd1{|jnsOPK%w delta 6505 zcma)AWl)p>wB03_lm_W`rMnvhBqW!V7En?;mv4!srMpo;X^;jbmremm$puzILPS6i zo^Rg!_uiX%_vgKL?#!7p=gi!5UJWj&0H;V{$*?raK(VQWCHaMg_=Sayg+*jU#AJk| zc!fmL{jo*<_rWLZ>GWmXhn!N94x%DLPGbCa4&rwF5|U!#{8CavPW&%KoP;EuB%SOW zr0kn$@EoxJUz_QL1Y+s5kZ(=3gm*$X$FR2C^mCCcdxO&c)Ef@;&$YI;XNU7@e3I1OLO`oFNOUdl%ET)zfe73;*2S%4si)%nlFr?YEf%XGgbE=vU{MB=D0HVG_i@1D}!h)O3g2Ijg2o z>-pQEyo2%%X1SEe$&JPFl_L3HIVAp&?@R3h6nek!5PX_78~YfXoGO9$A|&mXa|h@B z2;yk*sHKHvplQ0?Dx|&4v<8Ox@aZoFZP+cWDzi-jMltex43C>c*zX9=2y7OkX#>dd zzk)kmTl>ld(fEgLy3v|9@a9G8W+K)Q#rBJsN&#J;y&GWSTPCffE`=M5pi-K8zT7P^ z_w6iQ4}Hz`)&lo6w%hWM=PKv&%01od!z-)c&qLBHKLP~KmmQ5Xnhl*^2BviZf7@HVePAUcx4zX)7vl zY8}=mqbHgxYO}4mtrdrL7W9{7=Go&sLmZ^lI*jefXQLq^X{TA(2=*b7PnS{xgs-s= zRrY7jS70IIJR3JwJ@ZkGjg5x3tAXGJnlo*O5|7@BbY^v+=$E3W z?v$CyzHOM?{W1u6aboS*j-p8UMLHF%;*OT|@2H0Sw6~6m*51TbBs>*vO zB{EHK9f!8Zx}DfQV7Tv@%S3iq+S}>BFT}|O<%=9aC6#XR#~awh(Yw$(%xDC@BTO|SeV|QbOVz-xMp|SO75QZ8kSNtZU6a58hGY@soon@+YwX5eaMtu`EpMpqzO!X)BpaYso?XTlx%fk;AV4+ zpanS%HkZ(8X@JG=H$=2`GIx9S6H!Pz7IysX>M^De z1jTA*>fJ3m3cxZ9SnQ+9$qLBtE(B=CRt;;=5~hN;E-=^Pa=qs$});H4z(r49)LU|E>xkjw*3j>zYOG=VA>_cd;Y15$}1E48UUQs^63poN= zC#>uSGTqcT&jcT{0D9peNjICD8-T2But_c-H)aBNEY&V>&lz4rz23fa6|j*&#|z=9 zEipnykVla5@cuZ-2u(_Y40H4C#``N+bpnT0Z4Zx9^ppC&XAvS89)KJu_7Wh|a%a%u zkl$!EWlhGeXk)WBmICQX+Q4eOfMf=RPymcDqGj)f%h=m%zJ?U_Uh~|3TVoDjdG;~E z=2lrppPV~hrN(^GFc!9iCYpm?jh&Oyia!+0wVl1nIbHKfGPO>&NcyVxI7o$)4B&B{ zaCP(H5E|dqgJ02JABpy8QQ=5oL`VWZDLfQgncU3vzh#^dS-LJCpFXaZCCi*mRfcP?U&rzrG% z(=nBuA+a|QA1QAVxZy>Fx1IO1zdVOXoa+N5CdO8Ps^T}{NuCzY7K3P#q*LiZR25|s zG1s4E$Ka}pXPTq^_hEf!yDZ!=Mc^kvam;aJMs@~~&)7QK*3XEaEZq-Z1AfbA=KwYT&Wo?zrIN8*SZF z33u=ygpoO1bi98A@=YQ46EMu1&6tVnI7_MS*5B`~E9KR@eU0_(`uIAQSNNL~+iTh9 zxbwM!>~c3>hOhpUoLUnOe}Rj0Swo&hemtZaRuuEmLl5hV@Kt%{cKN^e$^%CCpNHbX z>3of>Iq8gb!%O!KfKigc7zqqe<^Zl`gQN; zuFoINVO?w{D=BBXC?!za07W-?fpXsO9UBXlD<^$W{Tdq_jC2%rcoEJbXSllkpNPci zSR!q1Dt9(36O!r+fp}@*G!!9OV0D$8*Q__Dw5%Tf_Zs2j=xFnpK-5#*ogSp4j#0e% zVzVu(r}%`9)83|2$Yx;&`%-cEabobMNrqAOyNosqL3}q`w@|e}S9SB}Q<|lFGuZyr zxYIFJt`f$78L6gX#xTsSjNd#z;GQ~f#N|{Ha9G=mP0VkifU?u00bEo+FGlqa?Zc)K zonA1odD1-jF`Sz^wQ9^W^vLTUSR+*Bl;@AbT*a^AnuxE{k0EO8q1VWi@^Xndj)wM~ z!1F4!iuv_n_BKsGZC$Q)plWVy@10nyjWg17Q-!)HsP~jtG5tg0{lx=v;H(N=x20zF zLAwk^%ghhFUM+L%-o9$vfTVz;`K*HP7XrcgSO}CRMHnWX1%2LgNAR3+Ykn(;dBLJa zeALO!L6m#hc|wMzvi6M%Qgxs|!BggL($utF29qXcMcj0rr1(d@cifcmgpu}cd_z6- z2R^wS$?Hv(tGntX#XEnUKAvvawwN?O^sT)BJ9B^OI7RyGA zo!8o)fkEOQ#}h#ZSY&*ux@ zs7IOkWggUdcx*}h#4@IKCAmN1VA*LgwJEo->O22*9P3e?H|sX9vtU@U25-;gL1D$j zASG!sSgduA!W$#DPWAf}m-=Fl25RyP9GuTWO#;x9;f;6pvyb-kO zHQeyAI;Fr;@0|WA=b+7JdWS^s;S{n`_<_ZZ`Q54znQVT4F7EAQybIIwN17H?bUcjEeq-TAEGFH1OV0h4h2BxCI9my&60Pr@B$T?$KyT^} zC21Dx3`%`u=;qL1r%OF8ALm(pWaFw3DeK!S+~T#a;Ywp39OaprlPT%wm>4=17JQfq z!*3_fFV*EfNX`nSezkobNT-z!L19@-u&*YOvcaSIGFY0X-bK2Qz=9g4Ew(`d51(Yl zg(d8;%62^~oE1Yc;OXX;h(zK7{X(dJ{tKrjJX&jdpGtkiqJu?r)jcV8b>U3h{5cgS z0y=fKqCnhJOZxjS{3tU|Ui9d>$shJ9YkvX!E`Q36k zv*)!BmH#207m&%%U^f;>#6SK1bFsDwc(!#K7bP%cF@AL=MMOk|qpSqfnmGJ9fX&wy zQHrM>?Al`SmJdng-8xr#tZ$YZ(UWMJGC#z^v?27DV>?tudrH)=tkAJrgdkU6dB8qq%Vj2@-Gx*IiH1qojskjH>_*iqg`m9esuzQ z?mgF(6k~dh-?y|xx9bh$3K8ei^g!O`k?%a6eF766veVRR$D1vm#VFCLHky~pB92Y} zRI%;*9|gO~xo4HR%QBSELJp!!Pj22Euo{a_ejs6BTV|{EIjgC5{xV>(s8d$jJx%g5 zchUL!B{B6r)!!9Mt`XKh)=DU{sPR=xtmepGx`ESE$nH-pWxC(MC}~6mj}rb^p=6As zIFUd|T%bjhs(V(~@0Q0a57#{yUfSp>%k+ML|IHlSU(B2C3irWr8*K++7zb5S*U;#r zwXS^RHLi;?e;lRnE1#!mP!XoIt`3bK2l-vyYCbuV-WUARW}tpi!OBV;@*$z|PAGxa z#?Iq7vycr8D&PU$z3Y++4dgkaupge7ApYt??dm=)rL>=+k>SOGpUbFIww@odLnG$u z)`F$n8S#!U^jW6WexuSO@}^?M?F#=>tP5;OIe6K+1P&sWESfDLL7PN90fJN!CSZsGbBoe^%PHIHe~rVj=8RLz;FU^W zC6FsWA-Qt2L=wLKXw*31Z&@~r026{t?lzcDwNs7Oaz~RV&SIN5&C4p?vn5k{PY@_> zy1(Lodu0#I$*n~NVYT6a7U+30pN#DeW{Fjkv-x}3)8S1vGz!O&w}12|c1?iRaXod= zw-@KD9{xZg)!~{29~4ntCoGD)0oncq)4>KWiA|mNuC_ONRH(S#B^vu?R=+&C`9NXp zTq$5(VN&?yYvc0QK1(^NW^s9X*+II2@81InBT8NYbp981nUGTYo4_HjjU~tR&o^=* zT0UlR4@0AqTQv3xc)Cq{ji-Emd<&3_d758x?#Tmceh)u9IlQsvu&2Xev&a2XaV7rr zCBo&X6r!QA7xelvi1bHiqNdJHsC`>py$L44g65q(6+D@h*g$x(zEa%5?11zk?Tl4a zT73I6Af7#2E5d+=W(;M(|4^}Hbb=|BlBaPve4FC(qHE~ZM`uX)u!ebMtFD3QE|f5!9qr<0qjuyC!QBIt*3$a(2*3d{NFx@6Ge@!~^4 z0SX!IooFGGxtWSJr4oNVQ*Fy;P^)iI%nw`yAeEH6)RkRX8Tn#w^g9o?8u0y9yL~ePW-$45S z=&P1AXyG9~)Rd>D!0OfG)*lfU+wMH+5O;F?1l&wHoiE8{L5s*gMAo> z`H*&&=?7JKxhFR|Oas>Rw>#!v7aF$VeZCnPOgUSUyRN7CH zHo^*sXa)2I9J}22d)guv;ky2L~nxQcq|~TZhPL zYueTY;nsyd)nH)J?no*}fg%v@U9R)xGJRR@1zN4ShMl0bE4AIx3(@$+;GgDZ@#g&^ zAT=$Fvi?z`^@Vo9f9R3+b^~(QBu%Q`RTtmZ>0~)7q%+0=r^Uhp+pQfW z6umM=n4Oi?Y3a76g7x>eI6w%ep0?oT<~Dn7Veb*v?fPcR;s+uOL^jIR+sPn7uw$Jt))g_tDXR5OTb$x@9WC08d;*cAyYZEykszYM`?)rgC9pCrRd zR9)&;>viOUD~`WnMI~>Wr+3=o^yjIs)r(LX!braru?PA@5eveJvWcy3wj*_^cBCu{ zz5~b7;(iFD_tv{(nd4LmgW;Uv!qFYqK@qIqWd?Og5r;GRlARjY-P4~h*CU06IxM;ZK5HP>14-MlBzA>(S%t2Sj>WQ^}0dDjm=5 z{5_H)PA>U*$jRSA$L9JNm?0md2M3?8z0^C5V*~GQ&{1VUw%G$U&X-WZF7KkJ1XTqeqy5cdg3$mtae(Ks9cuQdxI?tG4<17hXpa9R)&aQY&l?EF^L3Ww3RlNl_ zJ5hkhnzo1#YMqM2&OI)m=VmSNw^(+)j?t++DhCj7rQfBnRfWdezlCbyo3C@yG(rMC zpX1n3mF+qX78%XC3}uai8u(Xi2qtTu5HwpaS|r=Q%7G^3 zcKBAl4@h|wSvQQ<)9!i)?cAqV^TT!JH!?Cpc};x#_D#tS%?LUK^-ZpPsEWq~y$O!E zZU#O=Z$5R9w=0vtMGgHeRvm_uxW;EH(pa-WZ6MGAxI`%N6kbm*F%`jjiB%^`DkLE> z);&5(@(asE5AWjM9TPM}S2sDKFJNk+WLrD=8FBaqJ0t$d(2%<4A3TeHn)3HAvM-&% z!b*SU(YW?zfJs#7#T;}}c-}qYoknsiCy?^f_cVALwBMW3wjRcS2@W~_`{_E2I-Hme zY}OJ$_q4xvL4^TQV3d_bb6&OSM*wp8P&@xY!1PAMs~XG-9a_q&Jj%bo(P;PHC3Ifz z&ce3+T(_|I0$bA9$S*>K#QrN+-#BJ{WkI2Ds^G@$UE)`TON$eCNLts zSkN!=4=wYs;Et!bG#o(CrJ^1(VNtd}{tS zEoQ+JvoIwcv1a}kw3FX>Em2j3JK-hkSsx*9J|35iW&4&Ty`rDQ8a1@#4v%kM-kh!Z zl$j-R?;CVA)S13gLsM7G4%A{JKeEf_FHz5RYUu3c`s3)@$FGQ}dEX8e{=YVzRldJ~<5#yp0t~T#74$;!a~~_gztqt}vfff{B3# z3f)cb2c}*fx*;r)tvBqhfP4ySy&7P%?4W=3 N^vN@|Iu+Z9{{S{6SM&e? diff --git a/public/index.html b/public/index.html index 440df25..4219631 100644 --- a/public/index.html +++ b/public/index.html @@ -14,7 +14,7 @@ - + @@ -60,7 +60,7 @@ - + diff --git a/public/scripts/app.8ca158ef.js b/public/scripts/app.8ca158ef.js new file mode 100644 index 0000000..ff272af --- /dev/null +++ b/public/scripts/app.8ca158ef.js @@ -0,0 +1 @@ +!function(){"use strict";angular.module("app.auth",[])}(),function(){"use strict";angular.module("app.core",["ngAnimate","ngAria","ngCookies","ngMessages","ngResource","ngSanitize","ngMaterial","pascalprecht.translate","ui.router","ui.router.state.events","gridster","ds.clock","angucomplete-alt"])}(),function(){"use strict";function e(e,n){e.state("app.errors_error-404",{url:"/errors/error-404",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-404":{templateUrl:"app/errors/404/error-404.html",controller:"Error404Controller as vm"}},params:{status:404,statusText:"",data:{},config:{}},bodyClass:"error-404"}),n.addPart("app/errors/404")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-404",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.errors_error-500",{url:"/errors/error-500",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-500":{templateUrl:"app/errors/500/error-500.html",controller:"Error500Controller as vm"}},params:{status:500,statusText:"",data:{},config:{}},bodyClass:"error-500"}),n.addPart("app/errors/500")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-500",[]).config(e)}(),function(){"use strict";angular.module("app.errors",["app.errors.error-404","app.errors.error-500"])}(),function(){"use strict";function e(e){e.addPart("app/footer")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.footer",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.forgot",{url:"/forgot",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.forgot":{templateUrl:"app/forgot/forgot.html",controller:"ForgotPasswordController as vm"}},bodyClass:"forgot"}),n.addPart("app/forgot")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.forgot",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/header")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.header",[]).config(e)}(),function(){"use strict";angular.module("motion",["angular-toasty","app.core","app.auth","app.navigation","app.toolbar","app.quick-panel","app.header","app.footer","app.dashboards","app.staff","app.contactmanager","app.voice","app.chat","app.mail","app.sms","app.openchannel","app.fax","app.tools","app.callysquare","app.analytics","app.integrations","app.settings","app.motiondialer","app.help","app.jscripty","app.marketplace","app.plugins","app.video","app.whatsapp","app.login","app.forgot","app.reset","app.errors"])}(),function(){"use strict";function e(e,n){e.state("app.login",{url:"/login?token&userId",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.login":{templateUrl:"app/login/login.html",controller:"LoginController as vm"}},bodyClass:"login"}),n.addPart("app/login")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.login",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.analytics",{abstract:!0,url:"/analytics"}).state("app.analytics.metrics",{url:"/metrics",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/metrics/metrics.html",controller:"MetricsController as vm"}},resolve:{metrics:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticMetric@get",{fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Metrics",fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1201})}]},authenticate:!0,permissionId:1201,bodyClass:"analytics"}).state("app.analytics.extractedReports",{url:"/extractedReports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/extractedReports/extractedReports.html",controller:"ExtractedReportsController as vm"}},resolve:{extractedReports:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticExtractedReport@get",{fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ExtractedReports",fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1202})}]},authenticate:!0,permissionId:1202,bodyClass:"analytics"}),n.addPart("app/main/apps/analytics")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.analytics",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.analytics.reports"]).config(e)}(),function(){"use strict";function e(e){e.state("app.analytics.reports",{url:"/reports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/reports.html",controller:"ReportsController as vm"}},resolve:{treeReports:["apiResolver",function(e){return e.resolve("analyticTreeReport@get",{fields:"id,tree",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"}).state("app.analytics.reports.edit",{url:"/:id?tab",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/edit/view.html",controller:"ReportController as vm"}},resolve:{report:["apiResolver","$stateParams","$q","describeTable",function(e,n,a,i){var s;return e.resolve("analyticCustomReport@get",{fields:"createdAt,updatedAt,id,name,description,table,conditions,joins",id:n.id}).then(function(e){var n=[];if((s=e).joins)try{s.joins=JSON.parse(s.joins);for(var t=0;t');a.append(n),o(function(){!function(e,n){var t=n.find("code"),a=e.split("\n"),i=(a=a.filter(function(e){return e.trim().length}))[0].match(/^\s*/)[0],s=new RegExp("^"+i);a=a.map(function(e){return e.replace(s,"").replace(/\s+$/,"")});var o=hljs.highlight(r.language||r.lang,a.join("\n"),!0);o.value=o.value.replace(/=""<\/span>/gi,"").replace("","").replace("",""),t.append(o.value).addClass("highlight")}(e,n)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";function e(a,i,s,o){var r=this;function n(){var a=r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators),i=r.selectedField.options&&!_.isEmpty(r.selectedField.options.excludedOperators);r.availableOperators=_.filter(r.operators,function(n){var e=!n.applyTo||_.includes(n.applyTo,r.selectedField.type);n.isExtra=a&&_.some(r.selectedField.options.extraOperators,function(e){return e===n.type});var t=_.includes(n.excludeFrom,r.selectedField.type)||i&&_.includes(r.selectedField.options.excludedOperators,n.type);if((e||n.isExtra)&&!t)return n})}function t(){!r.value||_.isArray(r.value)&&_.isEmpty(r.value)?r.isValidCondition=!1:r.selectedOperator&&"$between"===r.selectedOperator.type?r.isValidCondition=!(!r.endRangeValue||!r.isValidRange):r.isValidCondition=!0}function e(){"number"===r.selectedField.type?_.isNumber(r.endRangeValue)?r.isValidRange=Number(r.endRangeValue)>Number(r.value):r.isValidRange=!0:"date"===r.selectedField.type&&(r.maxDateRange=moment(r.endRangeValue).subtract(1,"day"),r.isValidRange=!0),t()}function l(){var e=c();r.options.conditions.push(e),u()}function d(){var e=c(),n=_.findIndex(r.options.conditions,"style");r.options.conditions.splice(n,1,e),u(),r.pendingCondition.style=null,r.pendingCondition=void 0}function c(){return{name:r.selectedField.name,operator:a.instant("DASHBOARDS."+r.selectedOperator.translate),value:r.value,endValue:r.endRangeValue,displayValue:m(r.value),displayEndValue:m(r.endRangeValue),query:{column:r.selectedField.column,operator:r.selectedOperator.type,value:function(){var e,n=r.value,t=r.endRangeValue;switch(r.selectedField.type){case"date":var a=moment(n).utcOffset(0,!0).format("YYYY-MM-DD");if("$between"===r.selectedOperator.type){var i=moment(t).utcOffset(0,!0).format("YYYY-MM-DD");e=[a,i]}else e=a;break;case"number":e="$between"===r.selectedOperator.type?[n,t]:n;break;case"multiselect":var s=r.selectedField.options.field||"id";e=_.map(n,s);break;case"select":e=n.id;break;case"autocomplete":e=r.selectedOperator.isExtra?n:n.id;break;default:e=n}return e}()},disabled:!1}}function m(e){var n;if(e){switch(r.selectedField.type){case"date":n=moment(e).format("YYYY-MM-DD");break;case"multiselect":var t=_.map(e,function(e){return e.name});n="$eq"===r.selectedOperator.type?t.join(" or "):t.join(" and ");break;case"select":n=e.name;break;case"autocomplete":n=r.selectedOperator.isExtra?e:e.displayValue;break;default:n=e}return n}}function u(){r.value=null,r.endRangeValue=null,r.minDateRange=null,r.maxDateRange=null,r.isValidCondition=!1}r.operators=r.availableOperators=[{type:"$eq",symbol:"=",translate:"EQUALS",excludeFrom:["multiselect"]},{type:"$ne",symbol:"≠",translate:"IS_NOT_EQUAL",excludeFrom:["multiselect"]},{type:"$in",symbol:"∈",translate:"IS_AMONG",applyTo:["multiselect"]},{type:"$notIn",symbol:"∉",translate:"IS_NOT_AMONG",applyTo:["multiselect"]},{type:"$substring",symbol:"⊃",translate:"CONTAINS",applyTo:["text"]},{type:"$startsWith",symbol:"a..",translate:"STARTS_WITH",applyTo:["text"]},{type:"$endsWith",symbol:"..a",translate:"ENDS_WITH",applyTo:["text"]},{type:"$lt",symbol:"<",translate:"IS_LESS_THAN",applyTo:["date","number"]},{type:"$gt",symbol:">",translate:"IS_GREATER_THAN",applyTo:["date","number"]},{type:"$lte",symbol:"≤",translate:"IS_LESS_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$gte",symbol:"≥",translate:"IS_GREATER_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$between",symbol:"≬",translate:"IS_BETWEEN",applyTo:["date","number"]}],r.addCondition=l,r.editCondition=function(e){r.pendingCondition=e,r.pendingCondition.style="md-amber-200-bg",r.selectedField=_.find(r.options.fields,["name",r.pendingCondition.name]),n(),r.selectedOperator=_.find(r.availableOperators,["type",r.pendingCondition.query.operator]),"date"===r.selectedField.type&&"string"==typeof r.pendingCondition.value?(r.value=new Date(r.pendingCondition.value),r.minDateRange=moment(r.value).add(1,"day"),r.endRangeValue=r.pendingCondition.endValue?new Date(r.pendingCondition.endValue):void 0):(r.value=r.pendingCondition.value,r.endRangeValue=r.pendingCondition.endValue);r.isValidRange=!0,r.isValidCondition=!0},r.updateCondition=d,r.cancelUpdateCondition=function(){r.pendingCondition.style=null,r.pendingCondition=void 0},r.setConditionStatus=function(e){e.style=e.disabled?void 0:"chip-disabled",e.disabled=!e.disabled},r.removeCondition=function(){_.isEmpty(r.options.conditions)&&r.clearFilter()},r.getValues=function(){var n=angular.copy(r.selectedField.options.route);if("autocomplete"===r.selectedField.type)for(var e=0;e',compile:function(e){return e.addClass("ms-card"),function(e,n){e.cardTemplateLoaded=function(){e.$emit("msCard::cardTemplateLoaded",n)}}}}})}(),function(){"use strict";angular.module("app.core").directive("msChipColor",function(){return{restrict:"A",link:function(e,i,n){n.$observe("msChipColor",function(e){var n=i.parent().parent();if(n.hasClass("md-background-bg md-hue-3")||n.addClass("md-background-bg md-hue-3"),_.isEmpty(e)){var t=n[0].className.split(" "),a=t.indexOf("md-hue-3");t.length=a+1,n[0].className=t.join(" ")}else n.addClass(e)})}}})}(),function(){"use strict";angular.module("app.core").directive("msClickToCall",function(){return{restrict:"E",scope:{type:"=",disabled:"=",target:"=",prefix:"=",license:"="},controller:["$scope","$rootScope","$http","$translate","$document","$mdDialog","Auth","toasty","api",function(t,n,a,i,s,o,e,r,l){function d(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/originate/"+c(e));case 2:return n.$broadcast("webrtc::call",{target:c(e)})}}function c(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function m(e){return a.get(e).success(function(){r.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){r.error({title:"PhoneBar API Error",msg:i.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}t.currentUser=e.getCurrentUser(),t.showMenu=function(){return t.target&&t.target.indexOf("@")<0&&t.target!=t.currentUser.internal&&t.target!=t.currentUser.name&&(0==t.currentUser.showWebBar&&t.currentUser.phoneBarRemoteControl||2==t.currentUser.showWebBar&&t.license.webrtc)&&!t.disabled},t.call=function(e){return 2!==t.currentUser.showWebBar?(n=e,l.user.getVoicePrefixes({id:t.currentUser.id}).$promise.then(function(e){if(e.count)return o.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!0,locals:{prefixes:e,required:t.currentUser.phoneBarPrefixRequired}})}).then(function(e){t.currentUser.phoneBarPrefixRequired?e&&-1!==e&&d(e+n):e&&-1!==e?d(e+n):e||d(n)})):d(e);var n},t.transfer=function(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+c(e));case 2:n.$broadcast("webrtc::transfer",{target:c(e)})}}}],templateUrl:"app/core/directives/ms-click-to-call/ms-click-to-call.html"}})}(),function(){"use strict";function e(i){return{require:"ngModel",priority:1,link:function(e,n,t,a){a.$formatters.push(i.formatter),a.$parsers.push(i.parser)}}}e.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",function(){var n={formatter:function(e){return e?""===e?e:new Date(e):""},parser:function(e){return e?moment(e).add(moment(e).utcOffset(),"m").toDate():""}};this.config=function(e){n=angular.extend({},n,e)},this.$get=function(){return n}}).directive("msDatepickerFix",e)}(),function(){"use strict";function e(s){return{restrict:"E",scope:{id:"=",model:"=",element:"=",title:"=",path:"="},replace:!0,link:function(n,e){var t=!1,a={};a.id=n.id,_.isNil(n.path)||(a.path=n.path);var i=document.createElement(n.element);i.setAttribute("preload","none"),i.setAttribute("controls","true"),"audio"===n.element&&i.setAttribute("style","width: 265px;"),"video"===n.element&&i.setAttribute("style","max-width: 500px;"),i.setAttribute("title",n.title),i.setAttribute("src"," "),i.onplay=function(e){t||(t=!0,e.preventDefault(),s[n.model].download(a).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});i.setAttribute("type",e.type),i.setAttribute("src",URL.createObjectURL(t)),i.play()}).catch(function(e){console.error(e)}))},e.append(i)}}}e.$inject=["api"],angular.module("app.core").directive("msDialogRecording",e)}(),function(){"use strict";function e(i){return{restrict:"A",link:function(t,a){a.bind("click",function(e){var n=i('
')(t);a.closest("md-dialog").prepend(n)})}}}e.$inject=["$compile"],angular.module("app.core").directive("msDialogSpinner",e)}(),function(){"use strict";angular.module("app.core").directive("msDualMultiselect",function(){return{restrict:"E",scope:{options:"="},controller:["$scope",function(o){o.canTransfer=function(e,n,t){if(!n.readOnly)return void 0!==e.isValid&&e.isValid?t?o.transfer(n.selectedItems,n.items,n.selectedItems.indexOf(e),t):o.transfer(n.items,n.selectedItems,n.items.indexOf(e),t):void 0},o.transfer=function(e,n,t,a){var i=[];if(0<=t)i.push(e[t]),n.push(e[t]),e.splice(t,1);else{for(var s=0;s',link:function(t,e){var n=e.emojioneArea({pickerPosition:t.pickerPosition,search:t.search,recentEmojis:t.recentEmojis,placeholder:a.instant(t.placeholder||"Type a message"),attributes:{spellcheck:!0},events:{keypress:function(e,n){t.ngModel=this.getText(),t.onReply({event:n,body:this.getText()})},emojibtn_click:function(){t.ngModel=this.getText()}}});t.ngModel&&n[0].emojioneArea.setText(t.ngModel),t.internalControl=t.ctrlMethods||{},t.internalControl.setText=function(e){n[0].emojioneArea.setText(e)},t.internalControl.getText=function(){return n[0].emojioneArea.getText()},t.$watch("ngModel",function(e){e||n[0].emojioneArea.setText("")})}}}e.$inject=["$translate"],angular.module("app.core").directive("msEmojiArea",e)}(),function(){"use strict";angular.module("app.core").directive("msFontFamily",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.fonts=[{option:"Arial",value:"Arial,Helvetica,sans-serif"},{option:"Century Gothic",value:"Century Gothic,Futura,Didact Gothic,san-serif"},{option:"Calibri",value:"Calibri, Verdana, Geneva, sans-serif"},{option:"Comic Sans MS",value:"Comic Sans MS,cursive"},{option:"Courier New",value:"Courier New,Courier,monospace"},{option:"Georgia",value:"Georgia,serif"},{option:"Lucida Sans Unicode",value:"Lucida Sans Unicode,Lucida Grande,sans-serif"},{option:"Tahoma",value:"Tahoma,Geneva,sans-serif"},{option:"Times New Roman",value:"Times New Roman,Times,serif"},{option:"Trebuchet MS",value:"Trebuchet MS,Helvetica,sans-serif"},{option:"Verdana",value:"Verdana,Geneva,sans-serif"}]}],templateUrl:"app/core/directives/ms-font-family/ms-font-family.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsFormWizardController",function(){var n=this;function e(){return n.forms.length}function t(){return 0===n.selectedIndex}function a(){return n.selectedIndex===e()-1}n.forms=[],n.selectedIndex=0,n.registerForm=function(e){n.forms.push(e)},n.previousStep=function(){if(t())return;n.selectedIndex--},n.nextStep=function(){if(a())return;n.selectedIndex++},n.firstStep=function(){n.selectedIndex=0},n.lastStep=function(){n.selectedIndex=e()-1},n.totalSteps=e,n.isFirstStep=t,n.isLastStep=a,n.currentStepInvalid=function(){return angular.isDefined(n.forms[n.selectedIndex])&&n.forms[n.selectedIndex].$invalid},n.previousStepInvalid=function(){return 0d.options.responsive.md?d.options.responsive.md:d.columnCount:l("sm")?d.columnCount=d.columnCount>d.options.responsive.sm?d.options.responsive.sm:d.columnCount:d.columnCount=d.options.responsive.xs;d.columnWidth=d.containerPos.width/d.columnCount}(),r.$broadcast("msMasonry:relayoutStarted"),d.items=d.container.find("ms-masonry-item");for(var e=Array.apply(null,new Array(d.columnCount)).map(function(){return 0}),n=0;n'),r=angular.element('
'),l=n.parent();function d(){s.addClass("ms-nav-folded"),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function c(e){angular.isDefined(e)&&e.preventDefault(),s.addClass("ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),l.find(o).remove(),l.parent().append(r),r.on("mouseenter touchstart",function(e){m(e),i=!1})}function m(e){angular.isDefined(e)&&e.preventDefault(),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),s.removeClass("ms-nav-folded-open"),l.parent().find(r).remove(),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function u(){s.removeClass("ms-nav-folded ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),n.off("mouseenter mouseleave")}v.setFoldable(e,n,a),a?d():u(),e.toggleFold=function(){(a=!a)?d():u()},e.openFolded=c,e.closeFolded=m,e.isNavFoldedOpen=function(){return i},e.$on("$destroy",function(){o.off("mouseenter touchstart"),r.off("mouseenter touchstart"),n.off("mouseenter mouseleave")})}}}function n(t,a,i){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(e){return e.addClass("ms-nav"),function(e){t.$broadcast("msNav::expandMatchingToggles");var n=t.$on("$stateChangeSuccess",function(){t.$broadcast("msNav::expandMatchingToggles"),a.when("navigation").then(function(e){e.close(),i.isNavFoldedOpen()&&i.closeFolded()})});e.$on("$destroy",function(){n()})}}}}function t(m,u,p,g){return{restrict:"A",require:"^msNav",scope:!0,compile:function(e,n){return e.addClass("ms-nav-toggle"),angular.isUndefined(n.collapsed)&&(n.collapsed=!0),e.attr("collapsed",n.collapsed),function(a,i,e,t){var s={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},n=i.find("a"),o=[],r=/\(.*\)/g;function l(){return"true"===i.attr("collapsed")}function d(){var e=u.defer();if(!l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!1);var n=angular.element(i.find("ms-nav-toggle-items")[0]);n.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var t=n[0].offsetHeight;return n.css({position:"",visibility:"",display:"",height:""}),a.$evalAsync(function(){p.animate(n,{display:"block",height:"0px"},{height:t+"px"},s.expandAnimation).then(function(){n.addClass(s.expanded),n.css({height:""}),e.resolve({success:!0})})}),e.promise}function c(){var e=u.defer();if(l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!0);var n=angular.element(i.find("ms-nav-toggle-items")[0]),t=n[0].offsetHeight;return a.$evalAsync(function(){p.animate(n,{height:t+"px"},{height:"0px"},s.collapseAnimation).then(function(){n.removeClass(s.expanded),n.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}angular.forEach(n,function(e){var n=angular.element(e).attr("ui-sref");angular.isUndefined(n)||(n=n.replace(r,""),o.push(n))}),t.setToggleItem(i,a),i.children(".ms-nav-button").on("click",function(){if(t.isDisabled())return;t.disable(),l()?(t.clearLockedItems(),a.$emit("msNav::pushToLockedList"),m.$broadcast("msNav::collapse"),d().then(function(){t.enable()})):a.$broadcast("msNav::forceCollapse")}),a.$on("$destroy",function(){i.children(".ms-nav-button").off("click")}),a.$on("msNav::collapse",function(){var e=t.getLockedItems(),n=!1;angular.forEach(e,function(e){angular.equals(e.scope,a)&&(n=!0)}),n||c().then(function(){t.enable()})}),a.$on("msNav::forceCollapse",function(){c().then(function(){t.enable()})}),a.$on("msNav::expandMatchingToggles",function(){var n=g.current.name,t=!1;angular.forEach(o,function(e){n===e&&(t=!0)}),t?d():c()}),a.$on("msNav::pushToLockedList",function(){t.setLockedItem(i,a)})}}}}e.$inject=["$document","$rootScope","msNavFoldService"],n.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],t.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",function(){var t={};return{setFoldable:function(e,n){t={scope:e,element:n}},isNavFoldedOpen:function(){return t.scope.isNavFoldedOpen()},toggleFold:function(){t.scope.toggleFold()},openFolded:function(){t.scope.openFolded()},closeFolded:function(){t.scope.closeFolded()}}}).directive("msNavIsFolded",e).controller("MsNavController",function(){var e=this,n=!1,t=[],a=[];e.isDisabled=function(){return n},e.enable=function(){n=!1},e.disable=function(){n=!0},e.setToggleItem=function(e,n){t.push({element:e,scope:n})},e.getLockedItems=function(){return a},e.setLockedItem=function(e,n){a.push({element:e,scope:n})},e.clearLockedItems=function(){a=[]}}).directive("msNav",n).directive("msNavTitle",function(){return{restrict:"A",compile:function(e){return e.addClass("ms-nav-title"),function(){}}}}).directive("msNavButton",function(){return{restrict:"AE",compile:function(e){return e.addClass("ms-nav-button"),function(){}}}}).directive("msNavToggle",t)}(),function(){"use strict";function e(e,n){e.root?this.navigation=n.getNavigation(e.root):this.navigation=n.getNavigation(),this.toggleHorizontalMobileMenu=function(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")},n.sort()}function n(c,m,u,p){return{restrict:"E",scope:{folded:"=",root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/vertical.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation"),function(e,n){var t=angular.element("body"),a=angular.element('
'),i=angular.element('
'),s=u("navigation");function o(e){if(p.setFolded(e),e)c.$broadcast("msNavigation::collapse"),t.addClass("ms-navigation-folded"),r();else{var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.removeClass("ms-navigation-folded ms-navigation-folded-open"),i.remove()}}function r(){n.parent().append(a),m(function(){a.on("mouseenter touchstart",l)})}function l(e){e&&e.preventDefault(),p.setFoldedOpen(!0);var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.addClass("ms-navigation-folded-open"),a.remove(),t.find("#main").append(i),i.on("mouseenter touchstart",d)}function d(e){e&&e.preventDefault(),p.setFoldedOpen(!1),c.$broadcast("msNavigation::collapse"),t.removeClass("ms-navigation-folded-open"),i.remove(),r()}p.setNavigationScope(e),function(){null===p.getFolded()&&p.setFolded(e.folded);p.getFolded()&&(m(function(){c.$broadcast("msNavigation::collapse")}),t.addClass("ms-navigation-folded"),r())}(),e.$watch(function(){return s.isLockedOpen()},function(e,n){if(!angular.isUndefined(e)&&!angular.equals(e,n)&&p.getFolded())if(e)c.$broadcast("msNavigation::collapse");else{var t=p.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched")}}),e.$watch("folded",function(e,n){angular.isUndefined(e)||angular.equals(e,n)||o(e)}),e.toggleFolded=function(){o(!p.getFolded())},e.$on("$stateChangeStart",function(){s.close()}),e.$on("$destroy",function(){i.off("mouseenter touchstart"),a.off("mouseenter touchstart")})}}}}function t(t,e,a,i,n,s){var o=this;o.element=e,o.node=t.node,o.hasChildren=void 0,o.collapsed=void 0,o.collapsable=void 0,o.group=void 0,o.animateHeightClass="animate-height",o.toggleCollapsed=function(){o.collapsed?o.expand():o.collapse()},o.collapse=function(){var e=o.element.children("ul"),n=e[0].offsetHeight;t.$evalAsync(function(){o.collapsed=!0,o.element.addClass("collapsing"),i.animate(e,{display:"block",height:n+"px"},{height:"0px"},o.animateHeightClass).then(function(){e.css({display:"",height:""}),o.element.removeClass("collapsing")}),t.$broadcast("msNavigation::collapse")})},o.expand=function(){var e=o.element.children("ul");e.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var n=e[0].offsetHeight;e.css({position:"",visibility:"",display:"",height:""}),t.$evalAsync(function(){o.collapsed=!1,o.element.addClass("expanding"),i.animate(e,{display:"block",height:"0px"},{height:n+"px"},o.animateHeightClass).then(function(){e.css({height:""}),o.element.removeClass("expanding")}),a.$broadcast("msNavigation::collapse",o.node._path)})},o.getClass=function(){return o.node.class},o.isHidden=function(){if(angular.isDefined(o.node.hidden)&&angular.isFunction(o.node.hidden))return o.node.hidden();return!1},function(){o.hasChildren=0 target, inbound, fullname",e,n,t),b.calls.unshift({target:e,fullname:t||e,inbound:n,time:moment().format("HH:mm")}),50 session",e),b.conf.microphoneId?b.sessionConf.mediaConstraints.audio={deviceId:b.conf.microphoneId}:b.sessionConf.mediaConstraints.audio=!0,e.answer(b.sessionConf),b.isJabraEnabled&&(jabra.offHook(),b.jabraSession=e)}function S(e,n){console.debug("terminate -> session",e);var t={};if(n?t.status_code=n:e.isEstablished()||(t.status_code=603),e.terminate(t),b.isJabraEnabled)if(0===b.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),b.jabraSession=null;else{var a=_.last(b.sessions);a.localHold?(jabra.onHook(),jabra.hold(),b.jabraSession=a):jabra.offHook()}}function T(t){return console.debug("getVoiceChannels -> session",t),o.rpc.getVoiceChannels().$promise.then(function(e){var n=_.find(e.rows,function(e){return e.sipcalllinkedid===t.call_id?e:e.sipcalluniqueid===t.call_id?e:null});n&&(t.monitor=n.monitor,t.uniqueid=n.uniqueid,t.monitors=n.monitors)})}function I(e){console.debug("onAddstream -> data",e),this.remotePlayer.srcObject=e.stream,this.remotePlayer.play()}function C(){b.canGoInConference=!1,b.isInConference=!1,b.currentconferenceSessions=[]}function w(e,n){switch(e){case"ringing":b.soundPlayer.muted=b.conf.ringingMute,b.conf.ringingId&&b.soundPlayer.setSinkId(b.conf.ringingId).then(function(){b.soundPlayer.volume=b.conf.ringingVolume}).then(function(){n&&A()}).catch(function(e){console.info(e.message,b.conf.ringingId)});break;case"speaker":b.remotePlayer.muted=b.conf.speakerMute,b.conf.speakerId&&b.remotePlayer.setSinkId(b.conf.speakerId).then(function(){b.remotePlayer.volume=b.conf.speakerVolume}).then(function(){n&&A()}).catch(function(e){console.info(e.message,b.conf.speakerId)});break;case"microphone":for(var t=0;t session, textContent, position, delay",e,n,t,a),function(){i.show(i.simple().textContent(n).position(t).hideDelay(a)),S(e)}}function N(n){return console.debug("findSessionBySessionId -> sessionId, vm_pb.sessions",n,b.sessions),_.find(b.sessions,function(e){return e.call_id==n})}function D(e,n){return console.debug("callCallback -> url, params",e,n),s({url:e,method:"GET",params:n})}e(function(){},999),b.direction="right",b.selectedMode="md-scale",b.target="",b.showDialpad=!1,b.soundPlayer=document.createElement("audio"),b.remotePlayer=document.getElementById(b.conf.remotePlayerId),b.soundPlayer.volume=1,b.sessionConf={mediaConstraints:{audio:!0,video:!1},pcConfig:{iceServers:[]}},b.sessions=[],b.calls=[],b.callbackQueue=[],b.canGoInConference=!1,b.isInConference=!1,b.currentConferenceSessions=[],b.ua=new JsSIP.UA({sockets:[new JsSIP.WebSocketInterface("wss://"+b.conf.host+":8089/ws")],uri:new JsSIP.URI("sip",b.conf.name,b.conf.host,5060,null,null).toString(),authorization_user:b.conf.name,ha1:b.conf.ha1,realm:b.conf.realm,user_agent:b.conf.ua,session_timers_refresh_method:"invite",register_expires:b.conf.phoneBarExpires||60,register:!0}),b.conf=_.merge(d.webrtc,b.conf),b.initDeviceInProgress=!1,b.isJabraEnabled=!1,b.isJabraInitialized=!1,b.jabraSession=null,b.jabraClicked=!1,b.buttonClicked=!1,b.originateInProgress=!1,t.bind("keyup",function(e){switch(e.keyCode){case 27:p(function(){b.showDialpad=!1})}}),b.$onInit=function(){c(!1),navigator.mediaDevices.ondevicechange=function(e){b.initDeviceInProgress||(b.initDeviceInProgress=!0,jabra&&b.isJabraInitialized?jabra.shutdown().then(function(){b.isJabraInitialized=!1,c(!(b.isJabraEnabled=!1))}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):c(!0))};var e=[o.network.get({type:"turn",nolimit:!0}).$promise,o.network.get({type:"stun",nolimit:!0}).$promise];Promise.all(e).then(function(e){var n=e[0].rows,t=e[1].rows,a=[],i=[];t.forEach(function(e){i.push("stun:"+e.value)}),a.push({urls:i}),n.forEach(function(e){var n={urls:"turn:"+e.value};e.username&&(n.username=e.username),e.password&&(n.credential=e.password),a.push(n)}),b.sessionConf.pcConfig={iceServers:a}}),this.ua.on("registered",function(){this.registered=!0}.bind(this)),this.ua.on("unregistered",function(){this.registered=!1}.bind(this)),this.ua.on("newRTCSession",function(e){console.debug("onNewRTCSession -> data",e);var n,t,a,i,s,o=e.session,r=!0,l="",d=0;switch(e.originator){case"local":o.outgoing=!0,o.name=e.request.ruri.user,o.user=e.request.ruri.user,E(o.user,!1),t=e.request.extraHeaders,a="X-callback-url",s=_.find(t,function(e){return _.startsWith(e,a)}),n=!!s&&_.trim(s.replace(a,"").replace(i||":","")),b.isJabraEnabled&&(b.jabraSession&&jabra.resume(),b.jabraSession=o,jabra.offHook());break;case"remote":var c=f.getCurrentUser();if(c.voicePause&&c.phoneBarDnd||b.originateInProgress)r=!1;else if(o.incoming=!0,o.name=e.request.from.display_name,o.user=e.request.from.uri.user,l=e.request.getHeader("X-Answer-Mode")||"",d=e.request.getHeader("X-Answer-After")||0,function(n){console.debug("getNotification -> session",n);var e=n.name?n.name+" <"+n.user+">":n.user;h.create("Incoming call from: ",e,null,function(){y(n)},function(){S(n)}).then(function(e){n.notification=e}).catch(function(e){console.error("Error creating notification for incoming call",e)})}(e.session),E(e.session.user,!0),b.isJabraEnabled&&jabra.ring(),b.conf.autoAnswer&&p(function(){o.isInProgress()&&(o.autoAnswer=!0,y(o))},b.conf.autoAnswerDelay?1e3*b.conf.autoAnswerDelay:0),console.debug("xAnswerMode",l),console.debug("xAnswerAfterSec",d),"auto"==l.toLowerCase()){var m=0==d?500:1e3*d;console.debug("auto answer enabled after:"+m+" ms"),p(function(){o.isInProgress()&&(o.autoAnswer=!0,y(o))},m)}}r?(o.call_id=e.request.call_id,n&&D(b.callbackQueue[o.call_id]=n,{call_id:o.call_id}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}),o.connection&&(o.connection.onaddstream=I.bind(this)),o.iceCandidateTimeout=null,o.on("progress",function(e,n){console.debug("onProgress -> session, data",e,n);var t=!1;switch(n.originator){case"local":this.conf.ringingMute||(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/incoming-call.ogg"),t=!0);break;case"remote":this.putOtherCallsOnHold(e),this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/outgoing-call.ogg"),t=!0}b.originateInProgress&&(b.originateInProgress=!1),t&&(this.soundPlayer.loop="loop",this.soundPlayer.play().catch(function(e){console.log(e.message)})),T(e).then(function(){var n=b.callbackQueue[e.call_id];n&&D(n,{uniqueid:e.uniqueid,call_id:e.call_id,number_called:e.user}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}).finally(function(){delete b.callbackQueue[e.call_id]})}).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("confirmed",function(e,n){console.debug("onConfirmed -> session, data",e,n);var t=document.getElementById("div_session_"+e.id.substr(0,32));t&&$(t).scope().$broadcast("timer-start"),e.confirmed=!0,"remote"===n.originator&&e.connection&&(e.connection.onaddstream=I.bind(this),_.head(e.connection.getRemoteStreams())&&(this.remotePlayer.srcObject=_.head(e.connection.getRemoteStreams()),this.remotePlayer.play())),this.soundPlayer.pause(),this.soundPlayer.loop=null,this.putOtherCallsOnHold(e),e.autoAnswer&&(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/beep.ogg"),this.soundPlayer.play().catch(function(e){console.log("Unable to play autoAnswer notification",e)})),b.canGoInConference=2==b.sessions.length,T(e).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("hold",function(e,n){console.debug("onHold -> session, data",e,n),"local"===n.originator&&(e.localHold=!0)}.bind(this,o)),o.on("unhold",function(e,n){console.debug("onUnhold -> session, data",e,n),"local"===n.originator&&(e.localHold=!1)}.bind(this,o)),o.on("ended",function(e,n){if(console.debug("onEnded -> session, data",e,n),b.isInConference&&_.includes(b.currentConferenceSessions,e.id)&&(C(),b.buttonClicked=!0),_.remove(this.sessions,{id:e.id}),2!==b.sessions.length&&(b.canGoInConference=!1),b.isJabraEnabled)if(0===b.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),b.jabraSession=null;else{var t=_.last(b.sessions);t.localHold?(jabra.onHook(),jabra.hold(),b.jabraSession=t):jabra.offHook()}}.bind(this,o)),o.on("failed",function(e,n){if(console.debug("onFailed -> session, data",e,n),this.soundPlayer.pause(),this.soundPlayer.loop=null,e.notification&&e.notification.close(),b.isInConference&&_.includes(b.currentConferenceSessions,e.id)&&C(),b.originateInProgress&&(b.originateInProgress=!1),_.remove(this.sessions,{id:e.id}),2!==b.sessions.length&&(b.canGoInConference=!1),b.isJabraEnabled)if(0===b.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),b.jabraSession=null;else{var t=_.last(b.sessions);t.localHold?(jabra.onHook(),jabra.hold(),b.jabraSession=t):jabra.offHook()}}.bind(this,o)),o.on("icecandidate",function(e,n){console.debug("onIcecandidate -> session, data",e,n),null!==e.iceCandidateTimeout&&clearTimeout(e.iceCandidateTimeout),e.iceCandidateTimeout=setTimeout(n.ready,1e3)}.bind(this,o)),b.sessions.push(o),p(function(){u.$apply(),console.debug("onNewRTCSession -> vm_pb.sessions",b.sessions)})):S(o,486)}.bind(this)),r.on("webbar:originate",function(e){console.debug("originateHook -> payload",e);var n=e.callNumber,t=e.callerId,a=e.callbackUrl;b.conf.microphoneId?b.sessionConf.mediaConstraints.audio={deviceId:b.conf.microphoneId}:b.sessionConf.mediaConstraints.audio=!0;var i=n.replace(/ /g,"");if(i=(i=i.replace(/\(/g,"")).replace(/\)/g,"")){var s=angular.copy(b.sessionConf);s.extraHeaders=[],t&&s.extraHeaders.push("X-CID: "+t),a&&s.extraHeaders.push("X-callback-url: "+a),b.originateInProgress=!0,b.ua.call(i,s)}}.bind(this)),r.on("webbar:hangup",function(e){console.debug("hangupHook -> payload",e);var n=b.sessions;if(e.sessionId&&((n=[]).push(N(e.sessionId)),0==n.length))console.warn("call with session Id "+sessionId+" not found");else for(var t=0;t sessionToHangup",a),b.terminate(a)}}.bind(this)),r.on("webbar:answer",function(e){var n;console.debug("answerHook -> payload",e),n=e.sessionId?N(e.sessionId):_.find(b.sessions,function(e){return e.incoming&&!e.confirmed}),e.sessionId&&!n&&console.warn("call with session Id "+e.sessionId+" not found"),n&&b.answer(n)}.bind(this)),r.on("webbar:hold",function(e){console.debug("holdHook -> payload",e);var n=b.sessions;if(e.sessionId&&((n=[]).push(N(e.sessionId)),0==n.length))console.warn("call with session Id "+sessionId+" not found");else for(var t=0;t payload",e),e.sessionId){var n=N(e.sessionId);n?b.unhold(n):console.warn("call with session Id "+sessionId+" not found")}else console.error("sessionId required")}.bind(this)),r.on("webbar:transfer",function(e){if(console.debug("transferHook -> payload",e),e.sessionId)if(e.transferNumber){var n=N(e.sessionId);n?n.refer(e.transferNumber,{eventHandlers:{requestSucceeded:x(n,"requestSucceeded","top right",3e3),requestFailed:x(n,"requestFailed","top right",3e3)}}):console.warn("call with session Id "+sessionId+" not found")}else console.error("transferNumber required");else console.error("sessionId required")}.bind(this))}.bind(this),b.type=function(e,n){var t=e;switch(b.target||(b.target=""),n&&(b.target+=e,u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",b.target)),e){case"*":t="asterisk";break;case"#":t="pound"}b.conf.enableDtmfTone&&(b.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/dialpad/"+t+".ogg"),b.soundPlayer.play().catch(function(e){console.log(e.message)}));for(var a=0;a session",e),e.hold({useUpdate:!1}),b.isJabraEnabled&&(jabra.hold(),jabra.onHook())},b.refer=function(n){console.debug("refer -> session",n);var e=a.prompt().title("Transfer").textContent("Type the target").placeholder("Target").ariaLabel("Target").ok("Transfer").cancel("Cancel");a.show(e).then(function(e){return O(e)}).then(function(e){n.refer(e,{eventHandlers:{requestSucceeded:x(n,"requestSucceeded","top right",3e3),requestFailed:x(n,"requestFailed","top right",3e3)}})})},b.record=function(e){console.debug("record -> session",e),a.show({controller:"RecordDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/record/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:b.sessions}})},b.unhold=function(e){console.debug("unhold -> session",e),e.unhold({useUpdate:!1}),b.putOtherCallsOnHold(e),b.isJabraEnabled&&(jabra.offHook(),jabra.resume())},b.answer=y,b.terminate=S,b.selectSession=function(e){console.debug("selectSession -> session",e),b.unhold(e)},b.typeWrapper=function(e){switch(e.key.toLowerCase()){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"*":case"#":b.type(e.key);break;case"enter":b.call()}},b.toggleDialpad=function(){b.showDialpad=!b.showDialpad},b.referAttended=function(e){console.debug("referAttended -> session",e),a.show({controller:"ReferAttendedDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/referAttended/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:_.reject(b.sessions,{id:e.id}),isJabraEnabled:b.isJabraEnabled}})},b.closeDialpad=function(){b.showDialpad=!1},b.initDevice=w,b.putOtherCallsOnHold=function(e){if(console.debug("putOtherCallsOnHold -> session",e),1 evt, data",e,n),n.target&&(b.target=n.target,b.call())}),u.$on("webrtc::transfer",function(e,n){if(console.debug("onRemoteTransfer -> evt, data",e,n),n.target)for(var t=0;t session, textContent, position, delay",e,n,t,a),function(){s.show(s.simple().textContent(n).position(t).hideDelay(a)),e.terminate(),jabra&&i&&jabra.onHook(),l()}}function l(e){n.hide(e)}o.title="Refer Attended",o.sessions=a,o.session=i,o.isJabraEnabled=e,o.sessionTarget=null,a.length&&(o.target=a[0].user),o.closeDialog=l,o.transfer=function(){var e,n,t=_.find(a,function(e){if(e.user===o.target)return e});n=t.outgoing?(e=t,o.session):(e=o.session,t);n.refer(e.user,{replaces:e,eventHandlers:{requestSucceeded:r(i,"requestSucceeded","top right",3e3,o.isJabraEnabled),requestFailed:r(i,"requestFailed","top right",3e3,o.isJabraEnabled)}})}}e.$inject=["$mdDialog","$mdToast","sessions","session","isJabraEnabled"],angular.module("app.core").controller("ReferAttendedDialogController",e)}(),function(){"use strict";function e(e,s,n){var t=this;function a(e,n,t){var a;if(s[t]){if(a=_.find(e,function(e){return e.deviceId===s[t]}))return a.deviceId;var i=_.findIndex(e,function(e){return e.kind===n});if(0<=i)return e[i].deviceId}else(a=_.find(e,function(e){return e.kind===n}))&&(s[t]=a.deviceId);return s[t]||null}_.remove(n,function(e){return"audioinput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)||"audiooutput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)}),s.ringingId=a(n,"audiooutput","ringingId"),s.speakerId=a(n,"audiooutput","speakerId"),s.microphoneId=a(n,"audioinput","microphoneId"),s.ringingVolume=s.ringingVolume||.5,s.speakerVolume=s.speakerVolume||.5,s.microphoneVolume=s.microphoneVolume||1,s.ringingMute=s.ringingMute||!1,s.speakerMute=s.speakerMute||!1,s.microphoneMute=s.microphoneMute||!1,t.conf=angular.copy(s),t.devices=n,t.saveSettings=function(){e.hide(t.conf)},t.closeDialog=function(){e.hide()},t.isCompatibleBrowser=function(){return"chrome"===t.conf.browserName.toLowerCase()||"opera"===t.conf.browserName.toLowerCase()||"safari"===t.conf.browserName.toLowerCase()}}e.$inject=["$mdDialog","conf","devices"],angular.module("app.toolbar").controller("SettingsController",e)}(),function(){"use strict";function e(t,a){var i=this;function s(e){var n=e.key,t={param:i.query[n],resources:e.options,placeholder:e.placeholder,ngValue:e.ngValue};a.setPlaceholder(t).then(function(e){i.placeholders[n]=e})}i.pickerModels={},i.placeholders={},i.localizationMap=t.localizationMap,i.onMultiselectInit=function(e){s(e)},i.onDateRangeInit=function(e){var n=e.key;i.query[n]?i.pickerModels[n]=t.setSelectedDate(i.query[n]):i.pickerModels[n]={dateStart:null}},i.onMultiselectSelection=function(e,n){n&&(s(e),i.search())},i.onDateRangeSelection=function(e){var n=e.key;i.pickerModels[n].dateStart?!0===e.useFromToKeys?i.query[n]={from:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),to:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]={$gte:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),$lte:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]=void 0;i.search()},i.clearDate=function(e){var n=e.key;i.pickerModels[n]={dateStart:null},delete i.query[n],i.search()},i.clearSelection=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=!1===e.clearAll?[_.head(e.options)[t]]:[],s(e),i.search()},i.selectAll=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=_.map(e.options,t),s(e),i.search()}}function n(p,e){var g={localizationMap:e,setSelectedDate:function(e){var n=e.$gte?new Date(moment.utc(e.$gte).format("YYYY-MM-DD")):new Date(moment.utc(e.from).format("YYYY-MM-DD")),t=e.$lte?new Date(moment.utc(e.$lte).format("YYYY-MM-DD")):new Date(moment.utc(e.to).format("YYYY-MM-DD")),a={dateStart:new Date(n.getFullYear(),n.getMonth(),n.getDate()),dateEnd:new Date(t.getFullYear(),t.getMonth(),t.getDate())};return a.selectedTemplateName=(i=a,moment(i.dateStart).isSame(i.dateEnd)?(u=i,moment().startOf("day").isSame(u.dateStart)?g.localizationMap.Today:(m=i,moment().subtract(1,"days").startOf("day").isSame(m.dateStart)?g.localizationMap.Yesterday:p("date")(i.dateStart,"dd MMM yyyy"))):(c=i,moment().startOf("isoWeek").isSame(c.dateStart,"day")&&moment().endOf("isoWeek").isSame(c.dateEnd,"day")?g.localizationMap["This Week"]:(d=i,moment().subtract(1,"weeks").startOf("isoWeek").isSame(d.dateStart,"day")&&moment().subtract(1,"weeks").endOf("isoWeek").isSame(d.dateEnd,"day")?g.localizationMap["Last Week"]:(l=i,moment().startOf("month").isSame(l.dateStart,"day")&&moment().endOf("month").isSame(l.dateEnd,"day")?g.localizationMap["This Month"]:(r=i,moment().subtract(1,"months").startOf("month").isSame(r.dateStart,"day")&&moment().subtract(1,"months").endOf("month").isSame(r.dateEnd,"day")?g.localizationMap["Last Month"]:(o=i,moment().startOf("year").isSame(o.dateStart,"day")&&moment().endOf("year").isSame(o.dateEnd,"day")?g.localizationMap["This Year"]:(s=i,moment().subtract(1,"years").startOf("year").isSame(s.dateStart,"day")&&moment().subtract(1,"years").endOf("year").isSame(s.dateEnd,"day")?g.localizationMap["Last Year"]:p("date")(i.dateStart,"dd"+(i.dateStart.getMonth()!==i.dateEnd.getMonth()||i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" MMM":"")+(i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" yyyy":""))+" - "+p("date")(i.dateEnd,"dd MMM yyyy")))))))),a;var i,s,o,r,l,d,c,m,u}};return g}n.$inject=["$filter","dateFilterLocalizationFactory"],e.$inject=["dateRangeManager","quickFilterManager"],angular.module("app.core").directive("msQuickFilter",function(){return{restrict:"E",scope:{query:"=",filters:"=",search:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-quick-filter/ms-quick-filter.html"}}).factory("dateRangeManager",n)}(),function(){"use strict";angular.module("app.core").directive("msRandomClass",function(){return{restrict:"A",scope:{msRandomClass:"="},link:function(e,n){var t=e.msRandomClass[Math.floor(Math.random()*e.msRandomClass.length)];n.addClass(t)}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{id:"=",model:"=",download:"="},replace:!0,link:function(n,e){var t=!1,a=document.createElement("audio");n.download||a.setAttribute("controlsList","nodownload"),a.setAttribute("preload","none"),a.setAttribute("controls",""),a.setAttribute("style","width: 265px;"),a.setAttribute("src"," "),a.onplay=function(e){t||(t=!0,e.preventDefault(),i[n.model||"voiceRecording"].download({id:n.id}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});a.setAttribute("type",e.type),a.setAttribute("src",URL.createObjectURL(t)),a.play()}).catch(function(e){console.error(e)}))},e.append(a)}}}e.$inject=["api"],angular.module("app.core").directive("msRecording",e)}(),function(){"use strict";angular.module("app.core").directive("msResponsiveTable",function(){return{restrict:"A",link:function(e,n){var t=angular.element('
');n.after(t),t.append(n)}}})}(),function(){"use strict";function e(s,o,n,t){return{restrict:"AE",compile:function(e){if(!(t.getConfig("disableCustomScrollbars")||t.getConfig("disableCustomScrollbarsOnMobile")&&n.isMobile()))return e.addClass("ms-scroll"),function(e,n,t){var a={};function i(){PerfectScrollbar.update(n[0])}t.msScroll&&(a=e.$eval(t.msScroll)),a=angular.extend({},o.getConfig(),a),s(function(){PerfectScrollbar.initialize(n[0],a)},0),n.on("mouseenter",i),e.$watch(function(){return n.prop("scrollHeight")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$watch(function(){return n.prop("scrollWidth")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$on("$destroy",function(){n.off("mouseenter"),PerfectScrollbar.destroy(n[0])})}}}}e.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",function(){var n={wheelSpeed:1,wheelPropagation:!1,swipePropagation:!0,minScrollbarLength:null,maxScrollbarLength:null,useBothWheelAxes:!1,useKeyboard:!0,suppressScrollX:!1,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,stopPropagationOnClick:!0};this.config=function(e){n=angular.extend({},n,e)},this.$get=function(){var e={getConfig:function(){return n}};return e}}).directive("msScroll",e)}(),function(){"use strict";function e(n,i,s,e){var o=this;function t(){angular.isArray(o.onSearch)?a(o.onSearch):o.onResultClick?(o.resultsLoading=!0,n.$parent.$eval("vm.search(query)",{query:o.query.filter}).then(function(e){a(e)}).catch(function(){a([])}).finally(function(){o.resultsLoading=!1})):o.onSearch()}function a(e){o.expanded&&angular.isArray(e)&&null===e&&(o.selectedResultIndex=0,o.results=e)}function r(){o.expanded=!0,o.displayOn=!0,n.expand()}function l(e){!1!==e&&(o.query.filter=void 0,o.onResultClick?a(null):t()),o.expanded=!1,n.collapse()}function d(e){o.onResultClick&&o.onResultClick({item:e}),l()}function c(){var e=i.find(".ms-search-bar-results"),n=angular.element(e.find(".result")[o.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;o.ignoreMouseEvents=!0,s.cancel(o.mouseEventIgnoreTimeout),o.mouseEventIgnoreTimeout=s(function(){o.ignoreMouseEvents=!1},250),e.scrollTop()>t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}}o.queryOptions={debounce:o.debounce||0},o.searchOnEnterKey=e.get().searchOnEnterKey||!1,o.resultsLoading=!1,o.results=null,o.selectedResultIndex=0,o.ignoreMouseEvents=!1,o.expandBar=r,o.collapseBar=l,o.blurCollapse=function(){if(!o.collapseOnBlur)return;l()},o.onKeyDown=function(e){var n=e.keyCode;-1<[27,38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:if(!o.onResultClick)return t();if(!o.results)return;d(o.results[o.selectedResultIndex]);break;case 27:l();break;case 38:0<=o.selectedResultIndex-1&&(o.selectedResultIndex--,c());break;case 40:if(!o.results)return;o.selectedResultIndex+1e.length)return}else r();t()}})}function n(a){return{restrict:"E",scope:{query:"=?",debounce:"=?",direction:"@",iconColor:"@",onSearch:"&",onResultClick:"&?",onExpand:"&?",onCollapse:"&?",collapseOnBlur:"=d.shortcuts.length&&(d.selectedResultIndex=d.shortcuts.length-1)));d.saveShortcuts()},d.handleResultClick=function(e){e.hasShortcut?d.removeShortcut(e):d.addShortcut(e)},d.absorbEvent=function(e){e.preventDefault()},d.handleKeydown=function(e){var n=e.keyCode;-1<[38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:d.handleResultClick(d.results[d.selectedResultIndex]);break;case 38:0<=d.selectedResultIndex-1&&(d.selectedResultIndex--,d.ensureSelectedResultIsVisible());break;case 40:d.selectedResultIndex+1t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}},d.toggleMobileBar=function(){d.mobileBarActive=!d.mobileBarActive},d.loadShortcuts().then(function(e){d.shortcuts=e,0i.steps.length)}i.mainForm=void 0,i.orientation="horizontal",i.steps=[],i.currentStep=void 0,i.currentStepNumber=1,i.setOrientation=function(e){i.orientation=e||"horizontal"},i.registerMainForm=function(e){i.mainForm=e},i.registerStep=function(e,n,t){var a={element:e,scope:n,form:t,stepNumber:n.step||i.steps.length+1,stepTitle:n.stepTitle,stepTitleTranslate:n.stepTitleTranslate};return i.steps.push(a),i.steps.sort(function(e,n){return e.stepNumber-n.stepNumber}),a},i.setupSteps=function(){i.setCurrentStep(i.currentStepNumber)},i.resetForm=function(){e(function(){for(var e=0;ee.scrollWidth&&0==e.scrollLeft&&0==n.scrollLeft?"right":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft>=n.scrollWidth?"left":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeftt.position().top+i&&(m(function(){o=!0}),r.off("scroll",c))}}}}}e.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",function(){var n=this;n.scrollEl=void 0,n.setScrollEl=function(e){n.scrollEl=e},n.getScrollEl=function(){return n.scrollEl}}).directive("msTimeline",function(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,n,t,a){var i=angular.element('
');n.append(i);var s={scrollEl:"#content"};s=angular.extend(s,e.msTimeline,{});var o=angular.element(s.scrollEl);a.setScrollEl(o);var r=144;function l(){o.scrollTop()+o.height()+r>i.position().top&&(i.addClass("show"),c(),e.loadMore&&e.loadMore().then(function(){i.removeClass("show"),d()},function(){i.remove()}))}function d(){o.on("scroll",l)}function c(){o.off("scroll",l)}d(),e.$on("$destroy",function(){c()})}}}}).directive("msTimelineItem",e)}(),function(){"use strict";function e(a,e,n,i,t){var r=this;function s(){!function(){r.millis=l().diff(moment(r.startingTime));var e=moment.duration(r.millis),n=e.seconds(),t=e.minutes(),a=e.hours(),i=e.days(),s=e.months(),o=e.years();r.seconds=n<10?"0"+n:n,r.minutes=t<10?"0"+t:t,r.hours=a<10?"0"+a:a,r.days=i<10?"0"+i:i,r.months=s<10?"0"+s:s,r.years=o<10?"0"+o:o,r.timer=0{{ vm.timer }}
",compile:function(){return{pre:function(e,n,t){e.interval=t.interval||1e3}}},controller:e,controllerAs:"vm",bindToController:!0}})}(),function(){"use strict";angular.module("app.core").directive("msTimezone",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.timezone=[{name:"Europe/Andorra",utcOffset:60,offsetStr:"+01:00",countries:["AD"]},{name:"Asia/Dubai",utcOffset:240,offsetStr:"+04:00",countries:["AE","OM"]},{name:"Asia/Kabul",utcOffset:270,offsetStr:"+04:30",countries:["AF"]},{name:"Europe/Tirane",utcOffset:60,offsetStr:"+01:00",countries:["AL"]},{name:"Asia/Yerevan",utcOffset:240,offsetStr:"+04:00",countries:["AM"]},{name:"Antarctica/Rothera",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Palmer",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Mawson",utcOffset:300,offsetStr:"+05:00",countries:["AQ"]},{name:"Antarctica/Davis",utcOffset:420,offsetStr:"+07:00",countries:["AQ"]},{name:"Antarctica/Casey",utcOffset:480,offsetStr:"+08:00",countries:["AQ"]},{name:"Antarctica/Vostok",utcOffset:360,offsetStr:"+06:00",countries:["AQ"]},{name:"Antarctica/DumontDUrville",utcOffset:600,offsetStr:"+10:00",countries:["AQ"]},{name:"Antarctica/Syowa",utcOffset:180,offsetStr:"+03:00",countries:["AQ"]},{name:"Antarctica/Troll",utcOffset:0,offsetStr:"+00:00",countries:["AQ"]},{name:"America/Argentina/Buenos_Aires",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Cordoba",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Salta",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Jujuy",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Tucuman",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Catamarca",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/La_Rioja",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Juan",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Mendoza",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Luis",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Rio_Gallegos",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Ushuaia",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"Pacific/Pago_Pago",utcOffset:-660,offsetStr:"-11:00",countries:["AS","UM"]},{name:"Europe/Vienna",utcOffset:60,offsetStr:"+01:00",countries:["AT"]},{name:"Australia/Lord_Howe",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Antarctica/Macquarie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Hobart",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Currie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Melbourne",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Sydney",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Broken_Hill",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Brisbane",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Lindeman",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Adelaide",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Darwin",utcOffset:570,offsetStr:"+09:30",countries:["AU"]},{name:"Australia/Perth",utcOffset:480,offsetStr:"+08:00",countries:["AU"]},{name:"Australia/Eucla",utcOffset:525,offsetStr:"+08:45",countries:["AU"]},{name:"Asia/Baku",utcOffset:240,offsetStr:"+04:00",countries:["AZ"]},{name:"America/Barbados",utcOffset:-240,offsetStr:"-04:00",countries:["BB"]},{name:"Asia/Dhaka",utcOffset:360,offsetStr:"+06:00",countries:["BD"]},{name:"Europe/Brussels",utcOffset:60,offsetStr:"+01:00",countries:["BE"]},{name:"Europe/Sofia",utcOffset:120,offsetStr:"+02:00",countries:["BG"]},{name:"Atlantic/Bermuda",utcOffset:-240,offsetStr:"-04:00",countries:["BM"]},{name:"Asia/Brunei",utcOffset:480,offsetStr:"+08:00",countries:["BN"]},{name:"America/La_Paz",utcOffset:-240,offsetStr:"-04:00",countries:["BO"]},{name:"America/Noronha",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Belem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Fortaleza",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Recife",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Araguaina",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Maceio",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Bahia",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Sao_Paulo",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Campo_Grande",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Cuiaba",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Santarem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Porto_Velho",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Boa_Vista",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Manaus",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Eirunepe",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Rio_Branco",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Nassau",utcOffset:-300,offsetStr:"-05:00",countries:["BS"]},{name:"Asia/Thimphu",utcOffset:360,offsetStr:"+06:00",countries:["BT"]},{name:"Europe/Minsk",utcOffset:180,offsetStr:"+03:00",countries:["BY"]},{name:"America/Belize",utcOffset:-360,offsetStr:"-06:00",countries:["BZ"]},{name:"America/St_Johns",utcOffset:-210,offsetStr:"-03:30",countries:["CA"]},{name:"America/Halifax",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Glace_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Moncton",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Goose_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Blanc-Sablon",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Toronto",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Nipigon",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Thunder_Bay",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Iqaluit",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Pangnirtung",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Resolute",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Atikokan",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Rankin_Inlet",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Winnipeg",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Rainy_River",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Regina",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Swift_Current",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Edmonton",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Cambridge_Bay",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Yellowknife",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Inuvik",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Creston",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Dawson_Creek",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Fort_Nelson",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Vancouver",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Whitehorse",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Dawson",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"Indian/Cocos",utcOffset:390,offsetStr:"+06:30",countries:["CC"]},{name:"Europe/Zurich",utcOffset:60,offsetStr:"+01:00",countries:["CH","DE","LI"]},{name:"Africa/Abidjan",utcOffset:0,offsetStr:"+00:00",countries:["CI","BF","GM","GN","ML","MR","SH","SL","SN","ST","TG"]},{name:"Pacific/Rarotonga",utcOffset:-600,offsetStr:"-10:00",countries:["CK"]},{name:"America/Santiago",utcOffset:-180,offsetStr:"-03:00",countries:["CL"]},{name:"Pacific/Easter",utcOffset:-300,offsetStr:"-05:00",countries:["CL"]},{name:"Asia/Shanghai",utcOffset:480,offsetStr:"+08:00",countries:["CN"]},{name:"Asia/Urumqi",utcOffset:360,offsetStr:"+06:00",countries:["CN"]},{name:"America/Bogota",utcOffset:-300,offsetStr:"-05:00",countries:["CO"]},{name:"America/Costa_Rica",utcOffset:-360,offsetStr:"-06:00",countries:["CR"]},{name:"America/Havana",utcOffset:-300,offsetStr:"-05:00",countries:["CU"]},{name:"Atlantic/Cape_Verde",utcOffset:-60,offsetStr:"-01:00",countries:["CV"]},{name:"America/Curacao",utcOffset:-240,offsetStr:"-04:00",countries:["CW","AW","BQ","SX"]},{name:"Indian/Christmas",utcOffset:420,offsetStr:"+07:00",countries:["CX"]},{name:"Asia/Nicosia",utcOffset:120,offsetStr:"+02:00",countries:["CY"]},{name:"Europe/Prague",utcOffset:60,offsetStr:"+01:00",countries:["CZ","SK"]},{name:"Europe/Berlin",utcOffset:60,offsetStr:"+01:00",countries:["DE"]},{name:"Europe/Copenhagen",utcOffset:60,offsetStr:"+01:00",countries:["DK"]},{name:"America/Santo_Domingo",utcOffset:-240,offsetStr:"-04:00",countries:["DO"]},{name:"Africa/Algiers",utcOffset:60,offsetStr:"+01:00",countries:["DZ"]},{name:"America/Guayaquil",utcOffset:-300,offsetStr:"-05:00",countries:["EC"]},{name:"Pacific/Galapagos",utcOffset:-360,offsetStr:"-06:00",countries:["EC"]},{name:"Europe/Tallinn",utcOffset:120,offsetStr:"+02:00",countries:["EE"]},{name:"Africa/Cairo",utcOffset:120,offsetStr:"+02:00",countries:["EG"]},{name:"Africa/El_Aaiun",utcOffset:0,offsetStr:"+00:00",countries:["EH"]},{name:"Europe/Madrid",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Africa/Ceuta",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Atlantic/Canary",utcOffset:0,offsetStr:"+00:00",countries:["ES"]},{name:"Europe/Helsinki",utcOffset:120,offsetStr:"+02:00",countries:["FI","AX"]},{name:"Pacific/Fiji",utcOffset:720,offsetStr:"+12:00",countries:["FJ"]},{name:"Atlantic/Stanley",utcOffset:-180,offsetStr:"-03:00",countries:["FK"]},{name:"Pacific/Chuuk",utcOffset:600,offsetStr:"+10:00",countries:["FM"]},{name:"Pacific/Pohnpei",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Pacific/Kosrae",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Atlantic/Faroe",utcOffset:0,offsetStr:"+00:00",countries:["FO"]},{name:"Europe/Paris",utcOffset:60,offsetStr:"+01:00",countries:["FR"]},{name:"Europe/London",utcOffset:0,offsetStr:"+00:00",countries:["GB","GG","IM","JE"]},{name:"Asia/Tbilisi",utcOffset:240,offsetStr:"+04:00",countries:["GE"]},{name:"America/Cayenne",utcOffset:-180,offsetStr:"-03:00",countries:["GF"]},{name:"Africa/Accra",utcOffset:0,offsetStr:"+00:00",countries:["GH"]},{name:"Europe/Gibraltar",utcOffset:60,offsetStr:"+01:00",countries:["GI"]},{name:"America/Godthab",utcOffset:-180,offsetStr:"-03:00",countries:["GL"]},{name:"America/Danmarkshavn",utcOffset:0,offsetStr:"+00:00",countries:["GL"]},{name:"America/Scoresbysund",utcOffset:-60,offsetStr:"-01:00",countries:["GL"]},{name:"America/Thule",utcOffset:-240,offsetStr:"-04:00",countries:["GL"]},{name:"Europe/Athens",utcOffset:120,offsetStr:"+02:00",countries:["GR"]},{name:"Atlantic/South_Georgia",utcOffset:-120,offsetStr:"-02:00",countries:["GS"]},{name:"America/Guatemala",utcOffset:-360,offsetStr:"-06:00",countries:["GT"]},{name:"Pacific/Guam",utcOffset:600,offsetStr:"+10:00",countries:["GU","MP"]},{name:"Africa/Bissau",utcOffset:0,offsetStr:"+00:00",countries:["GW"]},{name:"America/Guyana",utcOffset:-240,offsetStr:"-04:00",countries:["GY"]},{name:"Asia/Hong_Kong",utcOffset:480,offsetStr:"+08:00",countries:["HK"]},{name:"America/Tegucigalpa",utcOffset:-360,offsetStr:"-06:00",countries:["HN"]},{name:"America/Port-au-Prince",utcOffset:-300,offsetStr:"-05:00",countries:["HT"]},{name:"Europe/Budapest",utcOffset:60,offsetStr:"+01:00",countries:["HU"]},{name:"Asia/Jakarta",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Pontianak",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Makassar",utcOffset:480,offsetStr:"+08:00",countries:["ID"]},{name:"Asia/Jayapura",utcOffset:540,offsetStr:"+09:00",countries:["ID"]},{name:"Europe/Dublin",utcOffset:0,offsetStr:"+00:00",countries:["IE"]},{name:"Asia/Jerusalem",utcOffset:120,offsetStr:"+02:00",countries:["IL"]},{name:"Asia/Kolkata",utcOffset:330,offsetStr:"+05:30",countries:["IN"]},{name:"Indian/Chagos",utcOffset:360,offsetStr:"+06:00",countries:["IO"]},{name:"Asia/Baghdad",utcOffset:180,offsetStr:"+03:00",countries:["IQ"]},{name:"Asia/Tehran",utcOffset:210,offsetStr:"+03:30",countries:["IR"]},{name:"Atlantic/Reykjavik",utcOffset:0,offsetStr:"+00:00",countries:["IS"]},{name:"Europe/Rome",utcOffset:60,offsetStr:"+01:00",countries:["IT","SM","VA"]},{name:"America/Jamaica",utcOffset:-300,offsetStr:"-05:00",countries:["JM"]},{name:"Asia/Amman",utcOffset:120,offsetStr:"+02:00",countries:["JO"]},{name:"Asia/Tokyo",utcOffset:540,offsetStr:"+09:00",countries:["JP"]},{name:"Africa/Nairobi",utcOffset:180,offsetStr:"+03:00",countries:["KE","DJ","ER","ET","KM","MG","SO","TZ","UG","YT"]},{name:"Asia/Bishkek",utcOffset:360,offsetStr:"+06:00",countries:["KG"]},{name:"Pacific/Tarawa",utcOffset:720,offsetStr:"+12:00",countries:["KI"]},{name:"Pacific/Enderbury",utcOffset:780,offsetStr:"+13:00",countries:["KI"]},{name:"Pacific/Kiritimati",utcOffset:840,offsetStr:"+14:00",countries:["KI"]},{name:"Asia/Pyongyang",utcOffset:510,offsetStr:"+08:30",countries:["KP"]},{name:"Asia/Seoul",utcOffset:540,offsetStr:"+09:00",countries:["KR"]},{name:"America/Cayman",utcOffset:-300,offsetStr:"-05:00",countries:["KY"]},{name:"Asia/Almaty",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Qyzylorda",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Aqtobe",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Aqtau",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Oral",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Beirut",utcOffset:120,offsetStr:"+02:00",countries:["LB"]},{name:"Asia/Colombo",utcOffset:330,offsetStr:"+05:30",countries:["LK"]},{name:"Africa/Monrovia",utcOffset:0,offsetStr:"+00:00",countries:["LR"]},{name:"Europe/Vilnius",utcOffset:120,offsetStr:"+02:00",countries:["LT"]},{name:"Europe/Luxembourg",utcOffset:60,offsetStr:"+01:00",countries:["LU"]},{name:"Europe/Riga",utcOffset:120,offsetStr:"+02:00",countries:["LV"]},{name:"Africa/Tripoli",utcOffset:120,offsetStr:"+02:00",countries:["LY"]},{name:"Africa/Casablanca",utcOffset:0,offsetStr:"+00:00",countries:["MA"]},{name:"Europe/Monaco",utcOffset:60,offsetStr:"+01:00",countries:["MC"]},{name:"Europe/Chisinau",utcOffset:120,offsetStr:"+02:00",countries:["MD"]},{name:"Pacific/Majuro",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Pacific/Kwajalein",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Asia/Rangoon",utcOffset:390,offsetStr:"+06:30",countries:["MM"]},{name:"Asia/Ulaanbaatar",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Hovd",utcOffset:420,offsetStr:"+07:00",countries:["MN"]},{name:"Asia/Choibalsan",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Macau",utcOffset:480,offsetStr:"+08:00",countries:["MO"]},{name:"America/Martinique",utcOffset:-240,offsetStr:"-04:00",countries:["MQ"]},{name:"Europe/Malta",utcOffset:60,offsetStr:"+01:00",countries:["MT"]},{name:"Indian/Mauritius",utcOffset:240,offsetStr:"+04:00",countries:["MU"]},{name:"Indian/Maldives",utcOffset:300,offsetStr:"+05:00",countries:["MV"]},{name:"America/Mexico_City",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Cancun",utcOffset:-300,offsetStr:"-05:00",countries:["MX"]},{name:"America/Merida",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Monterrey",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Matamoros",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Mazatlan",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Chihuahua",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Ojinaga",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Hermosillo",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Tijuana",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Santa_Isabel",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Bahia_Banderas",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"Asia/Kuala_Lumpur",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Asia/Kuching",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Africa/Maputo",utcOffset:120,offsetStr:"+02:00",countries:["MZ","BI","BW","CD","MW","RW","ZM","ZW"]},{name:"Africa/Windhoek",utcOffset:120,offsetStr:"+02:00",countries:["NA"]},{name:"Pacific/Noumea",utcOffset:660,offsetStr:"+11:00",countries:["NC"]},{name:"Pacific/Norfolk",utcOffset:660,offsetStr:"+11:00",countries:["NF"]},{name:"Africa/Lagos",utcOffset:60,offsetStr:"+01:00",countries:["NG","AO","BJ","CD","CF","CG","CM","GA","GQ","NE"]},{name:"America/Managua",utcOffset:-360,offsetStr:"-06:00",countries:["NI"]},{name:"Europe/Amsterdam",utcOffset:60,offsetStr:"+01:00",countries:["NL"]},{name:"Europe/Oslo",utcOffset:60,offsetStr:"+01:00",countries:["NO","SJ"]},{name:"Asia/Kathmandu",utcOffset:345,offsetStr:"+05:45",countries:["NP"]},{name:"Pacific/Nauru",utcOffset:720,offsetStr:"+12:00",countries:["NR"]},{name:"Pacific/Niue",utcOffset:-660,offsetStr:"-11:00",countries:["NU"]},{name:"Pacific/Auckland",utcOffset:780,offsetStr:"+13:00",countries:["NZ","AQ"]},{name:"Pacific/Chatham",utcOffset:825,offsetStr:"+13:45",countries:["NZ"]},{name:"America/Panama",utcOffset:-300,offsetStr:"-05:00",countries:["PA"]},{name:"America/Lima",utcOffset:-300,offsetStr:"-05:00",countries:["PE"]},{name:"Pacific/Tahiti",utcOffset:-600,offsetStr:"-10:00",countries:["PF"]},{name:"Pacific/Marquesas",utcOffset:-570,offsetStr:"-09:30",countries:["PF"]},{name:"Pacific/Gambier",utcOffset:-540,offsetStr:"-09:00",countries:["PF"]},{name:"Pacific/Port_Moresby",utcOffset:600,offsetStr:"+10:00",countries:["PG"]},{name:"Pacific/Bougainville",utcOffset:660,offsetStr:"+11:00",countries:["PG"]},{name:"Asia/Manila",utcOffset:480,offsetStr:"+08:00",countries:["PH"]},{name:"Asia/Karachi",utcOffset:300,offsetStr:"+05:00",countries:["PK"]},{name:"Europe/Warsaw",utcOffset:60,offsetStr:"+01:00",countries:["PL"]},{name:"America/Miquelon",utcOffset:-180,offsetStr:"-03:00",countries:["PM"]},{name:"Pacific/Pitcairn",utcOffset:-480,offsetStr:"-08:00",countries:["PN"]},{name:"America/Puerto_Rico",utcOffset:-240,offsetStr:"-04:00",countries:["PR"]},{name:"Asia/Gaza",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Asia/Hebron",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Europe/Lisbon",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Madeira",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Azores",utcOffset:-60,offsetStr:"-01:00",countries:["PT"]},{name:"Pacific/Palau",utcOffset:540,offsetStr:"+09:00",countries:["PW"]},{name:"America/Asuncion",utcOffset:-180,offsetStr:"-03:00",countries:["PY"]},{name:"Asia/Qatar",utcOffset:180,offsetStr:"+03:00",countries:["QA","BH"]},{name:"Indian/Reunion",utcOffset:240,offsetStr:"+04:00",countries:["RE","TF"]},{name:"Europe/Bucharest",utcOffset:120,offsetStr:"+02:00",countries:["RO"]},{name:"Europe/Belgrade",utcOffset:60,offsetStr:"+01:00",countries:["RS","BA","HR","ME","MK","SI"]},{name:"Europe/Kaliningrad",utcOffset:120,offsetStr:"+02:00",countries:["RU"]},{name:"Europe/Moscow",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Simferopol",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Volgograd",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Samara",utcOffset:240,offsetStr:"+04:00",countries:["RU"]},{name:"Asia/Yekaterinburg",utcOffset:300,offsetStr:"+05:00",countries:["RU"]},{name:"Asia/Omsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novosibirsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novokuznetsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Krasnoyarsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Irkutsk",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Chita",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Yakutsk",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Khandyga",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Vladivostok",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Sakhalin",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Ust-Nera",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Magadan",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Srednekolymsk",utcOffset:660,offsetStr:"+11:00",countries:["RU"]},{name:"Asia/Kamchatka",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Anadyr",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Riyadh",utcOffset:180,offsetStr:"+03:00",countries:["SA","KW","YE"]},{name:"Pacific/Guadalcanal",utcOffset:660,offsetStr:"+11:00",countries:["SB"]},{name:"Indian/Mahe",utcOffset:240,offsetStr:"+04:00",countries:["SC"]},{name:"Africa/Khartoum",utcOffset:180,offsetStr:"+03:00",countries:["SD","SS"]},{name:"Europe/Stockholm",utcOffset:60,offsetStr:"+01:00",countries:["SE"]},{name:"Asia/Singapore",utcOffset:480,offsetStr:"+08:00",countries:["SG"]},{name:"America/Paramaribo",utcOffset:-180,offsetStr:"-03:00",countries:["SR"]},{name:"America/El_Salvador",utcOffset:-360,offsetStr:"-06:00",countries:["SV"]},{name:"Asia/Damascus",utcOffset:120,offsetStr:"+02:00",countries:["SY"]},{name:"America/Grand_Turk",utcOffset:-240,offsetStr:"-04:00",countries:["TC"]},{name:"Africa/Ndjamena",utcOffset:60,offsetStr:"+01:00",countries:["TD"]},{name:"Indian/Kerguelen",utcOffset:300,offsetStr:"+05:00",countries:["TF"]},{name:"Asia/Bangkok",utcOffset:420,offsetStr:"+07:00",countries:["TH","KH","LA","VN"]},{name:"Asia/Dushanbe",utcOffset:300,offsetStr:"+05:00",countries:["TJ"]},{name:"Pacific/Fakaofo",utcOffset:780,offsetStr:"+13:00",countries:["TK"]},{name:"Asia/Dili",utcOffset:540,offsetStr:"+09:00",countries:["TL"]},{name:"Asia/Ashgabat",utcOffset:300,offsetStr:"+05:00",countries:["TM"]},{name:"Africa/Tunis",utcOffset:60,offsetStr:"+01:00",countries:["TN"]},{name:"Pacific/Tongatapu",utcOffset:780,offsetStr:"+13:00",countries:["TO"]},{name:"Europe/Istanbul",utcOffset:120,offsetStr:"+02:00",countries:["TR"]},{name:"America/Port_of_Spain",utcOffset:-240,offsetStr:"-04:00",countries:["TT","AG","AI","BL","DM","GD","GP","KN","LC","MF","MS","VC","VG","VI"]},{name:"Pacific/Funafuti",utcOffset:720,offsetStr:"+12:00",countries:["TV"]},{name:"Asia/Taipei",utcOffset:480,offsetStr:"+08:00",countries:["TW"]},{name:"Europe/Kiev",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Uzhgorod",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Zaporozhye",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Pacific/Wake",utcOffset:720,offsetStr:"+12:00",countries:["UM"]},{name:"America/New_York",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Detroit",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Louisville",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Monticello",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Indianapolis",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vincennes",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Winamac",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Marengo",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Petersburg",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vevay",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Chicago",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Tell_City",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Knox",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Menominee",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Center",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/New_Salem",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Beulah",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Denver",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Boise",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Phoenix",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Los_Angeles",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Metlakatla",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Anchorage",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Juneau",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Sitka",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Yakutat",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Nome",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Adak",utcOffset:-600,offsetStr:"-10:00",countries:["US"]},{name:"Pacific/Honolulu",utcOffset:-600,offsetStr:"-10:00",countries:["US","UM"]},{name:"America/Montevideo",utcOffset:-180,offsetStr:"-03:00",countries:["UY"]},{name:"Asia/Samarkand",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"Asia/Tashkent",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"America/Caracas",utcOffset:-270,offsetStr:"-04:30",countries:["VE"]},{name:"Asia/Ho_Chi_Minh",utcOffset:420,offsetStr:"+07:00",countries:["VN"]},{name:"Pacific/Efate",utcOffset:660,offsetStr:"+11:00",countries:["VU"]},{name:"Pacific/Wallis",utcOffset:720,offsetStr:"+12:00",countries:["WF"]},{name:"Pacific/Apia",utcOffset:840,offsetStr:"+14:00",countries:["WS"]},{name:"Africa/Johannesburg",utcOffset:120,offsetStr:"+02:00",countries:["ZA","LS","SZ"]}]}],templateUrl:"app/core/directives/ms-timezone/ms-timezone.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsWidgetEngineCounterController",function(){var a=this;a.filter=[],a.filtered=!1,a.fontSize=20,a.getCount=function(e){var n=0;if(e){a.fontSize=e.attrs[2]&&e.attrs[2].value?parseInt(e.attrs[2].value)-parseInt(e.attrs[2].value)%2:20,e.attrs[1].value&&e.attrs[1].value.length?(a.filtered=!0,a.filter=_.intersection(e.voiceQueuesSelected,e.attrs[1].value)):(a.filtered=!1,a.filter=e.voiceQueuesSelected);for(var t=0;tr.properties.length){var n=r.multiBarChart.series.length-r.properties.length;r.multiBarChart.series.splice(0,n),r.multiBarChart.data.splice(0,n)}for(var t=0;tr.filter.length){var a=r.multiBarChart.labels.length-r.filter.length;r.multiBarChart.labels.splice(0,a),r.multiBarChart.data[t].splice(0,a)}for(var i=0,s=0;io.properties.length){var n=o.pieChart.labels.length-o.properties.length;o.pieChart.labels.splice(0,n),o.pieChart.data.splice(0,n)}for(var t=0,a=0;t]+>/gm,"")}}).filter("nospace",function(){return function(e){return e?e.replace(/ /g,""):""}}).filter("humanizeDoc",function(){return function(e){if(e)return"directive"===e.type?e.name.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}):e.label||e.name}})}(),function(){"use strict";angular.module("app.core").filter("capitalize",function(){return function(e){return e?_.capitalize(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByIds",function(){return function(e,n){if(0===e.length||!n)return e;if(0===n.length)return[];for(var t=[],a=0;an.openedAt?1:-1:1}),n}})}(),function(){"use strict";angular.module("app.core").filter("snakecase",function(){return function(e){return e?_.snakeCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("startcase",function(){return function(e){return e?_.startCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByTags",function(){return function(e,t){if(0===e.length||0===t.length)return e;var a=[];return e.forEach(function(e){var n=t.every(function(n){var t=!1;return e.tags.forEach(function(e){e.name!==n.name||(t=!0)}),t});n&&a.push(e)}),a}}).filter("filterSingleByTags",function(){return function(e,n){if(0!==e.length&&0!==n.length){if(e.length')).html(i),s.append(o)})},rgba:l};function l(e,n){var t=n||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),t&&(e=function(e,n){var t={white:{1:"1",2:"0.7",3:"0.3",4:"0.12"},black:{1:"0.87",2:"0.54",3:"0.26",4:"0.12"}};255===e[0]&&255===e[1]&&255===e[2]?e[3]=t.white[n]:0===e[0]&&0===e[1]&&0===e[2]&&(e[3]=t.black[n]);return e}(e,t)),3===e.length?"rgb("+e.join(",")+")":4===e.length?"rgba("+e.join(",")+")":void a.error("Invalid number of arguments supplied in the color array: "+e.length+"\nThe array must have 3 or 4 colors.")}function d(e){return e.charAt(0).toUpperCase()+e.slice(1)}}e.$inject=["$cookies","$log","motionTheming"],angular.module("app.core").factory("motionGenerator",e)}(),function(){"use strict";angular.module("app.core").constant("motionPalettes",[{name:"motion-blue",options:{50:"#ebf1fa",100:"#c2d4ef",200:"#9ab8e5",300:"#78a0dc",400:"#5688d3",500:"#3470ca",600:"#2e62b1",700:"#275498",800:"#21467e",900:"#1a3865",A100:"#c2d4ef",A200:"#9ab8e5",A400:"#5688d3",A700:"#275498",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}},{name:"motion-paleblue",options:{50:"#ececee",100:"#c5c6cb",200:"#9ea1a9",300:"#7d818c",400:"#5c616f",500:"#3c4252",600:"#353a48",700:"#2d323e",800:"#262933",900:"#1e2129",A100:"#c5c6cb",A200:"#9ea1a9",A400:"#5c616f",A700:"#2d323e",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}}])}(),function(){"use strict";angular.module("app.core").constant("motionThemes",{default:{primary:{name:"motion-paleblue",hues:{default:"700","hue-1":"500","hue-2":"600","hue-3":"400"}},accent:{name:"light-blue",hues:{default:"600","hue-1":"400","hue-2":"700","hue-3":"A100"}},warn:{name:"red"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},pinkTheme:{primary:{name:"blue-grey",hues:{default:"800","hue-1":"600","hue-2":"400","hue-3":"A100"}},accent:{name:"pink",hues:{default:"400","hue-1":"300","hue-2":"600","hue-3":"A100"}},warn:{name:"blue"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},tealTheme:{primary:{name:"motion-blue",hues:{default:"900","hue-1":"600","hue-2":"500","hue-3":"A100"}},accent:{name:"teal",hues:{default:"500","hue-1":"400","hue-2":"600","hue-3":"A100"}},warn:{name:"deep-orange"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}}})}(),function(){"use strict";function e(t,e,n){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(n.custom=i),t.alwaysWatchTheme(!0),angular.forEach(e,function(e){t.definePalette(e.name,e.options)}),angular.forEach(n,function(e,n){t.theme(n).primaryPalette(e.primary.name,e.primary.hues).accentPalette(e.accent.name,e.accent.hues).warnPalette(e.warn.name,e.warn.hues).backgroundPalette(e.background.name,e.background.hues)})}e.$inject=["$mdThemingProvider","motionPalettes","motionThemes"],angular.module("app.core").config(e)}(),function(){"use strict";function e(n,t,e){var a={getRegisteredPalettes:function(){return e.PALETTES},getRegisteredThemes:function(){return e.THEMES},setActiveTheme:function(e){if(angular.isUndefined(a.themes.list[e]))return angular.isUndefined(a.themes.list.default)?void t.error('You must have at least one theme named "default"'):(t.warn('The theme "'+e+'" does not exist! Falling back to the "default" theme.'),a.themes.active.name="default",a.themes.active.theme=a.themes.list.default,void n.put("motion.selectedTheme",a.themes.active.name));a.themes.active.name=e,a.themes.active.theme=a.themes.list[e],n.put("motion.selectedTheme",e)},setThemesList:function(e){a.themes.list=e},themes:{list:{},active:{name:"",theme:{}}}};return a}e.$inject=["$cookies","$log","$mdTheming"],angular.module("app.core").service("motionTheming",e)}(),function(){"use strict";function e(n,s,o,r){this.search=function(n){for(var e=[],t=r.getFlatNavigation(),a=o.defer(),i=0;i"+(e.name||"extractedReport")+" will be deleted.").ariaLabel("delete extractedReport").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getExtractedReports=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticExtractedReport.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ExtractedReports",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditExtractedReport=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{extractedReport:n,extractedReports:f.extractedReports.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteExtractedReport=y,f.exportSelectedExtractedReports=function(){var e=angular.copy(f.selectedExtractedReports);return f.selectedExtractedReports=[],e},f.deleteSelectedExtractedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent(""+f.selectedExtractedReports.length+" selected will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedExtractedReports.forEach(function(e){y(e)}),f.selectedExtractedReports=[]})},f.deselectExtractedReports=function(){f.selectedExtractedReports=[]},f.selectAllExtractedReports=function(){f.selectedExtractedReports=f.extractedReports.rows};var b=!0,A=1;function E(e){f.extractedReports=e||{count:0,rows:[]}}function y(e){m.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(f.extractedReports.rows,{id:e.id}),f.extractedReports.count-=1,f.extractedReports.rows.length||f.getExtractedReports(),p.success({title:_.startCase("ExtractedReport")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticExtractedReport"}];for(var n=0;n"+(e.name||"metric")+" will be deleted.").ariaLabel("delete metric").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMetrics=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticMetric.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Metrics",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMetric=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{metric:n,metrics:f.metrics.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMetric=y,f.exportSelectedMetrics=function(){var e=angular.copy(f.selectedMetrics);return f.selectedMetrics=[],e},f.deleteSelectedMetrics=function(e){var n=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent(""+f.selectedMetrics.length+" selected will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMetrics.forEach(function(e){y(e)}),f.selectedMetrics=[]})},f.deselectMetrics=function(){f.selectedMetrics=[]},f.selectAllMetrics=function(){f.selectedMetrics=f.metrics.rows};var b=!0,A=1;function E(e){f.metrics=e||{count:0,rows:[]}}function y(e){m.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(f.metrics.rows,{id:e.id}),f.metrics.count-=1,f.metrics.rows.length||f.getMetrics(),p.success({title:_.startCase("Metric")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticMetric"}];for(var n=0;n"+e.field+" will be deleted.").ariaLabel("delete field").targetEvent(n).ok("OK").cancel("CANCEL");a.show(t).then(function(){p(e)},function(){console.log("CANCEL")})},c.success=u,c.getReportFields=function(){c.promise=o.analyticFieldReport.get(c.query,u).$promise},c.createOrEditReportField=function(e,n){a.show({controller:"CreateOrEditReportFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/edit/field/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:c.report,reportField:n,reportFields:c.reportFields.rows,metrics:c.metrics,columns:c.columns,setting:null,crudPermissions:c.crudPermissions}})},c.deleteReportField=p,c.deleteSelectedReportFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent(""+c.selectedReportFields.length+" selected will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){c.selectedReportFields.forEach(function(e){p(e)}),c.selectedReportFields=[]})},c.getMetricName=function(e){var n=_.find(c.metrics,{id:e});return n?n.name:d.instant("ANALYTICS.NO_METRIC_FOUND")},c.getMetricValue=function(e){var n=_.find(c.metrics,{id:e});return n?n.metric:d.instant("ANALYTICS.NO_METRIC_FOUND")};var m=!0;function u(e){c.reportFields=e||{count:0,rows:[]}}function p(e){o.analyticFieldReport.delete({id:e.id}).$promise.then(function(){c.selectedReportFields=[],_.remove(c.reportFields.rows,{id:e.id}),c.reportFields.count-=1,c.reportFields.rows.length||c.getReportFields(),s.success({title:"Field deleted!",msg:e.field?e.field+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}n.$watch("vm_rf.query.filter",function(e,n){m?t(function(){m=!1}):c.getReportFields()})}e.$inject=["$cookies","$scope","$timeout","$mdDialog","$document","toasty","api","describeTable","sqlUtil","$translate"],angular.module("app.analytics").controller("ReportFieldsController",e)}(),function(){"use strict";angular.module("app.analytics").factory("sqlUtil",function(){return{getFunctions:[{value:"SUM",option:function(e){return"SUM ("+e+")"}},{value:"COUNT",option:function(e){return"COUNT ("+e+")"}},{value:"COUNT DISTINCT",option:function(e){return"COUNT (DISTINCT "+e+")"}},{value:"MAX",option:function(e){return"MAX ("+e+")"}},{value:"MIN",option:function(e){return"MIN ("+e+")"}},{value:"AVG",option:function(e){return"AVG ("+e+")"}},{value:"GROUP_CONCAT",option:function(e){return"GROUP_CONCAT ("+e+")"}},{value:"GROUP_CONCAT ASC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" ASC)"}},{value:"GROUP_CONCAT DESC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" DESC)"}}],getFormats:[{value:"SEC_TO_TIME",option:function(e){return"SEC_TO_TIME ("+e+")"}},{value:"DATE",option:function(e){return"DATE ("+e+")"}},{value:"HOUR",option:function(e){return"HOUR ("+e+")"}},{value:"ROUND",option:function(e){return"ROUND ("+e+")"}},{value:"UNIX_TIMESTAMP",option:function(e){return"UNIX_TIMESTAMP ("+e+")"}}],getGroupBy:[{value:!1,option:function(){return"No"}},{value:!0,option:function(e){return"GROUP BY "+e}}],getOrderBy:[{value:"ASC",option:function(e){return"ORDER BY "+e+" ASC"}},{value:"DESC",option:function(e){return"ORDER BY "+e+" DESC"}}],getConditions:["=","!=","<","<=",">",">=","LIKE","NOT LIKE","IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"]}})}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(e){return _.isArray(e)}o.report=a||{},o.userProfileSection=s&&1==s.count?s.rows[0]:null,o.crudPermissions=i.parseCrudPermissions(o.userProfileSection?o.userProfileSection.crudPermissions:null),o.selectedTab=e.params.tab||0,o.gotoReports=function(){e.go("app.analytics.reports",{},{reload:"app.analytics.reports"})},o.saveReport=function(){o.report.conditions=angular.toJson(o.report.condition),t.analyticCustomReport.update({id:o.report.id},_.omit(o.report,"joins")).$promise.then(function(){n.success({title:"Report updated!",msg:o.report.name?o.report.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETreport",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.previewReport=function(){o.columns=[],o.rows=[],o.error=!1,t.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:o.report.id}).$promise.then(function(e){return o.columns=e?e.rows:[],t.analyticCustomReport.preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},n.error(o.error)})},o.queryReport=function(){return o.queryResult="Loading...",t.analyticCustomReport.query({id:o.report.id}).$promise.then(function(e){o.queryResult=e.sql}).catch(function(e){o.queryResult="",console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},n.error(o.error)})},o.mapArray=function(e,n){if(r(e))return _.map(e,n).join(",");return""},o.isArray=r,o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$state","toasty","api","report","Auth","userProfileSection"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.errors=[],o.report=angular.copy(a),o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},o.closeDialog=function(){n.hide()},function(){o.columns=[],o.rows=[],o.error=!1;var e={fields:"field,alias",nolimit:!0};e["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=o.report.id,o.promise=i.analyticFieldReport.get(e).$promise.then(function(e){return o.columns=e?e.rows:[],i[s].preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},t.error(o.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,n,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.reports={count:0,rows:[]},p.userProfile=r,p.userProfileSection=l&&1==l.count?l.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.selectedReports=[],p.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},p.apiName=null,p.currentPath="",p.customTree=!0,p.editstate=function(e,n){s.go("app.analytics.reports.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.copydialog=function(e,n){i.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,treeCustomData:p.treeCustomInstance.jstree(!0).get_json("#")}}).finally(function(){})},p.previewdialog=function(e,n){i.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName}})},p.rundialog=function(e,n){i.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,currentPath:p.currentPath}})},p.downloadfile=function(a,e){var i;d.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise.then(function(e){i=_.keyBy(e.rows,"id");var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===p.apiName?"CustomReportId":"DefaultReportId"]=a.id,d.analyticFieldReport.get(n).$promise}).then(function(e){for(var n=0;n"+e.name+" will be deleted.").ariaLabel("delete report").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){b(e)},function(){console.log("CANCEL")})},p.success=h,p.getReports=f,p.createOrEditReport=function(e,n){i.show({controller:"CreateOrEditReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:n,reports:p.reports.rows,apiName:p.apiName,currentNode:p.currentNode,setting:null,crudPermissions:p.crudPermissions}})},p.importReport=function(e,n,t){if("application/json"===e.file.type){var a=new FileReader;a.onload=function(e){console.log(e.target.result);try{var t=atob(e.target.result.split(",")[1]);t=angular.fromJson(t),d.analyticCustomReport.save({name:t.name,description:t.description,table:t.table,conditions:t.conditions,joins:t.joins,parent:p.currentNode.id}).$promise.then(function(n){p.reports.rows.unshift(n),m.success({title:"Report saved!",msg:n.name?n.name+" has been saved!":""});var e=_.map(t.fields,function(e){return _.extend({},e,{CustomReportId:n.id})});return d.analyticFieldReport.bulkCreate(e).$promise}).then(function(e){m.success({title:"Fields saved!",msg:"Fields has been saved!"})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}catch(e){console.error(e),m.error({title:"Decode File Error",msg:e.toString()})}},a.readAsDataURL(e.file)}else m.error({title:"Format Error",msg:"Please use only json files"})},p.deleteReport=b,p.exportSelectedReports=function(){var e=angular.copy(p.selectedReports);return p.selectedReports=[],e},p.deleteSelectedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected reports?").htmlContent(""+p.selectedReports.length+" selected will be deleted.").ariaLabel("delete Reports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){p.selectedReports.forEach(function(e){b(e)}),p.selectedReports=[]})},p.deselectReports=function(){p.selectedReports=[]},p.selectAllReports=function(){p.selectedReports=p.reports.rows},p.treeDefaultData=c.rows[0]?angular.fromJson(c.rows[0].tree):[],p.treeCustomData=c.rows[1]?angular.fromJson(c.rows[1].tree):[],p.treeDefaultConfig=S(!1),p.treeCustomConfig=S(!0),p.treeDefaultEvents=T(!1),p.treeCustomEvents=T(!0);var g=!0,v=1;function h(e){p.reports=e||{count:0,rows:[]}}function f(){if(p.query.offset=(p.query.page-1)*p.query.limit,p.apiName)if("admin"===p.currentUser.role||p.userProfileSection.autoAssociation)p.promise=d[p.apiName].get(p.query,h).$promise;else{var a=[];p.promise=d[p.apiName].get(p.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:p.userProfileSection.id,type:"analyticDefaultReport"===p.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0"+(t.text?t.text:"Node")+" and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n=p.treeCustomInstance.jstree(!0).get_parent(t);n=p.treeCustomInstance.jstree(!0).get_node(n),p.treeCustomInstance.jstree(!0).delete_node(t),e=[t.id].concat(t.children_d||[]),d.analyticCustomReport.get({parent:e.join(","),fields:"id,name"}).$promise.then(function(e){e&&e.rows&&e.rows.forEach(function(e){b(e)})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEreportsByParents",msg:e.data?JSON.stringify(e.data):e.toString()})}),p.treeCustomInstance.jstree(!0).select_node(n)})}}}),e}}}}function T(e){return e?{create_node:y,rename_node:y,move_node:y,delete_node:y,select_node:A}:{select_node:E}}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getReports())}),e.$watch("vm.search",function(e,n){p.treeDefaultInstance&&p.treeDefaultInstance.jstree(!0).search(e),p.treeCustomInstance&&p.treeCustomInstance.jstree(!0).search(e)})}e.$inject=["$scope","$timeout","$document","$mdDialog","$state","$window","$translate","userProfile","userProfileSection","api","treeReports","toasty","Auth"],angular.module("app.analytics").controller("ReportsController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r){var l=this;function d(){l.export={id:l.report.id,name:l.report.name,startDate:new Date(moment().startOf("day")),endDate:new Date(moment().endOf("day")),output:"xlsx",fullPath:r?r+"/"+l.report.name:l.report.name}}function c(){t.hide()}l.errors=[],l.report=angular.copy(n),l.export={},l.runReport=function(n){l.errors=[],l.exportDate=_.assign({},l.export,{startDate:moment(l.export.startDate).format("YYYY-MM-DD HH:mm:ss"),endDate:moment(l.export.endDate).format("YYYY-MM-DD HH:mm:ss")}),i[s].run(l.exportDate).$promise.then(function(e){"web"===l.export.output?t.show({controller:"WebReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/web/dialog.html",parent:angular.element(o.body),targetEvent:n,skipHide:!0,locals:{apiName:s,exportDate:l.exportDate,results:e},resolve:{columns:["apiResolver",function(e){var n={fields:"field,alias",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=l.report.id,e.resolve("analyticFieldReport@get",n)}]}}):(a.success({title:"Report properly run!",msg:l.report.name?l.report.name+" has been run!":""}),c())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},l.closeDialog=c,(l.refreshDate=d)()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","$document","currentPath"],angular.module("app.analytics").controller("RunReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o){var r=this;function l(e){r.results=e||{count:0,rows:[]}}r.errors=[],r.columns=a?a.rows:[],r.results=i||{rows:[],count:0},r.query={limit:10,page:1},r.closeDialog=function(){e.hide()},r.getResults=function(){o.offset=(r.query.page-1)*r.query.limit,o.limit=r.query.limit,r.promise=t[s].run(o,l).$promise},r.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$mdDialog","toasty","api","columns","results","apiName","exportDate"],angular.module("app.analytics").controller("WebReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_ODBC",g.odbc=angular.copy(l),g.odbcs=r,g.newOdbc=!1,g.odbc||(g.odbc={},g.title="CALLYSQUARE.NEW_ODBC",g.newOdbc=!0),g.addNewOdbc=function(){g.errors=[],d.squareOdbc.save(g.odbc).$promise.then(function(e){g.odbcs.unshift(e.toJSON()),o.success({title:"Odbc properly created",msg:g.odbc.name?g.odbc.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.save"}];for(var n=0;n"+(e.name||"odbc")+" will be deleted.").ariaLabel("delete odbc").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getODBC=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareOdbc.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ODBC",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOdbc=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{odbc:n,odbcs:f.odbcs.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOdbc=y,f.exportSelectedODBC=function(){var e=angular.copy(f.selectedODBC);return f.selectedODBC=[],e},f.deleteSelectedODBC=function(e){var n=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent(""+f.selectedODBC.length+" selected will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedODBC.forEach(function(e){y(e)}),f.selectedODBC=[]})},f.deselectODBC=function(){f.selectedODBC=[]},f.selectAllODBC=function(){f.selectedODBC=f.odbcs.rows};var b=!0,A=1;function E(e){f.odbcs=e||{count:0,rows:[]}}function y(e){m.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(f.odbcs.rows,{id:e.id}),f.odbcs.count-=1,f.odbcs.rows.length||f.getODBC(),p.success({title:_.startCase("Odbc")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareOdbc"}];for(var n=0;n"+e.name+" will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");l.show(t).then(function(){f(e)},function(){console.log("CANCEL")})},p.success=h,p.getProjects=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=o.squareProject.get(p.query,h).$promise:(p.query.id=p.userProfile.id,p.query.section="SquareProjects",p.promise=o.userProfile.getResources(p.query,h).$promise)},p.createOrEditProject=function(e,n){l.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(d.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:p.projects.rows,openFromEditor:null,setting:null,crudPermissions:p.crudPermissions}})},p.deleteProject=f,p.exportSelectedProjects=function(){var e=angular.copy(p.selectedProjects);return p.selectedProjects=[],e},p.deleteSelectedProjects=function(e){var n=l.confirm().title("Are you sure want to delete the selected projects?").htmlContent(""+p.selectedProjects.length+" selected will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");l.show(n).then(function(){p.selectedProjects.forEach(function(e){f(e)}),p.selectedProjects=[]})},p.deselectProjects=function(){p.selectedProjects=[]},p.selectAllProjects=function(){p.selectedProjects=p.projects.rows};var g=!0,v=1;function h(e){p.projects=e||{count:0,rows:[]}}function f(e){o.squareProject.delete({id:e.id}).$promise.then(function(){_.remove(p.projects.rows,{id:e.id}),p.projects.count-=1,p.projects.rows.length||p.getProjects(),m.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.project.delete"}];for(var n=0;n"+(e.name||"squareRecording")+" will be deleted.").ariaLabel("delete squareRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSquareRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SquareRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSquareRecording=function(e,n){i.show({controller:"CreateOrEditSquareRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/squareRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{squareRecording:n,squareRecordings:f.squareRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSquareRecording=y,f.exportSelectedSquareRecordings=function(){var e=angular.copy(f.selectedSquareRecordings);return f.selectedSquareRecordings=[],e},f.deleteSelectedSquareRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent(""+f.selectedSquareRecordings.length+" selected will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSquareRecordings.forEach(function(e){y(e)}),f.selectedSquareRecordings=[]})},f.deselectSquareRecordings=function(){f.selectedSquareRecordings=[]},f.selectAllSquareRecordings=function(){f.selectedSquareRecordings=f.squareRecordings.rows};var b=!0,A=1;function E(e){f.squareRecordings=e||{count:0,rows:[]}}function y(e){m.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.squareRecordings.rows,{id:e.id}),f.squareRecordings.count-=1,f.squareRecordings.rows.length||f.getSquareRecordings(),p.success({title:_.startCase("SquareRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareRecording"}];for(var n=0;n"+(e.name||"chatQueue")+" will be deleted.").ariaLabel("delete chatQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.chat.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.chat.realtime.queues",{})}},f.success=E,f.getChatQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatQueue=function(e,n){i.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:f.chatQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatQueue=y,f.exportSelectedChatQueues=function(){var e=angular.copy(f.selectedChatQueues);return f.selectedChatQueues=[],e},f.deleteSelectedChatQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent(""+f.selectedChatQueues.length+" selected will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatQueues.forEach(function(e){y(e)}),f.selectedChatQueues=[]})},f.deselectChatQueues=function(){f.selectedChatQueues=[]},f.selectAllChatQueues=function(){f.selectedChatQueues=f.chatQueues.rows};var b=!0,A=1;function E(e){f.chatQueues=e||{count:0,rows:[]}}function y(e){m.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.chatQueues.rows,{id:e.id}),f.chatQueues.count-=1,f.chatQueues.rows.length||f.getChatQueues(),p.success({title:_.startCase("ChatQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatQueue"}];for(var n=0;n":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={readOnly:!c.crudPermissions.canEdit,items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","chatQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getTeams({id:l.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){return _.find(l.items,{id:e.id})}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.chatQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={readOnly:!l.crudPermissions.canEdit,allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("CHAT.ALL_TEAMS"),labelSelected:t.instant("CHAT.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.chatQueue=c||e.params.chatQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoChatQueues=function(){e.go("app.chat.chatQueues",{},{reload:"app.chat.chatQueues"})},u.saveChatQueue=function(){r.chatQueue.update({id:u.chatQueue.id},u.chatQueue).$promise.then(function(){l.success({title:"ChatQueue updated!",msg:u.chatQueue.name?u.chatQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","chatQueue","userProfileSection"],angular.module("app.chat").controller("ChatQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatWebsites=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatWebsites",f.listOrder="",f.listOrderAsc=null,f.selectedChatWebsites=[],f.query={fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey",sort:"-updatedAt",limit:10,page:1},f.arrayagentIdentifier=_.keyBy([{option:"WebsiteAlias",value:"'website_alias'"},{option:"AgentAlias",value:"'agent_alias'"},{option:"AgentFullname",value:"'agent_fullname'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayalignment=_.keyBy([{option:"bottom_right",value:"'bottom_right'"},{option:"right",value:"'right'"},{option:"left",value:"'left'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymessagesAlignment=_.keyBy([{option:"alternate",value:"'alternate'"},{option:"centered",value:"'centered'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayratingType=_.keyBy([{option:"Star",value:"'star'"},{option:"Thumb",value:"'thumb'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:10})},f.offlinemessagesgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:11})},f.agentadddialog=function(e,n){i.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:f.chatWebsites?f.chatWebsites.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatWebsite")+"?").htmlContent(""+(e.name||"chatWebsite")+" will be deleted.").ariaLabel("delete chatWebsite").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChatWebsites=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatWebsite.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatWebsites",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatWebsite=function(e,n){i.show({controller:"CreateOrEditChatWebsiteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:n,chatWebsites:f.chatWebsites.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatWebsite=y,f.exportSelectedChatWebsites=function(){var e=angular.copy(f.selectedChatWebsites);return f.selectedChatWebsites=[],e},f.deleteSelectedChatWebsites=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent(""+f.selectedChatWebsites.length+" selected will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatWebsites.forEach(function(e){y(e)}),f.selectedChatWebsites=[]})},f.deselectChatWebsites=function(){f.selectedChatWebsites=[]},f.selectAllChatWebsites=function(){f.selectedChatWebsites=f.chatWebsites.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.lists,{id:Number(f.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.lists,{id:Number(f.chatWebsite.ListId)}));for(var i=0;i"+e.app+" will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.chatWebsiteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getChatWebsiteApps=function(){r.promise=o.chatWebsite.getApplications(r.query,t).$promise},r.editChatWebsiteApp=n,r.editInterval=function(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteChatWebsiteApp=function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedChatWebsiteApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent(""+r.selectedChatWebsiteApps.length+" selected will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedChatWebsiteApps.forEach(function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id})}),r.selectedChatWebsiteApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatWebsite.getAgents({id:c.chatWebsite.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatWebsite?"penalty "+e.UserChatWebsite.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatWebsite=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.removeAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.addAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={readOnly:!c.crudPermissions.canEdit,items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatWebsite","chatWebsites","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatWebsiteagentaddController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608"+(e.name||e.id&&_.upperFirst("chatCannedAnswer #")+e.id||"chatCannedAnswer")+" will be deleted.").ariaLabel("delete chatCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteChatCannedAnswers=p,m.createOrEditChatWebsiteChatCannedAnswer=function(e,n){o.show({controller:"CreateOrEditChatCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatCannedAnswer:n,chatCannedAnswers:m.chatWebsiteChatCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteChatCannedAnswers=function(){var e=angular.copy(m.selectedChatWebsiteChatCannedAnswers);return m.selectedChatWebsiteChatCannedAnswers=[],e},m.deleteChatWebsiteChatCannedAnswer=g,m.deleteSelectedChatWebsiteChatCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected chatCannedAnswers?").htmlContent(""+m.selectedChatWebsiteChatCannedAnswers.length+" selected will be deleted.").ariaLabel("delete chatCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteChatCannedAnswers.forEach(function(e){g(e)}),m.selectedChatWebsiteChatCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteChatCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATCANNEDANSWER",g.chatCannedAnswer=angular.copy(l),g.chatCannedAnswers=r,g.newChatCannedAnswer=!1,g.chatCannedAnswer||(g.chatCannedAnswer={},g.title="CHAT.NEW_CHATCANNEDANSWER",g.newChatCannedAnswer=!0),n.params.id&&(g.chatCannedAnswer.ChatWebsiteId=n.params.id),g.addNewChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.chatCannedAnswer).$promise.then(function(e){g.chatCannedAnswers.unshift(e.toJSON()),o.success({title:"ChatCannedAnswer properly created",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteInteractions={count:0,rows:[]},m.selectedChatWebsiteInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ChatWebsiteId=m.chatWebsite.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent(""+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+" will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.chatInteractionDownload=function(s,e,n){return d.chatInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="chat-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n"+m.selectedChatWebsiteInteractions.length+" selected will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteInteractions.forEach(function(e){g(e)}),m.selectedChatWebsiteInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteInteractionsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608"+(e.name||e.id&&_.upperFirst("offlineMessage #")+e.id||"offlineMessage")+" will be deleted.").ariaLabel("delete offlineMessage").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteOfflineMessages=p,m.createOrEditChatWebsiteOfflineMessage=function(e,n){o.show({controller:"CreateOrEditOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,offlineMessage:n,offlineMessages:m.chatWebsiteOfflineMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showOfflineMessageChatWebsiteOfflineMessage=function(e,t){o.show({controller:"ShowOfflineMessageOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{message:["apiResolver","$stateParams",function(e,n){return e.resolve("chatOfflineMessage@get",{fields:"id,body",id:t.id})}]}})},m.exportSelectedChatWebsiteOfflineMessages=function(){var e=angular.copy(m.selectedChatWebsiteOfflineMessages);return m.selectedChatWebsiteOfflineMessages=[],e},m.deleteChatWebsiteOfflineMessage=g,m.deleteSelectedChatWebsiteOfflineMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected offlineMessages?").htmlContent(""+m.selectedChatWebsiteOfflineMessages.length+" selected will be deleted.").ariaLabel("delete offlineMessages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteOfflineMessages.forEach(function(e){g(e)}),m.selectedChatWebsiteOfflineMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteOfflineMessagesController",e)}(),function(){"use strict";function e(n,e){this.title="CHAT.OFFLINE_MESSAGE",this.message=e,this.closeDialog=function(e){n.hide(e)}}e.$inject=["$mdDialog","message"],angular.module("app.chat").controller("ShowOfflineMessageOfflineMessageDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteProactiveActions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getProactiveActions(m.query,u).$promise}function g(e){d.chatProactiveAction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteProactiveActions.rows,{id:e.id}),m.chatWebsiteProactiveActions.count-=1,m.chatWebsiteProactiveActions.rows.length||p(),l.success({title:"ChatProactiveAction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n"+(e.name||e.id&&_.upperFirst("chatProactiveAction #")+e.id||"chatProactiveAction")+" will be deleted.").ariaLabel("delete chatProactiveAction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteProactiveActions=p,m.createOrEditChatWebsiteChatProactiveAction=function(e,n){o.show({controller:"CreateOrEditChatProactiveActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatProactiveAction:n,proactive:m.chatWebsiteProactiveActions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteProactiveActions=function(){var e=angular.copy(m.selectedChatWebsiteProactiveActions);return m.selectedChatWebsiteProactiveActions=[],e},m.deleteChatWebsiteChatProactiveAction=g,m.deleteSelectedChatWebsiteProactiveActions=function(e){var n=o.confirm().title("Are you sure want to delete the selected proactive?").htmlContent(""+m.selectedChatWebsiteProactiveActions.length+" selected will be deleted.").ariaLabel("delete proactive").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteProactiveActions.forEach(function(e){g(e)}),m.selectedChatWebsiteProactiveActions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteProactiveActionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATPROACTIVEACTION",g.chatProactiveAction=angular.copy(l),g.proactive=r,g.newChatProactiveAction=!1,g.chatProactiveAction||(g.chatProactiveAction={type:"mouseOver"},g.title="CHAT.NEW_CHATPROACTIVEACTION",g.newChatProactiveAction=!0),n.params.id&&(g.chatProactiveAction.ChatWebsiteId=n.params.id),g.addNewChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.save(g.chatProactiveAction).$promise.then(function(e){g.proactive.unshift(e.toJSON()),o.success({title:"ChatProactiveAction properly created",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.save"}];for(var n=0;n<\/script>',n.end="\n\x3c!-- START Motion Chat Script --\x3e"},n.info={},e.$watch("vm_ac.chatWebsite.remote",function(e){n.script='\n