From ba48c82906a6a343eabffe4e07ac3995f55a670d Mon Sep 17 00:00:00 2001 From: Andrea Bianco Date: Fri, 25 Oct 2019 17:01:02 +0200 Subject: [PATCH] Built motion from commit (unavailable).|2.3.8 --- apidoc/api_project.js | 2 +- apidoc/api_project.json | 2 +- package.json | 2 +- public/app/forgot/i18n/sv.json | 10 +- public/app/login/i18n/sv.json | 4 +- public/app/main/apps/analytics/i18n/sv.json | 20 +- public/app/main/apps/callysquare/i18n/sv.json | 62 ++-- public/app/main/apps/chat/i18n/sv.json | 302 +++++++++--------- public/app/main/apps/contactmanager/i18n/sv.json | 44 ++-- public/app/main/apps/dashboards/i18n/sv.json | 78 +++--- public/app/main/apps/jscripty/i18n/sv.json | 196 ++++++------ public/app/main/apps/motiondialer/i18n/sv.json | 24 +- public/app/main/apps/settings/i18n/sv.json | 14 +- public/app/main/apps/staff/i18n/en.json | 2 +- public/app/main/apps/staff/i18n/sv.json | 184 ++++++------ public/app/main/apps/tools/i18n/sv.json | 244 +++++++------- public/app/main/apps/voice/i18n/sv.json | 344 ++++++++++---------- public/app/quick-panel/i18n/sv.json | 8 +- public/app/toolbar/i18n/sv.json | 14 +- public/index.html | 2 +- public/scripts/app.3641b4fb.js | 1 - public/scripts/app.94ae6362.js | 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/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/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/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/migrations/2.3.8.js | 165 ++++++++++ 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/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/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 +- 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/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 +- 1066 files changed, 1988 insertions(+), 1823 deletions(-) delete mode 100644 public/scripts/app.3641b4fb.js create mode 100644 public/scripts/app.94ae6362.js create mode 100644 server/migrations/2.3.8.js diff --git a/apidoc/api_project.js b/apidoc/api_project.js index fb12e00..e2fed69 100644 --- a/apidoc/api_project.js +++ b/apidoc/api_project.js @@ -1 +1 @@ -define({ "name": "xCALLY Motion API", "version": "2.3.7", "description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.", "title": "xCALLY MOTION API", "header": { "title": "Introduction", "content": "

The API

\n

This is the documentation for the xCALLY MOTION API.

\n

We make changes to the APIs from time to time. For more information, see Changelog.

\n

The xCALLY MOTION API consists of several different APIs. Use the left sidebar menu to select one.

\n

The API is a JSON API. XML is not supported. To learn more, see [Working with JSON].

\n

Endpoints are documented with the HTTP method for the request and a partial resource identifier.\nExample:

\n
GET /api/users\n
\n

Prepend your xCALLY URL to the resource identifier to get the full endpoint URL:

\n
https://motion.xcally.com/api/users\n
\n

Curly braces, {}, indicate values you have to supply. Example:

\n
GET  /api/users/{id}\n
\n

The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests. To learn more, see [Installing and using cURL]. In Windows, you'll need to modify some of the examples in the docs to make them work. See [Using cURL in Windows].

\n

The examples use basic authentication requiring a xCALLY username and password.

\n

Security and Authentication

\n

This is an SSL-only API, regardless of how your account is configured. You can authorize against the API using either basic authentication with your username and password or with an OAuth access token or API Key.

\n

Client-side CORS requests are supported if the request is authenticated with an OAuth access token. The requests are not supported if the request uses basic authentication or API Key.

\n

Basic authentication

\n

Use the following authentication format with your username and password:\n{username}:{password}

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users\n
\n

OAuth access token

\n

The xCALLY API supports OAuth authorization flows.

\n

OAuth access tokens also permit client-side API requests.

\n

In your requests, specify the access token in an Authorization header as follows:\nAuthorization: Bearer {token}

\n

Example:

\n
curl -H "Authorization: Bearer gErypPlm4dOVgGRvA1ZzMH5MQ3nLo8bo" https://motion.xcally.com/api/users\n
\n

API Key

\n

In your request, specify the API Key in apikey query parameter

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users?apikey=eyJhbGciOiJIUzUxMiIsInR5cC...\n
\n

Request Format

\n

The xCALLY API is a JSON API. You must supply a Content-Type: application/json header in PUT and POST requests. You must set an Accept: application/json header on all requests. You may get a text/plain response in case of an error like a bad request. You should treat this as an error you need to fix.

\n

Response Format

\n

The xCALLY API responds to successful requests with HTTP status codes in the 200 or 300 range. When you create or update a resource, the API renders the resulting JSON representation in the response body.

\n

Responses may have the status codes described in the following sections.

\n

200 range

\n

The request was successful. The status is 200 for successful GET and PUT requests, 201 for most POST requests, and 204 for DELETE requests.

\n

400 range

\n

The request was not successful. The content type of the response may be text/plain for API-level error messages, such as when trying to call the API without SSL. The content type is application/json for business-level error messages because the response includes a JSON object with information about the error.

\n

If you see a response from a known endpoint that looks like plain text, you probably made a syntax error in your request. This type of response commonly occurs when making a request to a nonexistent xCALLY Support instance.

\n

500 range

\n

When building an API client, we recommend treating any 500 status codes as a warning or temporary state. However, if the status persists and we don't have a publicly announced maintenance or service disruption, contact us at support@xcally.com.

\n

If submitting a ticket to Support, provide the complete HTTP response. This helps the Support team track down the request in the logs more quickly.

\n

Data Types

\n

The API returns and accepts JSON values, which can be strings in double quotes, numbers, objects, arrays, true or false, or null. Most programming languages have tools to parse this data.

\n

ID integers

\n

Most xCALLY Support resources such as queues and users are identified by the integer specified by the id attribute of API responses.

\n

The default numeric type in JavaScript, Ruby, Python, and PHP is sufficient to represent xCALLY Support ID integers.

\n

Time stamps

\n

Time stamps use UTC time and are formatted as ISO 8601 strings. Example: 2017-04-16T09:14:57Z

\n" }, "template": { "withGenerator": false, "withCompare": false, "forceLanguage": "en" }, "sampleUrl": false, "defaultVersion": "0.0.0", "apidoc": "0.3.0", "generator": { "name": "apidoc", "time": "2019-10-21T16:12:54.706Z", "url": "http://apidocjs.com", "version": "0.17.7" } }); +define({ "name": "xCALLY Motion API", "version": "2.3.8", "description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.", "title": "xCALLY MOTION API", "header": { "title": "Introduction", "content": "

The API

\n

This is the documentation for the xCALLY MOTION API.

\n

We make changes to the APIs from time to time. For more information, see Changelog.

\n

The xCALLY MOTION API consists of several different APIs. Use the left sidebar menu to select one.

\n

The API is a JSON API. XML is not supported. To learn more, see [Working with JSON].

\n

Endpoints are documented with the HTTP method for the request and a partial resource identifier.\nExample:

\n
GET /api/users\n
\n

Prepend your xCALLY URL to the resource identifier to get the full endpoint URL:

\n
https://motion.xcally.com/api/users\n
\n

Curly braces, {}, indicate values you have to supply. Example:

\n
GET  /api/users/{id}\n
\n

The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests. To learn more, see [Installing and using cURL]. In Windows, you'll need to modify some of the examples in the docs to make them work. See [Using cURL in Windows].

\n

The examples use basic authentication requiring a xCALLY username and password.

\n

Security and Authentication

\n

This is an SSL-only API, regardless of how your account is configured. You can authorize against the API using either basic authentication with your username and password or with an OAuth access token or API Key.

\n

Client-side CORS requests are supported if the request is authenticated with an OAuth access token. The requests are not supported if the request uses basic authentication or API Key.

\n

Basic authentication

\n

Use the following authentication format with your username and password:\n{username}:{password}

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users\n
\n

OAuth access token

\n

The xCALLY API supports OAuth authorization flows.

\n

OAuth access tokens also permit client-side API requests.

\n

In your requests, specify the access token in an Authorization header as follows:\nAuthorization: Bearer {token}

\n

Example:

\n
curl -H "Authorization: Bearer gErypPlm4dOVgGRvA1ZzMH5MQ3nLo8bo" https://motion.xcally.com/api/users\n
\n

API Key

\n

In your request, specify the API Key in apikey query parameter

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users?apikey=eyJhbGciOiJIUzUxMiIsInR5cC...\n
\n

Request Format

\n

The xCALLY API is a JSON API. You must supply a Content-Type: application/json header in PUT and POST requests. You must set an Accept: application/json header on all requests. You may get a text/plain response in case of an error like a bad request. You should treat this as an error you need to fix.

\n

Response Format

\n

The xCALLY API responds to successful requests with HTTP status codes in the 200 or 300 range. When you create or update a resource, the API renders the resulting JSON representation in the response body.

\n

Responses may have the status codes described in the following sections.

\n

200 range

\n

The request was successful. The status is 200 for successful GET and PUT requests, 201 for most POST requests, and 204 for DELETE requests.

\n

400 range

\n

The request was not successful. The content type of the response may be text/plain for API-level error messages, such as when trying to call the API without SSL. The content type is application/json for business-level error messages because the response includes a JSON object with information about the error.

\n

If you see a response from a known endpoint that looks like plain text, you probably made a syntax error in your request. This type of response commonly occurs when making a request to a nonexistent xCALLY Support instance.

\n

500 range

\n

When building an API client, we recommend treating any 500 status codes as a warning or temporary state. However, if the status persists and we don't have a publicly announced maintenance or service disruption, contact us at support@xcally.com.

\n

If submitting a ticket to Support, provide the complete HTTP response. This helps the Support team track down the request in the logs more quickly.

\n

Data Types

\n

The API returns and accepts JSON values, which can be strings in double quotes, numbers, objects, arrays, true or false, or null. Most programming languages have tools to parse this data.

\n

ID integers

\n

Most xCALLY Support resources such as queues and users are identified by the integer specified by the id attribute of API responses.

\n

The default numeric type in JavaScript, Ruby, Python, and PHP is sufficient to represent xCALLY Support ID integers.

\n

Time stamps

\n

Time stamps use UTC time and are formatted as ISO 8601 strings. Example: 2017-04-16T09:14:57Z

\n" }, "template": { "withGenerator": false, "withCompare": false, "forceLanguage": "en" }, "sampleUrl": false, "defaultVersion": "0.0.0", "apidoc": "0.3.0", "generator": { "name": "apidoc", "time": "2019-10-25T14:53:32.752Z", "url": "http://apidocjs.com", "version": "0.17.7" } }); diff --git a/apidoc/api_project.json b/apidoc/api_project.json index b1ffbbc..ac786aa 100644 --- a/apidoc/api_project.json +++ b/apidoc/api_project.json @@ -1 +1 @@ -{ "name": "xCALLY Motion API", "version": "2.3.7", "description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.", "title": "xCALLY MOTION API", "header": { "title": "Introduction", "content": "

The API

\n

This is the documentation for the xCALLY MOTION API.

\n

We make changes to the APIs from time to time. For more information, see Changelog.

\n

The xCALLY MOTION API consists of several different APIs. Use the left sidebar menu to select one.

\n

The API is a JSON API. XML is not supported. To learn more, see [Working with JSON].

\n

Endpoints are documented with the HTTP method for the request and a partial resource identifier.\nExample:

\n
GET /api/users\n
\n

Prepend your xCALLY URL to the resource identifier to get the full endpoint URL:

\n
https://motion.xcally.com/api/users\n
\n

Curly braces, {}, indicate values you have to supply. Example:

\n
GET  /api/users/{id}\n
\n

The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests. To learn more, see [Installing and using cURL]. In Windows, you'll need to modify some of the examples in the docs to make them work. See [Using cURL in Windows].

\n

The examples use basic authentication requiring a xCALLY username and password.

\n

Security and Authentication

\n

This is an SSL-only API, regardless of how your account is configured. You can authorize against the API using either basic authentication with your username and password or with an OAuth access token or API Key.

\n

Client-side CORS requests are supported if the request is authenticated with an OAuth access token. The requests are not supported if the request uses basic authentication or API Key.

\n

Basic authentication

\n

Use the following authentication format with your username and password:\n{username}:{password}

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users\n
\n

OAuth access token

\n

The xCALLY API supports OAuth authorization flows.

\n

OAuth access tokens also permit client-side API requests.

\n

In your requests, specify the access token in an Authorization header as follows:\nAuthorization: Bearer {token}

\n

Example:

\n
curl -H "Authorization: Bearer gErypPlm4dOVgGRvA1ZzMH5MQ3nLo8bo" https://motion.xcally.com/api/users\n
\n

API Key

\n

In your request, specify the API Key in apikey query parameter

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users?apikey=eyJhbGciOiJIUzUxMiIsInR5cC...\n
\n

Request Format

\n

The xCALLY API is a JSON API. You must supply a Content-Type: application/json header in PUT and POST requests. You must set an Accept: application/json header on all requests. You may get a text/plain response in case of an error like a bad request. You should treat this as an error you need to fix.

\n

Response Format

\n

The xCALLY API responds to successful requests with HTTP status codes in the 200 or 300 range. When you create or update a resource, the API renders the resulting JSON representation in the response body.

\n

Responses may have the status codes described in the following sections.

\n

200 range

\n

The request was successful. The status is 200 for successful GET and PUT requests, 201 for most POST requests, and 204 for DELETE requests.

\n

400 range

\n

The request was not successful. The content type of the response may be text/plain for API-level error messages, such as when trying to call the API without SSL. The content type is application/json for business-level error messages because the response includes a JSON object with information about the error.

\n

If you see a response from a known endpoint that looks like plain text, you probably made a syntax error in your request. This type of response commonly occurs when making a request to a nonexistent xCALLY Support instance.

\n

500 range

\n

When building an API client, we recommend treating any 500 status codes as a warning or temporary state. However, if the status persists and we don't have a publicly announced maintenance or service disruption, contact us at support@xcally.com.

\n

If submitting a ticket to Support, provide the complete HTTP response. This helps the Support team track down the request in the logs more quickly.

\n

Data Types

\n

The API returns and accepts JSON values, which can be strings in double quotes, numbers, objects, arrays, true or false, or null. Most programming languages have tools to parse this data.

\n

ID integers

\n

Most xCALLY Support resources such as queues and users are identified by the integer specified by the id attribute of API responses.

\n

The default numeric type in JavaScript, Ruby, Python, and PHP is sufficient to represent xCALLY Support ID integers.

\n

Time stamps

\n

Time stamps use UTC time and are formatted as ISO 8601 strings. Example: 2017-04-16T09:14:57Z

\n" }, "template": { "withGenerator": false, "withCompare": false, "forceLanguage": "en" }, "sampleUrl": false, "defaultVersion": "0.0.0", "apidoc": "0.3.0", "generator": { "name": "apidoc", "time": "2019-10-21T16:12:54.706Z", "url": "http://apidocjs.com", "version": "0.17.7" } } +{ "name": "xCALLY Motion API", "version": "2.3.8", "description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.", "title": "xCALLY MOTION API", "header": { "title": "Introduction", "content": "

The API

\n

This is the documentation for the xCALLY MOTION API.

\n

We make changes to the APIs from time to time. For more information, see Changelog.

\n

The xCALLY MOTION API consists of several different APIs. Use the left sidebar menu to select one.

\n

The API is a JSON API. XML is not supported. To learn more, see [Working with JSON].

\n

Endpoints are documented with the HTTP method for the request and a partial resource identifier.\nExample:

\n
GET /api/users\n
\n

Prepend your xCALLY URL to the resource identifier to get the full endpoint URL:

\n
https://motion.xcally.com/api/users\n
\n

Curly braces, {}, indicate values you have to supply. Example:

\n
GET  /api/users/{id}\n
\n

The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests. To learn more, see [Installing and using cURL]. In Windows, you'll need to modify some of the examples in the docs to make them work. See [Using cURL in Windows].

\n

The examples use basic authentication requiring a xCALLY username and password.

\n

Security and Authentication

\n

This is an SSL-only API, regardless of how your account is configured. You can authorize against the API using either basic authentication with your username and password or with an OAuth access token or API Key.

\n

Client-side CORS requests are supported if the request is authenticated with an OAuth access token. The requests are not supported if the request uses basic authentication or API Key.

\n

Basic authentication

\n

Use the following authentication format with your username and password:\n{username}:{password}

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users\n
\n

OAuth access token

\n

The xCALLY API supports OAuth authorization flows.

\n

OAuth access tokens also permit client-side API requests.

\n

In your requests, specify the access token in an Authorization header as follows:\nAuthorization: Bearer {token}

\n

Example:

\n
curl -H "Authorization: Bearer gErypPlm4dOVgGRvA1ZzMH5MQ3nLo8bo" https://motion.xcally.com/api/users\n
\n

API Key

\n

In your request, specify the API Key in apikey query parameter

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users?apikey=eyJhbGciOiJIUzUxMiIsInR5cC...\n
\n

Request Format

\n

The xCALLY API is a JSON API. You must supply a Content-Type: application/json header in PUT and POST requests. You must set an Accept: application/json header on all requests. You may get a text/plain response in case of an error like a bad request. You should treat this as an error you need to fix.

\n

Response Format

\n

The xCALLY API responds to successful requests with HTTP status codes in the 200 or 300 range. When you create or update a resource, the API renders the resulting JSON representation in the response body.

\n

Responses may have the status codes described in the following sections.

\n

200 range

\n

The request was successful. The status is 200 for successful GET and PUT requests, 201 for most POST requests, and 204 for DELETE requests.

\n

400 range

\n

The request was not successful. The content type of the response may be text/plain for API-level error messages, such as when trying to call the API without SSL. The content type is application/json for business-level error messages because the response includes a JSON object with information about the error.

\n

If you see a response from a known endpoint that looks like plain text, you probably made a syntax error in your request. This type of response commonly occurs when making a request to a nonexistent xCALLY Support instance.

\n

500 range

\n

When building an API client, we recommend treating any 500 status codes as a warning or temporary state. However, if the status persists and we don't have a publicly announced maintenance or service disruption, contact us at support@xcally.com.

\n

If submitting a ticket to Support, provide the complete HTTP response. This helps the Support team track down the request in the logs more quickly.

\n

Data Types

\n

The API returns and accepts JSON values, which can be strings in double quotes, numbers, objects, arrays, true or false, or null. Most programming languages have tools to parse this data.

\n

ID integers

\n

Most xCALLY Support resources such as queues and users are identified by the integer specified by the id attribute of API responses.

\n

The default numeric type in JavaScript, Ruby, Python, and PHP is sufficient to represent xCALLY Support ID integers.

\n

Time stamps

\n

Time stamps use UTC time and are formatted as ISO 8601 strings. Example: 2017-04-16T09:14:57Z

\n" }, "template": { "withGenerator": false, "withCompare": false, "forceLanguage": "en" }, "sampleUrl": false, "defaultVersion": "0.0.0", "apidoc": "0.3.0", "generator": { "name": "apidoc", "time": "2019-10-25T14:53:32.752Z", "url": "http://apidocjs.com", "version": "0.17.7" } } diff --git a/package.json b/package.json index 0cfd8ba..a61a66a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "motion", - "version": "2.3.7", + "version": "2.3.8", "description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.", "main": "server/app.js", "engines": { diff --git a/public/app/forgot/i18n/sv.json b/public/app/forgot/i18n/sv.json index a4806a2..0955b1b 100644 --- a/public/app/forgot/i18n/sv.json +++ b/public/app/forgot/i18n/sv.json @@ -1,14 +1,14 @@ { "FORGOTPASSWORD": { - "TITLE": "Återvinna ditt lösenord", + "TITLE": "Återställ ditt lösenord", "EMAIL_ADRESS": "E-postadress", "SEND_RESET_LINK": "Skicka länk för återställning", "GO_BACK": "Gå tillbaka till inloggning", - "LINK_SENT": "Länk skickas", - "LINNK_SENT_MESSAGE": "Ett e-postmeddelande som innehåller en länk för att återställa ditt lösenord har skickats till din adress!", - "PASSWORD_RESET_ERROR": "Återställ lösenord fel", + "LINK_SENT": "Länk skickad", + "LINNK_SENT_MESSAGE": "Ett e-postmeddelande som innehåller en länk för att återställa ditt lösenord har skickats till din E-postadress!", + "PASSWORD_RESET_ERROR": "Fel vid återställande av lösenord", "ERRORS": { - "EMAIL_REQUIRED": "E-fältet är obligatoriskt", + "EMAIL_REQUIRED": "E-postadressfältet är obligatoriskt", "EMAIL_MUST_VALID": "E-postadressen måste vara en giltig e-postadress" } } diff --git a/public/app/login/i18n/sv.json b/public/app/login/i18n/sv.json index 8963b27..54930cc 100644 --- a/public/app/login/i18n/sv.json +++ b/public/app/login/i18n/sv.json @@ -12,13 +12,13 @@ "DONT_HAVE_ACCOUNT": "Har du inget konto?", "CREATE_ACCOUNT": "Skapa ett konto", "ERRORS": { - "EMAIL_REQUIRED": "E-fältet är obligatoriskt", + "EMAIL_REQUIRED": "E-postadressfältet är obligatoriskt", "EMAIL_MUST_VALID": "E-postadressen måste vara en giltig e-postadress", "PASSWORD_REQUIRED": "Fältet Lösenord är obligatoriskt", "USERNAME_REQUIRED": "Obligatoriskt fält" }, "USERNAME": "Användarnamn", - "CANCEL": "Annullera", + "CANCEL": "Cancel", "SELECT": "Välj", "TELEPHONES": "telefoner" } diff --git a/public/app/main/apps/analytics/i18n/sv.json b/public/app/main/apps/analytics/i18n/sv.json index 317d3f9..434ee63 100644 --- a/public/app/main/apps/analytics/i18n/sv.json +++ b/public/app/main/apps/analytics/i18n/sv.json @@ -1,7 +1,7 @@ { "ANALYTICS": { "NAME": "Namn", - "ANALYTICS": "Rapport analys", + "ANALYTICS": "Analytics", "METRICS": "Mätvärden", "ID": "Id", "TABLE": "Tabell", @@ -26,12 +26,12 @@ "SELECT_ALL": "Markera alla", "SELECT_NONE": "Välj ingen", "TYPE": "Typ", - "EXTRACTEDREPORTS": "Färdiga Rapporter", - "DATE_RANGE_FROM": "Datumintervall från", - "DATE_RANGE_TO": "Datumintervall", - "GENERATED_AT": "Genererad", + "EXTRACTEDREPORTS": "Extraherade rapporter", + "DATE_RANGE_FROM": "Från datum", + "DATE_RANGE_TO": "Till datum", + "GENERATED_AT": "Genererad vid", "STATUS": "Status", - "OUTPUT": "Utgång", + "OUTPUT": "Resultat", "REPORTS": "Rapporter", "SEARCH_FOR_FOLDER": "Sök efter mapp", "CREATED_AT": "Skapad", @@ -40,7 +40,7 @@ "COPY_REPORT": "Kopiera rapport", "PREVIEW_REPORT": "Förhandsgranska rapport", "RUN_REPORT": "Kör rapport", - "DOWNLOAD_JSON_REPORT": "Exportera rapporten som JSON", + "DOWNLOAD_JSON_REPORT": "Ladda ned rapporten som JSON", "EDIT_REPORT": "Redigera rapport", "DELETE_REPORT": "Ta bort rapport", "CREATE": "Skapa", @@ -48,7 +48,7 @@ "REMOVE": "Radera", "SELECT_NODE": "Välj mapp", "ERROR": "Fel", - "QUERY_ERROR": "Sökfel", + "QUERY_ERROR": "Queryfel", "MESSAGE": "Meddelande", "CLOSE": "Stäng", "FORMAT": "Format", @@ -62,7 +62,7 @@ "VALUE": "Värde", "PREVIEW": "Förhandsgranska", "LIMITED_RESULT": "*Begränsat resultat", - "NO_DATA": "Inga data resultat", + "NO_DATA": "Ingen data", "CONDITIONS": "Villkor", "ALIAS": "Alias", "FUNCTION": "Funktion", @@ -83,6 +83,6 @@ "OF": "av", "DELETE": "Radera", "REPORTNAME": "Rapportnamn", - "SEND_IF_EMPTY": "Skicka om den är tom" + "SEND_IF_EMPTY": "Skicka om rapporten är tom" } } \ No newline at end of file diff --git a/public/app/main/apps/callysquare/i18n/sv.json b/public/app/main/apps/callysquare/i18n/sv.json index 1e7ce10..952145e 100644 --- a/public/app/main/apps/callysquare/i18n/sv.json +++ b/public/app/main/apps/callysquare/i18n/sv.json @@ -35,46 +35,46 @@ "PROJECT": "Projekt", "UNIQUEID": "Unik ID", "PHONE": "Telefon", - "EXTEN": "Exten", + "EXTEN": "Extension", "AUDIO": "Ljud", "CREATED_AT": "Skapad", "NOTES": "Anteckningar", "NEW_PROJECT": "Nytt projekt", - "EDIT": "Edit", - "LABEL": "Märke", - "ANSWER": "Answer", + "EDIT": "Editera", + "LABEL": "Etikett", + "ANSWER": "Svar", "TIMEOUT": "Timeout", "SIP_ID": "SIP", - "OPTS": "Options", + "OPTS": "Alternativ", "URL": "URL", "TRUNK_NAME": "Trunk", "START": "Start", - "FINALLY": "Avslut", - "END": "Avsluta", - "HANGUP": "Avsluta Samtal", + "FINALLY": "Finally", + "END": "End", + "HANGUP": "Hangup", "DIAL": "Ring", "EXT_DIAL": "Utgående samtal", "QUEUE": "Kö", - "QUEUE_ID": "Kö", - "FILE_ID": "Ljud", + "QUEUE_ID": "Kö-id", + "FILE_ID": "Fil-id", "AGI": "AGI", "MACRO": "Macro", "GOSUB": "GoSub", "POSITION": "Position", "VOICEMAIL": "Röstbrevlåda", - "MAILBOX": "Epost", + "MAILBOX": "Emailinkorg", "OPTIONS": "Inställningar", "SET": "Set", - "VARIABLE_ID": "Variabel", - "VARIABLE_VALUE": "Värde", + "VARIABLE_ID": "Variabel-id", + "VARIABLE_VALUE": "Variabelvärde", "MATH": "Beräkning", "OPERATION": "Operation", - "PLAYBACK": "Spela upp", + "PLAYBACK": "Ljud", "RESPONSE": "Timeout", "DIGIT": "Max antal siffror", "RETRY": "Antal försök", "DIGITS": "Siffror", - "ESCAPE_DIGITS": "Siffra för avslut", + "ESCAPE_DIGITS": "Knapp för avslut", "MENU": "Meny", "SAYDIGITS": "Säg siffra", "SAYNUMBER": "Säg nummer", @@ -99,7 +99,7 @@ "RECORDINGFORMAT": "Inspelningsformat", "DATABASE": "Databas", "ODBC_ID": "ODBC Anslutning", - "QUERY": "Fråga", + "QUERY": "Query", "MODEL": "Modell", "ISPEECH_ASR_LANGUAGE": "Språk", "BEEP": "Beep", @@ -125,11 +125,11 @@ "GOAL": "Mål", "GOALNAME": "Målnamn", "NOOP": "NoOp", - "OUTPUT": "Utmatning", + "OUTPUT": "Resultat", "SYSTEM": "System", "COMMAND": "Kommando", "ARGS": "Argument", - "SUBPROJECT": "Sub Projekt", + "SUBPROJECT": "Subprojekt", "PROJECT_ID": "Projekt", "CUSTOM_APP": "Anpassad applikation", "APPLICATION": "Applikation", @@ -149,8 +149,8 @@ "EDIT_XML": "Redigera XML", "IMPORT_XML": "Importera XML", "IMPORT": "Importera", - "DROP_TO_UPLOAD": "SLÄPP FÖR ÖVERFÖRING", - "DROP_TO_UPLOAD_MESSAGE": "Du kan också släppa filer här för överföring. Endast XML - Max. 5MB", + "DROP_TO_UPLOAD": "SLÄPP FÖR UPPLADDNING", + "DROP_TO_UPLOAD_MESSAGE": "Du kan också släppa filer här för uppladdning. Endast XML - Max. 5MB", "CLOSE": "Stäng", "NO_AVAILABLE_INFO": "Ingen tillgänglig info", "GO_TO_PROJECTS": "Gå till projekt", @@ -170,20 +170,20 @@ "ATTACHMENT_TYPE": "Typ av bilaga", "ATTACHMENT_PATH": "Sökväg till bilaga", "SENDFAX": "Skicka fax", - "DELETE_SQUARERECORDING": "Ta bort Square inspelning", - "DOWNLOAD_SQUARERECORDING": "Ladda ner Square inspelning", + "DELETE_SQUARERECORDING": "Ta bort Cally Square-inspelning", + "DOWNLOAD_SQUARERECORDING": "Ladda ner Cally Square-inspelning", "FILENAME": "Filnamn", - "EDIT_SQUARERECORDING": "Redigera Square inspelning", + "EDIT_SQUARERECORDING": "Redigera Cally Square-inspelning", "DELETE": "Radera", - "PAGE": "Sidan", + "PAGE": "Sida", "ROWSPERPAGE": "Rader per sida", "OF": "av", "CALLBACK_PRIORITY": "Prioritet", "GOOGLE_ASR_LANGUAGE": "Språk", "GOOGLEASR": "GoogleASR", "AWSPOLLY": "AWS Polly", - "AWS_ACCESS_KEY_ID": "Gå till nyckel-ID", - "AWS_SECRET_ACCESS_KEY": "Hemlig åtkomstkod", + "AWS_ACCESS_KEY_ID": "AWS Access Key Id", + "AWS_SECRET_ACCESS_KEY": "AWS Secret Access Key", "AWS_POLLY_REGION": "Region", "AWS_POLLY_VOICE": "Röst", "LUMENVOXTTS": "Lumenvox Text-To-Speech", @@ -191,21 +191,21 @@ "GRAMMAR": "Grammatik", "TILDEASR": "Tilde ASR", "APPID": "App-ID", - "APPSECRET": "App hemliga", - "SMS_ACCOUNT_ID": "konto", + "APPSECRET": "App Secret", + "SMS_ACCOUNT_ID": "Konto", "FINDBY": "Sök efter", "LOGIN": "Logga in", "LOGOUT": "Logga ut", "PAUSE": "Paus", - "PAUSE_ID": "Paus typ", - "UNPAUSE": "Slut paus", + "PAUSE_ID": "Paustyp", + "UNPAUSE": "Slut på paus", "URI": "URI", "AWS_TEXT_TYPE": "Text typ", "DIALOGFLOW": "Dialogflow", "DIALOGFLOW_LANGUAGE": "Språk", "ADDUSER_PROJECTS": "Lägg till användare till projektet", "ALL_USERS": "Alla användare", - "PERMISSIONADD_PROJECTS": "Lägg till användare till projektet", + "PERMISSIONADD_PROJECTS": "Lägg till rättigheter till användare", "SELECTED_USERS": "Valda användare", "AWS_BOT_NAME": "Bot namn", "AWS_LEX_REGION": "Område", diff --git a/public/app/main/apps/chat/i18n/sv.json b/public/app/main/apps/chat/i18n/sv.json index 9b51251..04c796f 100644 --- a/public/app/main/apps/chat/i18n/sv.json +++ b/public/app/main/apps/chat/i18n/sv.json @@ -3,58 +3,58 @@ "AMAZONLEX": "Amazon Lex", "TEXT": "Text", "TIMES": "Antalet gånger per interaktion", - "EDIT_AUTOREPLY": "Redigera frånvaromeddelande", - "AUTOREPLY": "Auto-svar", - "NEW_CHATDISPOSITION": "Ny chatt disposition", - "ENABLECUSTOMERATTACHMENT": "Aktivera kunden tillbehör", + "EDIT_AUTOREPLY": "Redigera auto-reply-meddelande", + "AUTOREPLY": "Auto-reply", + "NEW_CHATDISPOSITION": "Ny chatt-kategorisering", + "ENABLECUSTOMERATTACHMENT": "Kunden kan bifoga filer ", "OFFLINE_CHAT_BUTTON": "Offline Chat-knappen", "OFFLINESTATUS": "Offline status", "NAME": "Namn", - "CHATQUEUES": "Pratstund köer", - "SEARCH_FOR_ANYONE": "Sökning för någon", + "CHATQUEUES": "Chattköer", + "SEARCH_FOR_ANYONE": "Sök", "STRATEGY": "Strategi", - "AGENT_TIMEOUT": "Tidsgräns för agent", + "AGENT_TIMEOUT": "Agent Timeout", "DESCRIPTION": "Beskrivning", "KEY": "Nyckel", "ALIAS": "Alias", "VARIABLE": "Variabel", "INTERVAL": "Intervall", "EDIT_CLOSE": "Redigera stäng", - "TIMEZONE": "Timezone", + "TIMEZONE": "Tidszon", "MESSAGE": "Meddelande", - "ADVANCED": "Avancerade", - "FORWARDTRANSCRIPT": "Framåt-Transkriptet", - "FORWARDTRANSCRIPTMESSAGE": "Framåt-Transkriptet meddelande", - "SKIPMESSAGEBUTTON": "Hoppa över meddelande-knappen", + "ADVANCED": "Avancerat", + "FORWARDTRANSCRIPT": "Vidarebefordra transkriptet", + "FORWARDTRANSCRIPTMESSAGE": "Ärenderad vid vidarebefordan av transkriptet", + "SKIPMESSAGEBUTTON": "Hoppa över", "EDIT_MESSAGE": "Redigera meddelandet", - "CONDITION_AGREEMENT": "Villkor avtal", + "CONDITION_AGREEMENT": "Villkor", "NONE": "Ingen", "PRIORITY": "Prioritet", - "ONLINESTATUS": "Online-status", - "UNMANAGEDSTATUS": "Unmanaged status", - "AUTOCLOSE": "Aktivera kommando Autoclose", - "ENABLEUNMANAGEDNOTE": "Aktiverar automatiska meddelande", + "ONLINESTATUS": "Onlinestatus", + "UNMANAGEDSTATUS": "Icke managerad status", + "AUTOCLOSE": "Aktivera Auto-close", + "ENABLEUNMANAGEDNOTE": "Aktivera ej managerat meddelande", "UNMANAGEDMESSAGE": "Meddelande", "SKIPUNMANAGED": "Hoppa över meddelande", "SENDUNMANAGED": "Skicka meddelande", - "WEBSITESCRIPT": "Webbplats Script", + "WEBSITESCRIPT": "Script för webbsida", "DELETE_OFFLINEMESSAGE": "Ta bort", - "OFFLINEMESSAGES": "Offline meddelanden", - "FORWARD_OFFLINE": "Fram Offline", + "OFFLINEMESSAGES": "Offlinemeddelanden", + "FORWARD_OFFLINE": "Vidarebefordra offlinemeddelande", "SHOW_OFFLINEMESSAGE": "Visa", - "FORWARD_OFFLINE_ADDRESS": "Fram Offline adress", - "CLOSINGFORM": "Stänger formuläret", - "ENABLERATING": "Aktivera föräldraklassering", - "ENABLECUSTOMERWRITING": "Låt kunden skriftligen innan agent accepterar", + "FORWARD_OFFLINE_ADDRESS": "Adress för vidarebefordran av offlinemeddelande", + "CLOSINGFORM": "Stäng formuläret", + "ENABLERATING": "Aktivera betygsättning", + "ENABLECUSTOMERWRITING": "Låt kunden skriva innan agent accepterat", "ENABLEFEEDBACK": "Aktiverar återkoppling", - "RATINGTYPE": "Betyg typ", + "RATINGTYPE": "Betygsättningstyp", "CLOSINGMESSAGE": "Utgående meddelande", - "CLOSINGMESSAGEBUTTON": "Utgående meddelanden", + "CLOSINGMESSAGEBUTTON": "Skicka-knapp", "RATINGSTARSNUMBER": "Värderingsstjärnor nummer", "EDIT_GOTOIF": "Redigera GotoIf", "CONDITION": "Skick", - "TRUEPRIORITY": "True Priority", - "FALSEPRIORITY": "Falska prioritet", + "TRUEPRIORITY": "Sann prioritet", + "FALSEPRIORITY": "Falsk prioritet", "VALUE": "Värde", "WEBSITEALIAS": "Webbplatsen Alias", "ERRORS": { @@ -140,89 +140,89 @@ "SECRETACCESSKEY_REQUIRED": "Obligatoriskt fält", "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Obligatoriskt fält" }, - "CM_FIELD": "Contact Manager fält", - "CHATPROACTIVEACTIONS": "Förebyggande åtgärder", - "NEW_CHATPROACTIVEACTION": "Nya förebyggande åtgärder", - "EDIT_CHATPROACTIVEACTION": "Redigera proaktiva åtgärder", - "DELETE_CHATPROACTIVEACTION": "Ta bort proaktiva åtgärder", - "ADD_CHATPROACTIVEACTION": "Lägg till förebyggande åtgärder", - "NO_CHATPROACTIVEACTION_AVAILABLE": "Ingen förebyggande åtgärder", - "NO_OFFLINEMESSAGE_AVAILABLE": "Nej Offline meddelanden tillgängliga", + "CM_FIELD": "Kontakthanterarfältet", + "CHATPROACTIVEACTIONS": "Proaktiva åtgärder", + "NEW_CHATPROACTIVEACTION": "Ny proaktiv åtgärd", + "EDIT_CHATPROACTIVEACTION": "Redigera proaktiv åtgärd", + "DELETE_CHATPROACTIVEACTION": "Ta bort proaktiv åtgärd", + "ADD_CHATPROACTIVEACTION": "Lägg till proaktiv åtgärd", + "NO_CHATPROACTIVEACTION_AVAILABLE": "Ing proaktiva åtgärder", + "NO_OFFLINEMESSAGE_AVAILABLE": "Inga offlinemeddelanden tillgängliga", "MOUSEOVER": "Musen över", - "TIMEOUT": "Tidsgräns", + "TIMEOUT": "Timeout", "TYPE": "Typ", - "SELECTOR": "Väljarvred", + "SELECTOR": "Selektor", "AGENT": "Agent", "GOTO": "Goto", "GOTOIF": "GotoIf", "NOOP": "Noop", "QUEUE": "Kö", - "BUILDER": "Byggmästare", + "BUILDER": "Snippetbyggare", "PREVIEW": "Förhandsgranska", - "EDIT_AGENT": "Redigera Agent", + "EDIT_AGENT": "Redigera agent", "EDIT_QUEUE": "Redigera kö", "EDIT_GOTO": "Redigera Goto", "EDIT_GOTOIf": "Redigera GotoIf", "EDIT_NOOP": "Redigera Noop", - "ADD_CHATQUEUE": "Lägg till pratstund kö", - "EDIT_CHATQUEUE": "Redigera Chat kö", - "DELETE_CHATQUEUE": "Ta bort chatt kö", + "ADD_CHATQUEUE": "Lägg till chattkö", + "EDIT_CHATQUEUE": "Redigera chattkö", + "DELETE_CHATQUEUE": "Ta bort chattkö", "SETTINGS": "Inställningar", "SAVE": "Spara", "SCRIPT": "Skript", "TOKEN": "Token", "CREATED_AT": "Skapad", - "CHATWEBSITES": "Chat webbplatser", + "CHATWEBSITES": "Chattwebbplatser", "MOTIONADDRESS": "Motion adress", "MOTIONPROXY": "Proxy eller Motion domän", - "ADD_CHATWEBSITE": "Lägg till pratstund webbplats", - "EDIT_CHATWEBSITE": "Redigera Chat webbplats", - "DELETE_CHATWEBSITE": "Ta bort chatt webbplats", + "ADD_CHATWEBSITE": "Lägg till chattwebbplats", + "EDIT_CHATWEBSITE": "Redigera chattwebbplats", + "DELETE_CHATWEBSITE": "Ta bort chattwebbplats", "LIST": "Lista", - "SNIPPET": "Kurva", + "SNIPPET": "Snippet", "FORMS": "Formulär", "UP": "Upp", "DOWN": "Nedåt", "COLLAPSE": "Komprimera", - "PROACTIVEACTIONS": "Förebyggande åtgärder", - "DISPOSITIONS": "Dispositioner", + "PROACTIVEACTIONS": "Proaktiva åtgärder", + "DISPOSITIONS": "Kategorier", "WEBHOOKS": "WebHooks", "ACTIONS": "Åtgärder", "FIDELITY": "Fidelity", "APPEARANCE": "Utseende", "MAINCOLOR": "Huvudfärgen", - "FOCUSCOLOR": "Fokusen färg", + "FOCUSCOLOR": "Fokusfärg", "BUTTONCOLOR": "Färg", - "HEADERSHAPE": "Skärbordets form", + "HEADERSHAPE": "Header-form", "ANIMATION": "Animation", "DEFAULT": "Standard", "WHITELABEL": "Vit etikett", "LOGO": "Logotyp", - "DOWNLOADTRANSCRIPT": "Hämta utskrift", - "ENQUIRY_ENABLE": "Undersökning aktiverar", - "ENQUIRY_FORWARDING": "Utredning vidarebefordran", - "ENQUIRY_FORWARDING_ADDRESS": "Utredning vidarebefordringsadress", + "DOWNLOADTRANSCRIPT": "Ladda ned transkript", + "ENQUIRY_ENABLE": "Aktivera undersökning", + "ENQUIRY_FORWARDING": "Vidarebefordra undersökning", + "ENQUIRY_FORWARDING_ADDRESS": "Adress för vidarebefordran av undersökning", "LABELS": "Etiketter", - "HEADER_ONLINE": "Online skärbord", - "ONLINE_MESSAGE": "Online-meddelandet", - "NAME_TITLE": "Namn etikett", - "USERNAME_PLACEHOLDER": "Användarnamn Ange platshållare", + "HEADER_ONLINE": "Online-header", + "ONLINE_MESSAGE": "Online-meddelande", + "NAME_TITLE": "Namnetikett", + "USERNAME_PLACEHOLDER": "Användarnamn placeholder", "EMAIL_TITLE": "Email-etikett", - "EMAIL_PLACEHOLDER": "Email-platshållare", - "START_CHAT_BUTTON": "'Start Chat-knappen", - "AGENTS_BUSY": "Upptagna agenter meddelande", - "HEADER_OFFLINE": "Offline rubrik", - "OFFLINE_MESSAGE": "Offline meddelande", - "MESSAGE_TITLE": "Meddelande etikett", - "ENQUIRY_MESSAGE_PLACEHOLDER": "Förfrågan meddelande Input platshållare", - "ENQUIRY_BUTTON": "Utredning Knapptext", - "RATING_MESSAGE": "Betyg meddelande", - "RATING_SEND": "Betyg Skicka text", - "RATING_SKIP": "Betyg Skip Knappen Text", + "EMAIL_PLACEHOLDER": "Epost-placeholder", + "START_CHAT_BUTTON": "Start Chat-knappen", + "AGENTS_BUSY": "Meddelande då alla agenter är upptagna", + "HEADER_OFFLINE": "Rubrik offline", + "OFFLINE_MESSAGE": "Offlinemeddelande", + "MESSAGE_TITLE": "Meddelandetitel", + "ENQUIRY_MESSAGE_PLACEHOLDER": "Undersökningsmeddelande placeholder", + "ENQUIRY_BUTTON": "Undersökning knapptext", + "RATING_MESSAGE": "Betygmeddelande", + "RATING_SEND": "Betygsknappstext", + "RATING_SKIP": "\"Skippa att skicka betyg\"-knappstext", "ONLINE": "Online", "OFFLINE": "Offline", "PROACTIVE": "Proaktiv", - "ACCEPT": "Godta", + "ACCEPT": "Acceptera", "ACCEPTMETHOD": "Acceptera metod", "ACCEPTURL": "Acceptera URL", "REJECT": "Avvisa", @@ -235,7 +235,7 @@ "GENERAL": "Allmänt", "SELECTED": "Vald", "SELECT_ALL": "Markera alla", - "SELECT_NONE": "Välj ingen", + "SELECT_NONE": "Markera ingen", "BACK": "Tillbaka", "HELP": { "MAPKEY": "Följande Motion Contact Manager:", @@ -267,54 +267,54 @@ }, "ADDRESS": "Adress", "ONLINESTATE": "Online-status", - "OFFLINESTATE": "Offline status", - "RATINGSTATE": "Betyg stat", + "OFFLINESTATE": "Offline-status", + "RATINGSTATE": "Betygsstatus", "ENQUIRY": "Undersökning", - "OFFLINETEMPLATE": "Offline mall", - "CHATDISPOSITIONS": "Pratstund dispositioner", - "NO_CHATDISPOSITION_AVAILABLE": "Ingen chatt dispositioner tillgängliga", - "ADD_CHATDISPOSITION": "Lägg till pratstund disposition", + "OFFLINETEMPLATE": "Offlinemall", + "CHATDISPOSITIONS": "Chattkategorier", + "NO_CHATDISPOSITION_AVAILABLE": "Inga chattkategorier tillgänliga", + "ADD_CHATDISPOSITION": "Lägg till chattkategori", "DELETE": "Ta bort", - "EDIT_CHATDISPOSITION": "Redigera Chat Disposition", - "DELETE_CHATDISPOSITION": "Ta bort chatt disposition", + "EDIT_CHATDISPOSITION": "Redigera chattkategori", + "DELETE_CHATDISPOSITION": "Ta bort chattkategori", "CHAT": "Chatt", "ID": "Id", - "NEW_CHATQUEUE": "Ny chatt kö", - "NEW_CHATWEBSITE": "Ny chatt webbplats", + "NEW_CHATQUEUE": "Ny chattkö", + "NEW_CHATWEBSITE": "Ny chattwebbplats", "ROUNDED": "Rundad", "SQUARED": "Fyrkantig", - "NO_AVAILABLE_INFO": "Inga tillgängliga info", - "ALL_TEAMS": "Alla grupper", - "SELECTED_TEAMS": "Valda grupper", - "PAGE": "Sidan", + "NO_AVAILABLE_INFO": "Ingen tillgängliga info", + "ALL_TEAMS": "Alla teams", + "SELECTED_TEAMS": "Valda teams", + "PAGE": "Sida", "ROWSPERPAGE": "Rader per sida", "OF": "Av", "CONTACT": "Kontakta", "STARTEDAT": "Började på", "STATUS": "Status", "CLOSED": "Stängd", - "OPENED": "Öppna", - "OPEN": "Öppna", + "OPENED": "Öppnen", + "OPEN": "Öppnen", "ACCOUNT": "Konto", - "INTERACTION": "Samverkan", + "INTERACTION": "Interaktion", "INTERACTIONS": "Interaktioner", "WEBSITE": "Webbplats", "ALL": "Alla", "SELECT_STATUS": "Välj en status", "FILTER": "Filter", - "FILTERS": "Filter", - "TEAMADD_CHATQUEUE": "Lägg till teamet att chatta kö", - "AGENTADD_CHATQUEUE": "Lägg medlet att chatta kö", + "FILTERS": "Filters", + "TEAMADD_CHATQUEUE": "Lägg till team till chattkö", + "AGENTADD_CHATQUEUE": "Lägg till agent till chattkö", "ALL_AGENTS": "Alla agenter", "SELECTED_AGENTS": "Valda agenter", "CLOSEDAT": "Stängd", - "DISPOSITION": "Disposition", + "DISPOSITION": "Kategori", "CREATEDAT": "Skapad", "NOTES": "Anteckningar", - "NO_INTERACTION_AVAILABLE": "Inga interaktioner tillgänglig", + "NO_INTERACTION_AVAILABLE": "Inga interaktioner tillgängliga", "SELECTED_WEBSITE": "Välj en webbplats", - "GOTOP": "Gotop", - "EDIT_GOTOP": "Redigera Gotop", + "GOTOP": "Goto", + "EDIT_GOTOP": "Redigera Goto", "SELECT_WEBSITE": "Välj en webbplats", "INFO": "Info", "OFFLINEMESSAGES_CHATWEBSITE": "Gå till offline-meddelanden", @@ -322,121 +322,121 @@ "WAITINGMESSAGE": "Väntar på meddelande", "RATING": "Betyg", "NO_RATINGVALUE": "Inga betyg", - "AGENTSADD_QUEUE": "Lägg medlet att chatta kö", + "AGENTSADD_QUEUE": "Lägg till agent till chattkö", "QUEUES": "Köer", "LOGGED_IN": "Inloggad", "PAUSED": "Pausad", - "READY": "Klar", + "READY": "Redo", "WAITING": "Väntar", - "WRITING": "Författa", - "MAIL": "Post", + "WRITING": "Skriver", + "MAIL": "Epost", "SMS": "SMS", "OPENCHANNEL": "Openchannel", "FAX": "Fax", - "PAUSE": "Pausa", + "PAUSE": "Paus", "REALTIME": "Realtime", "AGENTS": "Agenter", "FULLNAME": "Fullständigt namn", "INTERNAL": "Intern", - "PHONE_STATE": "Telefon stat", + "PHONE_STATE": "Telefonstatus", "PHONE_STATUS": "Telefonstatus", - "LOGOUT": "Utloggning", - "UNPAUSE": "Slutet paus", - "AGENTADD_QUEUE": "Lägg medlet att chatta kö", - "DEFAULT_PAUSE": "Standard paus", + "LOGOUT": "Logga ut", + "UNPAUSE": "Avsluta paus", + "AGENTADD_QUEUE": "Lägg till agent till chattkö", + "DEFAULT_PAUSE": "Defaultpaus", "UNKNOWN": "Okänd", - "UNREGISTERED": "Oregistrerade", + "UNREGISTERED": "Ej registrerad", "UNAVAILABLE": "Otillgänglig", "NOT_INUSE": "Inte använd", - "REACHABLE": "Nå", + "REACHABLE": "Nåbar", "IN_USE": "I användning", "VOICE": "Röst", "NO_AGENT_ONLINE": "Ingen Agent Online", - "GOTOREALTIME_CHATQUEUE": "Gå till realtid chatt kö", + "GOTOREALTIME_CHATQUEUE": "Gå till realtid för chattkö", "PARTIALPAUSE": "Partiell paus", "BUSY": "Upptagen", "TIMER": "Timer", - "IDLE": "Tomgång", + "IDLE": "Idle", "CAPACITY": "Kapacitet", "TAGS": "Etiketter", - "SHOWAGENTAVATAR": "Visa personliga ombud avatar", - "AGENTAVATAR": "Agent Avatar", - "SPYINTERACTION": "Spion", + "SHOWAGENTAVATAR": "Visa personlig agentavatar", + "AGENTAVATAR": "Agentavatar", + "SPYINTERACTION": "Spy", "INTERACTIONS_CHATWEBSITE": "Gå till interaktioner", "REFRESH_INTERACTIONS": "Uppdatera interaktioner", "CLOSINGQUESTION": "Slutfråga", "WEBSCRIPT": "Webbskript", - "NO_CHATCANNEDANSWER_AVAILABLE": "Inga konserverade svar tillgängliga", - "NEW_CHATCANNEDANSWER": "Nytt konserverat svar", - "ADD_CHATCANNEDANSWER": "Lägg till konserverat svar", + "NO_CHATCANNEDANSWER_AVAILABLE": "Inga förhandsinställda svar tillgängliga", + "NEW_CHATCANNEDANSWER": "Nytt förhandsinställda svar", + "ADD_CHATCANNEDANSWER": "Lägg till förhandsinställda svar", "EDIT_CHATCANNEDANSWER": "Redigera", "DELETE_CHATCANNEDANSWER": "Radera", - "OFFLINEMESSAGESUBJECT": "Meddelandets Ämne", - "OFFLINEMESSAGEBODY": "Meddelandeorgan", + "OFFLINEMESSAGESUBJECT": "Meddelandets ämne", + "OFFLINEMESSAGEBODY": "Meddelandets innehåll", "FORMSUBMITSUCCESSMESSAGE": "Form Skicka Succesmeddelande", "FORMSUBMITFAILUREMESSAGE": "Formuläret skickar felmeddelande", "PLACEHOLDERMESSAGE": "Meddelande platshållare", - "NOTETITLE": "Notits titel", + "NOTETITLE": "Notisens titel", "DELETE_INTERACTION": "Ta bort interaktion", "FONTSIZE": "Textstorlek", - "TEXTCOLOR": "Text färg", + "TEXTCOLOR": "Textfärg", "COMMAND": "Kommando", "EDIT_SYSTEM": "Redigera system", - "SYSTEM": "Systemet", - "NOTIFICATION": "Underrättelse", - "NOTIFICATIONSHAKE": "Skaka", + "SYSTEM": "System", + "NOTIFICATION": "Notis", + "NOTIFICATIONSHAKE": "Skakning", "NOTIFICATIONSOUND": "Ljud", "NOTIFICATIONTEMPLATE": "Mall", "HIDEWHENOFFLINE": "Dölj", - "INSERT_MESSAGE_HERE": "Sätt ditt textmeddelande här", - "AGENTALIAS": "Agent Alias", - "AGENTFULLNAME": "Agent Fullnamn", + "INSERT_MESSAGE_HERE": "Skriv ditt textmeddelande här", + "AGENTALIAS": "Agentalias", + "AGENTFULLNAME": "Agentens fullständiga namn", "AGENTIDENTIFIER": "Identifierare", "WAITFORTHEASSIGNEDAGENT": "Vänta på den tilldelade agenten", - "ALIGNMENT": "Inriktning", + "ALIGNMENT": "Alignment", "BOTTOM_RIGHT": "Nere till höger", "LEFT": "Vänster", "RIGHT": "Höger", "VERTICALALIGNMENT": "Vertikal inriktning", - "POSITION": "Placera", + "POSITION": "Position", "VERTICALPOSITION": "Vertikal position", - "SNIPPETSWIPEOUT": "Snippet svep ut", - "ALTERNATE": "Alternativ", - "CENTERED": "centrerad", - "CUSTOMERAVATAR": "Kund Avatar", - "DEFAULTTITLE": "Standard Titel", - "MESSAGESALIGNMENT": "Meddelanden Justering", + "SNIPPETSWIPEOUT": "Snippet sveper ut", + "ALTERNATE": "Alternera", + "CENTERED": "Centrerad", + "CUSTOMERAVATAR": "Kundavatar", + "DEFAULTTITLE": "Standardtitel", + "MESSAGESALIGNMENT": "Meddelandenjustering", "SHOWCUSTOMERAVATAR": "Visa kundens avatar", - "CUSTOMERALIAS": "Kund Alias", - "EDIT_TAG": "Redigera tagg", - "TAG": "Märka", + "CUSTOMERALIAS": "Kundalias", + "EDIT_TAG": "Redigera etikett", + "TAG": "Etikett", "AGENTADD_CHATWEBSITE": "Lägg till agent till chattwebbplats", "BACKGROUNDCOLOR": "Bakgrundsfärg", "MESSAGEFONTSIZE": "Meddelandetextstorlek", "AGENTTRANSFER": "Agentöverföring", - "AGENTTRANSFERTIMEOUT": "Agent Transfer Timeout", + "AGENTTRANSFERTIMEOUT": "Timeout för agentöverföring", "DIALOGFLOW": "Dialogflow", - "EDIT_DIALOGFLOW": "Redigera dialogflöde", + "EDIT_DIALOGFLOW": "Redigera dialogflow", "LANGUAGE": "Språk", "QUEUETRANSFER": "Kööverföring", - "QUEUETRANSFERTIMEOUT": "Köröverföringstidsavbrott", - "SYSTEMALIAS": "System Alias", - "SYSTEMAVATAR": "System Avatar", + "QUEUETRANSFERTIMEOUT": "Timeout för kööverföring", + "SYSTEMALIAS": "Systemalias", + "SYSTEMAVATAR": "Systemavatar", "TRANSFER": "Överföra", "WELCOMEMESSAGE": "Välkomstmeddelande", - "ENABLECUSTOMERCHECKMARKS": "Aktivera kundlevererade / läsanmälningar", - "CANNEDANSWERS": "Konserverade svar", - "CHATCANNEDANSWERS": "Konserverade svar", + "ENABLECUSTOMERCHECKMARKS": "Aktivera kundläsningscheckbox", + "CANNEDANSWERS": "Förhandsinställda svar", + "CHATCANNEDANSWERS": "Förhandsinställda svar", "DOWNLOAD_INTERACTION": "Ladda ner", "LOGIN_TIME": "Inloggningstid", "PAUSE_TIME": "Paus tid", - "ACCESSKEYID": "Åtkomstnyckel ID", - "BOTNAME": "Bot Namn", + "ACCESSKEYID": "Åtkomstnyckel-ID", + "BOTNAME": "Botnamn", "EDIT_AMAZONLEX": "Redigera Amazon Lex", "LEXREGION": "Område", - "SECRETACCESSKEY": "Hemlig åtkomstnyckel", + "SECRETACCESSKEY": "Secret Access Key", "TEAMS_ASSOCIATION": "Team Association", - "MANDATORYDISPOSITION": "Obligatorisk disposition", - "MANDATORYDISPOSITIONPAUSEID": "Pausa för att använda om obligatorisk disposition är aktiverad" + "MANDATORYDISPOSITION": "Obligatorisk kategorisering", + "MANDATORYDISPOSITIONPAUSEID": "Pausa för atta nvända om obligatorisk kategorisering är aktiverad" } } \ No newline at end of file diff --git a/public/app/main/apps/contactmanager/i18n/sv.json b/public/app/main/apps/contactmanager/i18n/sv.json index a89b9aa..9cf03d9 100644 --- a/public/app/main/apps/contactmanager/i18n/sv.json +++ b/public/app/main/apps/contactmanager/i18n/sv.json @@ -10,15 +10,15 @@ "STARTTIME": "Starttid", "ENDTIME": "Sluttid", "MOTION_BULL": "Motion Bull", - "HOPPER": "Matningsmagasinet", - "FINAL": "Hopper slutliga", - "HISTORY": "Hopper historia", + "HOPPER": "Hopper", + "FINAL": "Hopper slutlig", + "HISTORY": "Hopperhistorik", "SCHEDULEDAT": "Planerad till", - "SEARCH_FOR_ANYONE": "Sökning för någon", + "SEARCH_FOR_ANYONE": "Sök", "EDIT_LIST": "Redigera lista", - "EDIT_HOPPER": "Redigera matningsmagasinet", + "EDIT_HOPPER": "Redigera hoppern", "DELETE_LIST": "Radera lista", - "DELETE_HOPPER": "Ta bort matningsmagasinet", + "DELETE_HOPPER": "Ta bort hoppern", "RELOAD": "Ladda om", "NO_COMPANIES": "Inget företag", "NO_AVAILABLE_ITEMS": "Inga tillgängliga poster", @@ -33,10 +33,10 @@ "PHONEBAR_API": "Kontrollera att MotionBar är igång och att fjärrkontrollen för agent är aktiverad" }, "DESCRIPTION": "Beskrivning", - "DISPOSITION": "Disposition", - "DISPOSITIONS": "Dispositioner", - "VOICEDISPOSITIONS": "Voice dispositioner", - "NEW_VOICEDISPOSITION": "Ny röst disposition", + "DISPOSITION": "Kategori", + "DISPOSITIONS": "Kategorisera", + "VOICEDISPOSITIONS": "Röstkategorier", + "NEW_VOICEDISPOSITION": "Ny röstkategori", "CUSTOM_FIELDS": "Anpassade fält", "ADD_LIST": "Lägg till lista", "BACK": "Tillbaka", @@ -66,7 +66,7 @@ "PERSONAL_INFO": "Personlig Info", "MOBILE": "Mobil", "FAX": "Fax", - "TAGS": "Etiketter", + "TAGS": "Taggar", "SHOW_ALL_FIELDS": "Visa alla fält", "FEWER_FIELDS": "Visa färre fält", "COUNTRY": "Land", @@ -75,14 +75,14 @@ "POSTALCODE": "Postnummer", "DELETE": "Ta bort", "DELETE_ALL": "Ta bort alla", - "CONTACTMANAGER": "Kontakter som chefen", + "CONTACTMANAGER": "Kontakthanteraren", "ID": "Id", "SETTINGS": "Inställningar", "GENERAL": "Allmänt", "CUSTOMFIELDS": "Anpassade fält", "NO_CUSTOMFIELD_AVAILABLE": "Inga egna fält", "ADD_TAG": "Lägg till etikett", - "NO_TAG": "Inga taggar", + "NO_TAG": "Inga etiketter", "ALIAS": "Alias", "TYPE": "Typ", "VALUE": "Värde", @@ -105,10 +105,10 @@ "VAT": "Moms", "COMPANYID": "Företags-ID", "WEBSITE": "Webbplats", - "EMAIL_DOMAIN": "Email-domänen", + "EMAIL_DOMAIN": "Epost-domänen", "ADDRESS": "Adress", "POSTAL_CODE": "Postnummer", - "SHIPMENTADDRESS": "Leverans adress", + "SHIPMENTADDRESS": "Leveransadress", "COPY_CONTACT": "Kopiera kontakt", "GOTOCONTACTS_LIST": "Visa kontakter", "GOTOCONTACTS_COMPANY": "Visa kontakter", @@ -117,7 +117,7 @@ "NO_AVAILABLE_INFO": "Inga tillgängliga info", "NONE": "Ingen", "FULLNAME": "Fullständigt namn", - "CHECK_DUPLICATES": "Kontrollera duplikat", + "CHECK_DUPLICATES": "Kontrollera dublett", "DUPLICATES": "Dubblettar", "UPLOAD_CSV": "Upload CSV", "TAG": "Tag", @@ -132,10 +132,10 @@ "GOTO_COMPANY": "Visa kontakter", "REQUIRED": "Krävs", "GLOBALCUSTOMFIELDS": "Globalt anpassade fält", - "NEW_GLOBALCUSTOMFIELD": "Nya anpassade fält", - "ADD_GLOBALCUSTOMFIELD": "Lägg till anpassade fält", - "EDIT_GLOBALCUSTOMFIELD": "Redigera anpassade fält", - "DELETE_GLOBALCUSTOMFIELD": "Radera Anpassade fält", + "NEW_GLOBALCUSTOMFIELD": "Nytt anpassat fält", + "ADD_GLOBALCUSTOMFIELD": "Lägg till anpassat fält", + "EDIT_GLOBALCUSTOMFIELD": "Redigera anpassat fält", + "DELETE_GLOBALCUSTOMFIELD": "Radera anpassat fält", "JSCRIPTY": "Jscripty", "SESSIONS": "Sessioner", "AGENT": "Agent", @@ -147,7 +147,7 @@ "PHONEBAR_API": "Om du vill aktivera klicka-för-att-ringa in ett telefonnummer och kontrollera att fjärrkontrollen är aktiverad för agent", "PHONEBAR_API_MESSAGE": "För att aktivera klicka för att ringa, sätt in ett telefonnummer och kontrollera fjärrkontrollen för att agenten är påslagen" }, - "PAGE": "Sidan", + "PAGE": "Sid", "ROWSPERPAGE": "Rader per sida", "OF": "Av", "SOCIAL": "Sociala", @@ -162,6 +162,6 @@ "PRIORITY": "Prioritet", "USERID": "Återkalla agent-ID", "CUSTOMER_JOURNEY": "Kundresa", - "SELECT_TAG": "Välj taggar" + "SELECT_TAG": "Välj etiketter" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/sv.json b/public/app/main/apps/dashboards/i18n/sv.json index 7a26b63..313cf2b 100644 --- a/public/app/main/apps/dashboards/i18n/sv.json +++ b/public/app/main/apps/dashboards/i18n/sv.json @@ -1,6 +1,6 @@ { "DASHBOARDS": { - "HOME": "Home", + "HOME": "Hem", "CHAT": "Chat", "MAIL": "Email", "SMS": "Sms", @@ -34,7 +34,7 @@ "MOTION_BULL": "Motion Bull", "LIMITED": "Begränsad", "LIMITED_TEXT": "Kampanjer samtal/begränsade", - "DASHBOARDS": "Instrumentpaneler", + "DASHBOARDS": "Dashboards", "RECORDINGS": "Inspelningar", "TODAY_MOTION_BULL_STATS": "Idag Motion Bull statistik", "ORIGINATED": "Ursprung", @@ -82,7 +82,7 @@ "INBOUND_ANSWERED": "Svarade", "OUTBOUND_ANSWERED": "Svarade", "ABANDONED": "Övergivna", - "TOTAL_OFFERED": "Totalt erbjuds", + "TOTAL_OFFERED": "Total mängd chattar", "AVG_HOLD_TIME": "Genomsnittlig parkeringstid", "INBOUND_ANSWER_RATE": "Svar kurs", "OUTBOUND_ANSWER_RATE": "Svar kurs", @@ -136,7 +136,7 @@ "WELCOME_MESSAGE": "Använd den vänstra sidofältet för att navigera genom avsnitten.", "ADD": "Lägg till", "CONTACTMANAGER": "Contact Manager", - "DASHBOARD": "Instrumentbräda", + "DASHBOARD": "Dashboard", "EDIT_CONTACT": "Redigera kontakt", "EMAIL": "Email", "FULLNAME": "Fullname", @@ -149,16 +149,16 @@ "MYCONTACTS": "Mina kontakter", "ADD_CONTACT": "Lägg till kontakt", "RELOAD": "Ladda om", - "WAITING_TEXT": "Kö samtal", + "WAITING_TEXT": "Chattar i kö", "TALKING_TEXT": "Aktiv kö samtal", "INBOUND_ANSWERED_TEXT": "Besvarat kön samtal", "ABANDONED_TEXT": "Övergivna kön samtal", "DROP_RATE_TEXT": "Kön samtal sänkhastighet", - "TOTAL_OFFERED_TEXT": "Total kön samtal", - "AVG_HOLD_TIME_TEXT": "Kön samtal Genomsn. väntetid", + "TOTAL_OFFERED_TEXT": "TOTAL MÄNGD CHATTAR", + "AVG_HOLD_TIME_TEXT": "Genomsnittlig kötid", "AVG_TALK_TIME_TEXT": "Kön samtal samtalstid", "INBOUND_ANSWER_RATE_TEXT": "Kön Samtal Besvara kurs", - "UNMANAGED_TEXT": "Unmanaged kön samtal", + "UNMANAGED_TEXT": "Omanagerade chattar", "TOTAL_TEXT": "Summa utgående samtal", "OUTBOUND_ANSWERED_TEXT": "Utgående besvarade samtal", "TOT_DURATION_TEXT": "Utgående samtal varaktighet", @@ -220,9 +220,9 @@ "LOADING_INTERACTION": "Vi laddar interaktionen ...", "JANUARY": "januari", "FEBRUARY": "februari", - "MARCH": "Mars", + "MARCH": "mars", "APRIL": "april", - "MAY": "Maj", + "MAY": "maj", "JUNE": "juni", "JULY": "juli", "AUGUST": "augusti", @@ -231,12 +231,12 @@ "NOVEMBER": "november", "DECEMBER": "december", "MON": "Mon", - "TUE": "tue", - "WED": "ons", + "TUE": "Tue", + "WED": "Ons", "THU": "Thu", "FRI": "Fri", - "SAT": "lör", - "SUN": "Sol", + "SAT": "Lör", + "SUN": "Sön", "DELETE": "Radera", "LAST_3_DAYS": "Senaste 3 dagarna", "LAST_YEAR": "Förra året", @@ -281,38 +281,38 @@ "AGENTS": "agenter", "TRANSFER": "Överföra", "NO_DISPOSITION_SET": "Ingen dispositionsuppsättning", - "ABANDONED_RATE": "Övergiven kurs", - "ABANDONED_RATE_TEXT": "Interaktionsavvikelse", - "AVG_MANAGED_TIME": "AVG-ledningstid", - "AVG_MANAGED_TIME_TEXT": "Interaktioner AVG-ledningstid", - "MANAGED": "Managed", - "MANAGED_RATE": "Hanterad kurs", - "MANAGED_RATE_TEXT": "Interaktionerad hanterad kurs", - "MANAGED_TEXT": "Administrerade interaktioner", - "OPENED_TEXT": "Öppnade interaktioner", + "ABANDONED_RATE": "ANDEL MISSADE CHATTAR", + "ABANDONED_RATE_TEXT": "ANDEL MISSADE CHATTAR", + "AVG_MANAGED_TIME": "Genomsnittlig tid", + "AVG_MANAGED_TIME_TEXT": "Genomsnittlig tid per chatt", + "MANAGED": "Besvarade", + "MANAGED_RATE": "Andel besvarade chattar", + "MANAGED_RATE_TEXT": "Andel besvarade chattar", + "MANAGED_TEXT": "Besvarade chattar", + "OPENED_TEXT": "Pågående chatter", "TODAY_INTERACTIONS_STATS": "Interaktioner Dagliga statistik", "UNMANAGED_RATE": "Omanövrerad ränta", "UNMANAGED_RATE_TEXT": "Interaktioner utan hantering", - "VOICE_ABANDONED": "ÖVERGIVEN", - "VOICE_ABANDONED_TEXT": "FÖRHANDLADE QUEUE CALLS", - "VOICE_ABANDON_RATE": "ABANDON RATE", - "VOICE_ABANDON_RATE_TEXT": "QUEUE CALLS ABANDON RATE", - "VOICE_ANSWERED": "besvaras", - "VOICE_ANSWERED_TEXT": "ANSWERED QUEUE CALLS", - "VOICE_ANSWER_RATE": "ANSWER RATE", - "VOICE_ANSWER_RATE_TEXT": "QUEUE CALLS ANSWER RATE", - "VOICE_AVG_HOLD_TIME": "GEMENSAM HOLDTID", - "VOICE_AVG_HOLD_TIME_TEXT": "QUEUE CALLS AVG HOLD TIME", - "VOICE_AVG_TALK_TIME": "GEMENSAM TALKTID", - "VOICE_AVG_TALK_TIME_TEXT": "QUEUE RALLER TALKTID", + "VOICE_ABANDONED": "MISSADE", + "VOICE_ABANDONED_TEXT": "MISSADE SAMTAL", + "VOICE_ABANDON_RATE": "ANDEL MISSADE SAMTAL", + "VOICE_ABANDON_RATE_TEXT": "ANDEL MISSADE SAMTAL", + "VOICE_ANSWERED": "BESVARADE", + "VOICE_ANSWERED_TEXT": "BESVARADE SAMTAL", + "VOICE_ANSWER_RATE": "a", + "VOICE_ANSWER_RATE_TEXT": "ANDEL BESVARADE SAMTAL", + "VOICE_AVG_HOLD_TIME": "GENOMSNITTLIG KÖTID", + "VOICE_AVG_HOLD_TIME_TEXT": "GENOMSNITTLIG KÖTID FÖR SAMTAL", + "VOICE_AVG_TALK_TIME": "GENOMSNITTLIG SAMTALSLÄNGD", + "VOICE_AVG_TALK_TIME_TEXT": "GENOMSNITTLIG SAMTALSLÄNGD FÖR SAMTAL", "VOICE_TALKING": "TALANDE", - "VOICE_TALKING_TEXT": "ACTIVE QUEUE CALLS", + "VOICE_TALKING_TEXT": "PÅGÅENDE SAMTAL", "VOICE_TOTAL_OFFERED": "TOTALT ERBJUDET", - "VOICE_TOTAL_OFFERED_TEXT": "TOTAL QUEUE CALLS", + "VOICE_TOTAL_OFFERED_TEXT": "TOTALT ANTAL SAMTAL", "VOICE_UNMANAGED": "opåverkad", - "VOICE_UNMANAGED_TEXT": "UNMANAGED QUEUE CALLS", + "VOICE_UNMANAGED_TEXT": "EJ MANAGERADE SAMTAL", "VOICE_WAITING": "VÄNTAR", - "VOICE_WAITING_TEXT": "Väntar QUEUE CALLS", + "VOICE_WAITING_TEXT": "SAMTAL I KÖ", "DOWNLOAD": "Ladda ner", "SCHEDULED_CALLS": "Schemalagda samtal", "PRIVATE": "Privat", diff --git a/public/app/main/apps/jscripty/i18n/sv.json b/public/app/main/apps/jscripty/i18n/sv.json index ecd0256..8f3d9af 100644 --- a/public/app/main/apps/jscripty/i18n/sv.json +++ b/public/app/main/apps/jscripty/i18n/sv.json @@ -1,11 +1,11 @@ { "JSCRIPTY": { "NAME": "Namn", - "SEARCH_FOR_ANYONE": "Sökning för någon", + "SEARCH_FOR_ANYONE": "Sök", "BACK": "Tillbaka", "SELECTED": "Vald", "SELECT_ALL": "Markera alla", - "SELECT_NONE": "Välj ingen", + "SELECT_NONE": "Markera ingen", "DESCRIPTION": "Beskrivning", "ERRORS": { "NAME_REQUIRED": "Namnet är obligatoriskt", @@ -20,207 +20,207 @@ "DELETE_PROJECT": "Ta bort projekt", "JSCRIPTY": "Jscripty", "ID": "Id", - "PROJECT": "Projektet", + "PROJECT": "Projekt", "CREATED_AT": "Skapad", "NEW_PROJECT": "Nytt projekt", "EDIT": "Redigera", "SETTINGS": "Inställningar", "GENERAL": "Allmänt", - "BUILDER": "Byggmästare", + "BUILDER": "Designer", "PREVIEW": "Förhandsgranska", "OPEN_CONTACT": "Öppen kontakt", "HELP": { "NAME": "Endast siffror, bokstäver och särskilda tecken (_) stöds", "ENABLEUNCOMPLETESAVE": "Beviljar till räddar agenten session även om undersökningen inte är avslutad" }, - "PAGE": "Sidan", + "PAGE": "Sida", "ROWSPERPAGE": "Rader per sida", "OF": "Av", - "JSCRIPTYSESSIONS": "Projektet sessioner", + "JSCRIPTYSESSIONS": "Jscripty-sessioner", "SESSIONS": "Sessioner", "STARTTIME": "Starttid", "ENDTIME": "Sluttid", - "MEMBERNAME": "Ledamot namn", - "CALLERIDNUM": "Callernummret", - "NO_SESSION_AVAILABLE": "Några sessioner tillgängliga", - "SESSION_RESULTS": "Session resultat", - "SHOW_QUESTIONS_SESSION": "Visa Session resultat", + "MEMBERNAME": "Agentnamn", + "CALLERIDNUM": "Inringandes nummer", + "NO_SESSION_AVAILABLE": "Inga sessioner tillgängliga", + "SESSION_RESULTS": "Sessionresultat", + "SHOW_QUESTIONS_SESSION": "Visa sessionresultat", "ANSWERS": "Svar", - "NO_RESULTS_AVAILABLE": "Inga resultat", + "NO_RESULTS_AVAILABLE": "Inga resultat tillgängliga", "TOTAL": "Totalt", "ANSWER": "Svar", "EXPORT_TO_CSV": "Exportera till CSV", "NO_ANSWERS_AVAILABLE": "Inga svar tillgängliga", "DELETE_SESSION": "Ta bort sessionen", - "RESET_SESSION": "Återställa sessionen", + "RESET_SESSION": "Återställ sessionen", "YES": "Ja", - "NO": "Nr", + "NO": "Nej", "DO_YOU_WANT_TO_RESET_SESSION": "Vill du återställa sessionen?", "ALL_SURVEY_DATA_WILL_BE_LOST": "Alla enkätsvar kommer att gå förlorade!", - "ENABLEUNCOMPLETESAVE": "Aktivera ofullständiga spara", + "ENABLEUNCOMPLETESAVE": "Aktivera ofullständigt sparande", "SUBMIT": "Skicka", - "PROJECT_NOT_AVAILABLE": "Projektet är inte tillgänglig. Kontakta administratören", - "COMPLETE": "Komplett", - "CLONE_PROJECT": "Klonprojekt", - "SESSIONS_PROJECT": "Gå till Sessioner" + "PROJECT_NOT_AVAILABLE": "Projektet är inte tillgängligt. Kontakta administratören", + "COMPLETE": "Färdig", + "CLONE_PROJECT": "Kopiera projekt", + "SESSIONS_PROJECT": "Gå till sessioner" }, "mwForm": { "form": { - "name": "Title", - "name.placeholder": "Form title", - "description": "Description" + "name": "Namn", + "name.placeholder": "Jscripty-namn", + "description": "Beskrivning" }, "buttons": { - "addPage": "Add page", - "moveDown": "Move down", - "moveUp": "Move up", - "removePage": "Remove page", - "remove": "Remove", - "addElement": "Add element", - "questionReady": "Ready", - "next": "Next", - "back": "Back", - "submit": "Submit", - "begin": "Begin", - "fold": "Fold", - "unfold": "Unfold", - "edit": "Edit", - "clone": "Clone", - "view": "View" + "addPage": "Lägg till sida", + "moveDown": "Flytta ned", + "moveUp": "Flytta up", + "removePage": "Ta bort sida", + "remove": "Ta bort", + "addElement": "Lägg till element", + "questionReady": "Klar", + "next": "Nästa", + "back": "Bakåt", + "submit": "Lämna in", + "begin": "Börja", + "fold": "Vik ihop", + "unfold": "Vik ut", + "edit": "Editera", + "clone": "Kopiera", + "view": "Visa" }, "page": { "tab": { - "heading": "Page {{page}} of {{allPages}}" + "heading": "Sida {{page}} av {{allPages}}" }, "elements": { - "empty": "Empty page" + "empty": "Tom sida" }, - "pageWithNameCheckbox": "named", - "name": "Page name" + "pageWithNameCheckbox": "namngiven", + "name": "sidonamn" }, "pageFlow": { - "afterPage": "After page {{page}}:", - "afterQuestionAnswer": "Go to page based on answer", - "goToPage": "Go to page {{page.number}}", - "goToNextPage": "Continue to next page", - "submitForm": "Submit form" + "afterPage": "Efter sida {{page}}:", + "afterQuestionAnswer": "Gå till sida baserat på svar", + "goToPage": "Gå till sida {{page.number}}", + "goToNextPage": "Fortsätt till nästa sida", + "submitForm": "Lämna in" }, "elements": { - "question": "Question", - "image": "Image", - "paragraph": "Paragraph" + "question": "Fråga", + "image": "Bild", + "paragraph": "Paragraf" }, "question": { "types": { "text": { - "name": "Short text" + "name": "Kort text" }, "textarea": { - "name": "Long text" + "name": "Lång text" }, "radio": { - "name": "Radio" + "name": "Radioknappar" }, "select": { - "name": "Select" + "name": "Selektorknappar" }, "checkbox": { - "name": "Checkboxes" + "name": "Checkboxar" }, "grid": { - "name": "Grid" + "name": "Rutnät" }, "priority": { - "name": "Priority" + "name": "Prioritet" }, "division": { "name": "Division" }, "number": { - "name": "Number" + "name": "Nummer" }, "date": { - "name": "Date" + "name": "Datum" }, "datetime": { - "name": "Datetime" + "name": "Datum och tid" }, "time": { - "name": "Time" + "name": "Tid" }, "email": { - "name": "Email" + "name": "Epost" }, "range": { - "name": "Range" + "name": "Urval" }, "url": { "name": "URL" } }, - "text": "Question text", - "type": "Question type", - "required": "Required", + "text": "Frågetext", + "type": "Frågeteyp", + "required": "Obligatorisk", "preview": { - "text": "Short answer text", - "textarea": "Long answer text", - "otherAnswer": "Other" + "text": "Kort frågetext", + "textarea": "Lång frågetext", + "otherAnswer": "Annat" }, "division": { - "quantity": "Quantity", + "quantity": "Mängd", "unit": "Unit label", - "assignedSumLabel": "Assigned", - "fromRequiredLabel": "from required" + "assignedSumLabel": "Tilldelad", + "fromRequiredLabel": "från obligatorisk" }, "priority": { - "sorted": "Sorted", - "available": "Available", - "clickToAddItem": "Click to add item" + "sorted": "Sorterad", + "available": "Tillgänglig", + "clickToAddItem": "Klicka för att lägga till objekt" }, "grid": { - "cellInputType": "Cell input type", + "cellInputType": "Cell inputtyp", "cellInputTypes": { "radio": "Radio", "checkbox": "Checkbox", "text": "Text", - "number": "Number", - "date": "Date", - "time": "Time" + "number": "Nummer", + "date": "Datum", + "time": "Tid" }, - "rowLabel": "Row {{row}}", - "clickToAddRow": "Click to add row", - "columnLabel": "Column {{col}}", - "clickToAddColumn": "Click to add column" + "rowLabel": "Rad {{row}}", + "clickToAddRow": "Klicka för att lägga tillr ad", + "columnLabel": "Kolumn {{col}}", + "clickToAddColumn": "Klicka för att lägga till kolumn" }, "range": { - "from": "Range from", - "to": "to" + "from": "Intervall från", + "to": "till" }, "number": { "min": "Min", "max": "Max" }, - "orLabel": "or ", - "otherLabel": "Other: ", - "userAnswer": "User answer", + "orLabel": "eller", + "otherLabel": "Annat:", + "userAnswer": "Användarsvar", "buttons": { - "addOption": "Click to add option", - "addOther": "Add 'Other'" + "addOption": "Klicka för att lägga till alternativ", + "addOther": "Lägg till \"Annat\"" } }, "image": { - "selectImageButton": "Select image", - "caption": "Image caption" + "selectImageButton": "Välj bild", + "caption": "Bildtext" }, "paragraph": { - "placeholder": "Enter paragraph text" + "placeholder": "Skriv paragraftext" }, "confirmationPage": { - "title": "Confirmation page", - "customMessage": "Custom confirmation message", - "defaultMessage": "Your response has been saved", - "errorMessage": "Error! Your response has not been saved", - "pendingMessage": "Your response is being saved." + "title": "Bekräftelsesida", + "customMessage": "Eget bekräftelsemeddelande", + "defaultMessage": "Ditt svar har blivit sparat", + "errorMessage": "Fel! Ditt svar har inte blivit sparat", + "pendingMessage": "Ditt svar sparas" } } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/sv.json b/public/app/main/apps/motiondialer/i18n/sv.json index 7c53ec2..033051e 100644 --- a/public/app/main/apps/motiondialer/i18n/sv.json +++ b/public/app/main/apps/motiondialer/i18n/sv.json @@ -1,18 +1,18 @@ { "MOTIONDIALER": { - "MOVE_HOPPERFINAL": "Återställa kontakten", - "RESTORECONTACTS": "Återställa kontakter", - "NO_SUCH_NUMBER": "Inga sådana nummer", - "DIALORDERBYSCHEDULEDAT": "Beställning av scheduledat", + "MOVE_HOPPERFINAL": "Återställ kontakten", + "RESTORECONTACTS": "Återställ kontakt(er)", + "NO_SUCH_NUMBER": "Inget sådant nummer", + "DIALORDERBYSCHEDULEDAT": "Dialer ordnat efter schemalagd tid", "ASC": "ASC", - "DESC": "Beskr.", - "RECALLAGENT": "Återkalla Agent", - "DIALRECALLINQUEUE": "Minns i kö", - "DIALRECALLMETIMEOUT": "Minns mig Timeout [min]", - "RECALLME": "Minns mig", - "RECALLFAILEDTIMEOUT": "Återkalla misslyckades", - "PREVIEW_CAMPAIGN": "Förhandsgranska kampanjer", - "PREVIEW_CAMPAIGNS": "Förhandsgranska kampanjer", + "DESC": "DESC", + "RECALLAGENT": "Ring upp samma agent", + "DIALRECALLINQUEUE": "Återuppring i kö", + "DIALRECALLMETIMEOUT": "Tid för återuppringning i kö", + "RECALLME": "Ring upp mig", + "RECALLFAILEDTIMEOUT": "Återkalla misslyckades?`???????", + "PREVIEW_CAMPAIGN": "Previewkampanj", + "PREVIEW_CAMPAIGNS": "Previewkampanjer", "AMD": "Asterisk Telefonsvararen Detection (AMD)", "AMDTOTALANALYSISTIME": "Den totala tidsåtgången för analys", "AMDACTIVE": "AMD", diff --git a/public/app/main/apps/settings/i18n/sv.json b/public/app/main/apps/settings/i18n/sv.json index 98e33ae..a3a9df2 100644 --- a/public/app/main/apps/settings/i18n/sv.json +++ b/public/app/main/apps/settings/i18n/sv.json @@ -7,22 +7,22 @@ "RELOAD": "Ladda om", "VERIFY": "Verifiera", "INTERFACE": "Gränssnitt", - "UPDATING": "Uppdatering", + "UPDATING": "Uppdaterar", "REMOTE_VERSION": "Fjärrversion", "NO_NEW_VERSION_AVAILABLE": "Ingen ny version tillgänglig", "TOP_N_PROCESSES": "Övre {{värde}} processer", "SYSTEM": "Systemet", "FILE_SYSTEM": "Filsystem", "PROCESSES": "Processer", - "MOUNT_POINT": "Montera", - "AVG_LOAD": "AVG last", + "MOUNT_POINT": "Monteringspunkt", + "AVG_LOAD": "Genomsnittlig last", "TOTAL": "Totalt", "USED": "Används", "FREE": "Fri", "NAME": "Namn", - "STATE": "Stat", + "STATE": "Värde", "CHAT": "Chatt", - "MAIL": "Post", + "MAIL": "E-post", "MESSAGING": "Sms", "FAX": "Fax", "OPENCHANNEL": "Öppen kanal", @@ -32,7 +32,7 @@ "STAFF": "Personal", "CHANNELS": "Kanaler", "MODULES": "Moduler", - "CM": "Kontakter som chefen", + "CM": "Kontakter", "DIALER": "Dialer", "JSCRIPTY": "Jscripty", "CUSTOM": "Anpassning", @@ -54,7 +54,7 @@ "LOGO": "Logotyp", "DEFAULT_LOGO": "Standard-logotypen", "DEFAULT_LOGIN_LOGO": "Standard Login logotyp", - "WHITELABEL": "Vit etikett", + "WHITELABEL": "Branding", "CREATED_AT": "Skapad", "SAVE": "Spara", "SMTP_SERVICE": "Service", diff --git a/public/app/main/apps/staff/i18n/en.json b/public/app/main/apps/staff/i18n/en.json index 050308c..508e81c 100644 --- a/public/app/main/apps/staff/i18n/en.json +++ b/public/app/main/apps/staff/i18n/en.json @@ -125,7 +125,7 @@ "PICKUPGROUP": "The groups in which the agent can answer calls", "USERNAME": "Only numbers, letters and specific characters (._) are supported", "ENCRYPTION": "SRTP (Secure Realtime Protocol) Encryption", - "SAVE_PERMISSIONS": "Every section that contains any pending changes will be saved", + "SAVE_PERMISSIONS": "Every section containing any pending changes will be saved", "CUSTOM_DASHBOARDS_PERMISSIONS": "Custom Dashboards permissions are managed in the Tools module" }, "NEW_PASSWORD": "New Password", diff --git a/public/app/main/apps/staff/i18n/sv.json b/public/app/main/apps/staff/i18n/sv.json index e85d697..d8a2972 100644 --- a/public/app/main/apps/staff/i18n/sv.json +++ b/public/app/main/apps/staff/i18n/sv.json @@ -1,13 +1,13 @@ { "STAFF": { "CONTEXT": "Bakgrund", - "RINGINUSE": "Ring i användning", + "RINGINUSE": "Ring under användning", "USERS": "Användare", "AGENTS": "Agenter", - "TOGGLE_SIDENAV": "Växla sidenav", - "SEARCH_FOR_ANYONE": "Sökning för någon", + "TOGGLE_SIDENAV": "Växla sidonavigering", + "SEARCH_FOR_ANYONE": "Sök", "BACK": "Tillbaka", - "MULTI_SELECT_TOGGLE": "Multi välj växla", + "MULTI_SELECT_TOGGLE": "Växla alla valda", "SELECT_ALL": "Markera alla", "SELECT_NONE": "Välj ingen", "SELECTED": "Vald", @@ -18,24 +18,24 @@ "SORT": "Sortera", "NAME": "Namn", "FULLNAME": "Fullständigt namn", - "A_TO_Z": "(A till Z)", + "A_TO_Z": "(A till Ö)", "Z_TO_A": "(Ö till A)", "MORE": "Mer", "DELETE_USER": "Ta bort användare", "EDIT_USER": "Redigera användare", - "DELETE_AGENT": "Ta bort agenten", - "EDIT_AGENT": "Redigera Agent", + "DELETE_AGENT": "Ta bort agent", + "EDIT_AGENT": "Redigera agent", "DELETE": "Ta bort", "SAVE": "Spara", "ADD_USER": "Lägg till användare", "ADD_AGENT": "Lägg till agent", - "NO_RESULTS": "Inga resultat.", + "NO_RESULTS": "Inga resultat", "CLOSE_DIALOG": "Stäng dialogrutan", "NAME_REQUIRED": "Namn (obligatoriskt)", "USERNAME": "Användarnamn", "SHOW_ALL_FIELDS": "Visa alla fält", "PHONE_NUMBER": "Telefonnummer", - "EMAIL": "Email", + "EMAIL": "Epost", "PASSWORD": "Lösenord", "ERRORS": { "FULLNAME_REQUIRED": "Det Fullname krävs", @@ -80,7 +80,7 @@ "ROLE": "Roll", "PERSONAL_INFO": "Personlig Info", "DESCRIPTION": "Beskrivning", - "CHANGE_AVATAR": "Ändra Avatar", + "CHANGE_AVATAR": "Ändra avatar", "GENERAL": "Allmänt", "INTERNAL": "Intern", "TRANSPORT": "Transport", @@ -115,116 +115,116 @@ "CHANGEPASSWORD_AGENT": "Ändra lösenord", "CHANGEPASSWORD_USER": "Ändra lösenord", "CHANGEPASSWORD_TELEPHONE": "Ändra lösenord", - "LOGININPAUSE": "Logga in i paus", - "HOST": "Värd", + "LOGININPAUSE": "Logga in som pausad", + "HOST": "Host", "NAT": "NAT", "CHANSPY": "ChanSpy", "OTHER_CHANNELS": "Andra kanaler", - "CHATCAPACITY": "Pratstund kapacitet", - "MAILCAPACITY": "Post kapacitet", - "FAXCAPACITY": "Fax kapacitet", + "CHATCAPACITY": "Chattkapacitet", + "MAILCAPACITY": "E-postkapacitet", + "FAXCAPACITY": "Faxkapacitet", "SMSCAPACITY": "Sms-kapacitet", - "OPENCHANNELCAPACITY": "Öppna kanalen kapacitet", + "OPENCHANNELCAPACITY": "Kapacitet för den öppna kanalen", "MOTIONBAR": "Motion Bar", "SETTINGS": "Inställningar", "AUTOANSWER": "Automatiskt svar", "ENABLESETTINGS": "Aktivera inställningar", "CALL_FORWARDING": "Vidarekoppling av samtal", "UNCONDITIONAL": "Ovillkorlig", - "UNCONDITIONALNUMBER": "Ovillkorlig nummer", + "UNCONDITIONALNUMBER": "Ovillkorligt nummer", "NOREPLY": "Inget svar", - "NOREPLYNUMBER": "Inget svar Antal", + "NOREPLYNUMBER": "Antal av inget svar", "BUSY": "Upptagen", "BUSYNUMBER": "Upptaget nummer", - "REMOTE_CONTROL": "Fjärrkontroll", - "REMOTECONTROL": "Fjärrkontroll", - "REMOTECONTROLPORT": "Fjärrkontroll", + "REMOTE_CONTROL": "Fjärrstyrning", + "REMOTECONTROL": "Fjärrstyrning", + "REMOTECONTROLPORT": "Fjärrstyrningsport", "SIP": "SIP", "SIPEXPIRES": "SIP upphör [sek]", "SIPPORT": "SIP-port", - "PENALTY": "Dödsstraff", + "PENALTY": "Prioritet", "ACCOUNTNAME": "Kontonamn", "ADD_TELEPHONE": "Lägg till telefon", "EDIT_TELEPHONE": "Ändra telefon", "DELETE_TELEPHONE": "Ta bort telefon", "TEAMS": "Team", - "DELETE_TEAM": "Ta bort grupp", - "AGENTADD_TEAM": "Lägg till agenter till Team", - "EDIT_TEAM": "Redigera grupp", + "DELETE_TEAM": "Ta bort team", + "AGENTADD_TEAM": "Lägg till agenter till team", + "EDIT_TEAM": "Redigera team", "TYPE": "Typ", "TELEPHONES": "Telefoner", "CALLERID": "Nummerpresentation", - "ENABLERECORDING": "Aktivera inspelningen", + "ENABLERECORDING": "Aktivera inspelning", "STAFF": "Personal", "ID": "Id", "NEW_USER": "Ny användare", - "NEW_AGENT": "Ny Agent", + "NEW_AGENT": "Ny agent", "NEW_TELEPHONE": "Nytt telefonnummer", - "NEW_TEAM": "Nya Team", - "ADD_TEAM": "Lägg till grupp", - "JOIN_QUEUE": "Förena kö", + "NEW_TEAM": "Nytt team", + "ADD_TEAM": "Lägg till team", + "JOIN_QUEUE": "Gå med i kö", "CAPACITY": "Kapacitet", - "AUTOINTERNAL": "Automatiskt generera internt nummer", - "ADD_AGENT_TO_TEAM": "Lägg till Agent Team", - "TEAMADD_AGENT": "Lägg till Agent Team", - "NO_AVAILABLE_INFO": "Inga tillgängliga info", + "AUTOINTERNAL": "Generera internt automatiskt nummer", + "ADD_AGENT_TO_TEAM": "Lägg till agent till team", + "TEAMADD_AGENT": "Lägg till agent till team", + "NO_AVAILABLE_INFO": "Ingen tillgänglig info", "PERMISSIONS": "Behörigheter", - "ADD_AGENT_TO_QUEUE": "Lägg medlet till kö", + "ADD_AGENT_TO_QUEUE": "Lägg till agent till kö", "ALL_MODULES_AVAILABLE": "Alla moduler är tillgängliga", "CALLGROUP": "Gruppsamtal", "PICKUPGROUP": "Gruppsamtal", - "QUEUEADD_AGENT_VOICE_OUTBOUND": "Lägg medlet till kö kampanjer", - "QUEUEADD_AGENT_VOICE_INBOUND": "Lägg medlet på röst köer", - "QUEUEADD_AGENT_CHAT_INBOUND": "Lägg medlet att chatta köer", - "QUEUEADD_AGENT_MAIL_INBOUND": "Lägg till Agent post köer", - "QUEUEADD_AGENT_SMS_INBOUND": "Lägg medlet på SMS köer", - "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Lägg till agent för att öppna kanalen köer", - "QUEUEADD_AGENT_FAX_INBOUND": "Lägg medlet till Fax köer", - "QUEUEADD_USER_VOICE_INBOUND": "Lägg till användare till Voice köer", - "QUEUEADD_USER_CHAT_INBOUND": "Lägg till användare i chatten köer", - "QUEUEADD_USER_MAIL_INBOUND": "Lägg till användare till post köer", + "QUEUEADD_AGENT_VOICE_OUTBOUND": "Lägg till agent till kökampanjer", + "QUEUEADD_AGENT_VOICE_INBOUND": "Lägg till agent till röstköer", + "QUEUEADD_AGENT_CHAT_INBOUND": "Lägg till agent till chattköer", + "QUEUEADD_AGENT_MAIL_INBOUND": "Lägg till agent till epostköer", + "QUEUEADD_AGENT_SMS_INBOUND": "Lägg till agent till SMS-köer", + "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Lägg till agent till öppna kanal-köer", + "QUEUEADD_AGENT_FAX_INBOUND": "Lägg till agent till faxköer", + "QUEUEADD_USER_VOICE_INBOUND": "Lägg till användare till röstköer", + "QUEUEADD_USER_CHAT_INBOUND": "Lägg till användare i chattköer", + "QUEUEADD_USER_MAIL_INBOUND": "Lägg till användare till epostköer", "QUEUEADD_USER_SMS_INBOUND": "Lägg till användare till SMS-köer", - "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Lägg till användare att öppna kanalen köer", - "QUEUEADD_USER_FAX_INBOUND": "Lägg till användare till Fax köer", + "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Lägg till användare att öppna kanal-köer", + "QUEUEADD_USER_FAX_INBOUND": "Lägg till användare till faxköer", "ALL_TEAMS": "Alla grupper", "SELECTED_TEAMS": "Valda grupper", "SELECTED_AGENTS": "Valda agenter", - "ALL_QUEUES_VOICE_OUTBOUND": "Alla kön kampanjer", - "SELECTED_QUEUES_VOICE_OUTBOUND": "Valda kön kampanjer", - "ALL_QUEUES_VOICE_INBOUND": "Alla röstmeddelanden köer", - "SELECTED_QUEUES_VOICE_INBOUND": "Valda rösten köer", - "ALL_QUEUES_CHAT_INBOUND": "All chat köer", - "SELECTED_QUEUES_CHAT_INBOUND": "Valda Chat köer", - "ALL_QUEUES_MAIL_INBOUND": "Alla post köer", - "SELECTED_QUEUES_MAIL_INBOUND": "Vald post köer", + "ALL_QUEUES_VOICE_OUTBOUND": "Alla kökampanjer", + "SELECTED_QUEUES_VOICE_OUTBOUND": "Valda kökampanjer", + "ALL_QUEUES_VOICE_INBOUND": "Alla röstköer", + "SELECTED_QUEUES_VOICE_INBOUND": "Valda röstköer", + "ALL_QUEUES_CHAT_INBOUND": "All chattköer", + "SELECTED_QUEUES_CHAT_INBOUND": "Valda chattköer", + "ALL_QUEUES_MAIL_INBOUND": "Alla epostköer", + "SELECTED_QUEUES_MAIL_INBOUND": "Valda epostköer", "ALL_QUEUES_SMS_INBOUND": "Alla SMS-köer", - "SELECTED_QUEUES_SMS_INBOUND": "Valt SMS-köer", - "ALL_QUEUES_OPENCHANNEL_INBOUND": "Alla öppna kanalen köer", - "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Valda öppna kanalen köer", - "ALL_QUEUES_FAX_INBOUND": "Alla fax köer", - "SELECTED_QUEUES_FAX_INBOUND": "Faxvisare köer", + "SELECTED_QUEUES_SMS_INBOUND": "Valda SMS-köer", + "ALL_QUEUES_OPENCHANNEL_INBOUND": "Alla öppna kanal-köer", + "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Valda öppna kanal-köer", + "ALL_QUEUES_FAX_INBOUND": "Alla faxköer", + "SELECTED_QUEUES_FAX_INBOUND": "Valda faxköer", "VOICEMAIL": "Röstmeddelande", - "SHOWWEBCONTROL": "Visa Web Control", - "PAGE": "Sidan", + "SHOWWEBCONTROL": "Typologi", + "PAGE": "Sid", "ROWSPERPAGE": "Rader per sida", "OF": "Av", "CALLFORWARDING": "Vidarekoppling av samtal", "DND": "Stör inte under paus", - "UNANSWEREDCALLBADGE": "Visa obesvarade samtal emblem", + "UNANSWEREDCALLBADGE": "Visa obesvarade samtal", "ENABLEDTMFTONE": "Aktivera DTMF-toner", - "AUTOANSWERDELAY": "Auto Answer Delay", + "AUTOANSWERDELAY": "Autosvardelay", "ENCRYPTION": "Kryptering", "CHANNELS": "Kanaler", "CHAT": "Chatt", "SMS": "Sms", "OPENCHANNEL": "Öppen kanal", "FAX": "Fax", - "QUEUEADD_USER_VOICE_OUTBOUND": "Lägg till användare till kön kampanjer", + "QUEUEADD_USER_VOICE_OUTBOUND": "Lägg till användare till kökampanjer", "MONITOREXTENSION": "Spela in samtal på användarens anknytning", "NO_PASSWORD_CHANGE": "Inga lösenord ändras", "SECURITY_SUITE": "Säkerhetssvit", - "LAST_PASSWORD_RESET_AT": "Senaste lösenord återställs vid", - "SIP_WEBRTC": "Smutta", + "LAST_PASSWORD_RESET_AT": "Lösenordet återställdes senast", + "SIP_WEBRTC": "Sip", "SETTINGS_WEBRTC": "inställningar", "WEBRTC": "WebRTC", "DTLSCERTFILE": "TLS-certifikat", @@ -238,7 +238,7 @@ "PHONE": "Telefon", "MOBILE": "Mobil", "ALIAS": "Alias", - "ENABLEJAWSINTEGRATION": "Aktivera käftintegration", + "ENABLEJAWSINTEGRATION": "Aktivera Jaws-integration", "PREFIXREQUIRED": "Prefix krävs", "ENABLEVIDEORECORDING": "Aktivera videoinspelning", "OLD_PASSWORD": "Gammalt lösenord", @@ -248,8 +248,8 @@ "ALL_FAXQUEUES": "Alla faxköer", "ALL_MAILACCOUNTS": "Alla e-postkonton", "ALL_MAILQUEUES": "Alla e-postköer", - "ALL_OPENCHANNELACCOUNTS": "Alla öppna kanalkonton", - "ALL_OPENCHANNELQUEUES": "Alla öppna kanalköer", + "ALL_OPENCHANNELACCOUNTS": "Alla öppna kanal-konton", + "ALL_OPENCHANNELQUEUES": "Alla öppna kanal-köer", "ALL_PROJECTS": "Alla Cally Square Projekt", "ALL_QUEUECAMPAIGNS": "Alla kökampanjer", "ALL_SMSACCOUNTS": "Alla SMS-konton", @@ -262,30 +262,30 @@ "SELECTED_FAXQUEUES": "Valda faxköer", "SELECTED_MAILACCOUNTS": "Valda e-postkonton", "SELECTED_MAILQUEUES": "Valda chattköer", - "SELECTED_OPENCHANNELACCOUNTS": "Valda öppna kanalkonton", - "SELECTED_OPENCHANNELQUEUES": "Valda öppna kanalköer", - "SELECTED_PROJECTS": "Utvalda Cally Square Projekt", + "SELECTED_OPENCHANNELACCOUNTS": "Valda öppna kanal-konton", + "SELECTED_OPENCHANNELQUEUES": "Valda öppna kanal-köer", + "SELECTED_PROJECTS": "Utvalda Cally Square-projekt", "SELECTED_QUEUECAMPAIGNS": "Valda kökampanjer", "SELECTED_SMSACCOUNTS": "Valda SMS-konton", "SELECTED_SMSQUEUES": "Valda SMS-köer", "SELECTED_VOICEQUEUES": "Valda röstköer", - "USERADD_CHATQUEUES": "Lägg till Chat-kö till användare", - "USERADD_CHATWEBSITES": "Lägg till chattwebbplats till användare", + "USERADD_CHATQUEUES": "Lägg till Chat-kö till användaren", + "USERADD_CHATWEBSITES": "Lägg till chattwebbplats till användaren", "USERADD_FAXACCOUNTS": "Lägg till faxkonto till användaren", "USERADD_FAXQUEUES": "Lägg till faxkö till användaren", "USERADD_MAILACCOUNTS": "Lägg till e-postkonto till användaren", - "USERADD_MAILQUEUES": "Lägg till e-postkö till användare", - "USERADD_OPENCHANNELACCOUNTS": "Lägg till öppet kanalkonto till användaren", - "USERADD_OPENCHANNELQUEUES": "Lägg till öppen kanalkö till användaren", - "USERADD_PROJECTS": "Lägg till Cally Square Project till användare", - "USERADD_QUEUECAMPAIGNS": "Lägg till köskampanj till användare", + "USERADD_MAILQUEUES": "Lägg till e-postkö till användaren", + "USERADD_OPENCHANNELACCOUNTS": "Lägg till öppet kanal-konto till användaren", + "USERADD_OPENCHANNELQUEUES": "Lägg till öppen kanal-kö till användaren", + "USERADD_PROJECTS": "Lägg till Cally Square-project till användaren", + "USERADD_QUEUECAMPAIGNS": "Lägg till kökampanj till användaren", "USERADD_SMSACCOUNTS": "Lägg till SMS-konto till användaren", - "USERADD_SMSQUEUES": "Lägg till SMS-kö till användare", + "USERADD_SMSQUEUES": "Lägg till SMS-kö till användaren", "USERADD_VOICEQUEUES": "Lägg till röstkö till användaren", - "HOTDESK": "Varmt skrivbord", + "HOTDESK": "Hotdesk", "ADD_USERPROFILE": "Lägg till användarprofil", - "CANCEL": "Annullera", - "CLONE_USERPROFILE": "Klonanvändarprofil", + "CANCEL": "Cancel", + "CLONE_USERPROFILE": "Klona nvändarprofil", "CLOSE": "Stänga", "CONFIRM": "Bekräfta", "CRUDPERMISSIONS": "Tillståndstyp", @@ -293,15 +293,15 @@ "DELETE_USERPROFILE": "Radera användarprofil", "EDIT_PERMISSION": "Redigera", "EDIT_USERPROFILE": "Redigera användarprofil", - "MODULES": "moduler", + "MODULES": "Moduler", "NEW_USERPROFILE": "Ny användarprofil", "PERMISSIONS_ALL_RESOURCES": "Alla resurser", - "PERMISSIONS_AUTO_ASSOCIATION_INFO": "Koppla automatiskt alla aktuella och framtida resurser i detta avsnitt till användarprofilen", + "PERMISSIONS_AUTO_ASSOCIATION_INFO": "Koppla automatiskt alla aktuella och framtida resurser i denna sektion till användarprofilen", "PERMISSIONS_MANAGE": "Hantera", "PERMISSIONS_PLACEHOLDER_SEARCH": "Sök...", "PERMISSIONS_SECTION_HIDE": "Dölj avsnitt för användaren", "PERMISSIONS_SECTION_SHOW": "Visa avsnitt till användaren", - "PERMISSIONS_SECTION_TITLE": "{{sectionName}} Behörigheter", + "PERMISSIONS_SECTION_TITLE": "{{sectionName}} behörigheter", "PERMISSIONS_SELECTED_RESOURCES": "Valda resurser", "PERMISSIONS_SELECT_REPORT_TYPE": "Välj rapporttyp", "PERMISSIONS_SELECT_SECTION": "Välj ett avsnitt", @@ -309,19 +309,19 @@ "PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE": "Obehörig handling", "PERMISSIONS_WARNING_CLOSE": "Du har inte sparade ändringar. Är du säker på att du vill lämna utan att spara?", "PERMISSIONS_WARNING_ENABLE_ALL": "Alla {{sectionName}} underavsnitt och deras resurser kommer att aktiveras. Är du säker på att du vill fortsätta?", - "QUEUES_ASSOCIATION": "{{channel}} Queues Association", + "QUEUES_ASSOCIATION": "{{channel}} köassociation", "READ_PERMISSION": "Läsa", "REPORT_TYPE": "Rapporttyp", - "SECTIONS": "sektioner", + "SECTIONS": "Sektioner", "SUMMARY": "Sammanfattning", - "TEAMS_ASSOCIATION": "Team Association", + "TEAMS_ASSOCIATION": "Teamassociationer", "USERPROFILE": "Användarprofil", "USERPROFILES": "Användarprofiler", "PERMISSIONS_UNAUTHORIZED_CREATION_MESSAGE": "Du får inte skapa resursen", "VIDEOSUPPORT": "Videostöd", "APIKEY": "API-nyckel", - "APIKEYMANAGER_USER": "API Key Manager", - "GENERATE": "(Regenerera", + "APIKEYMANAGER_USER": "API-nyckelshanterare", + "GENERATE": "Generera", "MANAGE_API_KEY": "API-nyckelhanterare", "REMOVE": "Ta bort" } diff --git a/public/app/main/apps/tools/i18n/sv.json b/public/app/main/apps/tools/i18n/sv.json index 1e78ff8..bf17cf7 100644 --- a/public/app/main/apps/tools/i18n/sv.json +++ b/public/app/main/apps/tools/i18n/sv.json @@ -3,8 +3,8 @@ "BOT": "Voicebot", "CALL": "Samtal", "NAME": "Namn", - "TRUNKS": "Segment", - "SEARCH_FOR_ANYONE": "Sökning för någon", + "TRUNKS": "Trunk", + "SEARCH_FOR_ANYONE": "Sök", "ERRORS": { "NAME_REQUIRED": "Namnet är obligatoriskt", "HOST_REQUIRED": "Värd är obligatoriskt", @@ -61,11 +61,11 @@ "REPORTSUBFOLDER_REQUIRED": "Obligatoriskt fält", "REPORTTYPE_REQUIRED": "Obligatoriskt fält" }, - "HOST": "Värd", - "SECRET": "Hemliga", + "HOST": "Host", + "SECRET": "Hemlig", "DEFAULTUSER": "Standardanvändare", "DESCRIPTION": "Beskrivning", - "ADD_TRUNK": "Lägg till bagageutrymmet", + "ADD_TRUNK": "Lägg till trunk", "HELP": { "SECRET": "Legitimation lösenord kontakta leverantören.", "HOST": "Domänen eller värdnamnet för leverantören.", @@ -100,41 +100,41 @@ "EMAILCCADDRESS": "Lägg till en eller flera adresser åtskilda med kommatecken (t ex john.doe@xcally.com, jane.miller@xcally.com)", "BODY": "Om inte fyllt i skickas standardvärdet" }, - "EDIT_TRUNK": "Redigera bagageutrymmet", - "DELETE_TRUNK": "Ta bort bakluckan", + "EDIT_TRUNK": "Redigera trunk", + "DELETE_TRUNK": "Ta bort trunk", "CREATED_AT": "Skapad", "SETTINGS": "Inställningar", - "ADVANCED": "Avancerade", - "OTHER": "Andra", + "ADVANCED": "Avancerat", + "OTHER": "Övrigt", "ACTIVE": "Aktiv", - "CONTEXT": "Bakgrund", + "CONTEXT": "Context", "CALLERID": "Nummerpresentation", "TYPE": "Typ", "DTMFMODE": "DTMF-läge", "NAT": "NAT", "QUALIFY": "Kvalificera", "ALLOWCODECS": "Tillåtna codecs", - "INSECURE": "Insecure", + "INSECURE": "Osäker", "REGISTRY": "Registrering", - "DIRECTMEDIA": "Direct Media", - "CALLCOUNTER": "Ring räknare", + "DIRECTMEDIA": "Direkt media", + "CALLCOUNTER": "Samtalsräknare", "FROMDOMAIN": "Från domän", "FROMUSER": "Från användaren", - "OUTBOUNDPROXY": "Utgående Proxy", + "OUTBOUNDPROXY": "Utgående proxy", "ADD_PHONE_TO_URI": "Lägg till telefon till URL", - "TRUST_REMOTE_PARTY_ID": "Trust avlägsen part-ID", - "SEND_REMOTE_PARTY_ID_HEADER": "Skicka avlägsen part ID-rubriken", + "TRUST_REMOTE_PARTY_ID": "Lita på extern parts ID", + "SEND_REMOTE_PARTY_ID_HEADER": "Skicka extern part ID-rubriken", "ENCRYPTION": "Kryptering", "PORT": "Port", "TRANSPORT": "Transport", "SAVE": "Spara", "VARIABLES": "Variabler", - "ADD_VARIABLE": "Adderar variabel", + "ADD_VARIABLE": "Lägg till variabel", "EDIT_VARIABLE": "Redigera variabel", "DELETE_VARIABLE": "Radera variabel", "SELECTED": "Vald", "SELECT_ALL": "Markera alla", - "SELECT_NONE": "Välj ingen", + "SELECT_NONE": "Markera ingen", "TAGS": "Etiketter", "ADD_TAG": "Lägg till etikett", "EDIT_TAG": "Redigera etikett", @@ -142,26 +142,26 @@ "PAUSES": "Pauser", "ADD_PAUSE": "Lägg till paus", "EDIT_PAUSE": "Redigera paus", - "DELETE_PAUSE": "Ta bort Pause", - "ADD_CANNEDANSWER": "Lägg till färdiga svar", - "EDIT_CANNEDANSWER": "Redigera färdiga svar", - "DELETE_CANNEDANSWER": "Ta bort färdiga svar", + "DELETE_PAUSE": "Ta bort paus", + "ADD_CANNEDANSWER": "Lägg till förinställt svar", + "EDIT_CANNEDANSWER": "Redigera förinställt svar", + "DELETE_CANNEDANSWER": "Ta bort förinställt svar", "KEY": "Nyckel", "VALUE": "Värde", "SOUNDS": "Ljud", "EDIT_SOUND": "Redigera ljud", "DELETE_SOUND": "Ta bort ljud", "FINISH": "Avsluta", - "DROP_TO_UPLOAD": "Tappar du vill överföra", - "TRIGGERS": "Avtryckare", - "EDIT_TRIGGER": "Redigera avtryckare", + "DROP_TO_UPLOAD": "Släpp för att ladda upp", + "TRIGGERS": "Triggers", + "EDIT_TRIGGER": "Redigera triggers", "DELETE_TRIGGER": "Ta bort trigger", - "ADD_TRIGGER": "Lägg Trigger", + "ADD_TRIGGER": "Lägg till trigger", "DELETE": "Ta bort", - "AUTOMATIONS": "Automations", - "EDIT_AUTOMATION": "Redigera automatisering", - "DELETE_AUTOMATION": "Ta bort automatisering", - "ADD_AUTOMATION": "Lägg till automatisering", + "AUTOMATIONS": "Automation", + "EDIT_AUTOMATION": "Redigera automation", + "DELETE_AUTOMATION": "Ta bort automation", + "ADD_AUTOMATION": "Lägg till automation", "INTERVALS": "Intervall", "EDIT_INTERVAL": "Redigera intervall", "DELETE_INTERVAL": "Ta bort intervall", @@ -172,55 +172,55 @@ "DOWNLOAD_SOUND": "Hämta ljud", "UPLOAD_SOUND": "Verktyg", "CHANNEL": "Kanal", - "NEW_TRIGGER": "Ny triggning", + "NEW_TRIGGER": "Ny trigger", "GENERAL": "Allmänt", "STATUS": "Status", "CONDITIONS&ACTIONS": "Villkor & åtgärder", "ALLCONDITIONS": "Uppfyller alla dessa villkor:", "ANYCONDITIONS": "Uppfyller något av dessa villkor:", "ACTIONS": "Åtgärder:", - "NEW_AUTOMATION": "Nya automatisering", - "TIMEOUT": "Tidsgräns", + "NEW_AUTOMATION": "Nya automation", + "TIMEOUT": "Timeout", "PEERSTATUS": "Peer status", - "CALL_LIMIT": "Europaparlamentet uppmanar gräns", + "CALL_LIMIT": "Samtalsgräns", "OTHERFIELDS": "Övriga fält", - "NEW_VARIABLE": "En ny variabel", - "NEW_TAG": "Nya Tag", - "NEW_PAUSE": "Nya paus", - "NEW_CANNEDANSWER": "Nya färdiga svar", + "NEW_VARIABLE": "Ny variabel", + "NEW_TAG": "Ny etikett", + "NEW_PAUSE": "Ny paus", + "NEW_CANNEDANSWER": "Nytt förinställt svar", "CONFIRM_PASSWORD": "Bekräfta lösenord", - "NEW_TRUNK": "Nya bagageutrymmet", + "NEW_TRUNK": "Nya trunk", "FROM": "Från", "TO": "Till", "WEEKDAY": "Veckodag", "MONTHDAY": "Månad Dag", "MONTH": "Månad", "ALWAYS": "Alltid", - "MON": "Måndag", - "TUE": "Tisdag", - "WED": "Onsdag", - "THU": "Torsdag", - "FRI": "Fredag", - "SAT": "Lördag", - "SUN": "Söndag", - "JAN": "Januari", - "FEB": "Februari", - "MAR": "Mars", - "APR": "April", - "MAY": "Kan", - "JUN": "Juni", - "JUL": "Juli", - "AUG": "Augusti", - "SEP": "September", - "OCT": "Oktober", - "NOV": "November", - "DEC": "December", + "MON": "måndag", + "TUE": "tisdag", + "WED": "onsdag", + "THU": "torsdag", + "FRI": "fredag", + "SAT": "lördag", + "SUN": "söndag", + "JAN": "januari", + "FEB": "februari", + "MAR": "mars", + "APR": "april", + "MAY": "maj", + "JUN": "juni", + "JUL": "juli", + "AUG": "augusti", + "SEP": "september", + "OCT": "oktober", + "NOV": "november", + "DEC": "december", "PASSWORD": "Lösenord", - "CUSTOMDASHBOARDS": "Anpassade instrumentpaneler", - "NEW_CUSTOMDASHBOARD": "Nya anpassade instrumentpaneler", - "ADD_CUSTOMDASHBOARD": "Lägg till anpassade instrumentpaneler", - "EDIT_CUSTOMDASHBOARD": "Redigera anpassad instrumentpanel", - "DELETE_CUSTOMDASHBOARD": "Radera Anpassade instrumentpaneler", + "CUSTOMDASHBOARDS": "Anpassade dashboards", + "NEW_CUSTOMDASHBOARD": "Nya anpassade dashboards", + "ADD_CUSTOMDASHBOARD": "Lägg till anpassad dashboards", + "EDIT_CUSTOMDASHBOARD": "Redigera anpassad dashboards", + "DELETE_CUSTOMDASHBOARD": "Radera anpassad dashboards", "SCHEDULER": "Schemaläggaren", "NEW_SCHEDULE": "Nytt schema", "ADD_SCHEDULE": "Lägg schema", @@ -233,7 +233,7 @@ "REPORT": "Rapport", "OUTPUT": "Utgång", "EXECUTEON": "Utför på", - "REPORTRANGE": "Rapportintervallet", + "REPORTRANGE": "Rapportintervall", "VALIDITYSTART": "Starttid", "VALIDITYEND": "Sluttid", "EXECUTEEVERY": "Utför varje", @@ -245,7 +245,7 @@ "MONTHLY": "Månadsvis", "PREVIOUS_DAY": "Föregående dag", "LAST_SEVEN_DAYS": "Senaste 7 dagarna", - "LAST_THIRTY_DAYS": "Sista Thirthy dagar", + "LAST_THIRTY_DAYS": "Sista 30 dagarna", "LAST_MONTH": "Förra månaden", "WEEKDAYS": "Veckodag", "HOUR": "Timme", @@ -270,43 +270,43 @@ "NO_ALLCONDITION_AVAILABLE": "Inga tillgängliga villkor", "NO_ACTION_AVAILABLE": "Inga tillgängliga åtgärder", "ACTION": "Åtgärd", - "EDIT_ANYCONDITION": "Redigera skick", + "EDIT_ANYCONDITION": "Redigera villkor", "DELETE_ANYCONDITION": "Ta bort villkor", - "NEW_ANYCONDITION": "Ny skick", + "NEW_ANYCONDITION": "Nytt villkor", "ADD_ANYCONDITION": "Lägg till villkor", - "EDIT_ALLCONDITION": "Redigera skick", + "EDIT_ALLCONDITION": "Redigera villkor", "DELETE_ALLCONDITION": "Ta bort villkor", - "NEW_ALLCONDITION": "Ny skick", + "NEW_ALLCONDITION": "Ny villkor", "ADD_ALLCONDITION": "Lägg till villkor", - "EDIT_ACTION": "Åtgärden redigera", - "DELETE_ACTION": "Borttagningsåtgärd", - "NEW_ACTION": "Ny åtgärd", - "ADD_ACTION": "Lägg till en åtgärd", + "EDIT_ACTION": "Redigera villkor", + "DELETE_ACTION": "Ta bort villkor", + "NEW_ACTION": "Nytt villkor", + "ADD_ACTION": "Lägg till ett villkor", "QUEUE": "Kö", "CALL_STATUS": "Samtalsstatus", - "OUTBOUNDROUTE": "Utgående rutt", + "OUTBOUNDROUTE": "Utgående linje", "EQUALS": "Är lika med", "NOT_EQUALS": "Inte lika med", - "CONTACT_MANAGER": "Kontakter som chefen", + "CONTACT_MANAGER": "Kontakthanteraren", "INTEGRATIONS": "Integrationer", "MOTION_BAR": "Motion Bar", "JSCRIPTY": "Jscripty", - "URL_FORWARD": "URL framåt", + "URL_FORWARD": "URL-forward", "WEB_POPUP": "Web-popup", "LIST": "Lista", "INTEGRATION": "Integrering", "TEMPLATE": "Mall", "URL": "URL", - "APPLICATION": "Tillämpning", + "APPLICATION": "Applikation", "ARGUMENTS": "Argument", - "NO_APPS_AVAILABLE": "Inga program är tillgängliga", - "NEW_INTERVAL": "Nya väntar", + "NO_APPS_AVAILABLE": "Inga applikationer är tillgängliga", + "NEW_INTERVAL": "Nytt intervall", "OPERATOR": "Operatör", "NO_INTERVALS_AVAILABLE": "Inga intervall tillgängliga", "YES": "Ja", - "NO": "Nr", - "SUBJECT": "Föremål", - "NO_AVAILABLE_INFO": "Inga tillgängliga info", + "NO": "Nej", + "SUBJECT": "Ärende", + "NO_AVAILABLE_INFO": "Ingen tillgängliga info", "BROWSER": "Webbläsare", "INTERVAL": "Intervall", "INFO": "Info", @@ -314,38 +314,38 @@ "WEEK_DAYS": "Veckodag", "MONTH_DAYS": "Dagar i månaden", "MONTHS": "Månader", - "DROP_TO_UPLOAD_MESSAGE": "Du kan också släppa ljud här till uploaden. Endast MP3, WAV, GSM - Max. 15MB", - "POLLING_INTERVAL": "Registreringsintervall (sekunder)", - "DASHBOARD": "Instrumentbräda", - "NEW_DASHBOARDITEM": "Nya dashboard widget", + "DROP_TO_UPLOAD_MESSAGE": "Du kan också släppa filen här för att ladda upp. Endast MP3, WAV, GSM - Max. 15MB", + "POLLING_INTERVAL": "Pollingintervall (sekunder)", + "DASHBOARD": "Dashboard", + "NEW_DASHBOARDITEM": "Nya dashboard-widget", "COUNTER": "Räknare", "IFRAME": "IFrame", "CLOCK": "Klocka", - "ADD_DASHBOARDITEM": "Lägg till dashboard widget", + "ADD_DASHBOARDITEM": "Lägg till dashboard-widget", "EDIT_WIDGET": "Redigera widget", "DELETE_WIDGET": "Ta bort widget", "FLIP_WIDGET": "Flip widget", - "TITLE": "Avdelning", + "TITLE": "Titel", "UPDATE": "Uppdatera", "LAYOUT": "Layout", "BACKGROUND_COLOR": "Bakgrundsfärg", "FOREGROUND_COLOR": "Förgrundsfärg", - "FOREGROUND_TITLE_COLOR": "Förgrund benämning färg", + "FOREGROUND_TITLE_COLOR": "Namn på förgrundsfärg", "THEME": "Tema", - "LIGHT": "Bakgrund", + "LIGHT": "Ljus", "DARK": "Mörk", - "TIMEZONE": "TimeZone", - "DIGITAL_FORMAT": "Digital datumformat", - "TOOLS_QUERY": "Fråga", + "TIMEZONE": "Tidszon", + "DIGITAL_FORMAT": "Digitalt datumformat", + "TOOLS_QUERY": "Query", "SELECT": "Välj", "WHERE": "Där", "BACK": "Tillbaka", "PROJECT": "Projektet", - "GOTOREALTIME_TRUNK": "Gå till Realtime bagageutrymmet", - "GOTO_TRUNK": "Gå till bagageutrymmet", + "GOTOREALTIME_TRUNK": "Gå till Realtime-Trunk", + "GOTO_TRUNK": "Gå till trunk", "CRON": "Cron", "MINUTES": "Minuter", - "HOURLY": "Timkostnad", + "HOURLY": "Timmar", "YEARLY": "Årligen", "EVERY": "Varje", "MINUTE": "Minut", @@ -368,12 +368,12 @@ "YEAR": "År", "ON": "På", "PAI": "P-Asserted-Identity", - "PAGE": "Sidan", + "PAGE": "Sida", "ROWSPERPAGE": "Rader per sida", - "OUTBOUND_ROUTE": "Utgående rutt", - "EVENTVARIABLES": "Vid variabler", + "OUTBOUND_ROUTE": "Utgående linje", + "EVENTVARIABLES": "Eventvariabler", "FAX": "Fax", - "INTERACTION": "Samverkan", + "INTERACTION": "Interation", "MESSAGE": "Meddelande", "T38PT_UDPTL": "T38pt Udptl", "AUTOCREATECONTACT": "Skapa kontakt automatiskt", @@ -381,57 +381,57 @@ "LOCATION": "Placering", "NEW_TAB": "Ny flik", "NEW_WINDOW": "Nytt fönster", - "WINDOWWIDTH": "Fönsterbredd(px)", + "WINDOWWIDTH": "Fönstrets bredd(px)", "WINDOWHEIGHT": "Fönstrets höjd(px)", "EDIT_DASHBOARDITEM": "Redigera Dashboard Widget", "FONTSIZE": "Textstorlek", - "CLONE_CUSTOMDASHBOARD": "Clone Custom Dashboard", + "CLONE_CUSTOMDASHBOARD": "Klona Custom Dashboard", "LINK": "Länk [https: //]", "BACKGROUND": "Bakgrund", "FOREGROUND": "Förgrund", "NONE": "Ingen", "TOTAL": "Total", - "ABANDONED": "Övergiven", + "ABANDONED": "Missat", "WAITING": "Väntar", - "TALKING": "Talande", - "ANSWERED": "svarade", - "UNMANAGED": "opåverkad", + "TALKING": "Pratar", + "ANSWERED": "Besvarat", + "UNMANAGED": "Ej managerad", "CUSTOMTYPE": "Anpassad [sökväg]", "WEBREPORT": "Webrapport", "PIECHART": "Tårtdiagram", - "MULTIBARCHART": "Multibar diagram", + "MULTIBARCHART": "Multibar-diagram", "MOVE_WIDGET": "Flytta Widget", "USERADD_CUSTOMDASHBOARD": "Lägg till användarbehörigheter", - "GOTODASHBOARD_CUSTOMDASHBOARD": "Gå till förhandsgranskning av instrumentpanelen", - "GOTO_CUSTOMDASHBOARD": "Gå till förhandsgranskning av instrumentpanelen", - "METRIC": "Metrisk", + "GOTODASHBOARD_CUSTOMDASHBOARD": "Gå till förhandsgranskning av dashboarden", + "GOTO_CUSTOMDASHBOARD": "Gå till förhandsgranskning av dashboarden", + "METRIC": "Mätvärde", "FILTERVOICEQUEUES": "Filtrera röstköer", "SERIE1": "Serie 1", "SERIE2": "Serie 2", "SERIE3": "Serie 3", "REFRESH": "Uppdatera [s]", "FORMAT": "Formatera", - "PATH": "Absolut väg", + "PATH": "Path", "ALL_USERS": "Alla användare", "SELECTED_USERS": "Valda användare", "ADD_WIDGET": "Lägg till Widget", "NEXTCONTACT": "Nästa", "SENDIFEMPTY": "Skicka om den är tom", - "CANCEL": "Annullera", - "UPLOADING": "uppladdning", + "CANCEL": "Cancel", + "UPLOADING": "Uppladdning", "EMAILBCCADDRESS": "bcc", "EMAILCCADDRESS": "Cc", "RUN_SCHEDULE": "Kör schema", - "ADD_DISPOSITION": "Lägg till disposition", - "DELETE_DISPOSITION": "Radera Disposition", - "DISPOSITIONS": "dispositioner", - "EDIT_DISPOSITION": "Redigera disposition", - "NEW_DISPOSITION": "Ny disposition", - "CLONE_TRUNK": "Klonstammen", - "BODY": "Kropp", - "CANNEDANSWERS": "Konserverade svar", + "ADD_DISPOSITION": "Lägg till kategori", + "DELETE_DISPOSITION": "Radera kategori", + "DISPOSITIONS": "Kategorier", + "EDIT_DISPOSITION": "Redigera kategori", + "NEW_DISPOSITION": "Ny kategori", + "CLONE_TRUNK": "Klona trunk", + "BODY": "Mailinnehåll", + "CANNEDANSWERS": "Förinställda svar", "REPORTFOLDER": "Rapportmapp", - "REPORTSUBFOLDER": "Rapportera undermapp", + "REPORTSUBFOLDER": "Rapportundermapp", "PREVIOUSCONTACT": "Tidigare", "VIDEOSUPPORT": "Videostöd" } diff --git a/public/app/main/apps/voice/i18n/sv.json b/public/app/main/apps/voice/i18n/sv.json index 7408ecc..367e214 100644 --- a/public/app/main/apps/voice/i18n/sv.json +++ b/public/app/main/apps/voice/i18n/sv.json @@ -1,10 +1,10 @@ { "VOICE": { - "GOTO_VOICEQUEUE": "Gå till Realtime röst köer", - "GOTOREALTIME_VOICEQUEUE": "Gå till Realtime röst köer", + "GOTO_VOICEQUEUE": "Gå till Realtime röstköer", + "GOTOREALTIME_VOICEQUEUE": "Gå till Realtime röstköer", "NAME": "Namn", "LOGOUT": "Utloggning", - "VOICEQUEUES": "Röst köer", + "VOICEQUEUES": "Röstköer", "SEARCH_FOR_ANYONE": "Sök", "BACK": "Tillbaka", "SELECTED": "Vald", @@ -72,116 +72,116 @@ }, "GENERAL": "Allmänt", "TIMEOUT": "Timeout", - "MAXLENGTH": "Max längd", + "MAXLENGTH": "Maxlängd", "RETRY": "Försök igen", - "WRAPUPTIME": "Avslutningstid", + "WRAPUPTIME": "Wrapuptid", "WEIGHT": "Vikt", "JOINWHENEMPTY": "Anslut till tom kö", "LEAVEWHENEMPTY": "Lämna tom kö", "HELP": { - "TIMEOUT": "Ange antalet sekunder som det ringer på en enhet ", - "MAXLENGTH": "Ange det maximala antalet uppringare som får vänta i en kö. 0 betyder obegränsat ", + "TIMEOUT": "Ange antalet sekunder som det ska ringa på en agent", + "MAXLENGTH": "Ange den maximala kölängden, dvs hur många som kan vänta i kö samtidigt. 0 betyder obegränsat ", "RETRY": "Ange tid i sekunder för att vänta innan det ringer på nästa agent i kön när timeout har passerat", - "WRAPUPTIME": "Tid i sekunder för att hålla en kömedlem otillgänglig efter att ha avslutat ett samtal", - "WEIGHT": "Ange vikt för en kö för att definiera prioritet om medlemmar är associerade med flera köer", - "JOINWHENEMPTY": "Ange om en uppringare ska ansluta till en kö när inga agenter finns tillgängliga", - "LEAVEWHENEMPTY": "Ange om en uppringare ska lämna en kö när inga agenter finns tillgängliga", - "ANNOUNCEFREQUENCY": "Definierar hur ofta vi skall tillkännage caller'sens position och/eller beräknad väntetid i kön. Ställ in det här värdet till noll för att inaktivera.", - "MINANNOUNCEFREQUENCY": "Anger den minsta tid som måste gå innan vi tillkännager callers placeringen i kön igen. Detta används när uppringarens position kan ändras ofta, att förhindra uppringare hörde flera uppdateringar inom en kort tidsperiod.", - "PERIODICANNOUNCEFREQUENCY": "Anger hur ofta vi bör göra regelbundna meddelanden till den som ringer.", - "ANNOUNCEPOSITIONLIMIT": "Om du har definierat tillkännager-position som antingen begränsar eller mer.", - "AFTERCALLWORKDURATION": "Varaktigheten av paus triggas av Efterarbete alternativ", - "MEMBERDELAY": "Används om du vill ha en fördröjning innan de ringer och kön skall vara anslutna till varandra.", - "MUSICONHOLD": "Ställer in musik klass användas av en viss kö.", - "ANNOUNCETOAGENT": "Används för att spela in ett meddelande till agenten som besvarat samtalet, typiskt att låta honom veta vad kö ringer från.", - "RANDOMPERIODICANNOUNCE": "Om ja, kommer att spela den definierade periodiska meddelanden i en slumpmässig ordning.", - "ANNOUNCEHOLDTIME": "Anger om den beräknade väntetiden ska spelas upp tillsammans med periodiska meddelanden.", - "ANNOUNCECALLERPOSITION": "Anger om den som ringer i kö ska meddelas till henne. Om nej, aldrig kommer att tillkännages. Om ja, uppringarens läge kommer alltid finnas tillkännaget. Om värdet är inställt på gränsen hör den som ringer henne i kön om det är gränsen som definierats av tillkännager-läge. Om värdet är inställt på mer, hör den som ringer hennes ståndpunkt om det är utöver det antal som definierats av tillkännager-läge.", - "REPORTHOLDTIMEAGENT": "Möjliggör rapportering av uppringarens väntetid i kön före bryggning.", - "PERIODICANNOUNCE": "En uppsättning av periodiska meddelanden ska spelas upp, spelade i den ordning de anges.", - "HOLDTIMEANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"parkeringstid\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.", - "YOUARENEXTANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"Du är nu först i raden\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.", - "THEREAREANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"finns\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.", - "WAITINGCALLSANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"Väntande samtal\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.", - "ESTIMATEDHOLDTIMEANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"aktuella beräknade väntetid är\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.", - "MINUTESANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"min\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.", - "MINUTEANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"min\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.", - "SECONDSANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"s\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.", - "THANKYOUANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"Tack för ditt tålamod\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.", - "AFTERCALLWORK": "Om aktiv, agenten ska ställas in på paus efter ett avslutat samtal på kö", - "AUTOPAUSE": "Aktiverar/inaktiverar automatisk pausning av ledamöter som inte besvarar ett samtal. Om aktiv, gör detta att göra uppehåll i alla köer han är medlem i.", - "RINGINUSE": "Används för att undvika att skicka samtal till medlemmar vars status är i användning.", - "TIMEOUTRESTART": "Om inställt på Ja, återställ timeout för en agent att besvara om antingen en upptagen eller överbelastning status erhålls från kanalen.", - "MONITORFORMAT": "Anger filens format att använda vid inspelning. Om monitor-formatet är inaktiv, samtal registreras inte.", - "CONTEXT": "Gör en caller att lämna kön genom att trycka på en enda DTMF-siffror. Om en angiven och den som ringer in ett nummer, att siffran kommer att matchas i samband angivna och uppringningsplans utförandet fortsätter det.", - "SETINTERFACEVARIABLES": "Om ja, strax före den som ringer att överbryggas med en kö medlem vissa variabler kommer att ställa (se wiki)", - "SETQUEUEVARIABLES": "Om ja, strax före den som ringer att överbryggas med en kö och strax före den som ringer att lämna kön vissa variabler kommer att ställa (se wiki)", - "SETQUEUEENTRYVARIABLES": "Om ja, strax före den som ringer att överbryggas med en kö medlem vissa variabler kommer att ställa (se wiki)", + "WRAPUPTIME": "Tid i sekunder att hålla en agent otillgänglig efter att ha avslutat ett samtal", + "WEIGHT": "Ange vikt för en kö för att definiera prioritet om medlemmar är med i flera köer", + "JOINWHENEMPTY": "Ange om en kund ska ansluta till en kö när inga agenter finns tillgängliga", + "LEAVEWHENEMPTY": "Ange om en kund ska lämna en kö när inga agenter finns tillgängliga", + "ANNOUNCEFREQUENCY": "Definierar hur ofta vi skall informera om inringandes position och/eller beräknad väntetid i kön. Sätt detta värdet till noll för att inaktivera.", + "MINANNOUNCEFREQUENCY": "Anger den minsta tid som måste gå innan vi informerar om inringandes placering i kön igen. Detta kan används när inringandes köposition ändras ofta, för förhindra att inringande hör flera uppdateringar inom en kort tidsperiod.", + "PERIODICANNOUNCEFREQUENCY": "Anger hur ofta vi spelar upp regelbundna meddelanden till den som ringer.", + "ANNOUNCEPOSITIONLIMIT": "Används för att begränsa vid vilka värden som köplats kan anges som meddelande", + "AFTERCALLWORKDURATION": "Längden på After Call Work-pausen", + "MEMBERDELAY": "Ange en fördröjning innan den inringande och agenten blir sammankopplade", + "MUSICONHOLD": "Ställer in musikklass som ska användas av en viss kö.", + "ANNOUNCETOAGENT": "Används för att spela upp ett meddelande för agenten som besvarar samtalet, t.ex. för att berätta vilken kö samtalet kommer ifrån.", + "RANDOMPERIODICANNOUNCE": "Om ja, så kommer de definierade periodiska meddelandena att spelas i slumpmässig ordning", + "ANNOUNCEHOLDTIME": "Anger om den beräknade väntetiden ska spelas upp tillsammans med periodiska meddelanden. (Ja/Nej/En gång)", + "ANNOUNCECALLERPOSITION": "Anger om den inringandes köposition ska tillkännages. Nej=aldrig, Ja=alltid, Limit=Enbart om hens köposition är inom gränsen inställd nedan, More=Enbart om hens köposition är över gränsen inställd nedan.", + "REPORTHOLDTIMEAGENT": "Anger om agent som besvarar samtalet ska informeras om den inringandes kötid.", + "PERIODICANNOUNCE": "Ange de periodiska meddelandena som ska spelas upp (i ordning)", + "HOLDTIMEANNOUNCE": "Ange ett meddelande som ska spelas upp, default=\"Beräknad kötid\". Om ej definierat kommer inget meddelande att spelas upp alls.", + "YOUARENEXTANNOUNCE": "Ange ett meddelande som ska spelas upp, default=\"Du är först i kön\". Om ej definierat kommer inget meddelande att spelas upp alls.", + "THEREAREANNOUNCE": "Ange ett meddelande som ska spelas upp, default=\"Det är\". Om ej definierat kommer inget meddelande att spelas upp alls.", + "WAITINGCALLSANNOUNCE": "Ange ett meddelande som ska spelas upp, default=\"Samtal i kö\". Om ej definierat kommer inget meddelande att spelas upp alls.", + "ESTIMATEDHOLDTIMEANNOUNCE": "Ange ett meddelande som ska spelas upp, default=\"Den nuvarande förväntade kötiden är\". Om ej definierat kommer inget meddelande att spelas upp alls.", + "MINUTESANNOUNCE": "Ange ett meddelande som ska spelas upp, default=\"minuter\". Om ej definierat kommer inget meddelande att spelas upp alls.", + "MINUTEANNOUNCE": "Ange ett meddelande som ska spelas upp, default=\"minut\". Om ej definierat kommer inget meddelande att spelas upp alls.", + "SECONDSANNOUNCE": "Ange ett meddelande som ska spelas upp, default=\"sekunder\". Om ej definierat kommer inget meddelande att spelas upp alls.", + "THANKYOUANNOUNCE": "Ange ett meddelande som ska spelas upp, default=\"Tack för att du väntar\". Om ej definierat kommer inget meddelande att spelas upp alls.", + "AFTERCALLWORK": "Om aktiverad sätts agenten i paus efter ett avslutat samtal", + "AUTOPAUSE": "Om aktiverad pausas agenten automatiskt i samtliga köer den är med i vid ett missat samtal", + "RINGINUSE": "Om aktiverad går det att ringa till agenter som är i aktiva samtal", + "TIMEOUTRESTART": "Om aktiverad så nollställs köns timeouträkning när det börjar ringa på en ny agent", + "MONITORFORMAT": "Anger filformet som inspelningar ska sparas i. Om inaktiverad spelas samtal ej in", + "CONTEXT": "Ger en inringande möjlighet att lämna kön genom ett knappval. Om en kontext är specificerad kommer detta knappval att försöka matchas med en samtalsplan.", + "SETINTERFACEVARIABLES": "Om aktiverad kommer vissa variabler att sättas innan inringande och agent blir ihopkopplade (se wiki för ytterligare dokumentation)", + "SETQUEUEVARIABLES": "Om aktiverad kommer vissa variabler att sättas innan inringande och agent blir ihopkopplade (se wiki för ytterligare dokumentation)", + "SETQUEUEENTRYVARIABLES": "Om aktiverad kommer vissa variabler att sättas innan inringande och agent blir ihopkopplade (se wiki för ytterligare dokumentation)", "RECORDING": "Aktivera samtalsinspelning", "VOICEMAIL_CONTEXT": "Den relativa förlängning", "NAME": "Endast siffror, bokstäver och särskilda tecken (._) stöds", "CALLERIDALL": "Stödformat: \"CallerId\" & lt; number & gt;", "CALLER_ID": "Stödformat: \"CallerId\" & lt; number & gt;", - "MANDATORYDISPOSITIONPAUSEID": "Pausa status för att ställa in under obligatorisk disposition" + "MANDATORYDISPOSITIONPAUSEID": "Pausstatus som ska vara aktiv under obligatorisk kategorisering" }, "MUSICONHOLD": "Musik i vänteläge", "ANNOUNCETOAGENT": "Meddela till agent", "ANNOUNCEMENTS": "Meddelanden", "ADVANCED": "Avancerat", - "ANNOUNCEFREQUENCY": "Meddela frekvens", - "MINANNOUNCEFREQUENCY": "Minsta tillkännager frekvens", - "PERIODICANNOUNCEFREQUENCY": "Periodiska tillkännager frekvens", - "RANDOMPERIODICANNOUNCE": "Slumpmässiga periodiska tillkännage", - "ANNOUNCEHOLDTIME": "Meddela väntetid", - "ANNOUNCECALLERPOSITION": "Tillkännage Caller-läge", - "ANNOUNCEPOSITIONLIMIT": "Meddela läge", - "REPORTHOLDTIMEAGENT": "Rapporten Agent parkeringstid", - "PERIODICANNOUNCE": "Periodiska tillkännage", - "HOLDTIMEANNOUNCE": "Håll tid tillkännage", - "YOUARENEXTANNOUNCE": "\"Du är nästa\" tillkännage", - "THEREAREANNOUNCE": "\"Det finns\" tillkännage", - "WAITINGCALLSANNOUNCE": "Väntande samtal meddela", - "ESTIMATEDHOLDTIMEANNOUNCE": "Beräknad parkeringstid tillkännage", - "MINUTESANNOUNCE": "Minuter tillkännage", - "MINUTEANNOUNCE": "Minut tillkännage", - "SECONDSANNOUNCE": "Sekunder tillkännage", - "THANKYOUANNOUNCE": "\"Tack\" tillkännage", - "AUTOPAUSE": "Auto Pause", - "AFTERCALLWORK": "Arbete efter samtal", - "AFTERCALLWORKDURATION": "Efterarbete varaktighet", - "RINGINUSE": "Ring i användning", - "MEMBERDELAY": "Medlemsstaterna fördröjning", - "TIMEOUTRESTART": "Timeout omstart", + "ANNOUNCEFREQUENCY": "Meddelandefrekvens", + "MINANNOUNCEFREQUENCY": "Minsta meddelandefrekvens", + "PERIODICANNOUNCEFREQUENCY": "Frekvens för periodiska meddelanden", + "RANDOMPERIODICANNOUNCE": "Slumpmässig tid för periodiska meddelanden", + "ANNOUNCEHOLDTIME": "Meddela kötid", + "ANNOUNCECALLERPOSITION": "Meddela köposition", + "ANNOUNCEPOSITIONLIMIT": "Begränsning för meddelande av köposition", + "REPORTHOLDTIMEAGENT": "Berätta för agenten hur länge kunden har varit i kö", + "PERIODICANNOUNCE": "Periodiska meddelanden", + "HOLDTIMEANNOUNCE": "Kötidsmeddelande", + "YOUARENEXTANNOUNCE": "\"Du är näst på tur\"-meddelande", + "THEREAREANNOUNCE": "\"Det finns\"-meddelande", + "WAITINGCALLSANNOUNCE": "Kölängdsmeddelande", + "ESTIMATEDHOLDTIMEANNOUNCE": "Beräknad kötidsmeddelande", + "MINUTESANNOUNCE": "Minutermeddelande", + "MINUTEANNOUNCE": "Minutmeddelande", + "SECONDSANNOUNCE": "Sekundmeddelande", + "THANKYOUANNOUNCE": "\"Tack\"-meddelande", + "AUTOPAUSE": "Autopaus", + "AFTERCALLWORK": "After Call Work", + "AFTERCALLWORKDURATION": "After Call Work-tid", + "RINGINUSE": "Ring vid upptaget", + "MEMBERDELAY": "Agentfördröjning", + "TIMEOUTRESTART": "Omstart av timeout", "MONITORFORMAT": "Inspelningsformat", - "SETINTERFACEVARIABLES": "Ställa in variabler", - "SETQUEUEVARIABLES": "Ange kön variabler", - "SETQUEUEENTRYVARIABLES": "Ange kön post variabler", + "SETINTERFACEVARIABLES": "Aktivera interfacevariabler", + "SETQUEUEVARIABLES": "Aktivera kövariabler", + "SETQUEUEENTRYVARIABLES": "Aktivera köingångsvariabler", "VARIABLE": "Variabel", - "CONTEXT": "Bakgrund", + "CONTEXT": "Context", "SAVE": "Spara", "SETTINGS": "Inställningar", - "INBOUNDROUTES": "Inkommande rutter", + "INBOUNDROUTES": "Inkommande linjer", "PHONENUMBER": "Telefonnummer", - "ADD_INBOUNDROUTE": "Skapa inkommande rutt", - "EDIT_INBOUNDROUTE": "Redigera inkommande rutt", - "DELETE_INBOUNDROUTE": "Ta bort inkommande rutt", + "ADD_INBOUNDROUTE": "Skapa inkommande linje", + "EDIT_INBOUNDROUTE": "Redigera inkommande linje", + "DELETE_INBOUNDROUTE": "Ta bort inkommande linje", "ACTIONS": "Åtgärder", - "OUTBOUNDROUTES": "Utgående rutter", + "OUTBOUNDROUTES": "Utgående linjer", "DESTINATIONPATTERN": "Destinationsmönster", - "ADD_OUTBOUNDROUTE": "Lägg till utgående rutt", - "EDIT_OUTBOUNDROUTE": "Redigera utgående rutt", - "DELETE_OUTBOUNDROUTE": "Radera utgående rutt", + "ADD_OUTBOUNDROUTE": "Lägg till utgående linje", + "EDIT_OUTBOUNDROUTE": "Redigera utgående linje", + "DELETE_OUTBOUNDROUTE": "Radera utgående linje", "CUTDIGITS": "Skär siffror", "RECORDING": "Inspelning", "RECORDINGFORMAT": "Inspelningsformat", - "INTERNALROUTES": "Inrikesrutter", - "ADD_INTERNALROUTE": "Lägg till intern rutt", - "EDIT_INTERNALROUTE": "Redigera intern rutt", - "DELETE_INTERNALROUTE": "Radera intern rutt", - "CONTEXTS": "Sammanhang", - "ADD_CONTEXT": "Skapa sammanhang", - "EDIT_CONTEXT": "Redigera sammanhang", - "DELETE_CONTEXT": "Radera sammanhang", + "INTERNALROUTES": "Interna linjer", + "ADD_INTERNALROUTE": "Lägg till intern linje", + "EDIT_INTERNALROUTE": "Redigera intern linje", + "DELETE_INTERNALROUTE": "Radera intern linje", + "CONTEXTS": "Context", + "ADD_CONTEXT": "Skapa context", + "EDIT_CONTEXT": "Redigera context", + "DELETE_CONTEXT": "Radera context", "VOICEMAILS": "Röstmeddelanden", "ADD_VOICEMAIL": "Skapa röstmeddelande", "EDIT_VOICEMAIL": "Redigera röstmeddelande", @@ -192,11 +192,11 @@ "PASSWORD": "Lösenord", "CONFIRM_PASSWORD": "Bekräfta lösenord", "TIMEZONE": "Tidszon", - "ATTACH": "Fäst", + "ATTACH": "Bifoga", "ENVELOPE": "Kuvert", "DELETE": "Radera", - "EMAILBODY": "Email-kroppen", - "EMAILSUBJECT": "Epostmeddelandets ämne", + "EMAILBODY": "E-mailets innehåll", + "EMAILSUBJECT": "E-mailets ämne", "MAXSECONDS": "Max antal sekunder", "MAXMESSAGES": "Max meddelanden", "MESSAGES": "Meddelanden", @@ -211,7 +211,7 @@ "CHANSPY": "Medlyssning", "PREFIX": "Prefix", "OPTIONS": "Alternativ", - "AUTH": "Attest attribut", + "AUTH": "Autentisering", "ADD_CHANSPY": "Skapa medlyssning", "EDIT_CHANSPY": "Redigera medlyssning", "DELETE_CHANSPY": "Radera medlyssning", @@ -219,15 +219,15 @@ "TELEPHONES": "Telefoner", "QUEUES": "Köer", "QUEUE_CALLS": "Sätt samtal i kö", - "QUEUE_PARAMETERS": "Kö parametrar", - "ABANDONED_CALLS": "Övergivna samtal", + "QUEUE_PARAMETERS": "Köparametrar", + "ABANDONED_CALLS": "Missade samtal", "OUTBOUND_CALLS": "Utgående samtal", "AGI": "AGI", "DIAL": "Ring", "CALLYSQUARE": "CallySquare", "INTERNALDIAL": "Interna samtal", - "EXTERNALDIAL": "Utgående samtal", - "RINGGROUP": "Ring grupp", + "EXTERNALDIAL": "Externa samtal", + "RINGGROUP": "Ringgrupp", "PLAYBACK": "Uppspelning", "QUEUE": "Kö", "SET": "Ställ in", @@ -238,29 +238,29 @@ "PROJECT": "Cally-Square projekt", "TECHNOLOGY/RESOURCE": "Teknik/Resurs", "URL": "URL", - "EDIT_APP": "Redigera ansökan", + "EDIT_APP": "Editera app", "EDIT_INTERVAL": "Redigera intervall", - "DELETE_APP": "Radera ansökan", + "DELETE_APP": "Radera app", "INTERVALS": "Intervall", "USER": "Användare", "TRUNK": "Trunk", "PHONE": "Telefon", "AUDIO_FILES": "Ljudfiler", - "ANNOUNCE_OVERRIDES": "Meddela åsidosätter", + "ANNOUNCE_OVERRIDES": "Meddela overrides", "MACRO": "Makro", "GOSUB": "GoSub", "RULE": "Regel", "POSITION": "Läge", "ANSWER": "Svar", "VALUE": "Värde", - "MAILBOX@CONTEXT": "epost@sammanhang", + "MAILBOX@CONTEXT": "epost@context", "EXTENSION": "Förlängning", "PRIORITY": "Prioritet", "HANGUP_CAUSE": "Orsak till avslutat samtal", "OUTBOUNDDIAL": "Utgående uppringning", "CALLER_ID": "Nummerpresentation", "NO_MESSAGE_AVAILABLE": "Inga meddelanden finns tillgängliga", - "NO_SOUND_AVAILABLE": "Inga ljud tillgängligt", + "NO_SOUND_AVAILABLE": "Inga ljud tillgängliga", "VOICERECORDINGS": "Röstinspelningar", "CHANSPIES": "Medlyssning", "VOICE": "Röst", @@ -269,46 +269,46 @@ "VOICEMAIL_CONTEXT": "Bakgrund", "NO_MOHSOUND_AVAILABLE": "Ingen musik i vänteläge tillgängliga", "FILE": "Fil", - "ADD_MOHSOUND": "Lägga till musik i vänteläge ljud", - "DOWNLOAD_MOHSOUND": "Download musik håller på ljud", - "DELETE_MOHSOUND": "Ta bort musik håller på ljud", + "ADD_MOHSOUND": "Lägga till musik i vänteläge", + "DOWNLOAD_MOHSOUND": "Download musik i vänteläge", + "DELETE_MOHSOUND": "Ta bort musik i vänteläge", "UNIQUEID": "Unikt ID", "AGENT": "Agent", "TYPE": "Typ", "RATING": "Betyg", "AUDIO": "Ljud", "DATE": "Datum", - "NEW_VOICEQUEUE": "Ny röst kö", - "NEW_INBOUNDROUTE": "Nya inkommande rutt", - "NEW_OUTBOUNDROUTE": "Ny utgående rutt", - "NEW_INTERNALROUTE": "Nya interna rutt", - "NEW_CONTEXT": "Ny ram", + "NEW_VOICEQUEUE": "Ny röstkö", + "NEW_INBOUNDROUTE": "Ny inkommande linje", + "NEW_OUTBOUNDROUTE": "Ny utgående linje", + "NEW_INTERNALROUTE": "Ny intern linje", + "NEW_CONTEXT": "Ny context", "NEW_VOICEMAIL": "Nytt röstmeddelande", "NEW_MUSICONHOLD": "Ny musik i vänteläge", - "NEW_CHANSPY": "Nya ChanSpy", - "PENALTY": "Dödsstraff", - "ADD_TEAM_TO_VOICEQUEUE": "Lägg till Team till röst kö", - "ADD_AGENT_TO_VOICEQUEUE": "Lägg medlet på röst kö", + "NEW_CHANSPY": "Ny ChanSpy", + "PENALTY": "Prioritering", + "ADD_TEAM_TO_VOICEQUEUE": "Lägg till Team till röstkö", + "ADD_AGENT_TO_VOICEQUEUE": "Lägg till Agent till röstkö", "EDIT_DIAL": "Redigera kortnummer", "EDIT_AGI": "Redigera AGI", - "EDIT_INTERNALDIAL": "Redigera inre ring", - "EDIT_EXTERNALDIAL": "Redigera externa Dial", - "EDIT_RINGGROUP": "Redigera Ring grupp", + "EDIT_INTERNALDIAL": "Redigera intern upprungning", + "EDIT_EXTERNALDIAL": "Redigera extern uppringning", + "EDIT_RINGGROUP": "Redigera ringgrupp", "EDIT_PLAYBACK": "Redigera uppspelning", "EDIT_QUEUE": "Redigera kö", - "EDIT_SET": "Redigera in", + "EDIT_SET": "Redigera set", "EDIT_GOTO": "Redigera GoTo", - "EDIT_HANGUP": "Redigera hindern", - "EDIT_CUSTOM": "Redigera anpassad", + "EDIT_HANGUP": "Redigera avslut av samtal", + "EDIT_CUSTOM": "Redigera custom", "DURATION": "Varaktighet", "RECEIVED_AT": "Fick vid", "YES": "Ja", "NO": "Nr", "HANGUPCAUSE_1": "1 = Ej allokerat nummer", - "HANGUPCAUSE_16": "16 = Normail samtal rensa", + "HANGUPCAUSE_16": "16 = Normalt avslut", "HANGUPCAUSE_17": "17 = Användaren upptagen", - "HANGUPCAUSE_18": "18 = Inget svar från användare (telehone enheten är inte ansluten)", - "HANGUPCAUSE_21": "21 = Samtal avvisade", + "HANGUPCAUSE_18": "18 = Inget svar från användare (telefonen är inte ansluten)", + "HANGUPCAUSE_21": "21 = Samtal avvisat", "HANGUPCAUSE_22": "22 = Antal ändrat", "HANGUPCAUSE_27": "27 = Mål ur funktion", "HANGUPCAUSE_38": "38 = Nätverk ur funktion", @@ -316,44 +316,44 @@ "RANDOM": "Slumpmässig", "ALPHABETICAL": "Alfabetisk", "NO_APPS_AVAILABLE": "Inga program är tillgängliga", - "DOWNLOAD_VOICERECORDING": "Download röstinspelning", + "DOWNLOAD_VOICERECORDING": "Ladda ned röstinspelning", "DELETE_VOICERECORDING": "Ta bort röstinspelning", "INTERNAL": "Intern", - "PHONE_STATE": "Telefon stat", - "PHONE_STATUS": "Telefonstatus", - "TRUNK_STATUS": "Däcktrycksstatus", + "PHONE_STATE": "Status på telefon", + "PHONE_STATUS": "Status på telefon", + "TRUNK_STATUS": "Status på trunk", "REGISTERED": "Registrerad", - "UNREGISTERED": "Oregistrerade", - "LAGGED": "Halkade", - "REACHABLE": "Nå", + "UNREGISTERED": "Oregistrerad", + "LAGGED": "Laggad", + "REACHABLE": "Tillgänglig", "UNREACHABLE": "Otillgänglig", "UNKNOWN": "Okänd", "NOT_INUSE": "Inte använd", - "INUSE": "I ANVÄNDNING", + "INUSE": "Använd", "BUSY": "Upptagen", "INVALID": "Ogiltig", "UNAVAILABLE": "Otillgänglig", "RINGING": "Ringa", - "ONHOLD": "På håll", + "ONHOLD": "Pausad", "RING": "Ring", "UP": "Upp", "INFO": "Info", - "TRUNKS": "Segment", + "TRUNKS": "Trunks", "REGISTRY": "Registrering", "NO_REGISTRY": "Ingen registrering", "LOGGED_IN": "Inloggad", "PAUSED": "Pausad", "WAITING": "Väntar", "TALKING": "Prata", - "DID": "Gjorde", + "DID": "DID", "CALLER": "Uppringare", "TOTAL": "Totalt", "ANSWERED": "Svarade", - "ABANDONED": "Övergivna", - "UNMANAGED": "Unmanaged", + "ABANDONED": "Missade", + "UNMANAGED": "Ej managerade", "AVG_HOLD_TIME": "Genomsn. väntetid", - "AVG_DURATION": "Av-varaktighet", - "AVG_BILLABLE": "Avg Billable", + "AVG_DURATION": "Genomsn. total längd", + "AVG_BILLABLE": "Genomsn. samtalstid", "SOURCE": "Källa", "DESTINATION": "Destination", "REJECTED": "Avvisad", @@ -362,44 +362,44 @@ "CONNECTED": "Ansluten", "NO_RATING": "Inga betyg", "EDIT_VOICERECORDING": "Redigera röstinspelning", - "APPLICATION_NAME": "Programnamn", + "APPLICATION_NAME": "Applikationsnamn", "ARGUMENTS": "Argument", - "NO_AVAILABLE_INFO": "Inga tillgängliga info", - "ADD_AGENT_TO_QUEUE": "Lägg medlet till kö", + "NO_AVAILABLE_INFO": "Ingen tillgänglig info", + "ADD_AGENT_TO_QUEUE": "Lägg till agent till kö", "DEFAULT_PAUSE": "Standard paus", "PAUSE": "Pausa", - "UNPAUSE": "Unpause", + "UNPAUSE": "Unpausa", "REDIRECT_TO_NUMBER": "Omdirigera till nummer", "REDIRECT_TO_AGENT": "Omdirigera till agent", - "AGENTADD_VOICEQUEUE": "Lägg medlet på röst kö", - "APPLICATION": "Tillämpning", + "AGENTADD_VOICEQUEUE": "Lägg till agent till kö", + "APPLICATION": "Applikation", "FILES": "Filer", "FORMAT": "Format", "MODE": "Läge", "RECORD": "Spela in", - "TEAMADD_VOICEQUEUE": "Lägg till team till voicequeue", - "NEW_MOHSOUND": "Ny musik håller på ljud", - "DOWNLOAD_MESSAGE": "Download", + "TEAMADD_VOICEQUEUE": "Lägg till team till kö", + "NEW_MOHSOUND": "Ny musik i vänteläge", + "DOWNLOAD_MESSAGE": "Ladda ned meddelande", "DELETE_MESSAGE": "Ta bort", - "QUEUE_PARAMS": "Kön parametrar", + "QUEUE_PARAMS": "Köparametrar", "TOTAL_OFFERED": "Totalt erbjuds", "READY": "Klar", - "AGENTADD_QUEUE": "Lägg medlet på röst köer", - "AGENTSADD_QUEUE": "Lägg till agenter till voice kö", - "ALL_TEAMS": "Alla grupper", - "SELECTED_TEAMS": "Valda grupper", + "AGENTADD_QUEUE": "Lägg till agent till kö", + "AGENTSADD_QUEUE": "Lägg till agenter till kö", + "ALL_TEAMS": "Alla teams", + "SELECTED_TEAMS": "Valda teams", "ALL_AGENTS": "Alla agenter", "SELECTED_AGENTS": "Valda agenter", - "CLOSING": "Stängning", + "CLOSING": "Stäng", "TAGS": "Etiketter", - "WAITING_FOR_AGENT": "Väntar för agenter", + "WAITING_FOR_AGENT": "Väntar på agent", "EDIT_OUTBOUNDDIAL": "Redigera utgående uppringning", "ACCOUNTNAME": "Kontonamn", - "PAGE": "Sidan", + "PAGE": "Sida", "ROWSPERPAGE": "Rader per sida", "OF": "Av", - "DISPOSITION": "Disposition", - "WAITING_FOR_AGENTS": "Väntar för agenter", + "DISPOSITION": "Kategori", + "WAITING_FOR_AGENTS": "Väntar på agenter", "CHAT": "Chatt", "MAIL": "Post", "SMS": "SMS", @@ -410,36 +410,36 @@ "STATUS": "Status", "TIMER": "Timer", "ALL": "Alla", - "IDLE": "Tomgång", - "EDIT_TRUNK": "Redigera bagageutrymmet", + "IDLE": "Idle", + "EDIT_TRUNK": "Redigera trunk", "ACTIVE": "Aktiva", "CLEAR": "Klar", - "CALLS": "samtal", - "STARTEDAT": "Börjat vid", - "ENDEDAT": "Avslutad At", - "TAG": "Märka", - "DETAILS": "detaljer", + "CALLS": "Samtal", + "STARTEDAT": "Började vid", + "ENDEDAT": "Avslutad vid", + "TAG": "Etikett", + "DETAILS": "Detaljer", "BILLABLESECONDS": "Fakturerbara sekunder", - "ANSWEREDAT": "Besvaras vid", + "ANSWEREDAT": "Besvarad vid", "NOTE": "Notera", "CLOSE": "Stänga", - "SELECT_DATE": "Välj Startdatum", + "SELECT_DATE": "Välj startdatum", "SELECT_TYPE": "Välj typ", - "ABANDONEDCALLS": "Övergivna kösamtal", + "ABANDONEDCALLS": "Missade kösamtal", "ADD_VOICEPREFIX": "Lägg till prefix", "AGENTADD_VOICEPREFIX": "Lägg till agent till prefix", - "DELETE_VOICEPREFIX": "Radera prefixet", + "DELETE_VOICEPREFIX": "Radera prefix", "EDIT_VOICEPREFIX": "Redigera prefix", "NEW_VOICEPREFIX": "Nytt prefix", - "VOICEPREFIXES": "Ut prefix", + "VOICEPREFIXES": "Utgående prefix", "CALLERIDALL": "Nummer id", - "OUTBOUNDROUTE": "Utgående rutt", + "OUTBOUNDROUTE": "Utgående linje", "LOGIN_TIME": "Inloggningstid", - "PAUSE_TIME": "Paus tid", + "PAUSE_TIME": "Paustid", "DIALER": "Dialer", - "INBOUND": "inkommande", + "INBOUND": "Inkommande", "OUTBOUND": "Utgående", - "MANDATORYDISPOSITION": "Obligatorisk disposition", - "MANDATORYDISPOSITIONPAUSEID": "Obligatorisk disposition pausstatus" + "MANDATORYDISPOSITION": "Obligatorisk kategorisering", + "MANDATORYDISPOSITIONPAUSEID": "Obligatorisk pausstatus vid kategorisering" } } \ No newline at end of file diff --git a/public/app/quick-panel/i18n/sv.json b/public/app/quick-panel/i18n/sv.json index 0b1c42c..ef32282 100644 --- a/public/app/quick-panel/i18n/sv.json +++ b/public/app/quick-panel/i18n/sv.json @@ -38,16 +38,16 @@ "MORE": "Mer", "SEND_MESSAGE": "Skicka meddelande", "REPLY_PLACEHOLDER": "Typ och tryck enter för att skicka meddelandet", - "CONTACT_XCALLY_MOTION_SUPPORT": "Kontakta xCALLY Motion stöd", + "CONTACT_XCALLY_MOTION_SUPPORT": "Kontakta xCALLY Motion support", "EXPIRATION_DATE": "Utgångsdatum", "EXPIRATION_REASON": "Utgångsdatum anledning", "LICENSE": "Licens", - "NEW_TOKEN": "Nytt token", + "NEW_TOKEN": "Ny token", "OLD_TOKEN": "Gamla token", "SEND_EMAIL_TO": "Skicka e-post till", "TOKEN": "Token", - "EXPIRATION_REASON_MESSAGE": "Din licens har gått ut eller din maskin unika id har uppdaterats på grund av en ändring i ditt system. Kontakta xCALLY Motion supportteam skicka både din gamla och din nya uuid.", - "GRAY_PERIOD_EXPIRATION": "Grå Periodförfallodagen", + "EXPIRATION_REASON_MESSAGE": "Din licens har gått ut eller din maskins unika id har uppdaterats på grund av en ändring i ditt system. Kontakta xCally Motion supportteam skicka både din gamla och din nya uuid.", + "GRAY_PERIOD_EXPIRATION": "Gray Period Expiration", "ERRORS": { "NAME_REQUIRED": "Obligatoriskt fält" }, diff --git a/public/app/toolbar/i18n/sv.json b/public/app/toolbar/i18n/sv.json index 255b585..e398cb7 100644 --- a/public/app/toolbar/i18n/sv.json +++ b/public/app/toolbar/i18n/sv.json @@ -33,8 +33,8 @@ "OLD_PASSWORD": "Gammalt lösenord", "SAVE": "Spara", "TRIAL_VERSION": "Provversion", - "SOMEONE_LOGGED_YOU_OUT": "Någon har loggat ut dig, vill du bo inloggad?", - "STAY_LOGGED": "Stanna inloggad", + "SOMEONE_LOGGED_YOU_OUT": "Någon har loggat ut dig, vill du förbli inloggad?", + "STAY_LOGGED": "Fortsätt vara inloggad", "WARNING": "Varning", "PAUSE": "Pausa", "RESUME": "Återuppta", @@ -45,7 +45,7 @@ "FIELD_REQUIRED": "Obligatoriskt fält", "PASSWORD_REQUIRED": "Obligatoriskt fält", "CONFIRM_NOT_MATCH": "Lösenorden matchar inte", - "SECURE_PASSWORD_PATTERN": "Lösenordet måste vara minst 8 tecken långt och ha 1 små bokstäver, 1 stor bokstav, 1 tal och 1 specialtecken ~! @" + "SECURE_PASSWORD_PATTERN": "Lösenordet måste vara minst 8 tecken långt och innehålla 1 versal bokstav, 1 gemen bokstav, 1 siffra och 1 specialtecken ~! @" }, "RESETPASSWORD": "Återställ lösenord", "PASSWORD_EXPIRE_REMAINING_DAYS": "Återstående dagar innan ditt lösenord löper ut", @@ -73,13 +73,13 @@ "MICROPHONE": "Mikrofon", "PROFILE": "Profil", "SERVICES": "tjänster", - "AUDIO": "Audio", - "FULLNAME": "Fullständiga namn", + "AUDIO": "Ljud", + "FULLNAME": "Fullständigt namn", "NAME": "namn", - "INTERNAL": "Inre", + "INTERNAL": "Internt", "RINGINGDEVICE": "Ringsignal", "SPEAKERDEVICE": "Högtalare", - "MICROPHONEDEVICE": "Mikrofon enhet", + "MICROPHONEDEVICE": "Mikrofon", "CHANGEPASSWORD": "ändra lösenord", "SETTINGS": "inställningar", "AUTOANSWER": "Automatiskt svar", diff --git a/public/index.html b/public/index.html index b7b35e1..985d340 100644 --- a/public/index.html +++ b/public/index.html @@ -58,7 +58,7 @@ - + diff --git a/public/scripts/app.3641b4fb.js b/public/scripts/app.3641b4fb.js deleted file mode 100644 index 504c066..0000000 --- a/public/scripts/app.3641b4fb.js +++ /dev/null @@ -1 +0,0 @@ -!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","gridster","ds.clock","angucomplete-alt"])}(),function(){"use strict";function e(e,t){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"}),t.addPart("app/errors/404")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-404",[]).config(e)}(),function(){"use strict";function e(e,t){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"}),t.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,t){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"}),t.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.login","app.forgot","app.reset","app.errors"])}(),function(){"use strict";function e(e,t){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"}),t.addPart("app/login")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.login",[]).config(e)}(),function(){"use strict";function e(e,t,n,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,t){return t.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:t.getCurrentUser().userProfileId,section:"Metrics",fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:t.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:t.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,t){return t.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:t.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,t){return t.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:t.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:t.getCurrentUser().userProfileId,sectionId:1202})}]},authenticate:!0,permissionId:1202,bodyClass:"analytics"}),t.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,t){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:t.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,t){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:t.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,t,a,i){var s;return e.resolve("analyticCustomReport@get",{fields:"createdAt,updatedAt,id,name,description,table,conditions,joins",id:t.id}).then(function(e){var t=[];if((s=e).joins)try{s.joins=JSON.parse(s.joins);for(var n=0;n');a.append(t),o(function(){!function(e,t){var n=t.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("",""),n.append(o.value).addClass("highlight")}(e,t)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";angular.module("app.core").directive("msCard",function(){return{restrict:"E",scope:{templatePath:"=template",card:"=ngModel",vm:"=viewModel"},template:'
',compile:function(e){return e.addClass("ms-card"),function(e,t){e.cardTemplateLoaded=function(){e.$emit("msCard::cardTemplateLoaded",t)}}}}})}(),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(n,t,a,i,s,o,e,r,l){function d(e){switch(n.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(n.currentUser.phoneBarRemoteControlPort||"9888")+"/api/originate/"+c(e));case 2:return t.$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")})})}n.currentUser=e.getCurrentUser(),n.showMenu=function(){return n.target&&n.target.indexOf("@")<0&&n.target!=n.currentUser.internal&&n.target!=n.currentUser.name&&(0==n.currentUser.showWebBar&&n.currentUser.phoneBarRemoteControl||2==n.currentUser.showWebBar&&n.license.webrtc)&&!n.disabled},n.call=function(e){return 2!==n.currentUser.showWebBar?(t=e,l.user.getVoicePrefixes({id:n.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:n.currentUser.phoneBarPrefixRequired}})}).then(function(e){n.currentUser.phoneBarPrefixRequired?e&&-1!==e&&d(e+t):e&&-1!==e?d(e+t):e||d(t)})):d(e);var t},n.transfer=function(e){switch(n.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(n.currentUser.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+c(e));case 2:t.$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,t,n,a){a.$formatters.push(i.formatter),a.$parsers.push(i.parser)}}}e.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",function(){var t={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){t=angular.extend({},t,e)},this.$get=function(){return t}}).directive("msDatepickerFix",e)}(),function(){"use strict";angular.module("app.core").directive("msDualMultiselect",function(){return{restrict:"E",scope:{options:"="},controller:["$scope",function(o){o.canTransfer=function(e,t,n){if(!t.readOnly)return void 0!==e.isValid&&e.isValid?n?o.transfer(t.selectedItems,t.items,t.selectedItems.indexOf(e),n):o.transfer(t.items,t.selectedItems,t.items.indexOf(e),n):void 0},o.transfer=function(e,t,n,a){var i=[];if(0<=n)i.push(e[n]),t.push(e[n]),e.splice(n,1);else{for(var s=0;s',link:function(n,e){var t=e.emojioneArea({pickerPosition:n.pickerPosition,search:n.search,recentEmojis:n.recentEmojis,placeholder:a.instant(n.placeholder||"Type a message"),attributes:{spellcheck:!0},events:{keyup:function(e,t){n.ngModel=this.getText(),n.onReply({event:t,body:this.getText()})},emojibtn_click:function(){n.ngModel=this.getText()}}});n.ngModel&&t[0].emojioneArea.setText(n.ngModel),n.internalControl=n.ctrlMethods||{},n.internalControl.setText=function(e){t[0].emojioneArea.setText(e)},n.internalControl.getText=function(){return t[0].emojioneArea.getText()},n.$watch("ngModel",function(e){e||t[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:"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 t=this;function e(){return t.forms.length}function n(){return 0===t.selectedIndex}function a(){return t.selectedIndex===e()-1}t.forms=[],t.selectedIndex=0,t.registerForm=function(e){t.forms.push(e)},t.previousStep=function(){if(n())return;t.selectedIndex--},t.nextStep=function(){if(a())return;t.selectedIndex++},t.firstStep=function(){t.selectedIndex=0},t.lastStep=function(){t.selectedIndex=e()-1},t.totalSteps=e,t.isFirstStep=n,t.isLastStep=a,t.currentStepInvalid=function(){return angular.isDefined(t.forms[t.selectedIndex])&&t.forms[t.selectedIndex].$invalid},t.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}),t=0;t'),r=angular.element('
'),l=t.parent();function d(){s.addClass("ms-nav-folded"),g.$broadcast("msNav::forceCollapse"),t.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"),t.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"),t.off("mouseenter mouseleave")}v.setFoldable(e,t,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"),t.off("mouseenter mouseleave")})}}}function t(n,a,i){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(e){return e.addClass("ms-nav"),function(e){n.$broadcast("msNav::expandMatchingToggles");var t=n.$on("$stateChangeSuccess",function(){n.$broadcast("msNav::expandMatchingToggles"),a.when("navigation").then(function(e){e.close(),i.isNavFoldedOpen()&&i.closeFolded()})});e.$on("$destroy",function(){t()})}}}}function n(m,u,p,g){return{restrict:"A",require:"^msNav",scope:!0,compile:function(e,t){return e.addClass("ms-nav-toggle"),angular.isUndefined(t.collapsed)&&(t.collapsed=!0),e.attr("collapsed",t.collapsed),function(a,i,e,n){var s={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},t=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 t=angular.element(i.find("ms-nav-toggle-items")[0]);t.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var n=t[0].offsetHeight;return t.css({position:"",visibility:"",display:"",height:""}),a.$evalAsync(function(){p.animate(t,{display:"block",height:"0px"},{height:n+"px"},s.expandAnimation).then(function(){t.addClass(s.expanded),t.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 t=angular.element(i.find("ms-nav-toggle-items")[0]),n=t[0].offsetHeight;return a.$evalAsync(function(){p.animate(t,{height:n+"px"},{height:"0px"},s.collapseAnimation).then(function(){t.removeClass(s.expanded),t.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}angular.forEach(t,function(e){var t=angular.element(e).attr("ui-sref");angular.isUndefined(t)||(t=t.replace(r,""),o.push(t))}),n.setToggleItem(i,a),i.children(".ms-nav-button").on("click",function(){if(n.isDisabled())return;n.disable(),l()?(n.clearLockedItems(),a.$emit("msNav::pushToLockedList"),m.$broadcast("msNav::collapse"),d().then(function(){n.enable()})):a.$broadcast("msNav::forceCollapse")}),a.$on("$destroy",function(){i.children(".ms-nav-button").off("click")}),a.$on("msNav::collapse",function(){var e=n.getLockedItems(),t=!1;angular.forEach(e,function(e){angular.equals(e.scope,a)&&(t=!0)}),t||c().then(function(){n.enable()})}),a.$on("msNav::forceCollapse",function(){c().then(function(){n.enable()})}),a.$on("msNav::expandMatchingToggles",function(){var t=g.current.name,n=!1;angular.forEach(o,function(e){t===e&&(n=!0)}),n?d():c()}),a.$on("msNav::pushToLockedList",function(){n.setLockedItem(i,a)})}}}}e.$inject=["$document","$rootScope","msNavFoldService"],t.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],n.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",function(){var n={};return{setFoldable:function(e,t){n={scope:e,element:t}},isNavFoldedOpen:function(){return n.scope.isNavFoldedOpen()},toggleFold:function(){n.scope.toggleFold()},openFolded:function(){n.scope.openFolded()},closeFolded:function(){n.scope.closeFolded()}}}).directive("msNavIsFolded",e).controller("MsNavController",function(){var e=this,t=!1,n=[],a=[];e.isDisabled=function(){return t},e.enable=function(){t=!1},e.disable=function(){t=!0},e.setToggleItem=function(e,t){n.push({element:e,scope:t})},e.getLockedItems=function(){return a},e.setLockedItem=function(e,t){a.push({element:e,scope:t})},e.clearLockedItems=function(){a=[]}}).directive("msNav",t).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",n)}(),function(){"use strict";function e(e,t){e.root?this.navigation=t.getNavigation(e.root):this.navigation=t.getNavigation(),this.toggleHorizontalMobileMenu=function(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")},t.sort()}function t(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,t){var n=angular.element("body"),a=angular.element('
'),i=angular.element('
'),s=u("navigation");function o(e){if(p.setFolded(e),e)c.$broadcast("msNavigation::collapse"),n.addClass("ms-navigation-folded"),r();else{var t=p.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched"),n.removeClass("ms-navigation-folded ms-navigation-folded-open"),i.remove()}}function r(){t.parent().append(a),m(function(){a.on("mouseenter touchstart",l)})}function l(e){e&&e.preventDefault(),p.setFoldedOpen(!0);var t=p.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched"),n.addClass("ms-navigation-folded-open"),a.remove(),n.find("#main").append(i),i.on("mouseenter touchstart",d)}function d(e){e&&e.preventDefault(),p.setFoldedOpen(!1),c.$broadcast("msNavigation::collapse"),n.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")}),n.addClass("ms-navigation-folded"),r())}(),e.$watch(function(){return s.isLockedOpen()},function(e,t){if(!angular.isUndefined(e)&&!angular.equals(e,t)&&p.getFolded())if(e)c.$broadcast("msNavigation::collapse");else{var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched")}}),e.$watch("folded",function(e,t){angular.isUndefined(e)||angular.equals(e,t)||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 n(n,e,a,i,t,s){var o=this;o.element=e,o.node=n.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"),t=e[0].offsetHeight;n.$evalAsync(function(){o.collapsed=!0,o.element.addClass("collapsing"),i.animate(e,{display:"block",height:t+"px"},{height:"0px"},o.animateHeightClass).then(function(){e.css({display:"",height:""}),o.element.removeClass("collapsing")}),n.$broadcast("msNavigation::collapse")})},o.expand=function(){var e=o.element.children("ul");e.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var t=e[0].offsetHeight;e.css({position:"",visibility:"",display:"",height:""}),n.$evalAsync(function(){o.collapsed=!1,o.element.addClass("expanding"),i.animate(e,{display:"block",height:"0px"},{height:t+"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":t.user,c.create("Incoming call from: ",n,null,function(){t.answer(m.sessionConf)},function(){t.terminate()}).then(function(e){t.notification=e}).catch(function(e){console.error(e)}),v(e.session.user,!0),m.conf.autoAnswer&&s(function(){a.isInProgress()&&(a.autoAnswer=!0,m.conf.microphoneId?m.sessionConf.mediaConstraints.audio={deviceId:m.conf.microphoneId}:m.sessionConf.mediaConstraints.audio=!0,a.answer(m.sessionConf))},m.conf.autoAnswerDelay?1e3*m.conf.autoAnswerDelay:0)}a.call_id=e.request.call_id,a.connection&&(a.connection.onaddstream=b.bind(this)),a.on("progress",function(e,t){var n=!1;switch(t.originator){case"local":this.conf.ringingMute||(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/incoming-call.ogg"),n=!0);break;case"remote":this.putOtherCallsOnHold(e),this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/outgoing-call.ogg"),n=!0}n&&(this.soundPlayer.loop="loop",this.soundPlayer.play().catch(function(e){console.log(e.message)}))}.bind(this,a)),a.on("confirmed",function(n,e){return n.confirmed=!0,"remote"===e.originator&&n.connection&&(n.connection.onaddstream=b.bind(this),_.head(n.connection.getRemoteStreams())&&(this.remotePlayer.srcObject=_.head(n.connection.getRemoteStreams()),this.remotePlayer.play())),this.soundPlayer.pause(),this.soundPlayer.loop=null,this.putOtherCallsOnHold(n),g("speaker"),g("microphone"),n.autoAnswer&&(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/beep.ogg"),this.soundPlayer.play().catch(function(e){console.log(e.message)})),2==m.sessions.length?m.canGoInConference=!0:m.canGoInConference=!1,d.rpc.getVoiceChannels().$promise.then(function(e){var t=_.find(e.rows,function(e){return e.sipcalllinkedid===n.call_id?e:e.sipcalluniqueid===n.call_id?e:null});t&&(n.monitor=t.monitor,n.uniqueid=t.uniqueid,n.monitors=t.monitors)}).catch(function(e){console.error(e)})}.bind(this,a)),a.on("hold",function(e,t){"local"===t.originator&&(e.localHold=!0)}.bind(this,a)),a.on("unhold",function(e,t){"local"===t.originator&&(e.localHold=!1)}.bind(this,a)),a.on("ended",function(e,t){m.isInConference&&_.includes(m.currentConferenceSessions,e.id)&&I(),_.remove(this.sessions,{id:e.id}),2!==m.sessions.length&&(m.canGoInConference=!1)}.bind(this,a)),a.on("failed",function(e,t){this.soundPlayer.pause(),this.soundPlayer.loop=null,e.notification&&e.notification.close(),m.isInConference&&_.includes(m.currentConferenceSessions,e.id)&&I(),_.remove(this.sessions,{id:e.id}),2!==m.sessions.length&&(m.canGoInConference=!1)}.bind(this,a)),this.sessions.push(a),i.$$phase||i.$root.$$phase||i.$apply()}function A(){m.target="",document.getElementById("ms-target").blur(),document.getElementById("ms-target").value="",i.$broadcast("angucomplete-alt:clearInput","ms-target-wrap")}function y(e,t,n,a){return function(){o.show(o.simple().textContent(t).position(n).hideDelay(a)),e.terminate()}}function S(t){return d.user.getVoicePrefixes({id:m.conf.id}).$promise.then(function(e){if(e.count)return a.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(n.body),clickOutsideToClose:!0,locals:{prefixes:e,required:m.conf.phoneBarPrefixRequired}})}).then(function(e){if(m.conf.phoneBarPrefixRequired){if(e&&-1!==e)return e+t}else{if(e&&-1!==e)return e+t;if(!e)return t}})}function T(){new AudioContext;if(m.isInConference){var e=m.sessions[0].connection.getReceivers()[0],t=m.sessions[1].connection.getReceivers()[0],n=new MediaStream;n.addTrack(e.track),n.addTrack(t.track);var a=document.getElementById("remote-audio");a.srcObject=n;var i=a.play();void 0!==i&&i.then(function(){}).catch(function(e){console.log(e)})}}function I(){m.canGoInConference=!1,m.isInConference=!1,m.currentconferenceSessions=[]}e(function(){},999),m.direction="right",m.selectedMode="md-scale",m.target="",m.showDialpad=!1,m.soundPlayer=document.createElement("audio"),m.remotePlayer=document.getElementById(m.conf.remotePlayerId),m.soundPlayer.volume=1,m.sessionConf={mediaConstraints:{audio:!0,video:!1}},m.sessions=[],m.calls=[],m.canGoInConference=!1,m.isInConference=!1,m.currentConferenceSessions=[],m.ua=new JsSIP.UA({sockets:[new JsSIP.WebSocketInterface("wss://"+m.conf.host+":8089/ws")],uri:new JsSIP.URI("sip",m.conf.name,m.conf.host,5060,null,null).toString(),authorization_user:m.conf.name,ha1:m.conf.ha1,realm:m.conf.realm,user_agent:m.conf.ua,session_timers_refresh_method:"invite",register_expires:m.conf.phoneBarExpires||60,register:!0}),m.conf=_.merge(p.webrtc,m.conf),n.bind("keyup",function(e){switch(e.keyCode){case 27:s(function(){m.showDialpad=!1})}}),m.$onInit=function(){g("ringing"),g("speaker"),this.ua.on("registered",function(){console.log("registered"),this.registered=!0}.bind(this)),this.ua.on("unregistered",function(){console.log("unregistered"),this.registered=!1}.bind(this)),this.ua.on("newRTCSession",E.bind(this)),DetectRTC.load(function(){this.conf.hasMicrophone=DetectRTC.hasMicrophone,this.conf.hasSpeakers="Chrome"!==DetectRTC.browser.name&&"Edge"!==DetectRTC.browser.name&&"Opera"!==DetectRTC.browser.name||DetectRTC.hasSpeakers,this.conf.isWebRTCSupported=DetectRTC.isWebRTCSupported,this.conf.osName=DetectRTC.osName,this.conf.osVersion=DetectRTC.osVersion,this.conf.browserName=DetectRTC.browser.name,this.conf.browserVersion=DetectRTC.browser.version,h()?this.ua.start():this.conf.license||l.warning({title:r.instant("TOOLBAR.WARNING"),msg:r.instant("TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}.bind(this))}.bind(this),m.type=function(e,t){var n=e;switch(m.target||(m.target=""),t&&(m.target+=e,i.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",m.target)),e){case"*":n="asterisk";break;case"#":n="pound"}m.conf.enableDtmfTone&&(m.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/dialpad/"+n+".ogg"),m.soundPlayer.play().catch(function(e){console.log(e.message)}));for(var a=0;a');t.after(n),n.append(t)}}})}(),function(){"use strict";function e(s,o,t,n){return{restrict:"AE",compile:function(e){if(!(n.getConfig("disableCustomScrollbars")||n.getConfig("disableCustomScrollbarsOnMobile")&&t.isMobile()))return e.addClass("ms-scroll"),function(e,t,n){var a={};function i(){PerfectScrollbar.update(t[0])}n.msScroll&&(a=e.$eval(n.msScroll)),a=angular.extend({},o.getConfig(),a),s(function(){PerfectScrollbar.initialize(t[0],a)},0),t.on("mouseenter",i),e.$watch(function(){return t.prop("scrollHeight")},function(e,t){angular.isUndefined(e)||angular.equals(e,t)||i()}),e.$watch(function(){return t.prop("scrollWidth")},function(e,t){angular.isUndefined(e)||angular.equals(e,t)||i()}),e.$on("$destroy",function(){t.off("mouseenter"),PerfectScrollbar.destroy(t[0])})}}}}e.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",function(){var t={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){t=angular.extend({},t,e)},this.$get=function(){var e={getConfig:function(){return t}};return e}}).directive("msScroll",e)}(),function(){"use strict";function e(s,i,e){var o=this;o.collapsed=!0,o.query="",o.queryOptions={debounce:o.debounce||0};var t=!(!o.collapseOnBlur||"true"!=o.collapseOnBlur);o.resultsLoading=!1,o.results=null,o.selectedResultIndex=0,o.ignoreMouseEvents=!1,o.populateResults=function(e){if(o.collapsed)return;var t=angular.isArray(e),n=null===e;if(!t&&!n)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(!t)return;o.collapse()},o.absorbEvent=function(e){e.preventDefault()},o.handleKeydown=function(e){var t=e.keyCode;-1<[27,38,40].indexOf(t)&&e.preventDefault();switch(t){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+1n&&e.scrollTop(n),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}},s.$watch("MsSearchBar.query",function(e,t){if(!angular.isUndefined(e)&&!angular.equals(e,t)&&!o.collapsed){var n=s.$parent.$eval(o.onSearch,{query:e}),a=angular.isArray(n),i=n&&!!n.then;a&&o.populateResults(n),i&&(o.resultsLoading=!0,n.then(function(e){o.populateResults(e)},function(){o.populateResults([])}).finally(function(){o.resultsLoading=!1}))}})}function t(i){return{restrict:"E",scope:{},require:"msSearchBar",controller:"MsSearchBarController as MsSearchBar",bindToController:{debounce:"=?",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,t){var n,a=i.find("body");e.collapse=function(){t.removeClass("expanded"),a.removeClass("ms-search-bar-expanded")},e.expand=function(){t.addClass("expanded"),a.addClass("ms-search-bar-expanded"),n.focus()},n=t.find("#ms-search-bar-input")}}}}e.$inject=["$scope","$element","$timeout"],t.$inject=["$document"],angular.module("app.core").controller("MsSearchBarController",e).directive("msSearchBar",t)}(),function(){"use strict";function e(e,n,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=[],t=l.getFlatNavigation(),n=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 t=e.keyCode;-1<[38,40].indexOf(t)&&e.preventDefault();switch(t){case 13:d.handleResultClick(d.results[d.selectedResultIndex]);break;case 38:0<=d.selectedResultIndex-1&&(d.selectedResultIndex--,d.ensureSelectedResultIsVisible());break;case 40:d.selectedResultIndex+1n&&e.scrollTop(n),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,t,n){var a={element:e,scope:t,form:n,stepNumber:t.step||i.steps.length+1,stepTitle:t.stepTitle,stepTitleTranslate:t.stepTitleTranslate};return i.steps.push(a),i.steps.sort(function(e,t){return e.stepNumber-t.stepNumber}),a},i.setupSteps=function(){i.setCurrentStep(i.currentStepNumber)},i.resetForm=function(){e(function(){for(var e=0;ee.scrollWidth&&0==e.scrollLeft&&0==t.scrollLeft?"right":t.scrollWidth>e.scrollWidth&&t.scrollLeft>e.scrollLeft&&e.scrollWidth+t.scrollLeft>=t.scrollWidth?"left":t.scrollWidth>e.scrollWidth&&t.scrollLeft>e.scrollLeft&&e.scrollWidth+t.scrollLeftn.position().top+i&&(m(function(){o=!0}),r.off("scroll",c))}}}}}e.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",function(){var t=this;t.scrollEl=void 0,t.setScrollEl=function(e){t.scrollEl=e},t.getScrollEl=function(){return t.scrollEl}}).directive("msTimeline",function(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,t,n,a){var i=angular.element('
');t.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,t,n,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,t){e!==t&&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,t){a.countdown=t}),a.start=r[0].start=function(){var e=moment(),t=a.startTimeAttr?moment(a.startTimeAttr):null;a.startTime=!t||er.properties.length){var t=r.multiBarChart.series.length-r.properties.length;r.multiBarChart.series.splice(0,t),r.multiBarChart.data.splice(0,t)}for(var n=0;nr.filter.length){var a=r.multiBarChart.labels.length-r.filter.length;r.multiBarChart.labels.splice(0,a),r.multiBarChart.data[n].splice(0,a)}for(var i=0,s=0;io.properties.length){var t=o.pieChart.labels.length-o.properties.length;o.pieChart.labels.splice(0,t),o.pieChart.data.splice(0,t)}for(var n=0,a=0;n]+>/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,t){if(0===e.length||!t)return e;if(0===t.length)return[];for(var n=[],a=0;a')).html(i),s.append(o)})},rgba:l};function l(e,t){var n=t||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),n&&(e=function(e,t){var n={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]=n.white[t]:0===e[0]&&0===e[1]&&0===e[2]&&(e[3]=n.black[t]);return e}(e,n)),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(n,e,t){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(t.custom=i),n.alwaysWatchTheme(!0),angular.forEach(e,function(e){n.definePalette(e.name,e.options)}),angular.forEach(t,function(e,t){n.theme(t).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(t,n,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 n.error('You must have at least one theme named "default"'):(n.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 t.put("motion.selectedTheme",a.themes.active.name));a.themes.active.name=e,a.themes.active.theme=a.themes.list[e],t.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(t,s,o,r){this.search=function(t){for(var e=[],n=r.getFlatNavigation(),a=o.defer(),i=0;i"+(e.name||"extractedReport")+" will be deleted.").ariaLabel("delete extractedReport").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).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,t){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:t,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 t=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(t).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 E=!0,A=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 t=0;t"+(e.name||"metric")+" will be deleted.").ariaLabel("delete metric").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).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,t){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:t,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 t=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(t).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 E=!0,A=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 t=0;t"+e.field+" will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");a.show(n).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,t){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:t,reportFields:c.reportFields.rows,metrics:c.metrics,columns:c.columns,setting:null,crudPermissions:c.crudPermissions}})},c.deleteReportField=p,c.deleteSelectedReportFields=function(e){var t=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(t).then(function(){c.selectedReportFields.forEach(function(e){p(e)}),c.selectedReportFields=[]})},c.getMetricName=function(e){var t=_.find(c.metrics,{id:e});return t?t.name:d.instant("ANALYTICS.NO_METRIC_FOUND")},c.getMetricValue=function(e){var t=_.find(c.metrics,{id:e});return t?t.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()})})}t.$watch("vm_rf.query.filter",function(e,t){m?n(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,t,n,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),n.analyticCustomReport.update({id:o.report.id},_.omit(o.report,"joins")).$promise.then(function(){t.success({title:"Report updated!",msg:o.report.name?o.report.name+" has been updated!":""})}).catch(function(e){t.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,n.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:o.report.id}).$promise.then(function(e){return o.columns=e?e.rows:[],n.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"},t.error(o.error)})},o.queryReport=function(){return o.queryResult="Loading...",n.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"},t.error(o.error)})},o.mapArray=function(e,t){if(r(e))return _.map(e,t).join(",");return""},o.isArray=r,o.valueReplacer=function(e,t){moment(t,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(t=moment(t,"").format("YYYY-MM-DD HH:mm:ss"));return t}}e.$inject=["$state","toasty","api","report","Auth","userProfileSection"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,t,n,a,i,s){var o=this;o.errors=[],o.report=angular.copy(a),o.valueReplacer=function(e,t){moment(t,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(t=moment(t,"").format("YYYY-MM-DD HH:mm:ss"));return t},o.closeDialog=function(){t.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"},n.error(o.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,n,a,i,s,o,t,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,t){s.go("app.analytics.reports.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.copydialog=function(e,t){i.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,treeCustomData:p.treeCustomInstance.jstree(!0).get_json("#")}}).finally(function(){})},p.previewdialog=function(e,t){i.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName}})},p.rundialog=function(e,t){i.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(a.body),targetEvent:t,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 t={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return t["analyticCustomReport"===p.apiName?"CustomReportId":"DefaultReportId"]=a.id,d.analyticFieldReport.get(t).$promise}).then(function(e){for(var t=0;t"+e.name+" will be deleted.").ariaLabel("delete report").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})},p.success=h,p.getReports=f,p.createOrEditReport=function(e,t){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:t,reports:p.reports.rows,apiName:p.apiName,currentNode:p.currentNode,setting:null,crudPermissions:p.crudPermissions}})},p.importReport=function(e,t,n){if("application/json"===e.file.type){var a=new FileReader;a.onload=function(e){console.log(e.target.result);try{var n=atob(e.target.result.split(",")[1]);n=angular.fromJson(n),d.analyticCustomReport.save({name:n.name,description:n.description,table:n.table,conditions:n.conditions,joins:n.joins,parent:p.currentNode.id}).$promise.then(function(t){p.reports.rows.unshift(t),m.success({title:"Report saved!",msg:t.name?t.name+" has been saved!":""});var e=_.map(n.fields,function(e){return _.extend({},e,{CustomReportId:t.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 t=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(t).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 t=e&&e.rows?e.rows:[];if(0"+(n.text?n.text:"Node")+" and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,t=p.treeCustomInstance.jstree(!0).get_parent(n);t=p.treeCustomInstance.jstree(!0).get_node(t),p.treeCustomInstance.jstree(!0).delete_node(n),e=[n.id].concat(n.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(t)})}}}),e}}}}function T(e){return e?{create_node:y,rename_node:y,move_node:y,delete_node:y,select_node:E}:{select_node:A}}e.$watch("vm.query.filter",function(e,t){g?n(function(){g=!1}):(t||(v=p.query.page),e!==t&&(p.query.page=1),e||(p.query.page=v),p.getReports())}),e.$watch("vm.search",function(e,t){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,n,a,t,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(){n.hide()}l.errors=[],l.report=angular.copy(t),l.export={},l.runReport=function(t){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?n.show({controller:"WebReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/web/dialog.html",parent:angular.element(o.body),targetEvent:t,skipHide:!0,locals:{apiName:s,exportDate:l.exportDate,results:e},resolve:{columns:["apiResolver",function(e){var t={fields:"field,alias",nolimit:!0};return t["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=l.report.id,e.resolve("analyticFieldReport@get",t)}]}}):(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,t,n,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=n[s].run(o,l).$promise},r.valueReplacer=function(e,t){moment(t,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(t=moment(t,"").format("YYYY-MM-DD HH:mm:ss"));return t}}e.$inject=["$mdDialog","toasty","api","columns","results","apiName","exportDate"],angular.module("app.analytics").controller("WebReportDialogController",e)}(),function(){"use strict";function e(e,t,n,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 t=0;t"+(e.name||"odbc")+" will be deleted.").ariaLabel("delete odbc").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).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,t){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:t,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 t=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(t).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 E=!0,A=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 t=0;t"+e.name+" will be deleted.").ariaLabel("delete project").targetEvent(t).ok("OK").cancel("CANCEL");l.show(n).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="Projects",p.promise=o.userProfile.getResources(p.query,h).$promise)},p.createOrEditProject=function(e,t){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:t,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 t=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(t).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 t=0;t"+(e.name||"squareRecording")+" will be deleted.").ariaLabel("delete squareRecording").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).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,t){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:t,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 t=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(t).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 E=!0,A=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 t=0;t"+(e.name||"chatQueue")+" will be deleted.").ariaLabel("delete chatQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){S(e)},function(){console.log("CANCEL")})},b.gotorealtimegoto=function(e,t){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:510}).$promise.then(function(e){var t=e&&e.rows?e.rows[0]:null;t&&t.enabled?n.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()})});n.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,t){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:t,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 t=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(t).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 E=!0,A=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 t=0;t":"",t}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),n()}).catch(function(e){t(e)})})}c.currentUser=l.getCurrentUser(),c.chatQueue=t,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(n,t){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var t=e&&e.rows?e.rows[0]:null;n(t)}).catch(function(e){t(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"),t=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(n=e,a(function(e,t){_.isEmpty(n)?e():s.chatQueue.removeAgents({id:c.chatQueue.id,ids:_.map(n,"id")}).$promise.then(function(){e()}).catch(function(e){t(e)})})).then(function(){return n=t,a(function(e,t){_.isEmpty(n)?e():s.chatQueue.addAgents({id:c.chatQueue.id,ids:_.map(n,"id")}).$promise.then(function(){e()}).catch(function(e){t(e)})});var n}).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 n},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={readOnly:!c.crudPermissions.canEdit,items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,t){var n=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(n)}}}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,t,n,o,r){var l=this;function d(){return a(function(n,t){return a(function(t,n){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){t(e)}).catch(function(e){n(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(t,n){return s.userProfileResource.get({sectionId:l.section.id}).$promise.then(function(e){t(e)}).catch(function(e){n(e)})}):null}).then(function(e){var t=e&&e.rows?e.rows:[];return l.allowedItems=_.map(t,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var t=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==t}),a(function(t,n){return s.chatQueue.getTeams({id:l.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){t(e)}).catch(function(e){n(e)})})}).then(function(e){var t=e&&e.rows?e.rows:[];l.selectedItems=_.map(t,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"),n()}).catch(function(e){t(e)})})}l.currentUser=o.getCurrentUser(),l.chatQueue=t,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:n.instant("CHAT.ALL_TEAMS"),labelSelected:n.instant("CHAT.SELECTED_TEAMS"),transferCallback:function(e,t){var n=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(n)}},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(n,t){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var t=e&&e.rows?e.rows[0]:null;n(t)}).catch(function(e){t(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"),t=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(n=e,a(function(e,t){_.isEmpty(n)?e():s.chatQueue.removeTeams({id:l.chatQueue.id,ids:_.map(n,"id")}).$promise.then(function(){e()}).catch(function(e){t(e)})})).then(function(){return n=t,a(function(e,t){_.isEmpty(n)?e():s.chatQueue.addTeams({id:l.chatQueue.id,ids:_.map(n,"id")}).$promise.then(function(){e()}).catch(function(e){t(e)})});var n}).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 n},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,t,n,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=t.protocol()+"://"+t.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,t){n.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,t){n.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,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,t,n,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,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,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,t){n.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e,crudPermissions:b.crudPermissions})},b.interactionsgoto=function(e,t){n.go("app.chat.chatWebsites.edit",{id:e.id,tab:9})},b.offlinemessagesgoto=function(e,t){n.go("app.chat.chatWebsites.edit",{id:e.id,tab:10})},b.agentadddialog=function(e,t){i.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:b.chatWebsites?b.chatWebsites.rows:[],crudPermissions:b.crudPermissions,realtime:!1}})},b.deleteconfirm=function(e,t){var n=i.confirm().title("Are you sure want to delete the "+_.startCase("chatWebsite")+"?").htmlContent(""+(e.name||"chatWebsite")+" will be deleted.").ariaLabel("delete chatWebsite").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).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,t){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:t,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 t=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(t).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 t=e&&e.rows?e.rows[0]:null;if(t){if(!t.autoAssociation)return m.userProfileResource.get({sectionId:t.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(b.lists,{id:e.resourceId})}),n=null;if(b.chatWebsite&&(n=_.find(b.lists,{id:Number(b.chatWebsite.ListId)})),n&&!_.some(t,["id",n.id])){var a=_.find(b.lists,{id:n.id});a.canSelect=!1,t.push(a)}b.lists=t})}else{var n=[],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(n).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.chatWebsiteApps.rows.splice(t,1),l()},function(){console.log("CANCEL")})},r.getChatWebsiteApps=function(){r.promise=o.chatWebsite.getApplications(r.query,n).$promise},r.editChatWebsiteApp=t,r.editInterval=function(e,t){if(r.chatWebsiteApps.rows.length){var n=r.chatWebsiteApps.rows[t]?r.chatWebsiteApps.rows[t]: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:n.interval,IntervalId:n.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(n.interval=e.interval||"*,*,*,*",n.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 t=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(t).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,t,n,o,r,l,d){var c=this;function m(){return a(function(n,t){return a(function(t,n){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){t(e)}).catch(function(e){n(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(t,n){return s.userProfileResource.get({sectionId:c.section.id}).$promise.then(function(e){t(e)}).catch(function(e){n(e)})}):null}).then(function(e){var t=e&&e.rows?e.rows:[];return c.allowedItems=_.map(t,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 t=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==t}),a(function(t,n){return s.chatWebsite.getAgents({id:c.chatWebsite.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){t(e)}).catch(function(e){n(e)})})}).then(function(e){var t=e&&e.rows?e.rows:[];c.selectedItems=_.map(t,function(e){var t=_.find(c.items,{id:e.id});return t.penalty=e.UserChatWebsite?"penalty "+e.UserChatWebsite.penalty:"",t.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",t}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),n()}).catch(function(e){t(e)})})}c.currentUser=l.getCurrentUser(),c.chatWebsite=t,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(n,t){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var t=e&&e.rows?e.rows[0]:null;n(t)}).catch(function(e){t(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"),t=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(n=e,a(function(e,t){_.isEmpty(n)?e():s.chatWebsite.removeAgents({id:c.chatWebsite.id,ids:_.map(n,"id")}).$promise.then(function(){e()}).catch(function(e){t(e)})})).then(function(){return n=t,a(function(e,t){_.isEmpty(n)?e():s.chatWebsite.addAgents({id:c.chatWebsite.id,ids:_.map(n,"id")}).$promise.then(function(){e()}).catch(function(e){t(e)})});var n}).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 n},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={readOnly:!c.crudPermissions.canEdit,items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,t){var n=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(n)}}}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 t=["png","jpg"];if(!_.includes(t,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+t.join()}),!1;if(8388608"+(e.name||"chatCannedAnswer")+" will be deleted.").ariaLabel("delete chatCannedAnswer").targetEvent(t).ok("OK").cancel("CANCEL");s.show(n).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,t){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:t,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 t=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(t).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 t=0;t"+(e.name||"chatDisposition")+" will be deleted.").ariaLabel("delete chatDisposition").targetEvent(t).ok("OK").cancel("CANCEL");s.show(n).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,t){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:t,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 t=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(t).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 t=0;t"+(e.name||"interaction")+" will be deleted.").ariaLabel("delete interaction").targetEvent(t).ok("OK").cancel("CANCEL");s.show(n).then(function(){g(e)},function(){console.log("CANCEL")})},c.chatInteractionDownload=function(s,e,t){return l.chatInteraction.download({id:s.id,exists:!0,attachments:t}).$promise.then(function(e){var t=[e.buffer],n="interaction"+s.id,a=new Blob(t,{type:e.type});n="chat-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",n),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var t=0;t"+c.selectedChatWebsiteInteractions.length+" selected will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");s.show(t).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 t=0;t"+(e.name||"offlineMessage")+" will be deleted.").ariaLabel("delete offlineMessage").targetEvent(t).ok("OK").cancel("CANCEL");s.show(n).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,t){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:t,offlineMessages:c.chatWebsiteOfflineMessages.rows,license:null,setting:null,crudPermissions:c.crudPermissions}})},c.showOfflineMessageChatWebsiteOfflineMessage=function(e,n){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,t){return e.resolve("chatOfflineMessage@get",{fields:"id,body",id:n.id})}]}})},c.exportSelectedChatWebsiteOfflineMessages=function(){var e=angular.copy(c.selectedChatWebsiteOfflineMessages);return c.selectedChatWebsiteOfflineMessages=[],e},c.deleteChatWebsiteOfflineMessage=g,c.deleteSelectedChatWebsiteOfflineMessages=function(e){var t=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(t).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 t=0;t"+(e.name||"chatProactiveAction")+" will be deleted.").ariaLabel("delete chatProactiveAction").targetEvent(t).ok("OK").cancel("CANCEL");s.show(n).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,t){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:t,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 t=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(t).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 t=0;t<\/script>',t.end="\n\x3c!-- START Motion Chat Script --\x3e"},t.info={},e.$watch("vm_ac.chatWebsite.remote",function(e){t.script='\n