From 2889d28ad4dc6fedb0f93ea2f1e1d0225c803e8b Mon Sep 17 00:00:00 2001 From: Andrea Bianco Date: Wed, 29 Apr 2020 10:41:28 +0200 Subject: [PATCH] Built motion from commit (unavailable).|2.4.15 --- apidoc/api_project.js | 2 +- apidoc/api_project.json | 2 +- public/app/main/apps/chat/i18n/en.json | 1 - public/app/main/apps/chat/i18n/it.json | 1 - public/app/main/apps/dashboards/i18n/en.json | 3 +-- public/app/main/apps/dashboards/i18n/it.json | 7 +++---- public/app/main/apps/fax/i18n/en.json | 1 - public/app/main/apps/fax/i18n/it.json | 1 - public/app/main/apps/mail/i18n/en.json | 1 - public/app/main/apps/mail/i18n/it.json | 1 - public/app/main/apps/openchannel/i18n/en.json | 1 - public/app/main/apps/openchannel/i18n/it.json | 1 - public/app/main/apps/sms/i18n/ar.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/da.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/de.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/en.json | 16 ++++++++++++---- public/app/main/apps/sms/i18n/es.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/fa.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/fi.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/fr.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/he.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/hi.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/id.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/it.json | 20 +++++++++++++------- public/app/main/apps/sms/i18n/ja.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/ko.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/lv.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/nl.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/no.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/pl.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/pt-BR.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/pt-PT.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/ru.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/sv.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/tr.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/zh-CN.json | 20 +++++++++++++++++--- public/app/main/apps/sms/i18n/zh-TW.json | 20 +++++++++++++++++--- public/index.html | 4 ++-- public/scripts/app.408f0633.js | 1 + public/scripts/app.ea25d8ad.js | 1 - public/styles/app.9bd0a2eb.css | 1 + public/styles/app.b8c81c6e.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 +- 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/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/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/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/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/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 +- .../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 +- .../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 +- 1110 files changed, 1494 insertions(+), 1168 deletions(-) create mode 100644 public/scripts/app.408f0633.js delete mode 100644 public/scripts/app.ea25d8ad.js create mode 100644 public/styles/app.9bd0a2eb.css delete mode 100644 public/styles/app.b8c81c6e.css diff --git a/apidoc/api_project.js b/apidoc/api_project.js index 533bf18..ce6d4af 100644 --- a/apidoc/api_project.js +++ b/apidoc/api_project.js @@ -17,7 +17,7 @@ define({ "apidoc": "0.3.0", "generator": { "name": "apidoc", - "time": "2020-04-23T17:44:48.945Z", + "time": "2020-04-29T08:25:23.335Z", "url": "http://apidocjs.com", "version": "0.20.1" } diff --git a/apidoc/api_project.json b/apidoc/api_project.json index 8d6bd18..f013dd6 100644 --- a/apidoc/api_project.json +++ b/apidoc/api_project.json @@ -17,7 +17,7 @@ "apidoc": "0.3.0", "generator": { "name": "apidoc", - "time": "2020-04-23T17:44:48.945Z", + "time": "2020-04-29T08:25:23.335Z", "url": "http://apidocjs.com", "version": "0.20.1" } diff --git a/public/app/main/apps/chat/i18n/en.json b/public/app/main/apps/chat/i18n/en.json index 7852b8a..3f12031 100644 --- a/public/app/main/apps/chat/i18n/en.json +++ b/public/app/main/apps/chat/i18n/en.json @@ -396,7 +396,6 @@ "OF": "of", "CONTACT": "Contact", "STARTEDAT": "Started At", - "LASTMESSAGE": "Last message", "STATUS": "Status", "CLOSED": "Closed", "OPENED": "Open", diff --git a/public/app/main/apps/chat/i18n/it.json b/public/app/main/apps/chat/i18n/it.json index f6cd612..288818a 100644 --- a/public/app/main/apps/chat/i18n/it.json +++ b/public/app/main/apps/chat/i18n/it.json @@ -367,7 +367,6 @@ "COLLAPSE": "Comprimi", "CONTACT": "Contatto", "STARTEDAT": "Iniziata il", - "LASTMESSAGE": "Ultimo messaggio", "STATUS": "Stato", "CLOSED": "Chiusa", "OPENED": "Aperta", diff --git a/public/app/main/apps/dashboards/i18n/en.json b/public/app/main/apps/dashboards/i18n/en.json index 7163503..62f99f7 100644 --- a/public/app/main/apps/dashboards/i18n/en.json +++ b/public/app/main/apps/dashboards/i18n/en.json @@ -512,7 +512,6 @@ "INVOICEEMITED": "Issued", "INVOICEPAYED": "Payed", "INVOICETOTAL": "Total", - "CHOOSE": "Choose", "ADVANCED_SEARCH": "Advanced Search", "NEW_CONDITION": "New Condition", "SELECT_FIELD": "Select field", @@ -543,4 +542,4 @@ "ENABLED": "Enabled", "DISABLED": "Disabled" } -} +} \ 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 3406c1f..06e866f 100644 --- a/public/app/main/apps/dashboards/i18n/it.json +++ b/public/app/main/apps/dashboards/i18n/it.json @@ -124,6 +124,7 @@ "RATING": "Valutazione", "FEEDBACK": "Feedback", "SUBJECT": "Oggetto", + "CUSTOMER_IP": "IP Cliente", "REFERER": "Referer", "WEBSITE": "Sito Web", "AGENT": "Agente", @@ -320,6 +321,7 @@ "TRANSFER_NUMBER": "Trasferisci", "CALL_SAVED": "Chiamata salvata correttamente", "CALL_DISPOSED": "Chiamata disposta correttamente", + "CUSTOMER_PORT": "Porta di origine del cliente", "AGENTS": "Agents", "INTERACTION_CLOSED": "Interazione chiusa correttamente", "INTERACTION_DISPOSED": "Interazione disposta correttamente", @@ -339,6 +341,7 @@ "UNTITLED": "Senza nome", "SAVE_AS_DRAFT": "Salva come bozza", "UPDATE_DRAFT": "Aggiorna bozza", + "NO_AVAILABLE_INTERACTION": "Nessuna interazione disponibile", "DOSSIERS": "Pratiche", "DOSSIER": "Pratica", "DOSSIER_INFO": "Informazioni", @@ -509,10 +512,6 @@ "INVOICEEMITED": "Emesse", "INVOICEPAYED": "Pagate", "INVOICETOTAL": "Totale", - "NO_AVAILABLE_INTERACTION": "Nessuna interazione disponibile", - "CUSTOMER_IP": "IP Cliente", - "CUSTOMER_PORT": "Porta di origine del cliente", - "CHOOSE": "Scegli", "ADVANCED_SEARCH": "Ricerca Avanzata", "NEW_CONDITION": "Nuova Condizione", "SELECT_FIELD": "Seleziona campo", diff --git a/public/app/main/apps/fax/i18n/en.json b/public/app/main/apps/fax/i18n/en.json index 965bfd5..10e8e95 100644 --- a/public/app/main/apps/fax/i18n/en.json +++ b/public/app/main/apps/fax/i18n/en.json @@ -231,7 +231,6 @@ "INTERACTIONS": "Interactions", "CONTACT": "Contact", "STARTEDAT": "Started At", - "LASTMESSAGE": "Last message", "STATUS": "Status", "ACCOUNT": "Account", "UNKNOWN": "Unknown", diff --git a/public/app/main/apps/fax/i18n/it.json b/public/app/main/apps/fax/i18n/it.json index f8b1055..ed4fdb8 100644 --- a/public/app/main/apps/fax/i18n/it.json +++ b/public/app/main/apps/fax/i18n/it.json @@ -225,7 +225,6 @@ "INTERACTIONS": "Interazioni", "CONTACT": "Contatto", "STARTEDAT": "Iniziato il", - "LASTMESSAGE": "Ultimo messaggio", "STATUS": "Stato", "ACCOUNT": "Account", "UNKNOWN": "Sconosciuto", diff --git a/public/app/main/apps/mail/i18n/en.json b/public/app/main/apps/mail/i18n/en.json index d3f547f..d7f2618 100644 --- a/public/app/main/apps/mail/i18n/en.json +++ b/public/app/main/apps/mail/i18n/en.json @@ -280,7 +280,6 @@ "EDIT_QUEUE": "Edit Queue", "INTERACTIONS": "Interactions", "STARTEDAT": "Started At", - "LASTMESSAGE": "Last message", "CONTACT": "Contact", "CLOSEDAT": "Closed At", "NOTES": "Notes", diff --git a/public/app/main/apps/mail/i18n/it.json b/public/app/main/apps/mail/i18n/it.json index a8e90f8..7fdeeb5 100644 --- a/public/app/main/apps/mail/i18n/it.json +++ b/public/app/main/apps/mail/i18n/it.json @@ -270,7 +270,6 @@ "EDIT_QUEUE": "Modifica Coda", "INTERACTIONS": "Interazioni", "STARTEDAT": "Iniziata il", - "LASTMESSAGE": "Ultimo messaggio", "CONTACT": "Contatto", "CLOSEDAT": "Chiusa il", "NOTES": "Note", diff --git a/public/app/main/apps/openchannel/i18n/en.json b/public/app/main/apps/openchannel/i18n/en.json index 5dea2fd..0d523f3 100644 --- a/public/app/main/apps/openchannel/i18n/en.json +++ b/public/app/main/apps/openchannel/i18n/en.json @@ -194,7 +194,6 @@ "OF": "of", "CONTACT": "Contact", "STARTEDAT": "Started At", - "LASTMESSAGE": "Last message", "STATUS": "Status", "CLOSED": "Closed", "OPENED": "Open", diff --git a/public/app/main/apps/openchannel/i18n/it.json b/public/app/main/apps/openchannel/i18n/it.json index 8c1ffc8..8a00914 100644 --- a/public/app/main/apps/openchannel/i18n/it.json +++ b/public/app/main/apps/openchannel/i18n/it.json @@ -181,7 +181,6 @@ "SELECTED_AGENTS": "Agenti selezionati", "CONTACT": "Contatto", "STARTEDAT": "Iniziata il", - "LASTMESSAGE": "Ultimo messaggio", "STATUS": "Stato", "CLOSED": "Chiusa", "OPENED": "Aperta", diff --git a/public/app/main/apps/sms/i18n/ar.json b/public/app/main/apps/sms/i18n/ar.json index 15dc9f0..dda3f57 100644 --- a/public/app/main/apps/sms/i18n/ar.json +++ b/public/app/main/apps/sms/i18n/ar.json @@ -53,7 +53,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "حقل الزامي", "APIKEY_REQUIRED": "حقل الزامي", "BASEURL_REQUIRED": "حقل الزامي", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "حقل الزامي" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "حقل الزامي", + "ACCESSKEYID_REQUIRED": "معرف مفتاح الوصول مطلوب", + "BOTNAME_REQUIRED": "مطلوب اسم بوت", + "SECRETACCESSKEY_REQUIRED": "مطلوب سر مفتاح الوصول" }, "HELP": { "DELIVERYREPORTURL": "هذه هي سلسلة واجهة برمجة التطبيقات التي تم إنشاؤها تلقائيًا والتي تحتاج إلى استخدامها لتلقي تقرير التسليم للرسائل المرسلة من موفر SMS (يجب استخدام طريقة POST): انقر فوق زر الحافظة لنسخه.", @@ -62,7 +65,8 @@ "NAME": "يتم دعم الأرقام والحروف والأحرف المحددة (._) فقط", "RECEIVEURL": "هذه هي سلسلة واجهة برمجة التطبيقات التي يتم إنشاؤها تلقائيًا والتي تحتاج إلى استخدامها لتلقي الرسائل داخل حسابك من موفر SMS (يجب استخدام طريقة POST): انقر فوق زر الحافظة لنسخها.", "MANDATORYDISPOSITION": "التصرف الإلزامي", - "MANDATORYDISPOSITIONPAUSEID": "توقف مؤقتًا للاستخدام عند تمكين التخلص الإلزامي" + "MANDATORYDISPOSITIONPAUSEID": "توقف مؤقتًا للاستخدام عند تمكين التخلص الإلزامي", + "WELCOMEMESSAGE": "هذه هي أول رسالة استجابة مرسلة إلى تفاعلات جديدة" }, "ACCEPT": "قبول", "ACCEPTMETHOD": "قبول الطريقة", @@ -263,6 +267,16 @@ "BASEURL": "عنوان URL الأساسي", "TEAMS_ASSOCIATION": "رابطة الفرق", "MANDATORYDISPOSITION": "التصرف الإلزامي", - "MANDATORYDISPOSITIONPAUSEID": "توقف مؤقتًا للاستخدام عند تمكين التخلص الإلزامي" + "MANDATORYDISPOSITIONPAUSEID": "توقف مؤقتًا للاستخدام عند تمكين التخلص الإلزامي", + "ACCESSKEYID": "معرف مفتاح الوصول", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "اسم بوت", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "تحرير تكوين Lex", + "EDIT_DIALOGFLOW": "تحرير تكوين DialogFlow", + "LANGUAGE": "لغة", + "LEXREGION": "منطقة", + "SECRETACCESSKEY": "سر مفتاح الوصول", + "WELCOMEMESSAGE": "رسالة ترحيب" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/da.json b/public/app/main/apps/sms/i18n/da.json index cfbe216..42b5017 100644 --- a/public/app/main/apps/sms/i18n/da.json +++ b/public/app/main/apps/sms/i18n/da.json @@ -58,7 +58,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "Obligatorisk felt", "APIKEY_REQUIRED": "Obligatorisk felt", "BASEURL_REQUIRED": "Obligatorisk felt", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Obligatorisk felt" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Obligatorisk felt", + "ACCESSKEYID_REQUIRED": "Adgangsnøgle-ID er påkrævet", + "BOTNAME_REQUIRED": "Bot navn kræves", + "SECRETACCESSKEY_REQUIRED": "Adgangsnøglehemmelighed kræves" }, "AGENT_TIMEOUT": "Agent Timeout", "DESCRIPTION": "Beskrivelse", @@ -121,7 +124,8 @@ "MOTIONPROXY": "Feltet skal have følgende format: [:]. Eksempel: https://X.Y.Z.W", "DELIVERYREPORTURL": "Dette er den automatisk genererede API-streng, du skal bruge til at modtage leveringsrapporten for sendte beskeder fra din SMS-udbyder (POST-metoden skal bruges): Klik på udklipsholderknappen for at kopiere den", "MANDATORYDISPOSITION": "Obligatorisk disposition", - "MANDATORYDISPOSITIONPAUSEID": "Brug pause, når obligatorisk disposition er aktiveret" + "MANDATORYDISPOSITIONPAUSEID": "Brug pause, når obligatorisk disposition er aktiveret", + "WELCOMEMESSAGE": "Dette er den første svarmeddelelse sendt til nye interaktioner" }, "PAGE": "Page", "ROWSPERPAGE": "Rækker pr. side", @@ -263,6 +267,16 @@ "BASEURL": "Basiswebadresse", "TEAMS_ASSOCIATION": "Holdforening", "MANDATORYDISPOSITION": "Obligatorisk disposition", - "MANDATORYDISPOSITIONPAUSEID": "Brug pause, når obligatorisk disposition er aktiveret" + "MANDATORYDISPOSITIONPAUSEID": "Brug pause, når obligatorisk disposition er aktiveret", + "ACCESSKEYID": "Adgangsnøgle-ID", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "Bot navn", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Rediger Lex-konfiguration", + "EDIT_DIALOGFLOW": "Rediger DialogFlow-konfiguration", + "LANGUAGE": "Sprog", + "LEXREGION": "Område", + "SECRETACCESSKEY": "Adgangsnøglehemmelighed", + "WELCOMEMESSAGE": "Velkomstbesked" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/de.json b/public/app/main/apps/sms/i18n/de.json index 7f9f1a9..9685aa7 100644 --- a/public/app/main/apps/sms/i18n/de.json +++ b/public/app/main/apps/sms/i18n/de.json @@ -58,7 +58,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "Pflichtfeld", "APIKEY_REQUIRED": "Pflichtfeld", "BASEURL_REQUIRED": "Pflichtfeld", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pflichtfeld" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pflichtfeld", + "ACCESSKEYID_REQUIRED": "Die Zugangsschlüssel-ID ist erforderlich", + "BOTNAME_REQUIRED": "Bot Name ist erforderlich", + "SECRETACCESSKEY_REQUIRED": "Zugriffsschlüsselgeheimnis ist erforderlich" }, "AGENT_TIMEOUT": "Agent Timeout", "DESCRIPTION": "Beschreibung", @@ -121,7 +124,8 @@ "MOTIONPROXY": "Das Feld muss das folgende Format haben: ://[:]. Beispiel: https://X.Y.Z.W", "DELIVERYREPORTURL": "Dies ist die automatisch generierte API-Zeichenfolge, die Sie verwenden müssen, um den Zustellungsbericht gesendeter Nachrichten von Ihrem SMS-Anbieter zu empfangen (die POST-Methode muss verwendet werden): Klicken Sie auf die Zwischenablage, um sie zu kopieren", "MANDATORYDISPOSITION": "Zwingende Disposition", - "MANDATORYDISPOSITIONPAUSEID": "Anhalten, um zu verwenden, wenn die obligatorische Disposition aktiviert ist" + "MANDATORYDISPOSITIONPAUSEID": "Anhalten, um zu verwenden, wenn die obligatorische Disposition aktiviert ist", + "WELCOMEMESSAGE": "Dies ist die erste Antwortnachricht, die an neue Interaktionen gesendet wird" }, "PAGE": "Seite", "ROWSPERPAGE": "Zeilen pro Seite", @@ -263,6 +267,16 @@ "BASEURL": "Basis-URL", "TEAMS_ASSOCIATION": "Vereinigung der Mannschaften", "MANDATORYDISPOSITION": "Zwingende Disposition", - "MANDATORYDISPOSITIONPAUSEID": "Anhalten, um zu verwenden, wenn die obligatorische Disposition aktiviert ist" + "MANDATORYDISPOSITIONPAUSEID": "Anhalten, um zu verwenden, wenn die obligatorische Disposition aktiviert ist", + "ACCESSKEYID": "Zugriffsschlüssel-ID", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "Bot Name", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Bearbeiten Sie die Lex-Konfiguration", + "EDIT_DIALOGFLOW": "Bearbeiten Sie die DialogFlow-Konfiguration", + "LANGUAGE": "Sprache", + "LEXREGION": "Region", + "SECRETACCESSKEY": "Zugriffsschlüsselgeheimnis", + "WELCOMEMESSAGE": "Willkommensnachricht" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/en.json b/public/app/main/apps/sms/i18n/en.json index fbddbb6..5061778 100644 --- a/public/app/main/apps/sms/i18n/en.json +++ b/public/app/main/apps/sms/i18n/en.json @@ -1,5 +1,12 @@ { "SMS": { + "AMAZONLEX": "AmazonLex", + "EDIT_AMAZONLEX": "Edit Lex configuration", + "ACCESSKEYID": "Access key ID", + "SECRETACCESSKEY": "Access key secret", + "LEXREGION": "Region", + "BOTNAME": "Bot name", + "WELCOMEMESSAGE": "Welcome message", "LOGIN_TIME": "Login time", "PAUSE_TIME": "Pause time", "DOWNLOAD_INTERACTION": "Download", @@ -67,6 +74,9 @@ "MANDATORYDISPOSITION": "Mandatory disposition", "MANDATORYDISPOSITIONPAUSEID": "Pause to use when mandatory disposition is enabled", "ERRORS": { + "ACCESSKEYID_REQUIRED": "Access key ID is required", + "SECRETACCESSKEY_REQUIRED": "Access key secret is required", + "BOTNAME_REQUIRED": "Bot name is required", "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to", "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to", "QUEUETRANSFERTIMEOUT_REQUIRED": "Mandatory Field", @@ -179,16 +189,15 @@ "DIALOGFLOW": "DialogFlow", "EDIT_DIALOGFLOW": "Edit DialogFlow configuration", "LANGUAGE": "Language", - "WELCOMEMESSAGE": "Welcome message", "HELP": { + "WELCOMEMESSAGE": "This is the first response message sent to new interactions", "MOTIONPROXY": "The field must have the following format: ://[:]. Example: https://X.Y.Z.W", "NAME": "Only numbers, letters and specific characters (._) are supported", "LIST": "Contact Manager list used to associate contacts", "RECEIVEURL": "This is the auto-generated API string you need to use to receive the messages inside your account from your SMS provider (POST method must be used): click the clipboard button to copy it", "DELIVERYREPORTURL": "This is the auto-generated API string you need to use to receive the delivery report of sent messages from your SMS provider (POST method must be used): click the clipboard button to copy it", "MANDATORYDISPOSITION": "Mandatory disposition", - "MANDATORYDISPOSITIONPAUSEID": "Pause to use when mandatory disposition is enabled", - "WELCOMEMESSAGE": "This is the first response message sent to new interactions" + "MANDATORYDISPOSITIONPAUSEID": "Pause to use when mandatory disposition is enabled" }, "PAGE": "Page", "ROWSPERPAGE": "Rows per page", @@ -203,7 +212,6 @@ "NO_INTERACTION_AVAILABLE": "No interactions available", "CONTACT": "Contact", "STARTEDAT": "Started At", - "LASTMESSAGE": "Last message", "AGENT": "Agent", "CLOSEDAT": "Closed At", "DISPOSITION": "Disposition", diff --git a/public/app/main/apps/sms/i18n/es.json b/public/app/main/apps/sms/i18n/es.json index 820c08b..84ce55e 100644 --- a/public/app/main/apps/sms/i18n/es.json +++ b/public/app/main/apps/sms/i18n/es.json @@ -7,7 +7,8 @@ "NAME": "Solo se admiten números, letras y caracteres específicos (._)", "RECEIVEURL": "Esta es la cadena de la API generada automáticamente que necesita usar para recibir los mensajes dentro de su cuenta de su proveedor de SMS (se debe usar el método POST): haga clic en el botón del portapapeles para copiarlo", "MANDATORYDISPOSITION": "Cierre obligatorio", - "MANDATORYDISPOSITIONPAUSEID": "Pausa a usar si el cierre obligatorio está habilitado" + "MANDATORYDISPOSITIONPAUSEID": "Pausa a usar si el cierre obligatorio está habilitado", + "WELCOMEMESSAGE": "Este es el primer mensaje de respuesta enviado a nuevas interacciones." }, "ERRORS": { "ACCEPTURL_MUST_VALID_URL": "Formato erróneo", @@ -62,7 +63,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "Campo obligatorio", "APIKEY_REQUIRED": "Campo obligatorio", "BASEURL_REQUIRED": "Campo obligatorio", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Campo obligatorio" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Campo obligatorio", + "ACCESSKEYID_REQUIRED": "Se requiere ID de clave de acceso", + "BOTNAME_REQUIRED": "Se requiere el nombre del bot", + "SECRETACCESSKEY_REQUIRED": "Se requiere clave de acceso secreta" }, "ACCEPT": "Aceptar", "ACCEPTMETHOD": "Aceptar Método", @@ -263,6 +267,16 @@ "BASEURL": "URL base", "TEAMS_ASSOCIATION": "Asociación de equipos", "MANDATORYDISPOSITION": "Cierre obligatorio", - "MANDATORYDISPOSITIONPAUSEID": "Pausa a usar si el cierre obligatorio está habilitado" + "MANDATORYDISPOSITIONPAUSEID": "Pausa a usar si el cierre obligatorio está habilitado", + "ACCESSKEYID": "ID de clave de acceso", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "Nombre del bot", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Editar configuración de Lex", + "EDIT_DIALOGFLOW": "Editar configuración de DialogFlow", + "LANGUAGE": "Idioma", + "LEXREGION": "Región", + "SECRETACCESSKEY": "Clave de acceso secreto", + "WELCOMEMESSAGE": "Mensaje de bienvenida" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/fa.json b/public/app/main/apps/sms/i18n/fa.json index c2612b6..4b2507d 100644 --- a/public/app/main/apps/sms/i18n/fa.json +++ b/public/app/main/apps/sms/i18n/fa.json @@ -58,7 +58,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "زمینه اجباری", "APIKEY_REQUIRED": "زمینه اجباری", "BASEURL_REQUIRED": "زمینه اجباری", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "زمینه اجباری" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "زمینه اجباری", + "ACCESSKEYID_REQUIRED": "شناسه کلید دسترسی لازم است", + "BOTNAME_REQUIRED": "نام ربات لازم است", + "SECRETACCESSKEY_REQUIRED": "راز کلید دسترسی مورد نیاز است" }, "AGENT_TIMEOUT": "عامل زمان مجاز", "DESCRIPTION": "شرح", @@ -121,7 +124,8 @@ "MOTIONPROXY": "حوزه باید با فرمت زیر است: <پروتكل://>>] است. مثال: https://X.Y.Z.W", "DELIVERYREPORTURL": "این رشته API خودکار تولید شده است که شما باید برای دریافت گزارش تحویل پیام های فرستاده شده از ارائه دهنده پیام کوتاه خود استفاده کنید (روش POST باید استفاده شود): روی دکمه کلیپ بورد کلیک کنید تا آن را کپی کنید", "MANDATORYDISPOSITION": "وضع اجباری", - "MANDATORYDISPOSITIONPAUSEID": "در صورت فعال بودن حالت اجباری ، مکث کنید" + "MANDATORYDISPOSITIONPAUSEID": "در صورت فعال بودن حالت اجباری ، مکث کنید", + "WELCOMEMESSAGE": "این اولین پیام پاسخی است که به تعاملات جدید ارسال می شود" }, "PAGE": "صفحه", "ROWSPERPAGE": "رديف در صفحه", @@ -263,6 +267,16 @@ "BASEURL": "URL پایه", "TEAMS_ASSOCIATION": "انجمن تیم", "MANDATORYDISPOSITION": "وضع اجباری", - "MANDATORYDISPOSITIONPAUSEID": "در صورت فعال بودن حالت اجباری ، مکث کنید" + "MANDATORYDISPOSITIONPAUSEID": "در صورت فعال بودن حالت اجباری ، مکث کنید", + "ACCESSKEYID": "دسترسی به شناسه کلید", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "نام بوت", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "پیکربندی Lex را ویرایش کنید", + "EDIT_DIALOGFLOW": "پیکربندی DialogFlow را ویرایش کنید", + "LANGUAGE": "زبان", + "LEXREGION": "منطقه", + "SECRETACCESSKEY": "راز دسترسی به کلید", + "WELCOMEMESSAGE": "پیام خوش آمد" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/fi.json b/public/app/main/apps/sms/i18n/fi.json index fdffd32..1479160 100644 --- a/public/app/main/apps/sms/i18n/fi.json +++ b/public/app/main/apps/sms/i18n/fi.json @@ -58,7 +58,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "Pakollinen kenttä", "APIKEY_REQUIRED": "Pakollinen kenttä", "BASEURL_REQUIRED": "Pakollinen kenttä", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pakollinen kenttä" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pakollinen kenttä", + "ACCESSKEYID_REQUIRED": "Käyttöavaintunnus vaaditaan", + "BOTNAME_REQUIRED": "Botin nimi vaaditaan", + "SECRETACCESSKEY_REQUIRED": "Käyttöavaimen salaisuus vaaditaan" }, "AGENT_TIMEOUT": "Agentti aikakatkaisu", "DESCRIPTION": "Kuvaus", @@ -121,7 +124,8 @@ "MOTIONPROXY": "Kenttään on syötettävä seuraavassa muodossa: ://[:]. Esimerkki: https://X.Y.Z.W", "DELIVERYREPORTURL": "Tämä on automaattisesti luotu API-merkkijono, jonka haluat vastaanottaa SMS-palveluntarjoajaltasi lähetettyjen viestien lähetysraportista (POST-menetelmää on käytettävä): kopioi leikepöydälle napsauttamalla sitä", "MANDATORYDISPOSITION": "Pakollinen sijoittaminen", - "MANDATORYDISPOSITIONPAUSEID": "Tauko käyttöön, kun pakollinen sijoittaminen on käytössä" + "MANDATORYDISPOSITIONPAUSEID": "Tauko käyttöön, kun pakollinen sijoittaminen on käytössä", + "WELCOMEMESSAGE": "Tämä on ensimmäinen vastausviesti, joka lähetetään uusiin vuorovaikutuksiin" }, "PAGE": "Sivu", "ROWSPERPAGE": "Riviä sivulle", @@ -263,6 +267,16 @@ "BASEURL": "Perus-URL-osoite", "TEAMS_ASSOCIATION": "Joukkueiden yhdistys", "MANDATORYDISPOSITION": "Pakollinen sijoittaminen", - "MANDATORYDISPOSITIONPAUSEID": "Tauko käyttöön, kun pakollinen sijoittaminen on käytössä" + "MANDATORYDISPOSITIONPAUSEID": "Tauko käyttöön, kun pakollinen sijoittaminen on käytössä", + "ACCESSKEYID": "Käyttöavaintunnus", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "Botin nimi", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Muokkaa Lex-kokoonpanoa", + "EDIT_DIALOGFLOW": "Muokkaa DialogFlow-määrityksiä", + "LANGUAGE": "Kieli", + "LEXREGION": "alue", + "SECRETACCESSKEY": "Pääsysalaisuus", + "WELCOMEMESSAGE": "Tervetuloviesti" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/fr.json b/public/app/main/apps/sms/i18n/fr.json index ca00b9e..a7a3298 100644 --- a/public/app/main/apps/sms/i18n/fr.json +++ b/public/app/main/apps/sms/i18n/fr.json @@ -58,7 +58,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "Champ obligatoire", "APIKEY_REQUIRED": "Champ obligatoire", "BASEURL_REQUIRED": "Champ obligatoire", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Champ obligatoire" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Champ obligatoire", + "ACCESSKEYID_REQUIRED": "Un identifiant de clé d'accès est requis", + "BOTNAME_REQUIRED": "Le nom du bot est requis", + "SECRETACCESSKEY_REQUIRED": "Le secret de la clé d'accès est requis" }, "AGENT_TIMEOUT": "Délai d'agent", "DESCRIPTION": "Description", @@ -121,7 +124,8 @@ "MOTIONPROXY": "Le champ doit avoir le format suivant :   :// [ : ]. Exemple : https://X.Y.Z.W", "DELIVERYREPORTURL": "Il s'agit de la chaîne d'API générée automatiquement que vous devez utiliser pour recevoir le rapport de remise des messages envoyés par votre fournisseur SMS (la méthode POST doit être utilisée): cliquez sur le bouton du presse-papiers pour le copier", "MANDATORYDISPOSITION": "Disposition obligatoire", - "MANDATORYDISPOSITIONPAUSEID": "Pause à utiliser lorsque la disposition obligatoire est activée" + "MANDATORYDISPOSITIONPAUSEID": "Pause à utiliser lorsque la disposition obligatoire est activée", + "WELCOMEMESSAGE": "Il s'agit du premier message de réponse envoyé à de nouvelles interactions" }, "PAGE": "La page", "ROWSPERPAGE": "Les lignes par page", @@ -263,6 +267,16 @@ "BASEURL": "URL de base", "TEAMS_ASSOCIATION": "Association des équipes", "MANDATORYDISPOSITION": "Disposition obligatoire", - "MANDATORYDISPOSITIONPAUSEID": "Pause à utiliser lorsque la disposition obligatoire est activée" + "MANDATORYDISPOSITIONPAUSEID": "Pause à utiliser lorsque la disposition obligatoire est activée", + "ACCESSKEYID": "ID de clé d'accès", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "Nom du bot", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Modifier la configuration Lex", + "EDIT_DIALOGFLOW": "Modifier la configuration de DialogFlow", + "LANGUAGE": "Langue", + "LEXREGION": "Région", + "SECRETACCESSKEY": "Clé d'accès secrète", + "WELCOMEMESSAGE": "Message de bienvenue" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/he.json b/public/app/main/apps/sms/i18n/he.json index da35669..99e1300 100644 --- a/public/app/main/apps/sms/i18n/he.json +++ b/public/app/main/apps/sms/i18n/he.json @@ -116,7 +116,10 @@ "AUTHTOKEN_REQUIRED": "שדה חובה", "APIKEY_REQUIRED": "שדה חובה", "BASEURL_REQUIRED": "שדה חובה", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "שדה חובה" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "שדה חובה", + "ACCESSKEYID_REQUIRED": "דרוש מזהה מפתח גישה", + "BOTNAME_REQUIRED": "שם בוט נדרש", + "SECRETACCESSKEY_REQUIRED": "סוד מפתח הגישה נדרש" }, "AGENT_TIMEOUT": "סוף זמן קצוב לנציג", "DESCRIPTION": "תיאור", @@ -179,7 +182,8 @@ "RECEIVEURL": "מחרוזת ה-API המופקת באופן אוטומטי שדרושה לך כדי לקבל מספק ה-SMS את ההודעות שבחשבונך (חובה להשתמש בשיטת POST): לחץ על לחצן הלוח כדי להעתיק אותה", "DELIVERYREPORTURL": "מחרוזת ה-API המופקת באופן אוטומטי שדרושה לך כדי לקבל מספק ה-SMS את דוח המסירה על הודעות שנשלחו (חובה להשתמש בשיטת POST): לחץ על לחצן הלוח כדי להעתיק אותה", "MANDATORYDISPOSITION": "סיכום", - "MANDATORYDISPOSITIONPAUSEID": "השהה לשימוש כאשר הסיכום מופעל" + "MANDATORYDISPOSITIONPAUSEID": "השהה לשימוש כאשר הסיכום מופעל", + "WELCOMEMESSAGE": "זוהי הודעת התגובה הראשונה שנשלחה לאינטראקציות חדשות" }, "PAGE": "דף", "ROWSPERPAGE": "שורות בדף", @@ -263,6 +267,16 @@ "BASEURL": "כתובת אתר בסיסית", "TEAMS_ASSOCIATION": "איגוד הצוותים", "MANDATORYDISPOSITION": "סיכום", - "MANDATORYDISPOSITIONPAUSEID": "השהה לשימוש כאשר הסיכום מופעל" + "MANDATORYDISPOSITIONPAUSEID": "השהה לשימוש כאשר הסיכום מופעל", + "ACCESSKEYID": "גישה למזהה מפתח", + "AMAZONLEX": "אמזון-לקס", + "BOTNAME": "שם בוט", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "ערוך את תצורת Lex", + "EDIT_DIALOGFLOW": "ערוך את תצורת DialogFlow", + "LANGUAGE": "שפה", + "LEXREGION": "אזור", + "SECRETACCESSKEY": "גישה לסוד מפתח", + "WELCOMEMESSAGE": "הודעת ברכה" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/hi.json b/public/app/main/apps/sms/i18n/hi.json index 47f96e5..d1935c7 100644 --- a/public/app/main/apps/sms/i18n/hi.json +++ b/public/app/main/apps/sms/i18n/hi.json @@ -58,7 +58,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "आवश्यक स्थान", "APIKEY_REQUIRED": "आवश्यक स्थान", "BASEURL_REQUIRED": "आवश्यक स्थान", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "आवश्यक स्थान" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "आवश्यक स्थान", + "ACCESSKEYID_REQUIRED": "प्रवेश कुंजी आईडी की आवश्यकता है", + "BOTNAME_REQUIRED": "बॉट नाम आवश्यक है", + "SECRETACCESSKEY_REQUIRED": "प्रवेश कुंजी रहस्य की आवश्यकता है" }, "AGENT_TIMEOUT": "एजेंट समयबाह्य", "DESCRIPTION": "वर्णन", @@ -121,7 +124,8 @@ "MOTIONPROXY": "यह फ़ील्ड को निम्नलिखित हैं ://><पत्तन>][ : उदाहरण के लिए: https://X.Y.Z.W", "DELIVERYREPORTURL": "यह स्वतः जनरेट किया गया एपीआई स्ट्रिंग है जिसे आप अपने एसएमएस प्रदाता (पोस्ट पद्धति का उपयोग किया जाना चाहिए) से भेजे गए संदेशों की डिलीवरी रिपोर्ट प्राप्त करने के लिए करना है: इसे कॉपी करने के लिए क्लिपबोर्ड बटन पर क्लिक करें", "MANDATORYDISPOSITION": "अनिवार्य स्वभाव", - "MANDATORYDISPOSITIONPAUSEID": "अनिवार्य स्वभाव सक्षम होने पर उपयोग करने के लिए रुकें" + "MANDATORYDISPOSITIONPAUSEID": "अनिवार्य स्वभाव सक्षम होने पर उपयोग करने के लिए रुकें", + "WELCOMEMESSAGE": "यह नई प्रतिक्रियाओं के लिए भेजा गया पहला प्रतिक्रिया संदेश है" }, "PAGE": "पृष्ठ", "ROWSPERPAGE": "पंक्तियां प्रति पृष्ठ", @@ -263,6 +267,16 @@ "BASEURL": "आधार URL", "TEAMS_ASSOCIATION": "टीमों एसोसिएशन", "MANDATORYDISPOSITION": "अनिवार्य स्वभाव", - "MANDATORYDISPOSITIONPAUSEID": "अनिवार्य स्वभाव सक्षम होने पर उपयोग करने के लिए रुकें" + "MANDATORYDISPOSITIONPAUSEID": "अनिवार्य स्वभाव सक्षम होने पर उपयोग करने के लिए रुकें", + "ACCESSKEYID": "एक्सेस कुंजी आईडी", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "बॉट नाम", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "लेक्स कॉन्फ़िगरेशन संपादित करें", + "EDIT_DIALOGFLOW": "DialogFlow कॉन्फ़िगरेशन संपादित करें", + "LANGUAGE": "भाषा: हिन्दी", + "LEXREGION": "क्षेत्र", + "SECRETACCESSKEY": "पहुंच कुंजी रहस्य", + "WELCOMEMESSAGE": "स्वागत संदेश" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/id.json b/public/app/main/apps/sms/i18n/id.json index da1d28c..18774b3 100644 --- a/public/app/main/apps/sms/i18n/id.json +++ b/public/app/main/apps/sms/i18n/id.json @@ -53,7 +53,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "Bidang wajib", "APIKEY_REQUIRED": "Bidang wajib", "BASEURL_REQUIRED": "Bidang wajib", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Bidang wajib" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Bidang wajib", + "ACCESSKEYID_REQUIRED": "Diperlukan ID kunci akses", + "BOTNAME_REQUIRED": "Nama bot diperlukan", + "SECRETACCESSKEY_REQUIRED": "Rahasia kunci akses diperlukan" }, "HELP": { "DELIVERYREPORTURL": "Ini adalah string API yang dihasilkan secara otomatis yang perlu Anda gunakan untuk menerima laporan pengiriman pesan terkirim dari penyedia SMS Anda (metode POST harus digunakan): klik tombol clipboard untuk menyalinnya", @@ -62,7 +65,8 @@ "NAME": "Hanya angka, huruf, dan karakter tertentu (._) yang didukung", "RECEIVEURL": "Ini adalah string API yang dihasilkan secara otomatis yang perlu Anda gunakan untuk menerima pesan di dalam akun Anda dari penyedia SMS Anda (metode POST harus digunakan): klik tombol clipboard untuk menyalinnya", "MANDATORYDISPOSITION": "Disposisi wajib", - "MANDATORYDISPOSITIONPAUSEID": "Jeda untuk digunakan ketika disposisi wajib diaktifkan" + "MANDATORYDISPOSITIONPAUSEID": "Jeda untuk digunakan ketika disposisi wajib diaktifkan", + "WELCOMEMESSAGE": "Ini adalah pesan respons pertama yang dikirim ke interaksi baru" }, "ACCEPT": "Menerima", "ACCEPTMETHOD": "Terima Metode", @@ -263,6 +267,16 @@ "BASEURL": "URL dasar", "TEAMS_ASSOCIATION": "Asosiasi Tim", "MANDATORYDISPOSITION": "Disposisi wajib", - "MANDATORYDISPOSITIONPAUSEID": "Jeda untuk digunakan ketika disposisi wajib diaktifkan" + "MANDATORYDISPOSITIONPAUSEID": "Jeda untuk digunakan ketika disposisi wajib diaktifkan", + "ACCESSKEYID": "ID kunci akses", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "Nama bot", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Edit konfigurasi Lex", + "EDIT_DIALOGFLOW": "Edit konfigurasi DialogFlow", + "LANGUAGE": "Bahasa", + "LEXREGION": "Wilayah", + "SECRETACCESSKEY": "Rahasia kunci akses", + "WELCOMEMESSAGE": "Pesan selamat datang" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/it.json b/public/app/main/apps/sms/i18n/it.json index 03cb048..e0cb7a5 100644 --- a/public/app/main/apps/sms/i18n/it.json +++ b/public/app/main/apps/sms/i18n/it.json @@ -1,5 +1,12 @@ { "SMS": { + "AMAZONLEX": "AmazonLex", + "EDIT_AMAZONLEX": "Modifica la configurazione Lex", + "ACCESSKEYID": "ID chiave di accesso", + "SECRETACCESSKEY": "Accesso chiave segreta", + "BOTNAME": "Nome del bot", + "LEXREGION": "Regione", + "WELCOMEMESSAGE": "Messaggio di benvenuto", "LOGIN_TIME": "Tempo di login", "PAUSE_TIME": "Tempo di pausa", "DOWNLOAD_INTERACTION": "Download", @@ -115,7 +122,10 @@ "WAITFORTHEASSIGNEDAGENT_REQUIRED": "Campo obbligatorio", "BASEURL_REQUIRED": "Campo obbligatorio", "APIKEY_REQUIRED": "Campo obbligatorio", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Campo obbligatorio" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Campo obbligatorio", + "ACCESSKEYID_REQUIRED": "È richiesto l'ID chiave di accesso", + "BOTNAME_REQUIRED": "È richiesto il nome del bot", + "SECRETACCESSKEY_REQUIRED": "È richiesto il segreto della chiave di accesso" }, "AGENT_TIMEOUT": "Timeout Agente", "DESCRIPTION": "Descrizione", @@ -173,21 +183,18 @@ "NO_AVAILABLE_INFO": "Nessuna informazione disponibile", "ALL_TEAMS": "Tutti i Team", "SELECTED_TEAMS": "Team selezionati", - "DIALOGFLOW": "DialogFlow", "EDIT_DIALOGFLOW": "Modifica la configurazione di Dialogflow", "LANGUAGE": "Lingua", - "WELCOMEMESSAGE": "Messaggio di benvenuto", - "HELP": { + "WELCOMEMESSAGE": "Messaggio di benvenuto", "MOTIONPROXY": "Inserire nel seguente formato: <protocollo>://<indirizzoIP>[:<porta>]. Es: https://X.Y.Z.W", "NAME": "Sono supportati solo numeri, lettere e caratteri specifici (._)", "LIST": "Lista del Contact Manager usata per associare i contatti", "RECEIVEURL": "Questa è la stringa API generata automaticamente che devi usare per ricevere i messaggi provenienti dal tuo provider SMS (deve essere usato il metodo POST). Clicca sull'icona del blocco note per copiare negli appunti", "DELIVERYREPORTURL": "Questa è la stringa API generata automaticamente che devi usare per ricevere il rapporto di consegna dei messaggi inviati dal tuo provider SMS (deve essere usato il metodo POST). Clicca sull'icona del blocco note per copiare negli appunti", "MANDATORYDISPOSITION": "Disposizione obbligatoria", - "MANDATORYDISPOSITIONPAUSEID": "Pausa da utilizzare quando è abilitata la disposizione obbligatoria", - "WELCOMEMESSAGE": "Messaggio di benvenuto" + "MANDATORYDISPOSITIONPAUSEID": "Pausa da utilizzare quando è abilitata la disposizione obbligatoria" }, "PAGE": "Pagina", "ROWSPERPAGE": "Righe per pagina", @@ -202,7 +209,6 @@ "NO_INTERACTION_AVAILABLE": "Nessuna interazione disponibile", "CONTACT": "Contatto", "STARTEDAT": "Iniziata il", - "LASTMESSAGE": "Ultimo messaggio", "AGENT": "Agente", "CLOSEDAT": "Chiusa il", "DISPOSITION": "Esito", diff --git a/public/app/main/apps/sms/i18n/ja.json b/public/app/main/apps/sms/i18n/ja.json index 935e485..80a0be0 100644 --- a/public/app/main/apps/sms/i18n/ja.json +++ b/public/app/main/apps/sms/i18n/ja.json @@ -53,7 +53,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "必須フィールド", "APIKEY_REQUIRED": "必須フィールド", "BASEURL_REQUIRED": "必須フィールド", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "必須フィールド" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "必須フィールド", + "ACCESSKEYID_REQUIRED": "アクセスキーIDが必要です", + "BOTNAME_REQUIRED": "ボット名は必須です", + "SECRETACCESSKEY_REQUIRED": "アクセスキーシークレットが必要です" }, "HELP": { "DELIVERYREPORTURL": "これは、SMSプロバイダから送信されたメッセージの配信レポートを受信するために必要な自動生成されたAPI文字列です(POSTメソッドを使用する必要があります)。クリップボードボタンをクリックしてコピーします", @@ -62,7 +65,8 @@ "NAME": "数字、文字、および特定の文字(._)のみがサポートされています", "RECEIVEURL": "これは、SMSプロバイダからアカウント内のメッセージを受信するために必要な自動生成のAPI文字列です(POSTメソッドを使用する必要があります)。クリップボードボタンをクリックしてコピーします", "MANDATORYDISPOSITION": "強制処分", - "MANDATORYDISPOSITIONPAUSEID": "強制処分が有効になっているときに使用する一時停止" + "MANDATORYDISPOSITIONPAUSEID": "強制処分が有効になっているときに使用する一時停止", + "WELCOMEMESSAGE": "これは、新しいインタラクションに送信される最初の応答メッセージです" }, "ACCEPT": "同意する", "ACCEPTMETHOD": "Acceptメソッド", @@ -263,6 +267,16 @@ "BASEURL": "ベースURL", "TEAMS_ASSOCIATION": "チーム協会", "MANDATORYDISPOSITION": "強制処分", - "MANDATORYDISPOSITIONPAUSEID": "強制処分が有効になっているときに使用する一時停止" + "MANDATORYDISPOSITIONPAUSEID": "強制処分が有効になっているときに使用する一時停止", + "ACCESSKEYID": "アクセスキーID", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "ボット名", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Lex構成を編集する", + "EDIT_DIALOGFLOW": "DialogFlow構成の編集", + "LANGUAGE": "言語", + "LEXREGION": "領域", + "SECRETACCESSKEY": "アクセスキーシークレット", + "WELCOMEMESSAGE": "ウェルカムメッセージ" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/ko.json b/public/app/main/apps/sms/i18n/ko.json index b19528e..659f14b 100644 --- a/public/app/main/apps/sms/i18n/ko.json +++ b/public/app/main/apps/sms/i18n/ko.json @@ -58,7 +58,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "필수 필드", "APIKEY_REQUIRED": "필수 필드", "BASEURL_REQUIRED": "필수 필드", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "필수 필드" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "필수 필드", + "ACCESSKEYID_REQUIRED": "액세스 키 ID가 필요합니다", + "BOTNAME_REQUIRED": "봇 이름이 필요합니다", + "SECRETACCESSKEY_REQUIRED": "액세스 키 비밀이 필요합니다" }, "AGENT_TIMEOUT": "상담원 시간 초과", "DESCRIPTION": "설명", @@ -121,7 +124,8 @@ "MOTIONPROXY": "모션 프록시", "DELIVERYREPORTURL": "레포트 URL 제출", "MANDATORYDISPOSITION": "의무 처분", - "MANDATORYDISPOSITIONPAUSEID": "강제 처분이 활성화 된 경우 사용 중지" + "MANDATORYDISPOSITIONPAUSEID": "강제 처분이 활성화 된 경우 사용 중지", + "WELCOMEMESSAGE": "새로운 상호 작용으로 보낸 첫 번째 응답 메시지입니다." }, "PAGE": "페이지", "ROWSPERPAGE": "페이지별 행 수", @@ -263,6 +267,16 @@ "BASEURL": "기본 URL", "TEAMS_ASSOCIATION": "팀 협회", "MANDATORYDISPOSITION": "의무 처분", - "MANDATORYDISPOSITIONPAUSEID": "강제 처분이 활성화 된 경우 사용 중지" + "MANDATORYDISPOSITIONPAUSEID": "강제 처분이 활성화 된 경우 사용 중지", + "ACCESSKEYID": "액세스 키 ID", + "AMAZONLEX": "아마존 렉스", + "BOTNAME": "봇 이름", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Lex 구성 편집", + "EDIT_DIALOGFLOW": "DialogFlow 구성 편집", + "LANGUAGE": "언어", + "LEXREGION": "부위", + "SECRETACCESSKEY": "액세스 키 비밀", + "WELCOMEMESSAGE": "환영 메시지" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/lv.json b/public/app/main/apps/sms/i18n/lv.json index 0f17175..0c39648 100644 --- a/public/app/main/apps/sms/i18n/lv.json +++ b/public/app/main/apps/sms/i18n/lv.json @@ -53,7 +53,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "Obligāts lauks", "APIKEY_REQUIRED": "Obligāts lauks", "BASEURL_REQUIRED": "Obligāts lauks", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Obligāts lauks" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Obligāts lauks", + "ACCESSKEYID_REQUIRED": "Nepieciešams piekļuves atslēgas ID", + "BOTNAME_REQUIRED": "Nepieciešams robotprogrammatūras nosaukums", + "SECRETACCESSKEY_REQUIRED": "Nepieciešams piekļuves atslēgas noslēpums" }, "HELP": { "MOTIONPROXY": "Laukam ir jābūt formatētam šādi: : //[:]. Piemērs: https://XYZW", @@ -62,7 +65,8 @@ "RECEIVEURL": "Šī ir automātiski ģenerētā API virkne, kas ir jāizmanto, lai saņemtu īsziņas jūsu konta ietvaros no īsziņu pakalpojumu sniedzēja (jāizmanto POST metode): noklikšķiniet uz starpliktuves pogas, lai to kopētu", "DELIVERYREPORTURL": "Šī ir automātiski ģenerētā API virkne, kas ir jāizmanto, lai saņemtu īsziņu piegādes ziņojumu no jūsu īsziņu pakalpojumu sniedzēja (jāizmanto POST metode): noklikšķiniet uz starpliktuves pogas, lai to kopētu", "MANDATORYDISPOSITION": "Obligāta rīcība", - "MANDATORYDISPOSITIONPAUSEID": "Lietošanas pārtraukšana, kad ir iespējota obligātā izvietošana" + "MANDATORYDISPOSITIONPAUSEID": "Lietošanas pārtraukšana, kad ir iespējota obligātā izvietošana", + "WELCOMEMESSAGE": "Šis ir pirmais atbildes ziņojums, kas nosūtīts jaunām mijiedarbībām" }, "NO_SMSDISPOSITIONS_AVAILABLE": "Nav pieejams SMS statuss", "NO_SMSCANNEDANSWER_AVAILABLE": "Nav pieejamas standarta atbildes", @@ -263,6 +267,16 @@ "BASEURL": "Bāzes URL", "TEAMS_ASSOCIATION": "Komandu asociācija", "MANDATORYDISPOSITION": "Obligāta rīcība", - "MANDATORYDISPOSITIONPAUSEID": "Lietošanas pārtraukšana, kad ir iespējota obligātā izvietošana" + "MANDATORYDISPOSITIONPAUSEID": "Lietošanas pārtraukšana, kad ir iespējota obligātā izvietošana", + "ACCESSKEYID": "Piekļuves atslēgas ID", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "Bot vārds", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Rediģēt Lex konfigurāciju", + "EDIT_DIALOGFLOW": "Rediģēt DialogFlow konfigurāciju", + "LANGUAGE": "Valoda", + "LEXREGION": "Novads", + "SECRETACCESSKEY": "Piekļuves atslēgas noslēpums", + "WELCOMEMESSAGE": "Sveiciena ziņa" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/nl.json b/public/app/main/apps/sms/i18n/nl.json index e74c8af..a3ceebd 100644 --- a/public/app/main/apps/sms/i18n/nl.json +++ b/public/app/main/apps/sms/i18n/nl.json @@ -58,7 +58,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "Verplicht veld", "APIKEY_REQUIRED": "Verplicht veld", "BASEURL_REQUIRED": "Verplicht veld", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Verplicht veld" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Verplicht veld", + "ACCESSKEYID_REQUIRED": "Toegangssleutel-ID is vereist", + "BOTNAME_REQUIRED": "Botnaam is vereist", + "SECRETACCESSKEY_REQUIRED": "Toegangssleutel geheim is vereist" }, "AGENT_TIMEOUT": "Time-out agent", "DESCRIPTION": "Beschrijving", @@ -121,7 +124,8 @@ "MOTIONPROXY": "Het veld moet de volgende notatie: ://[:]. Voorbeeld: https://X.Y.Z.W", "DELIVERYREPORTURL": "Dit is de automatisch gegenereerde API-reeks die u moet gebruiken om het bezorgingsrapport van verzonden berichten van uw SMS-provider te ontvangen (POST-methode moet worden gebruikt): klik op de klembordknop om deze te kopiëren", "MANDATORYDISPOSITION": "Verplichte regeling", - "MANDATORYDISPOSITIONPAUSEID": "Pauze om te gebruiken wanneer verplichte dispositie is ingeschakeld" + "MANDATORYDISPOSITIONPAUSEID": "Pauze om te gebruiken wanneer verplichte dispositie is ingeschakeld", + "WELCOMEMESSAGE": "Dit is het eerste antwoordbericht dat naar nieuwe interacties wordt gestuurd" }, "PAGE": "Pagina", "ROWSPERPAGE": "Rijen per pagina", @@ -263,6 +267,16 @@ "BASEURL": "Basis-URL", "TEAMS_ASSOCIATION": "Teams Association", "MANDATORYDISPOSITION": "Verplichte regeling", - "MANDATORYDISPOSITIONPAUSEID": "Pauze om te gebruiken wanneer verplichte dispositie is ingeschakeld" + "MANDATORYDISPOSITIONPAUSEID": "Pauze om te gebruiken wanneer verplichte dispositie is ingeschakeld", + "ACCESSKEYID": "Toegangssleutel-ID", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "Bot naam", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Lex-configuratie bewerken", + "EDIT_DIALOGFLOW": "DialogFlow-configuratie bewerken", + "LANGUAGE": "Taal", + "LEXREGION": "Regio", + "SECRETACCESSKEY": "Toegangssleutel geheim", + "WELCOMEMESSAGE": "Welkoms bericht" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/no.json b/public/app/main/apps/sms/i18n/no.json index 6b45232..16aef97 100644 --- a/public/app/main/apps/sms/i18n/no.json +++ b/public/app/main/apps/sms/i18n/no.json @@ -58,7 +58,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "Obligatoriske felt", "APIKEY_REQUIRED": "Obligatoriske felt", "BASEURL_REQUIRED": "Obligatoriske felt", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Obligatoriske felt" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Obligatoriske felt", + "ACCESSKEYID_REQUIRED": "Tilgangsnøkkel-ID er påkrevd", + "BOTNAME_REQUIRED": "Botnavn kreves", + "SECRETACCESSKEY_REQUIRED": "Tilgangsnøkkelhemmelighet er påkrevd" }, "AGENT_TIMEOUT": "Agent tidsavbrudd", "DESCRIPTION": "Beskrivelse", @@ -121,7 +124,8 @@ "MOTIONPROXY": "Feltet må ha følgende format: ://[:]. Eksempel: https://X.Y.Z.W", "DELIVERYREPORTURL": "Dette er den automatisk genererte API-strengen du må bruke for å motta leveringsrapporten for sendte meldinger fra SMS-leverandøren din (POST-metoden må brukes): Klikk på utklippstavlen for å kopiere den", "MANDATORYDISPOSITION": "Obligatorisk disposisjon", - "MANDATORYDISPOSITIONPAUSEID": "Pause for bruk når obligatorisk disposisjon er aktivert" + "MANDATORYDISPOSITIONPAUSEID": "Pause for bruk når obligatorisk disposisjon er aktivert", + "WELCOMEMESSAGE": "Dette er den første svarmeldingen som er sendt til nye interaksjoner" }, "PAGE": "Siden", "ROWSPERPAGE": "Linjer per side", @@ -263,6 +267,16 @@ "BASEURL": "Basisadresse", "TEAMS_ASSOCIATION": "Lagforening", "MANDATORYDISPOSITION": "Obligatorisk disposisjon", - "MANDATORYDISPOSITIONPAUSEID": "Pause for bruk når obligatorisk disposisjon er aktivert" + "MANDATORYDISPOSITIONPAUSEID": "Pause for bruk når obligatorisk disposisjon er aktivert", + "ACCESSKEYID": "Tilgangsnøkkel-ID", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "Bot navn", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Rediger Lex-konfigurasjonen", + "EDIT_DIALOGFLOW": "Rediger DialogFlow-konfigurasjon", + "LANGUAGE": "Språk", + "LEXREGION": "Region", + "SECRETACCESSKEY": "Tilgang nøkkelhemmelighet", + "WELCOMEMESSAGE": "Velkomstmelding" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/pl.json b/public/app/main/apps/sms/i18n/pl.json index 6b5c995..bac7077 100644 --- a/public/app/main/apps/sms/i18n/pl.json +++ b/public/app/main/apps/sms/i18n/pl.json @@ -62,7 +62,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "Pole obowiązkowe", "APIKEY_REQUIRED": "Pole obowiązkowe", "BASEURL_REQUIRED": "Pole obowiązkowe", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pole obowiązkowe" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pole obowiązkowe", + "ACCESSKEYID_REQUIRED": "Wymagany jest identyfikator klucza dostępu", + "BOTNAME_REQUIRED": "Nazwa bota jest wymagana", + "SECRETACCESSKEY_REQUIRED": "Wymagany jest klucz tajny" }, "AGENT_TIMEOUT": "Agent Timeout", "DESCRIPTION": "Opis", @@ -125,7 +128,8 @@ "RECEIVEURL": "Jest to automatycznie wygenerowany ciąg API trzeba użyć aby otrzymywać wiadomości inside twoje konto od twojego dostawcy usługi SMS (POST metody muszą być stosowane). Możesz nacisnąć przycisk do schowka, aby go skopiować do schowka.", "DELIVERYREPORTURL": "Jest to automatycznie wygenerowany ciąg interfejsu API, którego należy użyć do otrzymania raportu doręczenia wysłanych wiadomości od dostawcy wiadomości SMS (należy użyć metody POST): kliknij przycisk schowka, aby go skopiować", "MANDATORYDISPOSITION": "Dyspozycja obowiązkowa", - "MANDATORYDISPOSITIONPAUSEID": "Wstrzymaj, aby użyć, gdy włączona jest obowiązkowa dyspozycja" + "MANDATORYDISPOSITIONPAUSEID": "Wstrzymaj, aby użyć, gdy włączona jest obowiązkowa dyspozycja", + "WELCOMEMESSAGE": "To pierwszy komunikat odpowiedzi wysłany na nowe interakcje" }, "PAGE": "Page", "ROWSPERPAGE": "Wierszy na stronie", @@ -263,6 +267,16 @@ "BASEURL": "Podstawowy adres URL", "TEAMS_ASSOCIATION": "Stowarzyszenie zespołów", "MANDATORYDISPOSITION": "Dyspozycja obowiązkowa", - "MANDATORYDISPOSITIONPAUSEID": "Wstrzymaj, aby użyć, gdy włączona jest obowiązkowa dyspozycja" + "MANDATORYDISPOSITIONPAUSEID": "Wstrzymaj, aby użyć, gdy włączona jest obowiązkowa dyspozycja", + "ACCESSKEYID": "Identyfikator klucza dostępu", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "Nazwa bota", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Edytuj konfigurację Lex", + "EDIT_DIALOGFLOW": "Edytuj konfigurację DialogFlow", + "LANGUAGE": "Język", + "LEXREGION": "Region", + "SECRETACCESSKEY": "Tajny klucz dostępu", + "WELCOMEMESSAGE": "Wiadomość powitalna" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/pt-BR.json b/public/app/main/apps/sms/i18n/pt-BR.json index 0953551..7173b60 100644 --- a/public/app/main/apps/sms/i18n/pt-BR.json +++ b/public/app/main/apps/sms/i18n/pt-BR.json @@ -116,7 +116,10 @@ "AUTHTOKEN_REQUIRED": "Campo Obrigatório", "APIKEY_REQUIRED": "Campo Obrigatório", "BASEURL_REQUIRED": "Campo Obrigatório", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Campo obrigatório" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Campo obrigatório", + "ACCESSKEYID_REQUIRED": "O código da chave de acesso é obrigatório", + "BOTNAME_REQUIRED": "O nome do bot é obrigatório", + "SECRETACCESSKEY_REQUIRED": "É necessário segredo da chave de acesso" }, "AGENT_TIMEOUT": "Tempo limite do agente", "DESCRIPTION": "Descrição", @@ -179,7 +182,8 @@ "RECEIVEURL": "Esta é a string da API gerada automaticamente que você precisa usar para receber as mensagens dentro da sua conta do seu provedor de SMS (o método POST deve ser usado): clique no botão da área de transferência para copiá-lo", "DELIVERYREPORTURL": "Essa é a string da API gerada automaticamente que você precisa usar para receber o relatório de entrega das mensagens enviadas do seu provedor de SMS (o método POST deve ser usado): clique no botão da área de transferência para copiá-lo", "MANDATORYDISPOSITION": "Disposição obrigatória", - "MANDATORYDISPOSITIONPAUSEID": "Pausar para usar quando a disposição obrigatória estiver ativada" + "MANDATORYDISPOSITIONPAUSEID": "Pausar para usar quando a disposição obrigatória estiver ativada", + "WELCOMEMESSAGE": "Esta é a primeira mensagem de resposta enviada para novas interações" }, "PAGE": "Página", "ROWSPERPAGE": "Linhas por Página", @@ -263,6 +267,16 @@ "BASEURL": "URL base", "TEAMS_ASSOCIATION": "Associação de equipes", "MANDATORYDISPOSITION": "Disposição obrigatória", - "MANDATORYDISPOSITIONPAUSEID": "Pausar para usar quando a disposição obrigatória estiver ativada" + "MANDATORYDISPOSITIONPAUSEID": "Pausar para usar quando a disposição obrigatória estiver ativada", + "ACCESSKEYID": "ID da chave de acesso", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "Nome do bot", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Editar configuração de Lex", + "EDIT_DIALOGFLOW": "Editar configuração do DialogFlow", + "LANGUAGE": "Língua", + "LEXREGION": "Região", + "SECRETACCESSKEY": "Segredo da chave de acesso", + "WELCOMEMESSAGE": "Mensagem de boas-vindas" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/pt-PT.json b/public/app/main/apps/sms/i18n/pt-PT.json index 8959a5d..87bf1b3 100644 --- a/public/app/main/apps/sms/i18n/pt-PT.json +++ b/public/app/main/apps/sms/i18n/pt-PT.json @@ -58,7 +58,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "Campo Obrigatório", "APIKEY_REQUIRED": "Campo Obrigatório", "BASEURL_REQUIRED": "Campo Obrigatório", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Campo obrigatório" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Campo obrigatório", + "ACCESSKEYID_REQUIRED": "O código da chave de acesso é obrigatório", + "BOTNAME_REQUIRED": "O nome do bot é obrigatório", + "SECRETACCESSKEY_REQUIRED": "É necessário segredo da chave de acesso" }, "AGENT_TIMEOUT": "Tempo Limite do Agente", "DESCRIPTION": "Descrição", @@ -121,7 +124,8 @@ "MOTIONPROXY": "O campo deve ter o seguinte formato: <> protocolo://[:<> porta]. Exemplo: https://X.Y.Z.W", "DELIVERYREPORTURL": "Esta é a string da API gerada automaticamente que você precisa usar para receber o relatório de entrega das mensagens enviadas do seu provedor de SMS (o método POST deve ser usado): clique no botão da área de transferência para copiá-lo", "MANDATORYDISPOSITION": "Disposição obrigatória", - "MANDATORYDISPOSITIONPAUSEID": "Pausar para usar quando a disposição obrigatória estiver ativada" + "MANDATORYDISPOSITIONPAUSEID": "Pausar para usar quando a disposição obrigatória estiver ativada", + "WELCOMEMESSAGE": "Esta é a primeira mensagem de resposta enviada para novas interações" }, "PAGE": "Página", "ROWSPERPAGE": "Linhas por página", @@ -263,6 +267,16 @@ "BASEURL": "URL base", "TEAMS_ASSOCIATION": "Associação de equipes", "MANDATORYDISPOSITION": "Disposição obrigatória", - "MANDATORYDISPOSITIONPAUSEID": "Pausar para usar quando a disposição obrigatória estiver ativada" + "MANDATORYDISPOSITIONPAUSEID": "Pausar para usar quando a disposição obrigatória estiver ativada", + "ACCESSKEYID": "ID da chave de acesso", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "Nome do bot", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Editar configuração de Lex", + "EDIT_DIALOGFLOW": "Editar configuração do DialogFlow", + "LANGUAGE": "Língua", + "LEXREGION": "Região", + "SECRETACCESSKEY": "Segredo da chave de acesso", + "WELCOMEMESSAGE": "Mensagem de boas-vindas" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/ru.json b/public/app/main/apps/sms/i18n/ru.json index c6ee8c3..a2bd800 100644 --- a/public/app/main/apps/sms/i18n/ru.json +++ b/public/app/main/apps/sms/i18n/ru.json @@ -58,7 +58,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "Обязательное поле", "APIKEY_REQUIRED": "Обязательное поле", "BASEURL_REQUIRED": "Обязательное поле", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Обязательное поле" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Обязательное поле", + "ACCESSKEYID_REQUIRED": "Требуется идентификатор ключа доступа", + "BOTNAME_REQUIRED": "Имя бота обязательно", + "SECRETACCESSKEY_REQUIRED": "Требуется секретный ключ доступа" }, "AGENT_TIMEOUT": "Время ожидания оператора", "DESCRIPTION": "Описание", @@ -121,7 +124,8 @@ "MOTIONPROXY": "Поле должно иметь следующий формат: :// []. Пример: https://X.Y.Z.W", "DELIVERYREPORTURL": "Это автоматически созданная строка API, которую вы должны использовать для получения отчета о доставке отправленных сообщений от вашего провайдера SMS (должен использоваться метод POST): нажмите кнопку буфера обмена, чтобы скопировать его", "MANDATORYDISPOSITION": "Обязательное распоряжение", - "MANDATORYDISPOSITIONPAUSEID": "Пауза для использования, когда включена обязательная утилизация" + "MANDATORYDISPOSITIONPAUSEID": "Пауза для использования, когда включена обязательная утилизация", + "WELCOMEMESSAGE": "Это первое ответное сообщение, отправленное на новые взаимодействия" }, "PAGE": "Страница", "ROWSPERPAGE": "Строк на странице", @@ -263,6 +267,16 @@ "BASEURL": "Базовый URL", "TEAMS_ASSOCIATION": "Ассоциация команд", "MANDATORYDISPOSITION": "Обязательное распоряжение", - "MANDATORYDISPOSITIONPAUSEID": "Пауза для использования, когда включена обязательная утилизация" + "MANDATORYDISPOSITIONPAUSEID": "Пауза для использования, когда включена обязательная утилизация", + "ACCESSKEYID": "Идентификатор ключа доступа", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "Имя бота", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Изменить конфигурацию Lex", + "EDIT_DIALOGFLOW": "Изменить конфигурацию DialogFlow", + "LANGUAGE": "язык", + "LEXREGION": "Область", + "SECRETACCESSKEY": "Секрет ключа доступа", + "WELCOMEMESSAGE": "Приветствие" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/sv.json b/public/app/main/apps/sms/i18n/sv.json index 4d80fc8..c17c119 100644 --- a/public/app/main/apps/sms/i18n/sv.json +++ b/public/app/main/apps/sms/i18n/sv.json @@ -58,7 +58,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "Obligatoriskt fält", "APIKEY_REQUIRED": "Obligatoriskt fält", "BASEURL_REQUIRED": "Obligatoriskt fält", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Obligatoriskt fält" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Obligatoriskt fält", + "ACCESSKEYID_REQUIRED": "Åtkomstnyckel-ID krävs", + "BOTNAME_REQUIRED": "Botnamn krävs", + "SECRETACCESSKEY_REQUIRED": "Åtkomstnyckelhemlighet krävs" }, "AGENT_TIMEOUT": "Tidsgräns för agent", "DESCRIPTION": "Beskrivning", @@ -121,7 +124,8 @@ "MOTIONPROXY": "Fältet måste ha följande format: ://[:]. Exempel: https://X.Y.Z.W", "DELIVERYREPORTURL": "Det här är den automatiskt genererade API-strängen som du behöver använda för att ta emot leveransrapporten för skickade meddelanden från din SMS-leverantör (POST-metoden måste användas): klicka på urklippsknappen för att kopiera den", "MANDATORYDISPOSITION": "Obligatorisk disposition", - "MANDATORYDISPOSITIONPAUSEID": "Pausa för användning när obligatorisk disposition är aktiverad" + "MANDATORYDISPOSITIONPAUSEID": "Pausa för användning när obligatorisk disposition är aktiverad", + "WELCOMEMESSAGE": "Detta är det första svarmeddelandet som skickas till nya interaktioner" }, "PAGE": "Sidan", "ROWSPERPAGE": "Rader per sida", @@ -263,6 +267,16 @@ "BASEURL": "Basadress", "TEAMS_ASSOCIATION": "Team Association", "MANDATORYDISPOSITION": "Obligatorisk disposition", - "MANDATORYDISPOSITIONPAUSEID": "Pausa för användning när obligatorisk disposition är aktiverad" + "MANDATORYDISPOSITIONPAUSEID": "Pausa för användning när obligatorisk disposition är aktiverad", + "ACCESSKEYID": "Åtkomstnyckel-ID", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "Bot namn", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Redigera Lex-konfiguration", + "EDIT_DIALOGFLOW": "Redigera DialogFlow-konfiguration", + "LANGUAGE": "Språk", + "LEXREGION": "Område", + "SECRETACCESSKEY": "Åtkomstnyckelhemlighet", + "WELCOMEMESSAGE": "Välkomstmeddelande" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/tr.json b/public/app/main/apps/sms/i18n/tr.json index be88fb2..53070e1 100644 --- a/public/app/main/apps/sms/i18n/tr.json +++ b/public/app/main/apps/sms/i18n/tr.json @@ -58,7 +58,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "Zorunlu alan", "APIKEY_REQUIRED": "Zorunlu alan", "BASEURL_REQUIRED": "Zorunlu alan", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Zorunlu alan" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Zorunlu alan", + "ACCESSKEYID_REQUIRED": "Erişim anahtarı kimliği gerekli", + "BOTNAME_REQUIRED": "Bot adı gerekli", + "SECRETACCESSKEY_REQUIRED": "Erişim anahtarı sırrı gerekli" }, "AGENT_TIMEOUT": "Ajan Zaman Aşımı", "DESCRIPTION": "Açıklama", @@ -121,7 +124,8 @@ "MOTIONPROXY": "Alan için aşağıdaki formatı: [:]. Örneğin: https://X.Y.Z.W", "DELIVERYREPORTURL": "Bu, SMS sağlayıcınızdan gönderilen iletilerin teslim raporunu almak için kullanmanız gereken otomatik olarak oluşturulan API dizesidir (POST yöntemi kullanılmalıdır): kopyalamak için panoya tıklayın", "MANDATORYDISPOSITION": "Zorunlu düzenleme", - "MANDATORYDISPOSITIONPAUSEID": "Zorunlu bırakma etkin olduğunda kullanmak için duraklat" + "MANDATORYDISPOSITIONPAUSEID": "Zorunlu bırakma etkin olduğunda kullanmak için duraklat", + "WELCOMEMESSAGE": "Bu, yeni etkileşimlere gönderilen ilk yanıt mesajıdır" }, "PAGE": "Sayfa", "ROWSPERPAGE": "Sayfadaki satırları", @@ -263,6 +267,16 @@ "BASEURL": "Temel URL", "TEAMS_ASSOCIATION": "Takımlar Birliği", "MANDATORYDISPOSITION": "Zorunlu düzenleme", - "MANDATORYDISPOSITIONPAUSEID": "Zorunlu bırakma etkin olduğunda kullanmak için duraklat" + "MANDATORYDISPOSITIONPAUSEID": "Zorunlu bırakma etkin olduğunda kullanmak için duraklat", + "ACCESSKEYID": "Erişim anahtarı kimliği", + "AMAZONLEX": "AmazonLex", + "BOTNAME": "Bot adı", + "DIALOGFLOW": "DialogFlow", + "EDIT_AMAZONLEX": "Lex yapılandırmasını düzenleme", + "EDIT_DIALOGFLOW": "DialogFlow yapılandırmasını düzenle", + "LANGUAGE": "Dil", + "LEXREGION": "bölge", + "SECRETACCESSKEY": "Erişim anahtarı sırrı", + "WELCOMEMESSAGE": "Karşılama mesajı" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/zh-CN.json b/public/app/main/apps/sms/i18n/zh-CN.json index a01bb5b..de74502 100644 --- a/public/app/main/apps/sms/i18n/zh-CN.json +++ b/public/app/main/apps/sms/i18n/zh-CN.json @@ -58,7 +58,10 @@ "QUEUETRANSFERTIMEOUT_REQUIRED": "必填项", "APIKEY_REQUIRED": "必填项", "BASEURL_REQUIRED": "必填项", - "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "必填项" + "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "必填项", + "ACCESSKEYID_REQUIRED": "必须输入访问密钥ID", + "BOTNAME_REQUIRED": "机器人名称为必填项", + "SECRETACCESSKEY_REQUIRED": "需要访问密钥机密" }, "AGENT_TIMEOUT": "代理超时", "DESCRIPTION": "描述", @@ -121,7 +124,8 @@ "MOTIONPROXY": "在字段中必须具有以下格式:<协议>: http:// < IP 地址>[:
/ / < IP 地址 > [ 通訊協定 : : < > 口 ] 。 例如 : https://X.Y.Z.W", "DELIVERYREPORTURL": "這是自動生成的API字符串,您需要使用它來接收SMS提供程序發送的郵件的遞送報告(必須使用POST方法):單擊剪貼板按鈕以將其複制", "MANDATORYDISPOSITION": "強制性處分", - "MANDATORYDISPOSITIONPAUSEID": "啟用強製配置時暫停使用" + "MANDATORYDISPOSITIONPAUSEID": "啟用強製配置時暫停使用", + "WELCOMEMESSAGE": "這是發送給新交互的第一個響應消息" }, "PAGE": "頁面", "ROWSPERPAGE": "每頁行數", @@ -263,6 +267,16 @@ "BASEURL": "基本URL", "TEAMS_ASSOCIATION": "團隊協會", "MANDATORYDISPOSITION": "強制性處分", - "MANDATORYDISPOSITIONPAUSEID": "啟用強製配置時暫停使用" + "MANDATORYDISPOSITIONPAUSEID": "啟用強製配置時暫停使用", + "ACCESSKEYID": "訪問密鑰ID", + "AMAZONLEX": "亞馬遜Lex", + "BOTNAME": "機器人名稱", + "DIALOGFLOW": "對話流", + "EDIT_AMAZONLEX": "編輯Lex配置", + "EDIT_DIALOGFLOW": "編輯DialogFlow配置", + "LANGUAGE": "語言", + "LEXREGION": "區域", + "SECRETACCESSKEY": "訪問密鑰機密", + "WELCOMEMESSAGE": "歡迎留言" } } \ No newline at end of file diff --git a/public/index.html b/public/index.html index 5121489..c723499 100644 --- a/public/index.html +++ b/public/index.html @@ -14,7 +14,7 @@ - + @@ -60,7 +60,7 @@ - + diff --git a/public/scripts/app.408f0633.js b/public/scripts/app.408f0633.js new file mode 100644 index 0000000..afbcb4d --- /dev/null +++ b/public/scripts/app.408f0633.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.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";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),u.calls.unshift({target:e,fullname:t||e,inbound:n,time:moment().format("HH:mm")}),50 session",e),u.conf.microphoneId?u.sessionConf.mediaConstraints.audio={deviceId:u.conf.microphoneId}:u.sessionConf.mediaConstraints.audio=!0,e.answer(u.sessionConf),u.isJabraEnabled&&(jabra.offHook(),u.jabraSession=e)}function A(e){if(console.debug("terminate -> session",e),e.terminate(),u.isJabraEnabled)if(0===u.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),u.jabraSession=null;else{var n=_.last(u.sessions);n.localHold?(jabra.onHook(),jabra.hold(),u.jabraSession=n):jabra.offHook()}}function E(e){console.debug("onAddstream -> data",e),this.remotePlayer.srcObject=e.stream,this.remotePlayer.play()}function y(){u.canGoInConference=!1,u.isInConference=!1,u.currentconferenceSessions=[]}function S(e,n){switch(e){case"ringing":u.soundPlayer.muted=u.conf.ringingMute,u.conf.ringingId&&u.soundPlayer.setSinkId(u.conf.ringingId).then(function(){u.soundPlayer.volume=u.conf.ringingVolume}).then(function(){n&&h()}).catch(function(e){console.info(e.message,u.conf.ringingId)});break;case"speaker":u.remotePlayer.muted=u.conf.speakerMute,u.conf.speakerId&&u.remotePlayer.setSinkId(u.conf.speakerId).then(function(){u.remotePlayer.volume=u.conf.speakerVolume}).then(function(){n&&h()}).catch(function(e){console.info(e.message,u.conf.speakerId)});break;case"microphone":for(var t=0;t session, textContent, position, delay",e,n,t,a),function(){o.show(o.simple().textContent(n).position(t).hideDelay(a)),A(e)}}e(function(){},999),u.direction="right",u.selectedMode="md-scale",u.target="",u.showDialpad=!1,u.soundPlayer=document.createElement("audio"),u.remotePlayer=document.getElementById(u.conf.remotePlayerId),u.soundPlayer.volume=1,u.sessionConf={mediaConstraints:{audio:!0,video:!1}},u.sessions=[],u.calls=[],u.canGoInConference=!1,u.isInConference=!1,u.currentConferenceSessions=[],u.ua=new JsSIP.UA({sockets:[new JsSIP.WebSocketInterface("wss://"+u.conf.host+":8089/ws")],uri:new JsSIP.URI("sip",u.conf.name,u.conf.host,5060,null,null).toString(),authorization_user:u.conf.name,ha1:u.conf.ha1,realm:u.conf.realm,user_agent:u.conf.ua,session_timers_refresh_method:"invite",register_expires:u.conf.phoneBarExpires||60,register:!0}),u.conf=_.merge(g.webrtc,u.conf),u.initDeviceInProgress=!1,u.isJabraEnabled=!1,u.isJabraInitialized=!1,u.jabraSession=null,u.jabraClicked=!1,u.buttonClicked=!1,t.bind("keyup",function(e){switch(e.keyCode){case 27:s(function(){u.showDialpad=!1})}}),u.$onInit=function(){v(!1),navigator.mediaDevices.ondevicechange=function(e){u.initDeviceInProgress||(u.initDeviceInProgress=!0,jabra&&u.isJabraInitialized?jabra.shutdown().then(function(){u.isJabraInitialized=!1,v(!(u.isJabraEnabled=!1))}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):v(!0))},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=e.session,t=!0;switch(e.originator){case"local":n.outgoing=!0,n.name=e.request.ruri.user,n.user=e.request.ruri.user,f(n.user,!1),u.isJabraEnabled&&(u.jabraSession&&jabra.resume(),u.jabraSession=n,jabra.offHook());break;case"remote":var a=d.getCurrentUser();a.voicePause&&a.phoneBarDnd?t=!1:(n.incoming=!0,n.name=e.request.from.display_name,n.user=e.request.from.uri.user,function(n){console.debug("getNotification -> session",n);var e=n.name?n.name+" <"+n.user+">":n.user;l.create("Incoming call from: ",e,null,function(){b(n)},function(){A(n)}).then(function(e){n.notification=e}).catch(function(e){console.error("Error creating notification for incoming call",e)})}(e.session),f(e.session.user,!0),u.isJabraEnabled&&jabra.ring(),u.conf.autoAnswer&&s(function(){n.isInProgress()&&(n.autoAnswer=!0,b(n))},u.conf.autoAnswerDelay?1e3*u.conf.autoAnswerDelay:0))}t?(n.call_id=e.request.call_id,n.connection&&(n.connection.onaddstream=E.bind(this)),n.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}t&&(this.soundPlayer.loop="loop",this.soundPlayer.play().catch(function(e){console.log(e.message)}))}.bind(this,n)),n.on("confirmed",function(t,e){console.debug("onConfirmed -> session, data",t,e);var n=document.getElementById("div_session_"+t.id.substr(0,32));return n&&$(n).scope().$broadcast("timer-start"),t.confirmed=!0,"remote"===e.originator&&t.connection&&(t.connection.onaddstream=E.bind(this),_.head(t.connection.getRemoteStreams())&&(this.remotePlayer.srcObject=_.head(t.connection.getRemoteStreams()),this.remotePlayer.play())),this.soundPlayer.pause(),this.soundPlayer.loop=null,this.putOtherCallsOnHold(t),t.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)})),u.canGoInConference=2==u.sessions.length,r.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)}).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,n)),n.on("hold",function(e,n){console.debug("onHold -> session, data",e,n),"local"===n.originator&&(e.localHold=!0)}.bind(this,n)),n.on("unhold",function(e,n){console.debug("onUnhold -> session, data",e,n),"local"===n.originator&&(e.localHold=!1)}.bind(this,n)),n.on("ended",function(e,n){if(console.debug("onEnded -> session, data",e,n),u.isInConference&&_.includes(u.currentConferenceSessions,e.id)&&(y(),u.buttonClicked=!0),_.remove(this.sessions,{id:e.id}),2!==u.sessions.length&&(u.canGoInConference=!1),u.isJabraEnabled)if(0===u.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),u.jabraSession=null;else{var t=_.last(u.sessions);t.localHold?(jabra.onHook(),jabra.hold(),u.jabraSession=t):jabra.offHook()}}.bind(this,n)),n.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(),u.isInConference&&_.includes(u.currentConferenceSessions,e.id)&&y(),_.remove(this.sessions,{id:e.id}),2!==u.sessions.length&&(u.canGoInConference=!1),u.isJabraEnabled)if(0===u.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),u.jabraSession=null;else{var t=_.last(u.sessions);t.localHold?(jabra.onHook(),jabra.hold(),u.jabraSession=t):jabra.offHook()}}.bind(this,n)),this.sessions.push(n),i.$$phase||i.$root.$$phase||i.$apply()):A(n)}.bind(this))}.bind(this),u.type=function(e,n){var t=e;switch(u.target||(u.target=""),n&&(u.target+=e,i.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",u.target)),e){case"*":t="asterisk";break;case"#":t="pound"}u.conf.enableDtmfTone&&(u.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/dialpad/"+t+".ogg"),u.soundPlayer.play().catch(function(e){console.log(e.message)}));for(var a=0;a session",e),e.hold({useUpdate:!1}),u.isJabraEnabled&&(jabra.hold(),jabra.onHook())},u.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 I(e)}).then(function(e){n.refer(e,{eventHandlers:{requestSucceeded:O(n,"requestSucceeded","top right",3e3),requestFailed:O(n,"requestFailed","top right",3e3)}})})},u.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:u.sessions}})},u.unhold=function(e){console.debug("unhold -> session",e),e.unhold({useUpdate:!1}),u.putOtherCallsOnHold(e),u.isJabraEnabled&&(jabra.offHook(),jabra.resume())},u.answer=b,u.terminate=A,u.selectSession=function(e){console.debug("selectSession -> session",e),u.unhold(e)},u.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"#":u.type(e.key);break;case"enter":u.call()}},u.toggleDialpad=function(){u.showDialpad=!u.showDialpad},u.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(u.sessions,{id:e.id}),isJabraEnabled:u.isJabraEnabled}})},u.closeDialpad=function(){u.showDialpad=!1},u.initDevice=S,u.putOtherCallsOnHold=function(e){if(console.debug("putOtherCallsOnHold -> session",e),1 evt, data",e,n),n.target&&(u.target=n.target,u.call())}),i.$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";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(s,i,e){var o=this;o.collapsed=!0,o.query=void 0,o.queryOptions={debounce:o.debounce||0};var n=!(!o.collapseOnBlur||"true"!=o.collapseOnBlur);o.resultsLoading=!1,o.results=null,o.selectedResultIndex=0,o.ignoreMouseEvents=!1,o.onInit=function(){s.$watch("MsSearchBar.query",function(e,n){if(!angular.isUndefined(e)&&!angular.equals(e,n)){if(o.collapsed){if(!e)return;s.expand()}var t=s.$parent.$eval(o.onSearch,{query:e}),a=angular.isArray(t),i=t&&!!t.then;a&&o.populateResults(t),i&&(o.resultsLoading=!0,t.then(function(e){o.populateResults(e)},function(){o.populateResults([])}).finally(function(){o.resultsLoading=!1}))}})},o.populateResults=function(e){if(o.collapsed)return;var n=angular.isArray(e),t=null===e;if(!n&&!t)return;o.selectedResultIndex=0,o.results=e},o.expand=function(){o.collapsed=!1,s.expand(),o.onExpand&&angular.isFunction(o.onExpand)&&o.onExpand()},o.collapse=function(){o.query="",o.populateResults(null),o.collapsed=!0,s.collapse(),o.onCollapse&&angular.isFunction(o.onCollapse)&&o.onCollapse()},o.blurCollapse=function(){if(!n)return;o.collapse()},o.absorbEvent=function(e){e.preventDefault()},o.handleKeydown=function(e){var n=e.keyCode;-1<[27,38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:if(!o.results)return;o.handleResultClick(o.results[o.selectedResultIndex]);break;case 27:o.collapse();break;case 38:0<=o.selectedResultIndex-1&&(o.selectedResultIndex--,o.ensureSelectedResultIsVisible());break;case 40:if(!o.results)return;o.selectedResultIndex+1t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}}}function n(i){return{restrict:"E",scope:{},require:"msSearchBar",controller:"MsSearchBarController as MsSearchBar",bindToController:{query:"=?",debounce:"=?",direction:"@",onSearch:"@",onResultClick:"&?",onExpand:"&?",onCollapse:"&?",collapseOnBlur:"@"},templateUrl:"app/core/directives/ms-search-bar/ms-search-bar.html",compile:function(e){return e.addClass("ms-search-bar"),function(e,n){var t,a=i.find("body");e.collapse=function(){n.removeClass("expanded"),a.removeClass("ms-search-bar-expanded")},e.expand=function(){n.addClass("expanded"),"down"===e.MsSearchBar.direction&&n.addClass("down");a.addClass("ms-search-bar-expanded"),t.focus()},t=n.find("#ms-search-bar-input")}}}}e.$inject=["$scope","$element","$timeout"],n.$inject=["$document"],angular.module("app.core").controller("MsSearchBarController",e).directive("msSearchBar",n)}(),function(){"use strict";function e(e,t,i,o,r,l){var d=this;d.query="",d.queryOptions={debounce:300},d.resultsLoading=!1,d.selectedResultIndex=0,d.ignoreMouseEvents=!1,d.mobileBarActive=!1,d.results=null,d.shortcuts=[],d.sortableOptions={ghostClass:"ghost",forceFallback:!0,fallbackClass:"dragging",onSort:function(){d.saveShortcuts()}},d.populateResults=function(){for(var e=[],n=l.getFlatNavigation(),t=r.defer(),a=0;a=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().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,t,i,s,o,r,l){function d(){a.timeoutId&&clearTimeout(a.timeoutId)}function c(){void 0!==o.startTime&&(a.millis=moment().diff(moment(a.startTime))),a.maxTimeUnit&&"day"!==a.maxTimeUnit?"second"===a.maxTimeUnit?(a.seconds=Math.floor(a.millis/1e3),a.minutes=0,a.hours=0,a.days=0,a.months=0,a.years=0):"minute"===a.maxTimeUnit?(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4),a.hours=0,a.days=0,a.months=0,a.years=0):"hour"===a.maxTimeUnit?(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4%60),a.hours=Math.floor(a.millis/36e5),a.days=0,a.months=0,a.years=0):"month"===a.maxTimeUnit?(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4%60),a.hours=Math.floor(a.millis/36e5%24),a.days=Math.floor(a.millis/36e5/24%30),a.months=Math.floor(a.millis/36e5/24/30),a.years=0):"year"===a.maxTimeUnit&&(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4%60),a.hours=Math.floor(a.millis/36e5%24),a.days=Math.floor(a.millis/36e5/24%30),a.months=Math.floor(a.millis/36e5/24/30%12),a.years=Math.floor(a.millis/36e5/24/365)):(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4%60),a.hours=Math.floor(a.millis/36e5%24),a.days=Math.floor(a.millis/36e5/24),a.months=0,a.years=0),a.secondsS=1===a.seconds||0===a.seconds?"":"s",a.minutesS=1===a.minutes||0===a.minutes?"":"s",a.hoursS=1===a.hours||0===a.hours?"":"s",a.daysS=1===a.days||0===a.days?"":"s",a.monthsS=1===a.months||0===a.months?"":"s",a.yearsS=1===a.years||0===a.years?"":"s",a.sseconds=a.seconds<10?"0"+a.seconds:a.seconds,a.mminutes=a.minutes<10?"0"+a.minutes:a.minutes,a.hhours=a.hours<10?"0"+a.hours:a.hours,a.ddays=a.days<10?"0"+a.days:a.days,a.mmonths=a.months<10?"0"+a.months:a.months,a.yyears=a.years<10?"0"+a.years:a.years}"function"!=typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),a.autoStart=o.autoStart||o.autostart,0===r.html().trim().length?r.append(l("{{millis}}")(a)):r.append(l(r.contents())(a)),a.interval=a.intervalAttr||1e3,a.startTime=null,a.endTime=null,a.timeoutId=null,a.countdown=a.countdownAttr&&0<=parseInt(a.countdownAttr,10)?parseInt(a.countdownAttr,10):void 0,a.isRunning=!1,a.$watch("startTimeAttr",function(e,n){e!==n&&a.isRunning&&a.start()}),a.$on("timer-start",function(){a.start()}),a.$on("timer-resume",function(){a.resume()}),a.$on("timer-stop",function(){a.stop()}),a.$on("timer-clear",function(){a.clear()}),a.$on("timer-set-countdown",function(e,n){a.countdown=n}),a.start=r[0].start=function(){var e=moment(),n=a.startTimeAttr?moment(a.startTimeAttr):null;a.startTime=!n||er.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("filterByIds",function(){return function(e,n){if(0===e.length||!n)return e;if(0===n.length)return[];for(var t=[],a=0;a')).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(){S(e)},function(){console.log("CANCEL")})},b.success=y,b.getExtractedReports=function(){b.query.offset=(b.query.page-1)*b.query.limit,g.hasRole("admin")?b.promise=m.analyticExtractedReport.get(b.query,y).$promise:(b.query.id=b.userProfile.id,b.query.section="ExtractedReports",b.promise=m.userProfile.getResources(b.query,y).$promise)},b.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:b.extractedReports.rows,license:b.license,setting:b.setting,crudPermissions:b.crudPermissions}})},b.deleteExtractedReport=S,b.exportSelectedExtractedReports=function(){var e=angular.copy(b.selectedExtractedReports);return b.selectedExtractedReports=[],e},b.deleteSelectedExtractedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent(""+b.selectedExtractedReports.length+" selected will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){b.selectedExtractedReports.forEach(function(e){S(e)}),b.selectedExtractedReports=[]})},b.deselectExtractedReports=function(){b.selectedExtractedReports=[]},b.selectAllExtractedReports=function(){b.selectedExtractedReports=b.extractedReports.rows};var A=!0,E=1;function y(e){b.extractedReports=e||{count:0,rows:[]}}function S(e){m.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(b.extractedReports.rows,{id:e.id}),b.extractedReports.count-=1,b.extractedReports.rows.length||b.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){b.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(){S(e)},function(){console.log("CANCEL")})},b.success=y,b.getMetrics=function(){b.query.offset=(b.query.page-1)*b.query.limit,g.hasRole("admin")?b.promise=m.analyticMetric.get(b.query,y).$promise:(b.query.id=b.userProfile.id,b.query.section="Metrics",b.promise=m.userProfile.getResources(b.query,y).$promise)},b.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:b.metrics.rows,license:b.license,setting:b.setting,crudPermissions:b.crudPermissions}})},b.deleteMetric=S,b.exportSelectedMetrics=function(){var e=angular.copy(b.selectedMetrics);return b.selectedMetrics=[],e},b.deleteSelectedMetrics=function(e){var n=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent(""+b.selectedMetrics.length+" selected will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){b.selectedMetrics.forEach(function(e){S(e)}),b.selectedMetrics=[]})},b.deselectMetrics=function(){b.selectedMetrics=[]},b.selectAllMetrics=function(){b.selectedMetrics=b.metrics.rows};var A=!0,E=1;function y(e){b.metrics=e||{count:0,rows:[]}}function S(e){m.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(b.metrics.rows,{id:e.id}),b.metrics.count-=1,b.metrics.rows.length||b.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){b.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")},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(){S(e)},function(){console.log("CANCEL")})},b.success=y,b.getODBC=function(){b.query.offset=(b.query.page-1)*b.query.limit,g.hasRole("admin")?b.promise=m.squareOdbc.get(b.query,y).$promise:(b.query.id=b.userProfile.id,b.query.section="ODBC",b.promise=m.userProfile.getResources(b.query,y).$promise)},b.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:b.odbcs.rows,license:b.license,setting:b.setting,crudPermissions:b.crudPermissions}})},b.deleteOdbc=S,b.exportSelectedODBC=function(){var e=angular.copy(b.selectedODBC);return b.selectedODBC=[],e},b.deleteSelectedODBC=function(e){var n=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent(""+b.selectedODBC.length+" selected will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){b.selectedODBC.forEach(function(e){S(e)}),b.selectedODBC=[]})},b.deselectODBC=function(){b.selectedODBC=[]},b.selectAllODBC=function(){b.selectedODBC=b.odbcs.rows};var A=!0,E=1;function y(e){b.odbcs=e||{count:0,rows:[]}}function S(e){m.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(b.odbcs.rows,{id:e.id}),b.odbcs.count-=1,b.odbcs.rows.length||b.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){b.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(){S(e)},function(){console.log("CANCEL")})},b.success=y,b.getSquareRecordings=function(){b.query.offset=(b.query.page-1)*b.query.limit,g.hasRole("admin")?b.promise=m.squareRecording.get(b.query,y).$promise:(b.query.id=b.userProfile.id,b.query.section="SquareRecordings",b.promise=m.userProfile.getResources(b.query,y).$promise)},b.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:b.squareRecordings.rows,license:b.license,setting:b.setting,crudPermissions:b.crudPermissions}})},b.deleteSquareRecording=S,b.exportSelectedSquareRecordings=function(){var e=angular.copy(b.selectedSquareRecordings);return b.selectedSquareRecordings=[],e},b.deleteSelectedSquareRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent(""+b.selectedSquareRecordings.length+" selected will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){b.selectedSquareRecordings.forEach(function(e){S(e)}),b.selectedSquareRecordings=[]})},b.deselectSquareRecordings=function(){b.selectedSquareRecordings=[]},b.selectAllSquareRecordings=function(){b.selectedSquareRecordings=b.squareRecordings.rows};var A=!0,E=1;function y(e){b.squareRecordings=e||{count:0,rows:[]}}function S(e){m.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(b.squareRecordings.rows,{id:e.id}),b.squareRecordings.count-=1,b.squareRecordings.rows.length||b.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){b.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(){S(e)},function(){console.log("CANCEL")})},b.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",{})}},b.success=y,b.getChatQueues=function(){b.query.offset=(b.query.page-1)*b.query.limit,g.hasRole("admin")?b.promise=m.chatQueue.get(b.query,y).$promise:(b.query.id=b.userProfile.id,b.query.section="ChatQueues",b.promise=m.userProfile.getResources(b.query,y).$promise)},b.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:b.chatQueues.rows,license:b.license,setting:b.setting,crudPermissions:b.crudPermissions}})},b.deleteChatQueue=S,b.exportSelectedChatQueues=function(){var e=angular.copy(b.selectedChatQueues);return b.selectedChatQueues=[],e},b.deleteSelectedChatQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent(""+b.selectedChatQueues.length+" selected will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){b.selectedChatQueues.forEach(function(e){S(e)}),b.selectedChatQueues=[]})},b.deselectChatQueues=function(){b.selectedChatQueues=[]},b.selectAllChatQueues=function(){b.selectedChatQueues=b.chatQueues.rows};var A=!0,E=1;function y(e){b.chatQueues=e||{count:0,rows:[]}}function S(e){m.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(b.chatQueues.rows,{id:e.id}),b.chatQueues.count-=1,b.chatQueues.rows.length||b.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){b.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")},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,f){var b=this;b.license=v,b.setting=h,b.currentUser=g.getCurrentUser(),b.chatWebsites=l||{count:0,rows:[]},b.userProfile=d,b.userProfileSection=c&&1==c.count?c.rows[0]:null,b.crudPermissions=g.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.table="chatWebsites",b.listOrder="",b.listOrderAsc=null,b.selectedChatWebsites=[],b.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",sort:"-updatedAt",limit:10,page:1},b.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"),"")}),b.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),b.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"),"")}),b.arraymessagesAlignment=_.keyBy([{option:"alternate",value:"'alternate'"},{option:"centered",value:"'centered'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),b.arrayratingType=_.keyBy([{option:"Star",value:"'star'"},{option:"Thumb",value:"'thumb'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),b.editstate=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e,crudPermissions:b.crudPermissions})},b.interactionsgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:9})},b.offlinemessagesgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:10})},b.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:b.chatWebsites?b.chatWebsites.rows:[],crudPermissions:b.crudPermissions,realtime:!1}})},b.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(){S(e)},function(){console.log("CANCEL")})},b.success=y,b.getChatWebsites=function(){b.query.offset=(b.query.page-1)*b.query.limit,g.hasRole("admin")?b.promise=m.chatWebsite.get(b.query,y).$promise:(b.query.id=b.userProfile.id,b.query.section="ChatWebsites",b.promise=m.userProfile.getResources(b.query,y).$promise)},b.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:b.chatWebsites.rows,license:b.license,setting:b.setting,crudPermissions:b.crudPermissions}})},b.deleteChatWebsite=S,b.exportSelectedChatWebsites=function(){var e=angular.copy(b.selectedChatWebsites);return b.selectedChatWebsites=[],e},b.deleteSelectedChatWebsites=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent(""+b.selectedChatWebsites.length+" selected will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){b.selectedChatWebsites.forEach(function(e){S(e)}),b.selectedChatWebsites=[]})},b.deselectChatWebsites=function(){b.selectedChatWebsites=[]},b.selectAllChatWebsites=function(){b.selectedChatWebsites=b.chatWebsites.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){b.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){b.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:b.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(b.lists,{id:e.resourceId})}),t=null;if(b.chatWebsite&&(t=_.find(b.lists,{id:Number(b.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(b.lists,{id:t.id});a.canSelect=!1,n.push(a)}b.lists=n})}else{var t=[],a=null;b.chatWebsite&&(a=_.find(b.lists,{id:Number(b.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||"chatCannedAnswer")+" will be deleted.").ariaLabel("delete chatCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getChatWebsiteChatCannedAnswers=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.chatWebsite.getAnswers(c.query,p).$promise},c.createOrEditChatWebsiteChatCannedAnswer=function(e,n){s.show({controller:"CreateOrEditChatCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:c.chatWebsite,chatCannedAnswer:n,chatCannedAnswers:c.chatWebsiteChatCannedAnswers.rows,license:null,setting:null,crudPermissions:c.crudPermissions}})},c.exportSelectedChatWebsiteChatCannedAnswers=function(){var e=angular.copy(c.selectedChatWebsiteChatCannedAnswers);return c.selectedChatWebsiteChatCannedAnswers=[],e},c.deleteChatWebsiteChatCannedAnswer=g,c.deleteSelectedChatWebsiteChatCannedAnswers=function(e){var n=s.confirm().title("Are you sure want to delete the selected chatCannedAnswers?").htmlContent(""+c.selectedChatWebsiteChatCannedAnswers.length+" selected will be deleted.").ariaLabel("delete chatCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");s.show(n).then(function(){c.selectedChatWebsiteChatCannedAnswers.forEach(function(e){g(e)}),c.selectedChatWebsiteChatCannedAnswers=[]})};var m=!0,u=1;function p(e){c.chatWebsiteChatCannedAnswers=e||{count:0,rows:[]}}function g(e){l.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(c.chatWebsiteChatCannedAnswers.rows,{id:e.id}),c.chatWebsiteChatCannedAnswers.count-=1,c.chatWebsiteChatCannedAnswers.rows.length||c.getChatWebsiteChatCannedAnswers(),r.success({title:"ChatCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n"+(e.name||"chatDisposition")+" will be deleted.").ariaLabel("delete chatDisposition").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getChatWebsiteChatDispositions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.chatWebsite.getDispositions(c.query,p).$promise},c.createOrEditChatWebsiteChatDisposition=function(e,n){s.show({controller:"CreateOrEditChatDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:c.chatWebsite,chatDisposition:n,chatDispositions:c.chatWebsiteChatDispositions.rows,license:null,setting:null,crudPermissions:c.crudPermissions}})},c.exportSelectedChatWebsiteChatDispositions=function(){var e=angular.copy(c.selectedChatWebsiteChatDispositions);return c.selectedChatWebsiteChatDispositions=[],e},c.deleteChatWebsiteChatDisposition=g,c.deleteSelectedChatWebsiteChatDispositions=function(e){var n=s.confirm().title("Are you sure want to delete the selected chatDispositions?").htmlContent(""+c.selectedChatWebsiteChatDispositions.length+" selected will be deleted.").ariaLabel("delete chatDispositions").targetEvent(e).ok("OK").cancel("CANCEL");s.show(n).then(function(){c.selectedChatWebsiteChatDispositions.forEach(function(e){g(e)}),c.selectedChatWebsiteChatDispositions=[]})};var m=!0,u=1;function p(e){c.chatWebsiteChatDispositions=e||{count:0,rows:[]}}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){_.remove(c.chatWebsiteChatDispositions.rows,{id:e.id}),c.chatWebsiteChatDispositions.count-=1,c.chatWebsiteChatDispositions.rows.length||c.getChatWebsiteChatDispositions(),r.success({title:"ChatDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n"+(e.name||"interaction")+" will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},c.chatInteractionDownload=function(s,e,n){return l.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"+c.selectedChatWebsiteInteractions.length+" selected will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");s.show(n).then(function(){c.selectedChatWebsiteInteractions.forEach(function(e){g(e)}),c.selectedChatWebsiteInteractions=[]})};var m=!0,u=1;function p(e){c.chatWebsiteInteractions=e||{count:0,rows:[]}}function g(e){l.chatInteraction.delete({id:e.id}).$promise.then(function(){_.remove(c.chatWebsiteInteractions.rows,{id:e.id}),c.chatWebsiteInteractions.count-=1,c.chatWebsiteInteractions.rows.length||c.getChatWebsiteInteractions(),r.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n"+(e.name||"offlineMessage")+" will be deleted.").ariaLabel("delete offlineMessage").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getChatWebsiteOfflineMessages=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.chatWebsite.getOfflineMessages(c.query,p).$promise},c.createOrEditChatWebsiteOfflineMessage=function(e,n){s.show({controller:"CreateOrEditOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:c.chatWebsite,offlineMessage:n,offlineMessages:c.chatWebsiteOfflineMessages.rows,license:null,setting:null,crudPermissions:c.crudPermissions}})},c.showOfflineMessageChatWebsiteOfflineMessage=function(e,t){s.show({controller:"ShowOfflineMessageOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,resolve:{message:["apiResolver","$stateParams",function(e,n){return e.resolve("chatOfflineMessage@get",{fields:"id,body",id:t.id})}]}})},c.exportSelectedChatWebsiteOfflineMessages=function(){var e=angular.copy(c.selectedChatWebsiteOfflineMessages);return c.selectedChatWebsiteOfflineMessages=[],e},c.deleteChatWebsiteOfflineMessage=g,c.deleteSelectedChatWebsiteOfflineMessages=function(e){var n=s.confirm().title("Are you sure want to delete the selected offlineMessages?").htmlContent(""+c.selectedChatWebsiteOfflineMessages.length+" selected will be deleted.").ariaLabel("delete offlineMessages").targetEvent(e).ok("OK").cancel("CANCEL");s.show(n).then(function(){c.selectedChatWebsiteOfflineMessages.forEach(function(e){g(e)}),c.selectedChatWebsiteOfflineMessages=[]})},l.cmContact.get({fields:"id,firstName,lastName",nolimit:"true"}).$promise.then(function(e){c.contacts=e.rows||[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTACTS",msg:e.data?JSON.stringify(e.data):e.toString()})});var m=!0,u=1;function p(e){c.chatWebsiteOfflineMessages=e||{count:0,rows:[]}}function g(e){l.chatOfflineMessage.delete({id:e.id}).$promise.then(function(){_.remove(c.chatWebsiteOfflineMessages.rows,{id:e.id}),c.chatWebsiteOfflineMessages.count-=1,c.chatWebsiteOfflineMessages.rows.length||c.getChatWebsiteOfflineMessages(),r.success({title:"OfflineMessage deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n"+(e.name||"chatProactiveAction")+" will be deleted.").ariaLabel("delete chatProactiveAction").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},c.success=p,c.getChatWebsiteProactiveActions=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=l.chatWebsite.getProactiveActions(c.query,p).$promise},c.createOrEditChatWebsiteChatProactiveAction=function(e,n){s.show({controller:"CreateOrEditChatProactiveActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:c.chatWebsite,chatProactiveAction:n,proactive:c.chatWebsiteProactiveActions.rows,license:null,setting:null,crudPermissions:c.crudPermissions}})},c.exportSelectedChatWebsiteProactiveActions=function(){var e=angular.copy(c.selectedChatWebsiteProactiveActions);return c.selectedChatWebsiteProactiveActions=[],e},c.deleteChatWebsiteChatProactiveAction=g,c.deleteSelectedChatWebsiteProactiveActions=function(e){var n=s.confirm().title("Are you sure want to delete the selected proactive?").htmlContent(""+c.selectedChatWebsiteProactiveActions.length+" selected will be deleted.").ariaLabel("delete proactive").targetEvent(e).ok("OK").cancel("CANCEL");s.show(n).then(function(){c.selectedChatWebsiteProactiveActions.forEach(function(e){g(e)}),c.selectedChatWebsiteProactiveActions=[]})};var m=!0,u=1;function p(e){c.chatWebsiteProactiveActions=e||{count:0,rows:[]}}function g(e){l.chatProactiveAction.delete({id:e.id}).$promise.then(function(){_.remove(c.chatWebsiteProactiveActions.rows,{id:e.id}),c.chatWebsiteProactiveActions.count-=1,c.chatWebsiteProactiveActions.rows.length||c.getChatWebsiteProactiveActions(),r.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){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];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