From: Andrea Bianco Date: Wed, 4 Nov 2020 23:06:28 +0000 (+0100) Subject: Built motion from commit (unavailable).|2.5.6 X-Git-Tag: 2.5.6 X-Git-Url: http://repos.xcallymotion.com/base//%22http:/www.gravatar.com/avatar/%7B%7Bhash%7D%7D/%22?a=commitdiff_plain;h=784ff39bf52a5b7c5ee0b7b10d0e51f0257b5940;p=motion2.git Built motion from commit (unavailable).|2.5.6 --- diff --git a/apidoc/api_data.js b/apidoc/api_data.js index 7c80026..08aa6af 100644 --- a/apidoc/api_data.js +++ b/apidoc/api_data.js @@ -1301,12 +1301,12 @@ define({ "api": [ }, { "type": "post", - "url": "/api/auth/google", + "url": "/api/auth/local", "title": "Creates a new User token", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/auth/google -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", + "content": "curl https://{domain}/api/auth/local -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], @@ -1334,17 +1334,17 @@ define({ "api": [ }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

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

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

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

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

Motion renders the resulting JSON representation in the response body.

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

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

Motion renders the resulting JSON representation in the response body.

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

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

Motion renders the resulting JSON representation in the response body.

", + "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

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

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", + "description": "

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

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/plugin/index.js", "groupTitle": "Plugins" @@ -20101,6 +20101,24 @@ define({ "api": [ }, { "type": "get", + "url": "/api/rpc/openchannel/queues/:id/waitinginteractions", + "title": "Gets a list of openchannelQueuesIdWaitingInteractions", + "examples": [ + { + "title": "Example usage:", + "content": "curl https://{domain}/api/rpc/openchannel/queues/:id/waitinginteractions -v -u {name}:{password}", + "type": "json" + } + ], + "name": "openchannelQueuesIdWaitingInteractions", + "group": "RPC_Realtime", + "description": "

Motion will return a list of realtime waiting openchannel queues interctions.

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

Motion renders the resulting JSON representation in the response body.

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

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

Motion renders the resulting JSON representation in the response body.

", + "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

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

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", + "description": "

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

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" @@ -25626,7 +25644,7 @@ define({ "api": [ }, { "type": "get", - "url": "/api/system", + "url": "/api/system/process", "title": "Gets system information", "examples": [ { @@ -25644,7 +25662,7 @@ define({ "api": [ }, { "type": "get", - "url": "/api/system/process", + "url": "/api/system", "title": "Gets system information", "examples": [ { @@ -25943,12 +25961,12 @@ define({ "api": [ }, { "type": "delete", - "url": "/api/fax/queues/{id}/teams", + "url": "/api/mail/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE", + "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], @@ -25956,17 +25974,17 @@ define({ "api": [ "group": "Teams", "description": "

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

Motion renders the resulting JSON representation in the response body.

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

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

Motion renders the resulting JSON representation in the response body.

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

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

Motion renders the resulting JSON representation in the response body.

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

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

Motion renders the resulting JSON representation in the response body.

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

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

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/mailQueue/index.js", + "filename": "server/api/faxQueue/index.js", "groupTitle": "Teams" }, { @@ -33864,12 +33882,12 @@ define({ "api": [ }, { "type": "post", - "url": "/api/webbar/hold", - "title": "hold webrtc call", + "url": "/api/webbar/unhold", + "title": "unhold webrtc call", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/webbar/hold -d '{\"sessionId\": \"\", \"userId\": 54}' \\\n -H \"Content-Type: application/json\" -X POST", + "content": "curl https://{domain}/api/webbar/unhold -d '{\"sessionId\": \"\", \"userId\": 54}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], @@ -33881,7 +33899,7 @@ define({ "api": [ { "group": "Body", "type": "String", - "optional": true, + "optional": false, "field": "sessionId", "description": "" }, @@ -33902,12 +33920,12 @@ define({ "api": [ }, { "type": "post", - "url": "/api/webbar/unhold", - "title": "unhold webrtc call", + "url": "/api/webbar/hold", + "title": "hold webrtc call", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/webbar/unhold -d '{\"sessionId\": \"\", \"userId\": 54}' \\\n -H \"Content-Type: application/json\" -X POST", + "content": "curl https://{domain}/api/webbar/hold -d '{\"sessionId\": \"\", \"userId\": 54}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], @@ -33919,7 +33937,7 @@ define({ "api": [ { "group": "Body", "type": "String", - "optional": false, + "optional": true, "field": "sessionId", "description": "" }, diff --git a/apidoc/api_data.json b/apidoc/api_data.json index fbe2c59..e6f1fe4 100644 --- a/apidoc/api_data.json +++ b/apidoc/api_data.json @@ -1301,12 +1301,12 @@ }, { "type": "post", - "url": "/api/auth/google", + "url": "/api/auth/local", "title": "Creates a new User token", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/auth/google -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", + "content": "curl https://{domain}/api/auth/local -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], @@ -1334,17 +1334,17 @@ }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

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

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

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

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

Motion renders the resulting JSON representation in the response body.

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

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

Motion renders the resulting JSON representation in the response body.

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

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

Motion renders the resulting JSON representation in the response body.

", + "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

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

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", + "description": "

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

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/plugin/index.js", "groupTitle": "Plugins" @@ -20101,6 +20101,24 @@ }, { "type": "get", + "url": "/api/rpc/openchannel/queues/:id/waitinginteractions", + "title": "Gets a list of openchannelQueuesIdWaitingInteractions", + "examples": [ + { + "title": "Example usage:", + "content": "curl https://{domain}/api/rpc/openchannel/queues/:id/waitinginteractions -v -u {name}:{password}", + "type": "json" + } + ], + "name": "openchannelQueuesIdWaitingInteractions", + "group": "RPC_Realtime", + "description": "

Motion will return a list of realtime waiting openchannel queues interctions.

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

Motion renders the resulting JSON representation in the response body.

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

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

Motion renders the resulting JSON representation in the response body.

", + "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

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

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", + "description": "

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

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" @@ -25626,7 +25644,7 @@ }, { "type": "get", - "url": "/api/system", + "url": "/api/system/process", "title": "Gets system information", "examples": [ { @@ -25644,7 +25662,7 @@ }, { "type": "get", - "url": "/api/system/process", + "url": "/api/system", "title": "Gets system information", "examples": [ { @@ -25943,12 +25961,12 @@ }, { "type": "delete", - "url": "/api/fax/queues/{id}/teams", + "url": "/api/mail/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE", + "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], @@ -25956,17 +25974,17 @@ "group": "Teams", "description": "

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

Motion renders the resulting JSON representation in the response body.

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

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

Motion renders the resulting JSON representation in the response body.

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

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

Motion renders the resulting JSON representation in the response body.

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

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

Motion renders the resulting JSON representation in the response body.

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

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

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", - "filename": "server/api/mailQueue/index.js", + "filename": "server/api/faxQueue/index.js", "groupTitle": "Teams" }, { @@ -33864,12 +33882,12 @@ }, { "type": "post", - "url": "/api/webbar/hold", - "title": "hold webrtc call", + "url": "/api/webbar/unhold", + "title": "unhold webrtc call", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/webbar/hold -d '{\"sessionId\": \"\", \"userId\": 54}' \\\n -H \"Content-Type: application/json\" -X POST", + "content": "curl https://{domain}/api/webbar/unhold -d '{\"sessionId\": \"\", \"userId\": 54}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], @@ -33881,7 +33899,7 @@ { "group": "Body", "type": "String", - "optional": true, + "optional": false, "field": "sessionId", "description": "" }, @@ -33902,12 +33920,12 @@ }, { "type": "post", - "url": "/api/webbar/unhold", - "title": "unhold webrtc call", + "url": "/api/webbar/hold", + "title": "hold webrtc call", "examples": [ { "title": "Example usage:", - "content": "curl https://{domain}/api/webbar/unhold -d '{\"sessionId\": \"\", \"userId\": 54}' \\\n -H \"Content-Type: application/json\" -X POST", + "content": "curl https://{domain}/api/webbar/hold -d '{\"sessionId\": \"\", \"userId\": 54}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], @@ -33919,7 +33937,7 @@ { "group": "Body", "type": "String", - "optional": false, + "optional": true, "field": "sessionId", "description": "" }, diff --git a/apidoc/api_project.js b/apidoc/api_project.js index a5927c2..c54899f 100644 --- a/apidoc/api_project.js +++ b/apidoc/api_project.js @@ -1,6 +1,6 @@ define({ "name": "xCALLY Motion API", - "version": "2.5.5", + "version": "2.5.6", "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": { @@ -17,7 +17,7 @@ define({ "apidoc": "0.3.0", "generator": { "name": "apidoc", - "time": "2020-10-26T22:06:23.957Z", + "time": "2020-11-04T22:56:35.246Z", "url": "http://apidocjs.com", "version": "0.24.0" } diff --git a/apidoc/api_project.json b/apidoc/api_project.json index bafdb27..d9c4287 100644 --- a/apidoc/api_project.json +++ b/apidoc/api_project.json @@ -1,6 +1,6 @@ { "name": "xCALLY Motion API", - "version": "2.5.5", + "version": "2.5.6", "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": { @@ -17,7 +17,7 @@ "apidoc": "0.3.0", "generator": { "name": "apidoc", - "time": "2020-10-26T22:06:23.957Z", + "time": "2020-11-04T22:56:35.246Z", "url": "http://apidocjs.com", "version": "0.24.0" } diff --git a/package.json b/package.json index 22ebb45..dec0352 100644 --- a/package.json +++ b/package.json @@ -1,158 +1,158 @@ -{ - "name": "motion", - "version": "2.5.5", - "description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.", - "main": "server/app.js", - "engines": { - "node": "6.10.3" - }, - "repository": { - "type": "git", - "url": "http://repos.xcallymotion.com/motion2.git" - }, - "author": "xCALLY Team", - "contributors": [ - "Giuseppe Careri ", - "Daniele Cinti ", - "Innocenzo Biondo ", - "Massimiliano Bungaro ", - "Andrea Bianco ", - "Fabio Lodato ", - "Andrea Cuccaro ", - "Donatella Soldi ", - "Afnan Imtiaz ", - "Cristian Di Sclafani ", - "Marco Giraldi ", - "Giulia Trombin ", - "Cristopher Fasolin ", - "Marco Messina ", - "Vito Macchia ", - "Marco Lecce " - ], - "private": true, - "license": "EULA", - "scripts": { - "start": "nodemon server/app.js", - "test": "mocha server/test --timeout 5000" - }, - "dependencies": { - "apiai-promise": "github:gcareri/apiai-promise", - "archiver": "2.1.1", - "asterisk-manager": "0.1.16", - "aws-sdk": "2.610.0", - "bimedia-machine-uuid": "1.0.1", - "bluebird": "3.7.2", - "body-parser": "1.19.0", - "compare-versions": "3.6.0", - "composable-middleware": "0.3.0", - "connect-timeout": "1.9.0", - "cookie-parser": "1.4.5", - "cors": "2.8.5", - "crypto-js": "3.1.9-1", - "cron-job-manager": "1.0.7", - "desk.js": "0.1.4", - "ejs": "2.7.4", - "eml-format": "0.5.0", - "entities": "1.1.2", - "errorhandler": "1.5.1", - "express": "4.17.1", - "express-jwt": "5.3.3", - "express-winston": "2.6.0", - "extract-zip": "1.7.0", - "fast-json-patch": "1.2.2", - "google-tts-api": "github:xmdevelop/google-tts", - "html-pdf": "2.2.0", - "html-to-text": "4.0.0", - "iconv": "2.3.5", - "imap": "0.8.19", - "ioredis": "4.17.3", - "ipaddr.js": "1.9.1", - "jayson": "2.1.2", - "jsforce": "1.9.3", - "json2xls": "github:xmdevelop/json2xls", - "jsonwebtoken": "7.4.3", - "jstz": "1.0.11", - "kue": "0.11.6", - "lodash": "4.17.20", - "lusca": "1.6.1", - "mailparser": "2.7.5", - "md5": "2.3.0", - "method-override": "2.3.10", - "moment": "2.27.0", - "morgan": "1.10.0", - "multer": "1.4.2", - "mustache": "4.0.1", - "mysql": "2.18.1", - "node-tnef": "1.3.3", - "nodemailer": "4.7.0", - "nodemailer-plugin-inline-base64": "2.1.1", - "odbc": "github:mckay-software/node-odbc", - "papaparse": "4.6.3", - "passport": "0.3.2", - "passport-google-oauth20": "2.0.0", - "passport-local": "1.0.0", - "pdfmake": "0.1.68", - "pkginfo": "0.4.1", - "pm2": "2.10.4", - "randomstring": "1.1.5", - "request-promise": "4.2.6", - "rimraf": "2.7.1", - "rr": "0.1.0", - "seq-queue": "0.0.5", - "sequelize": "3.35.1", - "serve-favicon": "2.5.0", - "simple-git": "1.132.0", - "socket.io": "2.2.0", - "socket.io-emitter": "3.1.1", - "socket.io-redis": "5.2.0", - "socketio-jwt": "4.5.0", - "sox": "github:gcareri/node-sox", - "squel": "5.13.0", - "sticky-session": "1.1.2", - "syncho": "0.2.5", - "systeminformation": "3.54.0", - "tiff2pdf": "1.0.2", - "to-csv": "0.1.1", - "twilio": "3.48.2", - "umzug": "2.3.0", - "user-agent-parser": "0.6.0", - "uuid": "3.3.2", - "validate": "3.1.0", - "winston": "2.4.5", - "ws": "4.1.0", - "xml2json": "0.11.2", - "zip-dir": "1.0.2" - }, - "devDependencies": { - "apidoc": "0.24.0", - "chai": "3.5.0", - "chai-http": "3.0.0", - "grunt": "1.0.4", - "grunt-angular-templates": "1.2.0", - "grunt-apidoc": "0.11.0", - "grunt-autoprefixer": "3.0.4", - "grunt-build-control": "0.7.1", - "grunt-contrib-clean": "1.1.0", - "grunt-contrib-concat": "1.0.1", - "grunt-contrib-copy": "1.0.0", - "grunt-contrib-cssmin": "2.2.1", - "grunt-contrib-jshint": "1.1.0", - "grunt-contrib-obfuscator": "4.0.0", - "grunt-contrib-uglify": "3.4.0", - "grunt-contrib-watch": "1.1.0", - "grunt-express-server": "0.5.4", - "grunt-filerev": "2.3.1", - "grunt-injector": "1.1.0", - "grunt-jsbeautifier": "0.2.13", - "grunt-jsonlint": "1.1.0", - "grunt-ng-annotate": "3.0.0", - "grunt-nodemailer": "1.1.0", - "grunt-sass": "1.2.1", - "grunt-usemin": "3.1.1", - "grunt-version": "1.3.2", - "js-obfuscator": "0.1.2", - "load-grunt-config": "0.19.2", - "mocha": "3.5.3", - "time-grunt": "1.4.0" - } -} +{ + "name": "motion", + "version": "2.5.6", + "description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.", + "main": "server/app.js", + "engines": { + "node": "6.10.3" + }, + "repository": { + "type": "git", + "url": "http://repos.xcallymotion.com/motion2.git" + }, + "author": "xCALLY Team", + "contributors": [ + "Giuseppe Careri ", + "Daniele Cinti ", + "Innocenzo Biondo ", + "Massimiliano Bungaro ", + "Andrea Bianco ", + "Fabio Lodato ", + "Andrea Cuccaro ", + "Donatella Soldi ", + "Afnan Imtiaz ", + "Cristian Di Sclafani ", + "Marco Giraldi ", + "Giulia Trombin ", + "Cristopher Fasolin ", + "Marco Messina ", + "Vito Macchia ", + "Marco Lecce " + ], + "private": true, + "license": "EULA", + "scripts": { + "start": "nodemon server/app.js", + "test": "mocha server/test --timeout 5000" + }, + "dependencies": { + "apiai-promise": "github:gcareri/apiai-promise", + "archiver": "2.1.1", + "asterisk-manager": "0.1.16", + "aws-sdk": "2.610.0", + "bimedia-machine-uuid": "1.0.1", + "bluebird": "3.7.2", + "body-parser": "1.19.0", + "compare-versions": "3.6.0", + "composable-middleware": "0.3.0", + "connect-timeout": "1.9.0", + "cookie-parser": "1.4.5", + "cors": "2.8.5", + "crypto-js": "3.1.9-1", + "cron-job-manager": "1.0.7", + "desk.js": "0.1.4", + "ejs": "2.7.4", + "eml-format": "0.5.0", + "entities": "1.1.2", + "errorhandler": "1.5.1", + "express": "4.17.1", + "express-jwt": "5.3.3", + "express-winston": "2.6.0", + "extract-zip": "1.7.0", + "fast-json-patch": "1.2.2", + "google-tts-api": "github:xmdevelop/google-tts", + "html-pdf": "2.2.0", + "html-to-text": "4.0.0", + "iconv": "2.3.5", + "imap": "0.8.19", + "ioredis": "4.17.3", + "ipaddr.js": "1.9.1", + "jayson": "2.1.2", + "jsforce": "1.9.3", + "json2xls": "github:xmdevelop/json2xls", + "jsonwebtoken": "7.4.3", + "jstz": "1.0.11", + "kue": "0.11.6", + "lodash": "4.17.20", + "lusca": "1.6.1", + "mailparser": "2.7.5", + "md5": "2.3.0", + "method-override": "2.3.10", + "moment": "2.27.0", + "morgan": "1.10.0", + "multer": "1.4.2", + "mustache": "4.0.1", + "mysql": "2.18.1", + "node-tnef": "1.3.3", + "nodemailer": "4.7.0", + "nodemailer-plugin-inline-base64": "2.1.1", + "odbc": "github:mckay-software/node-odbc", + "papaparse": "4.6.3", + "passport": "0.3.2", + "passport-google-oauth20": "2.0.0", + "passport-local": "1.0.0", + "pdfmake": "0.1.68", + "pkginfo": "0.4.1", + "pm2": "2.10.4", + "randomstring": "1.1.5", + "request-promise": "4.2.6", + "rimraf": "2.7.1", + "rr": "0.1.0", + "seq-queue": "0.0.5", + "sequelize": "3.35.1", + "serve-favicon": "2.5.0", + "simple-git": "1.132.0", + "socket.io": "2.2.0", + "socket.io-emitter": "3.1.1", + "socket.io-redis": "5.2.0", + "socketio-jwt": "4.5.0", + "sox": "github:gcareri/node-sox", + "squel": "5.13.0", + "sticky-session": "1.1.2", + "syncho": "0.2.5", + "systeminformation": "3.54.0", + "tiff2pdf": "1.0.2", + "to-csv": "0.1.1", + "twilio": "3.48.2", + "umzug": "2.3.0", + "user-agent-parser": "0.6.0", + "uuid": "3.3.2", + "validate": "3.1.0", + "winston": "2.4.5", + "ws": "4.1.0", + "xml2json": "0.11.2", + "zip-dir": "1.0.2" + }, + "devDependencies": { + "apidoc": "0.24.0", + "chai": "3.5.0", + "chai-http": "3.0.0", + "grunt": "1.0.4", + "grunt-angular-templates": "1.2.0", + "grunt-apidoc": "0.11.0", + "grunt-autoprefixer": "3.0.4", + "grunt-build-control": "0.7.1", + "grunt-contrib-clean": "1.1.0", + "grunt-contrib-concat": "1.0.1", + "grunt-contrib-copy": "1.0.0", + "grunt-contrib-cssmin": "2.2.1", + "grunt-contrib-jshint": "1.1.0", + "grunt-contrib-obfuscator": "4.0.0", + "grunt-contrib-uglify": "3.4.0", + "grunt-contrib-watch": "1.1.0", + "grunt-express-server": "0.5.4", + "grunt-filerev": "2.3.1", + "grunt-injector": "1.1.0", + "grunt-jsbeautifier": "0.2.13", + "grunt-jsonlint": "1.1.0", + "grunt-ng-annotate": "3.0.0", + "grunt-nodemailer": "1.1.0", + "grunt-sass": "1.2.1", + "grunt-usemin": "3.1.1", + "grunt-version": "1.3.2", + "js-obfuscator": "0.1.2", + "load-grunt-config": "0.19.2", + "mocha": "3.5.3", + "time-grunt": "1.4.0" + } +} diff --git a/public/app/main/apps/dashboards/i18n/ar.json b/public/app/main/apps/dashboards/i18n/ar.json index 88e9551..0431ed9 100644 --- a/public/app/main/apps/dashboards/i18n/ar.json +++ b/public/app/main/apps/dashboards/i18n/ar.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "أي واحد تريد استخدامه؟", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "لا يوجد حساب Whatsapp متاح", "SECOND_LEVEL_DISPOSITION": "ترتيب المستوى الثاني", - "THIRD_LEVEL_DISPOSITION": "الترتيب الثالث" + "THIRD_LEVEL_DISPOSITION": "الترتيب الثالث", + "LICENSE_EXPIRE_REMAINING_DAYS": "رخصتك على وشك الانتهاء! الرجاء الاتصال بالمسؤول الخاص بك" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/cs.json b/public/app/main/apps/dashboards/i18n/cs.json index 74c8133..d7fff32 100644 --- a/public/app/main/apps/dashboards/i18n/cs.json +++ b/public/app/main/apps/dashboards/i18n/cs.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Který z nich chcete použít?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Žádný účet Whatsapp není k dispozici", "SECOND_LEVEL_DISPOSITION": "Dispozice druhé úrovně", - "THIRD_LEVEL_DISPOSITION": "Dispozice třetí úrovně" + "THIRD_LEVEL_DISPOSITION": "Dispozice třetí úrovně", + "LICENSE_EXPIRE_REMAINING_DAYS": "Vaše licence brzy vyprší! Obraťte se na svého správce" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/da.json b/public/app/main/apps/dashboards/i18n/da.json index 88f9e94..740848d 100644 --- a/public/app/main/apps/dashboards/i18n/da.json +++ b/public/app/main/apps/dashboards/i18n/da.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Hvilken vil du bruge?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Ingen Whatsapp-konto tilgængelig", "SECOND_LEVEL_DISPOSITION": "Andet niveau disposition", - "THIRD_LEVEL_DISPOSITION": "Tredje niveau disposition" + "THIRD_LEVEL_DISPOSITION": "Tredje niveau disposition", + "LICENSE_EXPIRE_REMAINING_DAYS": "Din licens udløber snart! Kontakt din administrator" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/de.json b/public/app/main/apps/dashboards/i18n/de.json index b7e4dff..89b1e39 100644 --- a/public/app/main/apps/dashboards/i18n/de.json +++ b/public/app/main/apps/dashboards/i18n/de.json @@ -156,7 +156,7 @@ "INBOUND_ANSWERED_TEXT": "Angenommene Anrufe in der Warteschlange", "ABANDONED_TEXT": "Verlassene Anrufe in der Warteschlange", "DROP_RATE_TEXT": "Rate abgebrochener Anrufe in der Warteschlange", - "TOTAL_OFFERED_TEXT": "Angebotene Interaktionen", + "TOTAL_OFFERED_TEXT": "Gesamtzahl der Interaktionen", "AVG_HOLD_TIME_TEXT": "Durchschnittliche Wartezeit der Interaktionen", "AVG_TALK_TIME_TEXT": "Gesprächszeit der Warteschlangenanrufe", "INBOUND_ANSWER_RATE_TEXT": "Rate angenommener Anrufe in der Warteschlange ", @@ -308,39 +308,39 @@ "VOICE_AVG_TALK_TIME": "Durchschnittliche Gesprächszeit", "VOICE_AVG_TALK_TIME_TEXT": "Gesprächszeit der Anrufe in der Warteschlage", "VOICE_TALKING": "IM GESPRÄCH", - "VOICE_TALKING_TEXT": "Aktive Warteschlangenanrufe", - "VOICE_TOTAL_OFFERED": "TOTAL ANGEBOTEN", - "VOICE_TOTAL_OFFERED_TEXT": "TOTAL QUEUE-ANRUFE", - "VOICE_UNMANAGED": "UNMANAGED", - "VOICE_UNMANAGED_TEXT": "UNBEWERTETE QUEUE-ANRUFE", - "VOICE_WAITING": "WARTEN", - "VOICE_WAITING_TEXT": "WARTEN DER QUEUE-ANRUFE", + "VOICE_TALKING_TEXT": "Aktive Anrufe in der Warteschlange", + "VOICE_TOTAL_OFFERED": "Insgesamt", + "VOICE_TOTAL_OFFERED_TEXT": "Gesamtzahl der Anrufe in der Warteschlange", + "VOICE_UNMANAGED": "Nicht verwaltet", + "VOICE_UNMANAGED_TEXT": "Nicht verwaltete Anrufe in der Warteschlange", + "VOICE_WAITING": "Wartende Anrufe", + "VOICE_WAITING_TEXT": "Wartende Anrufe in der Warteschlange", "DOWNLOAD": "Herunterladen", "SCHEDULED_CALLS": "Geplante Anrufe", - "PRIVATE": "Privatgelände", - "PUBLIC": "Öffentlichkeit", + "PRIVATE": "Privat", + "PUBLIC": "Öffentlich", "PUBLIC_INTERACTION": "Die Interaktion ist öffentlich", - "VISIBILITY": "Sichtweite", - "INTERACTION_CLOSED": "Interaktion ordnungsgemäß geschlossen", - "INTERACTION_CLOSED_DISPOSED": "Wechselwirkung ordnungsgemäß geschlossen und entsorgt", - "INTERACTION_DISPOSED": "Interaktion ordnungsgemäß entsorgt", - "ASSIGNED_TO_OTHERS": "Anderen zugewiesen", - "SELECT_ALL": "Wählen Sie Alle", + "VISIBILITY": "Sichtbarkeit", + "INTERACTION_CLOSED": "Interaktion korrekt geschlossen", + "INTERACTION_CLOSED_DISPOSED": "Interaktion korrekt geschlossen und entsorgt", + "INTERACTION_DISPOSED": "Interaktion korrekt entsorgt", + "ASSIGNED_TO_OTHERS": "An andere zugewiesen", + "SELECT_ALL": "Alle auswählen", "CHAT_INTERACTIONS": "Chat-Interaktionen", "FAX_INTERACTIONS": "Fax-Interaktionen", "ID": "Id", "MAIL_INTERACTIONS": "E-Mail-Interaktionen", - "OPENCHANNEL_INTERACTIONS": "Öffnen Sie Channel-Interaktionen", + "OPENCHANNEL_INTERACTIONS": "Open Channel-Interaktionen", "SMS_INTERACTIONS": "SMS-Interaktionen", "CANCEL": "Stornieren", "DRAFT": "Entwurf", - "DRAFT_SAVE_WARNING_MESSAGE": "Für diese Interaktion ist bereits ein Entwurf gespeichert. Möchten Sie es wirklich überschreiben?", - "DRAFT_SAVE_WARNING_TITLE": "Bestehenden Entwurf überschreiben?", + "DRAFT_SAVE_WARNING_MESSAGE": "Für diese Interaktion ist bereits ein Entwurf gespeichert. Sind Sie sicher, dass Sie ihn überschreiben möchten?", + "DRAFT_SAVE_WARNING_TITLE": "Vorhandenen Entwurf überschreiben?", "OVERWRITE": "Überschreiben", "SAVE_AS_DRAFT": "Als Entwurf speichern", "UNTITLED": "Ohne Titel", "UPDATE_DRAFT": "Entwurf aktualisieren", - "NO_AVAILABLE_INTERACTION": "Keine verfügbare Interaktion", + "NO_AVAILABLE_INTERACTION": "Keine Interaktionen verfügbar", "ACCOUNTINGDOC": "Buchhaltung", "ADD_PRODUCTPRICELIST": "PRODUKT HINZUFÜGEN", "AGENTFULLNAME": "Agent", @@ -352,7 +352,7 @@ "ATTENDACELASTINVOICE": "Letzte Rechnung", "ATTENDACENEXTINVOICE": "Nächste Rechnung", "AUTHORIZED": "AUTORISIERT", - "AUTOINVOICE": "SELBSTRECHNUNG", + "AUTOINVOICE": "SELBSTABRECHNUNG", "AUTOPROFORMA": "SELBST-PROFORMA", "BALANCE": "BALANCE", "BY": "Durch", @@ -364,70 +364,70 @@ "COMPANYEMAIL": "Email", "COMPANYFAX": "Fax", "COMPANYNAME": "Unternehmen", - "COMPANYNATION": "Nation", + "COMPANYNATION": "Staat", "COMPANYPHONE": "Telefon", "COMPANYPOSTALCODE": "Postleitzahl", - "COMPANYSTREET": "Straße / Avenue / Square", - "COMPANYVAT": "Steuernummer / Mehrwertsteuer", + "COMPANYSTREET": "Adresse", + "COMPANYVAT": "Umsatzsteuernummer / VAT", "CREATIONDATE": "Erstellt am", "CREDITINOTENAME": "Name", "CREDITNOTE": "GUTSCHRIFT", "CREDITNOTEDETAILS": "Gutschriftsdetail", "CREDITNOTE_INFO": "Gutschrift", "DELETE_PRODUCT": "Produkt löschen", - "DEPOSIT": "ANZAHLUNG", - "DETAILS": "Einzelheiten", + "DEPOSIT": "Deposit", + "DETAILS": "Details", "DISCOUNT": "Rabatt", "DOSSIER": "Dossier", "DOSSIERID": "Dossier ID", "DOSSIERNAME": "Name des Dossiers", - "DOSSIERNOTES": "Hinweis", + "DOSSIERNOTES": "Notizen", "DOSSIERS": "Dossiers", "DOSSIER_INFO": "Information", - "ENDDATE": "Verfallsdatum", + "ENDDATE": "Ablaufdatum", "FROM": "Von", - "GRAPHINVOICES": "Rechnung Emissionsdiagramm", - "INASSET": "Anlagegut", + "GRAPHINVOICES": "Diagramm der Rechnungsemission", + "INASSET": "Kapital", "INVOICE": "RECHNUNG", "INVOICEDETAILS": "RECHNUNGS-DETAILS", "INVOICEDISCOUNT": "Rabatt", - "INVOICEEMITED": "Problematisch", + "INVOICEEMITED": "Ausgestellt", "INVOICEID": "Rechnung", "INVOICENAME": "Rechnungsname", - "INVOICENOPRODUCTAMOUNT": "Menge", + "INVOICENOPRODUCTAMOUNT": "Betrag", "INVOICENOPRODUCTDESCRIPTION": "Beschreibung auf der Rechnung", - "INVOICENOPRODUCTSAVE": "speichern", + "INVOICENOPRODUCTSAVE": "Speichern", "INVOICENOPRODUCTUPDATE": "Aktualisieren", - "INVOICENOTAXAMOUNT": "MWST", - "INVOICENOTES": "Hinweis", + "INVOICENOTAXAMOUNT": "MwSt", + "INVOICENOTES": "Notizen", "INVOICEPAYED": "Bezahlt", "INVOICES": "RECHNUNGEN", - "INVOICESTATUS": "Zustand", - "INVOICETOTAL": "Gesamt", + "INVOICESTATUS": "Status", + "INVOICETOTAL": "Insgesamt", "INVOICE_INFO": "Rechnung", "MANAGESALES": "Abonnements", - "MOVEASSET": "ANLAGEGUT", - "MOVECREDITNOTE": "AUTO CREDIT HINWEIS", + "MOVEASSET": "Kapital", + "MOVECREDITNOTE": "Selbstgutschrift", "NETPRICE": "Preis", "NEW_COMPANY": "Neu", "NEW_DOSSIER": "Neues Dossier", "NEXTINVOICE": "Nächste Rechnung", - "NOTES": "Hinweis", - "NO_PRODUCTINVOICE_AVAILABLE": "Kein Produkt", + "NOTES": "Notizen", + "NO_PRODUCTINVOICE_AVAILABLE": "Kein Produkt verfügbar", "NO_PRODUCTPRICELIST_AVAILABLE": "Keine Daten verfügbar", "NO_PRODUCTPROFORMA_AVAILABLE": "Keine Daten verfügbar", "NUMBER": "Nummer", - "OPENDATE": "Eröffnungsdatum", + "OPENDATE": "Öffnungsdatum", "ORDER": "Bestellung", "ORDERCLIENTCODE": "Kundennummer", - "ORDERID": "Bestellung", - "ORDERNOTES": "Hinweis", - "ORDERSTATUS": "Zustand", + "ORDERID": "Bestellung ID ", + "ORDERNOTES": "Notizen", + "ORDERSTATUS": "Status", "ORDER_INFO": "Bestellung", "PAIDANDEXPIRED": "Zahlung", "PAYED_AY": "Bezahlt am", "PAYMENT": "Zahlung", - "PAYMENTMETHOD": "Zahlungsmethoden", + "PAYMENTMETHOD": "Zahlungsarten", "PAYMENTS": "ZAHLUNGEN", "PAYMENT_INFO": "Zahlungsinformationen", "PDFCREDITNOTE": "PDF", @@ -437,7 +437,7 @@ "PRICELISTDISCOUNT": "Preisliste Rabatt", "PRICELISTNAME": "Preisliste", "PRICELISTNETPRICE": "Nettopreis", - "PRICESALELISTNETPRICE": "Prezzo listino", + "PRICESALELISTNETPRICE": "Preisliste", "PRODUCTATUNIT": "Einheit", "PRODUCTCODE": "Produktcode", "PRODUCTDESCRIPTION": "Beschreibung", @@ -446,60 +446,60 @@ "PRODUCTINPROFORMA": "Produkte in Proforma", "PRODUCTINQUOTATION": "PRODUKTDETAILS", "PRODUCTNAME": "Produkt", - "PRODUCTNOTE": "Hinweis", + "PRODUCTNOTE": "Notizen", "PRODUCTPRICE": "Preis", "PRODUCTQTY": "Menge", "PRODUCTS": "PRODUKTE", "PRODUCTSUBSCRIPTION": "Dauer", "PRODUCTTAX": "Steuerprozentsatz", - "PRODUCTTYPE": "Art", + "PRODUCTTYPE": "Produktart", "PROFORMA": "PROFORMA", "PROFORMAAUTHORIZED": "Autorisiertes Proforma", - "PROFORMADETAILS": "Einzelheiten", + "PROFORMADETAILS": "Details", "PROFORMAID": "Id Proforma", "PROFORMANAME": "Proformaname", - "PROFORMANOTES": "Hinweis", + "PROFORMANOTES": "Notizen", "PROFORMAS": "PROFORMA", - "PROFORMASTATUS": "Zustand", + "PROFORMASTATUS": "Status", "PROFORMA_INFO": "Proforma", "QUANTITY": "Menge", - "QUOTATION": "ZITAT", + "QUOTATION": "Preisangabe", "QUOTATIONDISCOUNT": "Angebotsrabatt", "QUOTATIONID": "Angebot", "QUOTATIONINVOICEID": "Rechnungs-ID", "QUOTATIONNAME": "Angebotsname", "QUOTATIONNOTES": "Angebotsnotizen", - "QUOTATIONPRODUCTNOTE": "Produkt Hinweis", - "QUOTATIONPRODUCTTYPE": "Art", + "QUOTATIONPRODUCTNOTE": "Produkt Notizen", + "QUOTATIONPRODUCTTYPE": "Typ", "QUOTATIONPROFORMAID": "Proforma ID", "QUOTATIONQTY": "Menge", - "QUOTATIONSTATUS": "Zustand", + "QUOTATIONSTATUS": "Status", "QUOTATIONSUBSCRIPTION": "Dauer", "QUOTATIONTAX": "MwSt", - "QUOTATIONTOTAL": "GESAMT", + "QUOTATIONTOTAL": "Insgesamt", "QUOTATIONTOTALPRICE": "Gesamt netto", - "QUOTATIONTOTALS": "Gesamt", + "QUOTATIONTOTALS": "Insgesamt", "QUOTATIONTOTALTAX": "Gesamtsteuer", "QUOTATIONUNIT": "Einheit", - "QUOTATIONVAT": "MwSt", - "QUOTATION_INFO": "Zitat", + "QUOTATIONVAT": "VAT", + "QUOTATION_INFO": "Preisangabe", "REQUEST": "ANFRAGE", "REQUESTID": "Anfrage", - "REQUESTNAME": "Name anfordern", - "REQUESTNOTES": "Notizen anfordern", + "REQUESTNAME": "Anfrage Name", + "REQUESTNOTES": "Anfrage Notizen", "REQUEST_INFO": "Anfrage", "SELECT_COMPANY": "Firma auswählen", "SELECT_PERIOD": "Bereich auswählen", "SELECT_PERIOD_CREATION": "Erstellungsdatum auswählen", - "SELECT_PERIOD_EXPIRE": "Verfallsdatum auswählen", + "SELECT_PERIOD_EXPIRE": "Ablaufdatum auswählen", "SELECT_PERIOD_START": "Datum auswählen", - "SELECT_PRODUCT": "Ausgewähltes Produkt", - "SELECT_PRODUCTTYPE": "Art auswählen", - "SELECT_WORKFLOW": "Wählen Sie Workflow", - "SELECT_WORKFLOWSTEPS": "Wählen Sie den Workflow-Status", + "SELECT_PRODUCT": "Produkt auswählen", + "SELECT_PRODUCTTYPE": "Produkttyp auswählen", + "SELECT_WORKFLOW": "Arbeitsablauf auswählen", + "SELECT_WORKFLOWSTEPS": "Arbeitsablaufstatus auswählen", "STARTDATE": "Rechnungsdatum", - "STATE": "Zustand", - "STEP": "Schritt", + "STATE": "Status", + "STEP": "Stufe", "SUBSCRIPTIONDETAIL": "Detail", "SUBSCRIPTIONNAME": "Abonnement", "SUBSCRIPTIONS": "KUNDENPLAN", @@ -508,17 +508,17 @@ "TOTALPAYMENTS": "Gesamtzahlungen", "UPDATED_AT": "Geändert am", "UPDATE_PRODUCT": "Produkt aktualisieren", - "WORKFLOW": "Wählen Sie Workflow", + "WORKFLOW": "Wählen Sie einen Arbeitsablauf", "YEARS": "Jahre", - "CUSTOMER_IP": "Ursprungs-IP-Adresse", + "CUSTOMER_IP": "Ursprüngliche IP-Adresse", "CUSTOMER_PORT": "Ursprünglicher TCP-Port", "ADVANCED_SEARCH": "Erweiterte Suche", "AND": "Und", "APPLY": "Anwenden", "CONTAINS": "Enthält", "DISABLED": "Deaktiviert", - "ENABLED": "aktiviert", - "ENDING_DATE": "Ende", + "ENABLED": "Aktiviert", + "ENDING_DATE": "Enddatum", "ENDING_VALUE": "Endwert", "ENDS_WITH": "Endet mit", "EQUALS": "Gleich", @@ -526,23 +526,23 @@ "IS_BETWEEN": "Ist zwischen", "IS_GREATER_THAN": "Ist größer als", "IS_GREATER_THAN_OR_EQUAL_TO": "Ist größer oder gleich", - "IS_LESS_THAN": "Ist weniger als", + "IS_LESS_THAN": "Ist kleiner als", "IS_LESS_THAN_OR_EQUAL_TO": "Ist kleiner oder gleich", "IS_NOT_AMONG": "Ist nicht unter", "IS_NOT_EQUAL": "Ist nicht gleich", - "MEET_ALL_CONDITIONS": "Erfüllen Sie alle Bedingungen", + "MEET_ALL_CONDITIONS": "Alle Bedingungen erfüllen", "MEET_ANY_CONDITIONS": "Mindestens eine Bedingung erfüllen", - "NEW_CONDITION": "neue Bedingung", + "NEW_CONDITION": "Neue Bedingung", "SELECT_FIELD": "Feld auswählen", "SELECT_OPERATOR": "Operator auswählen", - "STARTING_DATE": "Anfangsdatum", + "STARTING_DATE": "Startdatum", "STARTING_VALUE": "Startwert", "STARTS_WITH": "Beginnt mit", "VALUE": "Wert", "VALUES": "Werte", "VALUE_RANGE_CHECK": "Wert muss größer sein als", "CHOOSE": "Wählen", - "DOWNLOAD_WITHOUT_ATTACHMENTS": "Download ohne Anhänge", + "DOWNLOAD_WITHOUT_ATTACHMENTS": "Herunterladen ohne Anhänge", "DOWNLOAD_WITH_ATTACHMENTS": "Mit Anhängen herunterladen", "SELECT_QUEUE": "Wählen Sie eine Warteschlange aus", "VIDAOOSESSION": "Videoanruf starten", @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Welches möchten Sie verwenden?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Kein WhatsApp-Konto verfügbar", "SECOND_LEVEL_DISPOSITION": "Disposition der zweiten Ebene", - "THIRD_LEVEL_DISPOSITION": "Disposition der dritten Ebene" + "THIRD_LEVEL_DISPOSITION": "Disposition der dritten Ebene", + "LICENSE_EXPIRE_REMAINING_DAYS": "Ihre Lizenz läuft bald ab! Bitte wenden Sie sich an Ihren Administrator" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/en.json b/public/app/main/apps/dashboards/i18n/en.json index 2b2d869..2a2e6e4 100644 --- a/public/app/main/apps/dashboards/i18n/en.json +++ b/public/app/main/apps/dashboards/i18n/en.json @@ -556,6 +556,7 @@ "LAST_UPDATED": "Last updated", "MATCHING_FIELD": "Matching field", "MULTIPLE_CONTACTS_FOUND": "Multiple contacts found for number", - "WHICH_ONE_TO_USE": "Which one do you want to use?" + "WHICH_ONE_TO_USE": "Which one do you want to use?", + "LICENSE_EXPIRE_REMAINING_DAYS": "Your license is about to expire! Please contact your Administrator" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/es.json b/public/app/main/apps/dashboards/i18n/es.json index e95c4ad..0c806a0 100644 --- a/public/app/main/apps/dashboards/i18n/es.json +++ b/public/app/main/apps/dashboards/i18n/es.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Cual quieres usar?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "No hay cuenta de Whatsapp disponible", "SECOND_LEVEL_DISPOSITION": "Disposición de segundo nivel", - "THIRD_LEVEL_DISPOSITION": "Disposición de tercer nivel" + "THIRD_LEVEL_DISPOSITION": "Disposición de tercer nivel", + "LICENSE_EXPIRE_REMAINING_DAYS": "¡Su licencia está a punto de caducar! Comuníquese con su administrador" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/et.json b/public/app/main/apps/dashboards/i18n/et.json index 31e3861..b28bc5d 100644 --- a/public/app/main/apps/dashboards/i18n/et.json +++ b/public/app/main/apps/dashboards/i18n/et.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Kumba soovite kasutada?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Whatsappi konto pole saadaval", "SECOND_LEVEL_DISPOSITION": "Teise taseme korraldus", - "THIRD_LEVEL_DISPOSITION": "Kolmanda taseme korraldus" + "THIRD_LEVEL_DISPOSITION": "Kolmanda taseme korraldus", + "LICENSE_EXPIRE_REMAINING_DAYS": "Teie litsents on aegumas! Võtke ühendust oma administraatoriga" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/fa.json b/public/app/main/apps/dashboards/i18n/fa.json index 2a78c32..597e07e 100644 --- a/public/app/main/apps/dashboards/i18n/fa.json +++ b/public/app/main/apps/dashboards/i18n/fa.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "می خواهید از کدام یک استفاده کنید؟", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "حساب Whatsapp در دسترس نیست", "SECOND_LEVEL_DISPOSITION": "دفع سطح دوم", - "THIRD_LEVEL_DISPOSITION": "دفع سطح سوم" + "THIRD_LEVEL_DISPOSITION": "دفع سطح سوم", + "LICENSE_EXPIRE_REMAINING_DAYS": "مجوز شما در شرف انقضا است! لطفاً با سرپرست خود تماس بگیرید" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/fi.json b/public/app/main/apps/dashboards/i18n/fi.json index f5dfa7c..8d076a3 100644 --- a/public/app/main/apps/dashboards/i18n/fi.json +++ b/public/app/main/apps/dashboards/i18n/fi.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Kumpi haluat käyttää?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Ei Whatsapp-tiliä", "SECOND_LEVEL_DISPOSITION": "Toisen tason sijoitus", - "THIRD_LEVEL_DISPOSITION": "Kolmannen tason sijoitus" + "THIRD_LEVEL_DISPOSITION": "Kolmannen tason sijoitus", + "LICENSE_EXPIRE_REMAINING_DAYS": "Lisenssisi on vanhenemassa! Ota yhteyttä järjestelmänvalvojaasi" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/fr.json b/public/app/main/apps/dashboards/i18n/fr.json index d8b0aba..3899310 100644 --- a/public/app/main/apps/dashboards/i18n/fr.json +++ b/public/app/main/apps/dashboards/i18n/fr.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Lequel souhaitez-vous utiliser?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Aucun compte Whatsapp disponible", "SECOND_LEVEL_DISPOSITION": "Disposition de deuxième niveau", - "THIRD_LEVEL_DISPOSITION": "Disposition de troisième niveau" + "THIRD_LEVEL_DISPOSITION": "Disposition de troisième niveau", + "LICENSE_EXPIRE_REMAINING_DAYS": "Votre licence est sur le point d'expirer! Veuillez contacter votre administrateur" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/he.json b/public/app/main/apps/dashboards/i18n/he.json index 4456cd6..d0f9ead 100644 --- a/public/app/main/apps/dashboards/i18n/he.json +++ b/public/app/main/apps/dashboards/i18n/he.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "באיזה מהם אתה רוצה להשתמש?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "אין חשבון Whatsapp זמין", "SECOND_LEVEL_DISPOSITION": "נטייה בדרגה שנייה", - "THIRD_LEVEL_DISPOSITION": "נטייה ברמה השלישית" + "THIRD_LEVEL_DISPOSITION": "נטייה ברמה השלישית", + "LICENSE_EXPIRE_REMAINING_DAYS": "הרישיון שלך עומד לפוג! אנא פנה למנהל המערכת שלך" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/hi.json b/public/app/main/apps/dashboards/i18n/hi.json index c0e9347..994daba 100644 --- a/public/app/main/apps/dashboards/i18n/hi.json +++ b/public/app/main/apps/dashboards/i18n/hi.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "आप किसका उपयोग करना चाहते हैं?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "कोई व्हाट्सएप अकाउंट उपलब्ध नहीं है", "SECOND_LEVEL_DISPOSITION": "दूसरा स्तर विवाद", - "THIRD_LEVEL_DISPOSITION": "तीसरे स्तर का विवाद" + "THIRD_LEVEL_DISPOSITION": "तीसरे स्तर का विवाद", + "LICENSE_EXPIRE_REMAINING_DAYS": "आपका लाइसेंस समाप्त होने वाला है! कृपया अपने व्यवस्थापक से संपर्क करें" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/id.json b/public/app/main/apps/dashboards/i18n/id.json index 29cc4b8..aa08ae0 100644 --- a/public/app/main/apps/dashboards/i18n/id.json +++ b/public/app/main/apps/dashboards/i18n/id.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Yang mana yang ingin Anda gunakan?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Tidak ada Akun Whatsapp yang tersedia", "SECOND_LEVEL_DISPOSITION": "Disposisi Tingkat Kedua", - "THIRD_LEVEL_DISPOSITION": "Disposisi Tingkat Ketiga" + "THIRD_LEVEL_DISPOSITION": "Disposisi Tingkat Ketiga", + "LICENSE_EXPIRE_REMAINING_DAYS": "Lisensi Anda akan segera kedaluwarsa! Harap hubungi Administrator Anda" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/it.json b/public/app/main/apps/dashboards/i18n/it.json index ab29c7a..54bbf9d 100644 --- a/public/app/main/apps/dashboards/i18n/it.json +++ b/public/app/main/apps/dashboards/i18n/it.json @@ -556,6 +556,7 @@ "LAST_UPDATED": "Ultimo aggiornamento", "MATCHING_FIELD": "Campo corrispondente", "MULTIPLE_CONTACTS_FOUND": "È stato trovato più di un contatto per il numero", - "WHICH_ONE_TO_USE": "Quale vuoi utilizzare?" + "WHICH_ONE_TO_USE": "Quale vuoi utilizzare?", + "LICENSE_EXPIRE_REMAINING_DAYS": "La tua licenza sta per scadere! Contatta il tuo amministratore" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/ja.json b/public/app/main/apps/dashboards/i18n/ja.json index dd24aba..587c971 100644 --- a/public/app/main/apps/dashboards/i18n/ja.json +++ b/public/app/main/apps/dashboards/i18n/ja.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "どちらを使いたいですか?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "利用可能なWhatsappアカウントがありません", "SECOND_LEVEL_DISPOSITION": "第2レベルの気質", - "THIRD_LEVEL_DISPOSITION": "第3レベルの気質" + "THIRD_LEVEL_DISPOSITION": "第3レベルの気質", + "LICENSE_EXPIRE_REMAINING_DAYS": "ライセンスの有効期限が近づいています。管理者に連絡してください" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/ko.json b/public/app/main/apps/dashboards/i18n/ko.json index 54eb160..5ca5f70 100644 --- a/public/app/main/apps/dashboards/i18n/ko.json +++ b/public/app/main/apps/dashboards/i18n/ko.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "어느 것을 사용 하시겠습니까?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "사용 가능한 Whatsapp 계정이 없습니다.", "SECOND_LEVEL_DISPOSITION": "두 번째 수준 처리", - "THIRD_LEVEL_DISPOSITION": "3 단계 처리" + "THIRD_LEVEL_DISPOSITION": "3 단계 처리", + "LICENSE_EXPIRE_REMAINING_DAYS": "라이센스가 곧 만료됩니다! 관리자에게 문의하십시오" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/lt.json b/public/app/main/apps/dashboards/i18n/lt.json index a8fd8d5..2cd7273 100644 --- a/public/app/main/apps/dashboards/i18n/lt.json +++ b/public/app/main/apps/dashboards/i18n/lt.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Kurį iš jų norite naudoti?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Nėra „Whatsapp“ paskyros", "SECOND_LEVEL_DISPOSITION": "Antro lygio disponavimas", - "THIRD_LEVEL_DISPOSITION": "Trečiojo lygio disponavimas" + "THIRD_LEVEL_DISPOSITION": "Trečiojo lygio disponavimas", + "LICENSE_EXPIRE_REMAINING_DAYS": "Netrukus baigsis jūsų licencijos galiojimo laikas! Susisiekite su savo administratoriumi" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/lv.json b/public/app/main/apps/dashboards/i18n/lv.json index cef44ee..33e81c2 100644 --- a/public/app/main/apps/dashboards/i18n/lv.json +++ b/public/app/main/apps/dashboards/i18n/lv.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Kuru jūs vēlaties izmantot?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Nav pieejams Whatsapp konts", "SECOND_LEVEL_DISPOSITION": "Otrā līmeņa izvietojums", - "THIRD_LEVEL_DISPOSITION": "Trešā līmeņa izvietojums" + "THIRD_LEVEL_DISPOSITION": "Trešā līmeņa izvietojums", + "LICENSE_EXPIRE_REMAINING_DAYS": "Jūsu licence drīz beigsies! Lūdzu, sazinieties ar savu administratoru" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/nl.json b/public/app/main/apps/dashboards/i18n/nl.json index cc0d820..652a5e9 100644 --- a/public/app/main/apps/dashboards/i18n/nl.json +++ b/public/app/main/apps/dashboards/i18n/nl.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Welke wil je gebruiken?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Geen Whatsapp-account beschikbaar", "SECOND_LEVEL_DISPOSITION": "Tweede niveau dispositie", - "THIRD_LEVEL_DISPOSITION": "Dispositie op het derde niveau" + "THIRD_LEVEL_DISPOSITION": "Dispositie op het derde niveau", + "LICENSE_EXPIRE_REMAINING_DAYS": "Uw licentie verloopt bijna! Neem contact op met uw beheerder" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/no.json b/public/app/main/apps/dashboards/i18n/no.json index b8af816..514dec1 100644 --- a/public/app/main/apps/dashboards/i18n/no.json +++ b/public/app/main/apps/dashboards/i18n/no.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Hvilken vil du bruke?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Ingen Whatsapp-konto tilgjengelig", "SECOND_LEVEL_DISPOSITION": "Andre nivå disposisjon", - "THIRD_LEVEL_DISPOSITION": "Tredje nivå disposisjon" + "THIRD_LEVEL_DISPOSITION": "Tredje nivå disposisjon", + "LICENSE_EXPIRE_REMAINING_DAYS": "Lisensen din er i ferd med å utløpe! Kontakt administratoren din" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/pl.json b/public/app/main/apps/dashboards/i18n/pl.json index 276b512..9a4976d 100644 --- a/public/app/main/apps/dashboards/i18n/pl.json +++ b/public/app/main/apps/dashboards/i18n/pl.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Którego chcesz użyć?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Brak dostępnego konta Whatsapp", "SECOND_LEVEL_DISPOSITION": "Dyspozycja drugiego poziomu", - "THIRD_LEVEL_DISPOSITION": "Dyspozycja trzeciego poziomu" + "THIRD_LEVEL_DISPOSITION": "Dyspozycja trzeciego poziomu", + "LICENSE_EXPIRE_REMAINING_DAYS": "Twoja licencja wkrótce wygaśnie! Skontaktuj się z administratorem" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/pt-BR.json b/public/app/main/apps/dashboards/i18n/pt-BR.json index 1ed1ad0..3f05d90 100644 --- a/public/app/main/apps/dashboards/i18n/pt-BR.json +++ b/public/app/main/apps/dashboards/i18n/pt-BR.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Qual você deseja usar?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Nenhuma conta Whatsapp disponível", "SECOND_LEVEL_DISPOSITION": "Disposição de Segundo Nível", - "THIRD_LEVEL_DISPOSITION": "Disposição de terceiro nível" + "THIRD_LEVEL_DISPOSITION": "Disposição de terceiro nível", + "LICENSE_EXPIRE_REMAINING_DAYS": "Sua licença está prestes a expirar! Entre em contato com o seu administrador" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/pt-PT.json b/public/app/main/apps/dashboards/i18n/pt-PT.json index 5908fb0..54c0b93 100644 --- a/public/app/main/apps/dashboards/i18n/pt-PT.json +++ b/public/app/main/apps/dashboards/i18n/pt-PT.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Qual você deseja usar?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Nenhuma conta Whatsapp disponível", "SECOND_LEVEL_DISPOSITION": "Disposição de Segundo Nível", - "THIRD_LEVEL_DISPOSITION": "Disposição de terceiro nível" + "THIRD_LEVEL_DISPOSITION": "Disposição de terceiro nível", + "LICENSE_EXPIRE_REMAINING_DAYS": "Sua licença está prestes a expirar! Entre em contato com o seu administrador" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/ru.json b/public/app/main/apps/dashboards/i18n/ru.json index 48fec3f..f4058ff 100644 --- a/public/app/main/apps/dashboards/i18n/ru.json +++ b/public/app/main/apps/dashboards/i18n/ru.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Какой из них вы хотите использовать?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Нет доступной учетной записи WhatsApp", "SECOND_LEVEL_DISPOSITION": "Расположение второго уровня", - "THIRD_LEVEL_DISPOSITION": "Расположение третьего уровня" + "THIRD_LEVEL_DISPOSITION": "Расположение третьего уровня", + "LICENSE_EXPIRE_REMAINING_DAYS": "Срок действия вашей лицензии истекает! Обратитесь к своему администратору" } } \ 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 4369498..bf04ea6 100644 --- a/public/app/main/apps/dashboards/i18n/sv.json +++ b/public/app/main/apps/dashboards/i18n/sv.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Vilken vill du använda?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Inget Whatsapp-konto tillgängligt", "SECOND_LEVEL_DISPOSITION": "Andra nivån disposition", - "THIRD_LEVEL_DISPOSITION": "Tredje nivåens disposition" + "THIRD_LEVEL_DISPOSITION": "Tredje nivåens disposition", + "LICENSE_EXPIRE_REMAINING_DAYS": "Din licens går ut! Kontakta din administratör" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/tr.json b/public/app/main/apps/dashboards/i18n/tr.json index ae1c64f..9389cd1 100644 --- a/public/app/main/apps/dashboards/i18n/tr.json +++ b/public/app/main/apps/dashboards/i18n/tr.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "Hangisini kullanmak istiyorsun?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Whatsapp Hesabı yok", "SECOND_LEVEL_DISPOSITION": "İkinci Düzey Tasarruf", - "THIRD_LEVEL_DISPOSITION": "Üçüncü Düzey Tasarruf" + "THIRD_LEVEL_DISPOSITION": "Üçüncü Düzey Tasarruf", + "LICENSE_EXPIRE_REMAINING_DAYS": "Lisansınızın süresi dolmak üzere! Lütfen Yöneticinizle iletişime geçin" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/zh-CN.json b/public/app/main/apps/dashboards/i18n/zh-CN.json index 6f4a401..4212d24 100644 --- a/public/app/main/apps/dashboards/i18n/zh-CN.json +++ b/public/app/main/apps/dashboards/i18n/zh-CN.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "您要使用哪一个?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "没有可用的Whatsapp帐户", "SECOND_LEVEL_DISPOSITION": "二级处置", - "THIRD_LEVEL_DISPOSITION": "第三级处置" + "THIRD_LEVEL_DISPOSITION": "第三级处置", + "LICENSE_EXPIRE_REMAINING_DAYS": "您的许可证即将到期!请与您的管理员联系" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/zh-TW.json b/public/app/main/apps/dashboards/i18n/zh-TW.json index 829bdf9..416a7de 100644 --- a/public/app/main/apps/dashboards/i18n/zh-TW.json +++ b/public/app/main/apps/dashboards/i18n/zh-TW.json @@ -556,6 +556,7 @@ "WHICH_ONE_TO_USE": "您要使用哪一個?", "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "沒有可用的Whatsapp帳戶", "SECOND_LEVEL_DISPOSITION": "二級處置", - "THIRD_LEVEL_DISPOSITION": "第三級處置" + "THIRD_LEVEL_DISPOSITION": "第三級處置", + "LICENSE_EXPIRE_REMAINING_DAYS": "您的許可證即將到期!請與您的管理員聯繫" } } \ No newline at end of file diff --git a/public/app/main/apps/fax/i18n/de.json b/public/app/main/apps/fax/i18n/de.json index 8b55d8c..135db12 100644 --- a/public/app/main/apps/fax/i18n/de.json +++ b/public/app/main/apps/fax/i18n/de.json @@ -1,6 +1,6 @@ { "FAX": { - "TEAMADD_FAXQUEUE": "Team Fax Warteschlange hinzufügen", + "TEAMADD_FAXQUEUE": "Team zur Faxwarteschlange hinzufügen", "AGENTADD_FAXQUEUE": "Agent Fax Warteschlange hinzufügen", "NAME": "Name", "FAXQUEUES": "Fax Warteschlangen", diff --git a/public/app/main/apps/motiondialer/i18n/ar.json b/public/app/main/apps/motiondialer/i18n/ar.json index 334e915..2007ed8 100644 --- a/public/app/main/apps/motiondialer/i18n/ar.json +++ b/public/app/main/apps/motiondialer/i18n/ar.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "ماكس إعادة المحاولة", "NOSUCHNUMBERRETRYTIME": "إعادة محاولة الوقت [دقيقة]", "TOOLTIP_SCREENRECORDING_OFF": "تسجيل الشاشة المتاحة", - "TOOLTIP_SCREENRECORDING_ON": "تسجيل الشاشة في التقدم" + "TOOLTIP_SCREENRECORDING_ON": "تسجيل الشاشة في التقدم", + "SECOND_LEVEL_DISPOSITION": "ترتيب المستوى الثاني", + "THIRD_LEVEL_DISPOSITION": "الترتيب الثالث" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/cs.json b/public/app/main/apps/motiondialer/i18n/cs.json index 473fa24..46ea08f 100644 --- a/public/app/main/apps/motiondialer/i18n/cs.json +++ b/public/app/main/apps/motiondialer/i18n/cs.json @@ -684,6 +684,8 @@ "MACHINERETRYTIME": "Čas opakování [min]", "NOSUCHNUMBER": "Žádné takové číslo", "NOSUCHNUMBERMAXRETRY": "Max", - "NOSUCHNUMBERRETRYTIME": "Čas opakování [min]" + "NOSUCHNUMBERRETRYTIME": "Čas opakování [min]", + "SECOND_LEVEL_DISPOSITION": "Dispozice druhé úrovně", + "THIRD_LEVEL_DISPOSITION": "Dispozice třetí úrovně" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/da.json b/public/app/main/apps/motiondialer/i18n/da.json index 381afe5..aa72414 100644 --- a/public/app/main/apps/motiondialer/i18n/da.json +++ b/public/app/main/apps/motiondialer/i18n/da.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "Max prøver igen", "NOSUCHNUMBERRETRYTIME": "Forsøgstid [min]", "TOOLTIP_SCREENRECORDING_OFF": "Screen optagelse tilgængelig", - "TOOLTIP_SCREENRECORDING_ON": "Skærmoptagelse pågår" + "TOOLTIP_SCREENRECORDING_ON": "Skærmoptagelse pågår", + "SECOND_LEVEL_DISPOSITION": "Andet niveau disposition", + "THIRD_LEVEL_DISPOSITION": "Tredje niveau disposition" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/de.json b/public/app/main/apps/motiondialer/i18n/de.json index 86bab22..a0b6eb3 100644 --- a/public/app/main/apps/motiondialer/i18n/de.json +++ b/public/app/main/apps/motiondialer/i18n/de.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "Max Wiederholungen", "NOSUCHNUMBERRETRYTIME": "Wiederholungszeit [min]", "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme verfügbar", - "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft" + "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft", + "SECOND_LEVEL_DISPOSITION": "Disposition der zweiten Ebene", + "THIRD_LEVEL_DISPOSITION": "Disposition der dritten Ebene" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/en.json b/public/app/main/apps/motiondialer/i18n/en.json index 8fa9367..6b047b7 100644 --- a/public/app/main/apps/motiondialer/i18n/en.json +++ b/public/app/main/apps/motiondialer/i18n/en.json @@ -1,5 +1,7 @@ { "MOTIONDIALER": { + "SECOND_LEVEL_DISPOSITION": "Second Level Disposition", + "THIRD_LEVEL_DISPOSITION": "Third Level Disposition", "ONE_CALL_EVERY": "One call every", "CURRENT_INTERVAL": "Current Interval", "PREVIOUS_INTERVAL": "Previous Interval", diff --git a/public/app/main/apps/motiondialer/i18n/es.json b/public/app/main/apps/motiondialer/i18n/es.json index 3209618..64ab305 100644 --- a/public/app/main/apps/motiondialer/i18n/es.json +++ b/public/app/main/apps/motiondialer/i18n/es.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "Intentos máximos", "NOSUCHNUMBERRETRYTIME": "Tiempo de reintento [min]", "TOOLTIP_SCREENRECORDING_OFF": "Grabación de pantalla disponible", - "TOOLTIP_SCREENRECORDING_ON": "Grabación de pantalla en progreso" + "TOOLTIP_SCREENRECORDING_ON": "Grabación de pantalla en progreso", + "SECOND_LEVEL_DISPOSITION": "Disposición de segundo nivel", + "THIRD_LEVEL_DISPOSITION": "Disposición de tercer nivel" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/et.json b/public/app/main/apps/motiondialer/i18n/et.json index 8849a16..6d6ce71 100644 --- a/public/app/main/apps/motiondialer/i18n/et.json +++ b/public/app/main/apps/motiondialer/i18n/et.json @@ -684,6 +684,8 @@ "MACHINERETRYTIME": "Uuesti proovimise aeg [min]", "NOSUCHNUMBER": "Sellist numbrit pole", "NOSUCHNUMBERMAXRETRY": "Max proovib uuesti", - "NOSUCHNUMBERRETRYTIME": "Uuesti proovimise aeg [min]" + "NOSUCHNUMBERRETRYTIME": "Uuesti proovimise aeg [min]", + "SECOND_LEVEL_DISPOSITION": "Teise taseme korraldus", + "THIRD_LEVEL_DISPOSITION": "Kolmanda taseme korraldus" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/fa.json b/public/app/main/apps/motiondialer/i18n/fa.json index 10a8e2e..ff3f312 100644 --- a/public/app/main/apps/motiondialer/i18n/fa.json +++ b/public/app/main/apps/motiondialer/i18n/fa.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "حداکثر امتحان مجدد", "NOSUCHNUMBERRETRYTIME": "زمان امتحان مجدد [دقیقه]", "TOOLTIP_SCREENRECORDING_OFF": "ضبط صفحه در دسترس است", - "TOOLTIP_SCREENRECORDING_ON": "ضبط صفحه در حال انجام است" + "TOOLTIP_SCREENRECORDING_ON": "ضبط صفحه در حال انجام است", + "SECOND_LEVEL_DISPOSITION": "دفع سطح دوم", + "THIRD_LEVEL_DISPOSITION": "دفع سطح سوم" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/fi.json b/public/app/main/apps/motiondialer/i18n/fi.json index c8010e5..4bd1382 100644 --- a/public/app/main/apps/motiondialer/i18n/fi.json +++ b/public/app/main/apps/motiondialer/i18n/fi.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "Enimmäismäärät", "NOSUCHNUMBERRETRYTIME": "Uudelleenyritysaika [min]", "TOOLTIP_SCREENRECORDING_OFF": "Näytön tallennus saatavilla", - "TOOLTIP_SCREENRECORDING_ON": "Näytön nauhoitus käynnissä" + "TOOLTIP_SCREENRECORDING_ON": "Näytön nauhoitus käynnissä", + "SECOND_LEVEL_DISPOSITION": "Toisen tason sijoitus", + "THIRD_LEVEL_DISPOSITION": "Kolmannen tason sijoitus" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/fr.json b/public/app/main/apps/motiondialer/i18n/fr.json index 035dd4e..1d65105 100644 --- a/public/app/main/apps/motiondialer/i18n/fr.json +++ b/public/app/main/apps/motiondialer/i18n/fr.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "Max tentatives", "NOSUCHNUMBERRETRYTIME": "Temps de nouvelle tentative [min]", "TOOLTIP_SCREENRECORDING_OFF": "Enregistrement d'écran disponible", - "TOOLTIP_SCREENRECORDING_ON": "Enregistrement d'écran en cours" + "TOOLTIP_SCREENRECORDING_ON": "Enregistrement d'écran en cours", + "SECOND_LEVEL_DISPOSITION": "Disposition de deuxième niveau", + "THIRD_LEVEL_DISPOSITION": "Disposition de troisième niveau" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/he.json b/public/app/main/apps/motiondialer/i18n/he.json index 137aea3..938882d 100644 --- a/public/app/main/apps/motiondialer/i18n/he.json +++ b/public/app/main/apps/motiondialer/i18n/he.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "מקסימום נסיונות חוזרים", "NOSUCHNUMBERRETRYTIME": "מרווח זמן עד לניסיון חוזר [דקות]", "TOOLTIP_SCREENRECORDING_OFF": "הקלטת מסך זמינה", - "TOOLTIP_SCREENRECORDING_ON": "הקלטת מסך מתבצעת" + "TOOLTIP_SCREENRECORDING_ON": "הקלטת מסך מתבצעת", + "SECOND_LEVEL_DISPOSITION": "נטייה בדרגה שנייה", + "THIRD_LEVEL_DISPOSITION": "נטייה ברמה השלישית" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/hi.json b/public/app/main/apps/motiondialer/i18n/hi.json index db1eb4c..91956f7 100644 --- a/public/app/main/apps/motiondialer/i18n/hi.json +++ b/public/app/main/apps/motiondialer/i18n/hi.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "अधिकतम रिटायर", "NOSUCHNUMBERRETRYTIME": "पुनः प्रयास समय [मिनट]", "TOOLTIP_SCREENRECORDING_OFF": "स्क्रीन रिकॉर्डिंग उपलब्ध है", - "TOOLTIP_SCREENRECORDING_ON": "स्क्रीन रिकॉर्डिंग प्रगति पर है" + "TOOLTIP_SCREENRECORDING_ON": "स्क्रीन रिकॉर्डिंग प्रगति पर है", + "SECOND_LEVEL_DISPOSITION": "दूसरा स्तर विवाद", + "THIRD_LEVEL_DISPOSITION": "तीसरे स्तर का विवाद" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/id.json b/public/app/main/apps/motiondialer/i18n/id.json index b5815c0..222305f 100644 --- a/public/app/main/apps/motiondialer/i18n/id.json +++ b/public/app/main/apps/motiondialer/i18n/id.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "Max Retries", "NOSUCHNUMBERRETRYTIME": "Coba Lagi Waktu [mnt]", "TOOLTIP_SCREENRECORDING_OFF": "Rekaman Layar tersedia", - "TOOLTIP_SCREENRECORDING_ON": "Perekaman Layar sedang berlangsung" + "TOOLTIP_SCREENRECORDING_ON": "Perekaman Layar sedang berlangsung", + "SECOND_LEVEL_DISPOSITION": "Disposisi Tingkat Kedua", + "THIRD_LEVEL_DISPOSITION": "Disposisi Tingkat Ketiga" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/it.json b/public/app/main/apps/motiondialer/i18n/it.json index 061b6ea..9c2f6c5 100644 --- a/public/app/main/apps/motiondialer/i18n/it.json +++ b/public/app/main/apps/motiondialer/i18n/it.json @@ -1,5 +1,7 @@ { "MOTIONDIALER": { + "SECOND_LEVEL_DISPOSITION": "Disposizione di secondo livello", + "THIRD_LEVEL_DISPOSITION": "Disposizione di terzo livello", "ONE_CALL_EVERY": "Una chiamata ogni", "CURRENT_INTERVAL": "Intervallo Corrente", "PREVIOUS_INTERVAL": "Intervallo Precedente", diff --git a/public/app/main/apps/motiondialer/i18n/ja.json b/public/app/main/apps/motiondialer/i18n/ja.json index 423f360..c342641 100644 --- a/public/app/main/apps/motiondialer/i18n/ja.json +++ b/public/app/main/apps/motiondialer/i18n/ja.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "最大再試行", "NOSUCHNUMBERRETRYTIME": "再試行時間[分]", "TOOLTIP_SCREENRECORDING_OFF": "利用可能なスクリーン録画", - "TOOLTIP_SCREENRECORDING_ON": "スクリーン録画中" + "TOOLTIP_SCREENRECORDING_ON": "スクリーン録画中", + "SECOND_LEVEL_DISPOSITION": "第2レベルの気質", + "THIRD_LEVEL_DISPOSITION": "第3レベルの気質" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/ko.json b/public/app/main/apps/motiondialer/i18n/ko.json index 06250f6..976a5c2 100644 --- a/public/app/main/apps/motiondialer/i18n/ko.json +++ b/public/app/main/apps/motiondialer/i18n/ko.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "최대 재시도", "NOSUCHNUMBERRETRYTIME": "재시도 시간 [분]", "TOOLTIP_SCREENRECORDING_OFF": "스크린 녹화 가능", - "TOOLTIP_SCREENRECORDING_ON": "화면 녹화 중" + "TOOLTIP_SCREENRECORDING_ON": "화면 녹화 중", + "SECOND_LEVEL_DISPOSITION": "두 번째 수준 처리", + "THIRD_LEVEL_DISPOSITION": "3 단계 처리" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/lt.json b/public/app/main/apps/motiondialer/i18n/lt.json index d1d54cc..97ad224 100644 --- a/public/app/main/apps/motiondialer/i18n/lt.json +++ b/public/app/main/apps/motiondialer/i18n/lt.json @@ -684,6 +684,8 @@ "MACHINERETRYTIME": "Pakartojimų laikas [min.]", "NOSUCHNUMBER": "Tokio numerio nėra", "NOSUCHNUMBERMAXRETRY": "Maks. bandymai iš naujo", - "NOSUCHNUMBERRETRYTIME": "Pakartojimų laikas [min.]" + "NOSUCHNUMBERRETRYTIME": "Pakartojimų laikas [min.]", + "SECOND_LEVEL_DISPOSITION": "Antro lygio disponavimas", + "THIRD_LEVEL_DISPOSITION": "Trečiojo lygio disponavimas" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/lv.json b/public/app/main/apps/motiondialer/i18n/lv.json index 4f0d1e8..f724d2e 100644 --- a/public/app/main/apps/motiondialer/i18n/lv.json +++ b/public/app/main/apps/motiondialer/i18n/lv.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "Maks. Atkārtojumi", "NOSUCHNUMBERRETRYTIME": "Atkārtota mēģinājuma laiks [min]", "TOOLTIP_SCREENRECORDING_OFF": "Ekrāna ieraksts ir pieejams", - "TOOLTIP_SCREENRECORDING_ON": "Notiek ekrāna ierakstīšana" + "TOOLTIP_SCREENRECORDING_ON": "Notiek ekrāna ierakstīšana", + "SECOND_LEVEL_DISPOSITION": "Otrā līmeņa izvietojums", + "THIRD_LEVEL_DISPOSITION": "Trešā līmeņa izvietojums" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/nl.json b/public/app/main/apps/motiondialer/i18n/nl.json index 703bd8c..7254af3 100644 --- a/public/app/main/apps/motiondialer/i18n/nl.json +++ b/public/app/main/apps/motiondialer/i18n/nl.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "Max pogingen", "NOSUCHNUMBERRETRYTIME": "Retry Time [min]", "TOOLTIP_SCREENRECORDING_OFF": "Schermopname beschikbaar", - "TOOLTIP_SCREENRECORDING_ON": "Schermopname bezig" + "TOOLTIP_SCREENRECORDING_ON": "Schermopname bezig", + "SECOND_LEVEL_DISPOSITION": "Tweede niveau dispositie", + "THIRD_LEVEL_DISPOSITION": "Dispositie op het derde niveau" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/no.json b/public/app/main/apps/motiondialer/i18n/no.json index 42125d0..b81a676 100644 --- a/public/app/main/apps/motiondialer/i18n/no.json +++ b/public/app/main/apps/motiondialer/i18n/no.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "Max prøver på nytt", "NOSUCHNUMBERRETRYTIME": "Prøv på nytt [min]", "TOOLTIP_SCREENRECORDING_OFF": "Skjermopptak tilgjengelig", - "TOOLTIP_SCREENRECORDING_ON": "Skjermopptak pågår" + "TOOLTIP_SCREENRECORDING_ON": "Skjermopptak pågår", + "SECOND_LEVEL_DISPOSITION": "Andre nivå disposisjon", + "THIRD_LEVEL_DISPOSITION": "Tredje nivå disposisjon" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/pl.json b/public/app/main/apps/motiondialer/i18n/pl.json index d9557f1..86484cc 100644 --- a/public/app/main/apps/motiondialer/i18n/pl.json +++ b/public/app/main/apps/motiondialer/i18n/pl.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "Maksymalna liczba prób", "NOSUCHNUMBERRETRYTIME": "Czas ponownej próby [min]", "TOOLTIP_SCREENRECORDING_OFF": "Dostępne nagrywanie ekranu", - "TOOLTIP_SCREENRECORDING_ON": "Trwa nagrywanie ekranu" + "TOOLTIP_SCREENRECORDING_ON": "Trwa nagrywanie ekranu", + "SECOND_LEVEL_DISPOSITION": "Dyspozycja drugiego poziomu", + "THIRD_LEVEL_DISPOSITION": "Dyspozycja trzeciego poziomu" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/pt-BR.json b/public/app/main/apps/motiondialer/i18n/pt-BR.json index fdf37c5..b320d0e 100644 --- a/public/app/main/apps/motiondialer/i18n/pt-BR.json +++ b/public/app/main/apps/motiondialer/i18n/pt-BR.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "Tentativas máximas", "NOSUCHNUMBERRETRYTIME": "Tempo de Nova Tentativa [min]", "TOOLTIP_SCREENRECORDING_OFF": "Gravação de tela disponível", - "TOOLTIP_SCREENRECORDING_ON": "Gravação de tela em andamento" + "TOOLTIP_SCREENRECORDING_ON": "Gravação de tela em andamento", + "SECOND_LEVEL_DISPOSITION": "Disposição de Segundo Nível", + "THIRD_LEVEL_DISPOSITION": "Disposição de terceiro nível" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/pt-PT.json b/public/app/main/apps/motiondialer/i18n/pt-PT.json index f1e3ca5..a59ed61 100644 --- a/public/app/main/apps/motiondialer/i18n/pt-PT.json +++ b/public/app/main/apps/motiondialer/i18n/pt-PT.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "Tentativas máximas", "NOSUCHNUMBERRETRYTIME": "Tempo de Nova Tentativa [min]", "TOOLTIP_SCREENRECORDING_OFF": "Gravação de tela disponível", - "TOOLTIP_SCREENRECORDING_ON": "Gravação de tela em andamento" + "TOOLTIP_SCREENRECORDING_ON": "Gravação de tela em andamento", + "SECOND_LEVEL_DISPOSITION": "Disposição de Segundo Nível", + "THIRD_LEVEL_DISPOSITION": "Disposição de terceiro nível" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/ru.json b/public/app/main/apps/motiondialer/i18n/ru.json index 32daf8d..bd2feb7 100644 --- a/public/app/main/apps/motiondialer/i18n/ru.json +++ b/public/app/main/apps/motiondialer/i18n/ru.json @@ -684,6 +684,8 @@ "MACHINERETRYTIME": "Время повтора [мин]", "NOSUCHNUMBER": "Нет такого числа", "NOSUCHNUMBERMAXRETRY": "Максимальное количество попыток", - "NOSUCHNUMBERRETRYTIME": "Время повтора [мин]" + "NOSUCHNUMBERRETRYTIME": "Время повтора [мин]", + "SECOND_LEVEL_DISPOSITION": "Расположение второго уровня", + "THIRD_LEVEL_DISPOSITION": "Расположение третьего уровня" } } \ 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 da90b09..ea0473b 100644 --- a/public/app/main/apps/motiondialer/i18n/sv.json +++ b/public/app/main/apps/motiondialer/i18n/sv.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "Max försöker igen", "NOSUCHNUMBERRETRYTIME": "Försök igen [min]", "TOOLTIP_SCREENRECORDING_OFF": "Skärminspelning tillgänglig", - "TOOLTIP_SCREENRECORDING_ON": "Skärminspelning pågår" + "TOOLTIP_SCREENRECORDING_ON": "Skärminspelning pågår", + "SECOND_LEVEL_DISPOSITION": "Andra nivån disposition", + "THIRD_LEVEL_DISPOSITION": "Tredje nivåens disposition" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/tr.json b/public/app/main/apps/motiondialer/i18n/tr.json index aab2b43..e2721ed 100644 --- a/public/app/main/apps/motiondialer/i18n/tr.json +++ b/public/app/main/apps/motiondialer/i18n/tr.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "Maks. Tekrar Deneme", "NOSUCHNUMBERRETRYTIME": "Yeniden Deneme Süresi [dak]", "TOOLTIP_SCREENRECORDING_OFF": "Ekran Kaydı mevcut", - "TOOLTIP_SCREENRECORDING_ON": "Ekran Kaydı devam ediyor" + "TOOLTIP_SCREENRECORDING_ON": "Ekran Kaydı devam ediyor", + "SECOND_LEVEL_DISPOSITION": "İkinci Düzey Tasarruf", + "THIRD_LEVEL_DISPOSITION": "Üçüncü Düzey Tasarruf" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/zh-CN.json b/public/app/main/apps/motiondialer/i18n/zh-CN.json index a5f25a4..e3962e1 100644 --- a/public/app/main/apps/motiondialer/i18n/zh-CN.json +++ b/public/app/main/apps/motiondialer/i18n/zh-CN.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "最大重试次数", "NOSUCHNUMBERRETRYTIME": "重试时间[分钟]", "TOOLTIP_SCREENRECORDING_OFF": "屏幕录像可用", - "TOOLTIP_SCREENRECORDING_ON": "屏幕录制正在进行中" + "TOOLTIP_SCREENRECORDING_ON": "屏幕录制正在进行中", + "SECOND_LEVEL_DISPOSITION": "二级处置", + "THIRD_LEVEL_DISPOSITION": "第三级处置" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/zh-TW.json b/public/app/main/apps/motiondialer/i18n/zh-TW.json index 73dad23..d5da9bd 100644 --- a/public/app/main/apps/motiondialer/i18n/zh-TW.json +++ b/public/app/main/apps/motiondialer/i18n/zh-TW.json @@ -685,6 +685,8 @@ "NOSUCHNUMBERMAXRETRY": "最大重試次數", "NOSUCHNUMBERRETRYTIME": "重試時間[分鐘]", "TOOLTIP_SCREENRECORDING_OFF": "屏幕錄像可用", - "TOOLTIP_SCREENRECORDING_ON": "屏幕錄製正在進行中" + "TOOLTIP_SCREENRECORDING_ON": "屏幕錄製正在進行中", + "SECOND_LEVEL_DISPOSITION": "二級處置", + "THIRD_LEVEL_DISPOSITION": "第三級處置" } } \ No newline at end of file diff --git a/public/index.html b/public/index.html index 9e182d7..556e9f0 100644 --- a/public/index.html +++ b/public/index.html @@ -14,7 +14,7 @@ - + @@ -60,7 +60,7 @@ - + diff --git a/public/scripts/app.76cd4e0b.js b/public/scripts/app.dcd9d3b6.js similarity index 57% rename from public/scripts/app.76cd4e0b.js rename to public/scripts/app.dcd9d3b6.js index 91d713d..c97f085 100644 --- a/public/scripts/app.76cd4e0b.js +++ b/public/scripts/app.dcd9d3b6.js @@ -1 +1 @@ -!function(){"use strict";angular.module("app.auth",[])}(),function(){"use strict";angular.module("app.core",["ngAnimate","ngAria","ngCookies","ngMessages","ngResource","ngSanitize","ngMaterial","pascalprecht.translate","ui.router","ui.router.state.events","gridster","ds.clock","angucomplete-alt"])}(),function(){"use strict";function e(e,n){e.state("app.errors_error-404",{url:"/errors/error-404",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-404":{templateUrl:"app/errors/404/error-404.html",controller:"Error404Controller as vm"}},params:{status:404,statusText:"",data:{},config:{}},bodyClass:"error-404"}),n.addPart("app/errors/404")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-404",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.errors_error-500",{url:"/errors/error-500",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-500":{templateUrl:"app/errors/500/error-500.html",controller:"Error500Controller as vm"}},params:{status:500,statusText:"",data:{},config:{}},bodyClass:"error-500"}),n.addPart("app/errors/500")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-500",[]).config(e)}(),function(){"use strict";angular.module("app.errors",["app.errors.error-404","app.errors.error-500"])}(),function(){"use strict";function e(e){e.addPart("app/footer")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.footer",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.forgot",{url:"/forgot",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.forgot":{templateUrl:"app/forgot/forgot.html",controller:"ForgotPasswordController as vm"}},bodyClass:"forgot"}),n.addPart("app/forgot")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.forgot",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/header")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.header",[]).config(e)}(),function(){"use strict";angular.module("motion",["angular-toasty","app.core","app.auth","app.navigation","app.toolbar","app.quick-panel","app.header","app.footer","app.dashboards","app.staff","app.contactmanager","app.voice","app.chat","app.mail","app.sms","app.openchannel","app.fax","app.tools","app.callysquare","app.analytics","app.integrations","app.settings","app.motiondialer","app.help","app.jscripty","app.marketplace","app.plugins","app.video","app.whatsapp","app.login","app.forgot","app.reset","app.errors"])}(),function(){"use strict";function e(e,n){e.state("app.login",{url:"/login?token&userId",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.login":{templateUrl:"app/login/login.html",controller:"LoginController as vm"}},bodyClass:"login"}),n.addPart("app/login")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.login",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.analytics",{abstract:!0,url:"/analytics"}).state("app.analytics.metrics",{url:"/metrics",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/metrics/metrics.html",controller:"MetricsController as vm"}},resolve:{metrics:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticMetric@get",{fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Metrics",fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1201})}]},authenticate:!0,permissionId:1201,bodyClass:"analytics"}).state("app.analytics.extractedReports",{url:"/extractedReports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/extractedReports/extractedReports.html",controller:"ExtractedReportsController as vm"}},resolve:{extractedReports:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticExtractedReport@get",{fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ExtractedReports",fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1202})}]},authenticate:!0,permissionId:1202,bodyClass:"analytics"}),n.addPart("app/main/apps/analytics")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.analytics",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.analytics.reports"]).config(e)}(),function(){"use strict";function e(e){e.state("app.analytics.reports",{url:"/reports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/reports.html",controller:"ReportsController as vm"}},resolve:{treeReports:["apiResolver",function(e){return e.resolve("analyticTreeReport@get",{fields:"id,tree",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"}).state("app.analytics.reports.edit",{url:"/:id?tab",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/edit/view.html",controller:"ReportController as vm"}},resolve:{report:["apiResolver","$stateParams","$q","describeTable",function(e,n,a,i){var s;return e.resolve("analyticCustomReport@get",{fields:"createdAt,updatedAt,id,name,description,table,conditions,joins",id:n.id}).then(function(e){var n=[];if((s=e).joins)try{s.joins=JSON.parse(s.joins);for(var t=0;t');a.append(n),o(function(){!function(e,n){var t=n.find("code"),a=e.split("\n"),i=(a=a.filter(function(e){return e.trim().length}))[0].match(/^\s*/)[0],s=new RegExp("^"+i);a=a.map(function(e){return e.replace(s,"").replace(/\s+$/,"")});var o=hljs.highlight(r.language||r.lang,a.join("\n"),!0);o.value=o.value.replace(/=""<\/span>/gi,"").replace("","").replace("",""),t.append(o.value).addClass("highlight")}(e,n)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";function e(a,i,s,o){var r=this;function n(){var a=r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators),i=r.selectedField.options&&!_.isEmpty(r.selectedField.options.excludedOperators);r.availableOperators=_.filter(r.operators,function(n){var e=!n.applyTo||_.includes(n.applyTo,r.selectedField.type);n.isExtra=a&&_.some(r.selectedField.options.extraOperators,function(e){return e===n.type});var t=_.includes(n.excludeFrom,r.selectedField.type)||i&&_.includes(r.selectedField.options.excludedOperators,n.type);if((e||n.isExtra)&&!t)return n})}function t(){!r.value||_.isArray(r.value)&&_.isEmpty(r.value)?r.isValidCondition=!1:r.selectedOperator&&"$between"===r.selectedOperator.type?r.isValidCondition=!(!r.endRangeValue||!r.isValidRange):r.isValidCondition=!0}function e(){"number"===r.selectedField.type?_.isNumber(r.endRangeValue)?r.isValidRange=Number(r.endRangeValue)>Number(r.value):r.isValidRange=!0:"date"===r.selectedField.type&&(r.maxDateRange=moment(r.endRangeValue).subtract(1,"day"),r.isValidRange=!0),t()}function l(){var e=c();r.options.conditions.push(e),u()}function d(){var e=c(),n=_.findIndex(r.options.conditions,"style");r.options.conditions.splice(n,1,e),u(),r.pendingCondition.style=null,r.pendingCondition=void 0}function c(){return{name:r.selectedField.name,operator:a.instant("DASHBOARDS."+r.selectedOperator.translate),value:r.value,endValue:r.endRangeValue,displayValue:m(r.value),displayEndValue:m(r.endRangeValue),query:{column:r.selectedField.column,operator:r.selectedOperator.type,value:function(){var e,n=r.value,t=r.endRangeValue;switch(r.selectedField.type){case"date":var a=moment(n).utcOffset(0,!0).format("YYYY-MM-DD");if("$between"===r.selectedOperator.type){var i=moment(t).utcOffset(0,!0).format("YYYY-MM-DD");e=[a,i]}else e=a;break;case"number":e="$between"===r.selectedOperator.type?[n,t]:n;break;case"multiselect":var s=r.selectedField.options.field||"id";e=_.map(n,s);break;case"select":e=n.id;break;case"autocomplete":e=r.selectedOperator.isExtra?n:n.id;break;default:e=n}return e}()},disabled:!1}}function m(e){var n;if(e){switch(r.selectedField.type){case"date":n=moment(e).format("YYYY-MM-DD");break;case"multiselect":var t=_.map(e,function(e){return e.name});n="$eq"===r.selectedOperator.type?t.join(" or "):t.join(" and ");break;case"select":n=e.name;break;case"autocomplete":n=r.selectedOperator.isExtra?e:e.displayValue;break;default:n=e}return n}}function u(){r.value=null,r.endRangeValue=null,r.minDateRange=null,r.maxDateRange=null,r.isValidCondition=!1}r.operators=r.availableOperators=[{type:"$eq",symbol:"=",translate:"EQUALS",excludeFrom:["multiselect"]},{type:"$ne",symbol:"≠",translate:"IS_NOT_EQUAL",excludeFrom:["multiselect"]},{type:"$in",symbol:"∈",translate:"IS_AMONG",applyTo:["multiselect"]},{type:"$notIn",symbol:"∉",translate:"IS_NOT_AMONG",applyTo:["multiselect"]},{type:"$substring",symbol:"⊃",translate:"CONTAINS",applyTo:["text"]},{type:"$startsWith",symbol:"a..",translate:"STARTS_WITH",applyTo:["text"]},{type:"$endsWith",symbol:"..a",translate:"ENDS_WITH",applyTo:["text"]},{type:"$lt",symbol:"<",translate:"IS_LESS_THAN",applyTo:["date","number"]},{type:"$gt",symbol:">",translate:"IS_GREATER_THAN",applyTo:["date","number"]},{type:"$lte",symbol:"≤",translate:"IS_LESS_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$gte",symbol:"≥",translate:"IS_GREATER_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$between",symbol:"≬",translate:"IS_BETWEEN",applyTo:["date","number"]}],r.addCondition=l,r.editCondition=function(e){r.pendingCondition=e,r.pendingCondition.style="md-amber-200-bg",r.selectedField=_.find(r.options.fields,["name",r.pendingCondition.name]),n(),r.selectedOperator=_.find(r.availableOperators,["type",r.pendingCondition.query.operator]),"date"===r.selectedField.type&&"string"==typeof r.pendingCondition.value?(r.value=new Date(r.pendingCondition.value),r.minDateRange=moment(r.value).add(1,"day"),r.endRangeValue=r.pendingCondition.endValue?new Date(r.pendingCondition.endValue):void 0):(r.value=r.pendingCondition.value,r.endRangeValue=r.pendingCondition.endValue);r.isValidRange=!0,r.isValidCondition=!0},r.updateCondition=d,r.cancelUpdateCondition=function(){r.pendingCondition.style=null,r.pendingCondition=void 0},r.setConditionStatus=function(e){e.style=e.disabled?void 0:"chip-disabled",e.disabled=!e.disabled},r.removeCondition=function(){_.isEmpty(r.options.conditions)&&r.clearFilter()},r.getValues=function(){var n=angular.copy(r.selectedField.options.route);if("autocomplete"===r.selectedField.type)for(var e=0;e',compile:function(e){return e.addClass("ms-card"),function(e,n){e.cardTemplateLoaded=function(){e.$emit("msCard::cardTemplateLoaded",n)}}}}})}(),function(){"use strict";angular.module("app.core").directive("msChipColor",function(){return{restrict:"A",link:function(e,i,n){n.$observe("msChipColor",function(e){var n=i.parent().parent();if(n.hasClass("md-background-bg md-hue-3")||n.addClass("md-background-bg md-hue-3"),_.isEmpty(e)){var t=n[0].className.split(" "),a=t.indexOf("md-hue-3");t.length=a+1,n[0].className=t.join(" ")}else n.addClass(e)})}}})}(),function(){"use strict";angular.module("app.core").directive("msClickToCall",function(){return{restrict:"E",scope:{type:"=",disabled:"=",target:"=",prefix:"=",license:"="},controller:["$scope","$rootScope","$http","$translate","$document","$mdDialog","Auth","toasty","api",function(t,n,a,i,s,o,e,r,l){function d(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/originate/"+c(e));case 2:return n.$broadcast("webrtc::call",{target:c(e)})}}function c(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function m(e){return a.get(e).success(function(){r.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){r.error({title:"PhoneBar API Error",msg:i.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}t.currentUser=e.getCurrentUser(),t.showMenu=function(){return t.target&&t.target.indexOf("@")<0&&t.target!=t.currentUser.internal&&t.target!=t.currentUser.name&&(0==t.currentUser.showWebBar&&t.currentUser.phoneBarRemoteControl||2==t.currentUser.showWebBar&&t.license.webrtc)&&!t.disabled},t.call=function(e){return 2!==t.currentUser.showWebBar?(n=e,l.user.getVoicePrefixes({id:t.currentUser.id}).$promise.then(function(e){if(e.count)return o.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!0,locals:{prefixes:e,required:t.currentUser.phoneBarPrefixRequired}})}).then(function(e){t.currentUser.phoneBarPrefixRequired?e&&-1!==e&&d(e+n):e&&-1!==e?d(e+n):e||d(n)})):d(e);var n},t.transfer=function(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+c(e));case 2:n.$broadcast("webrtc::transfer",{target:c(e)})}}}],templateUrl:"app/core/directives/ms-click-to-call/ms-click-to-call.html"}})}(),function(){"use strict";function e(i){return{require:"ngModel",priority:1,link:function(e,n,t,a){a.$formatters.push(i.formatter),a.$parsers.push(i.parser)}}}e.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",function(){var n={formatter:function(e){return e?""===e?e:new Date(e):""},parser:function(e){return e?moment(e).add(moment(e).utcOffset(),"m").toDate():""}};this.config=function(e){n=angular.extend({},n,e)},this.$get=function(){return n}}).directive("msDatepickerFix",e)}(),function(){"use strict";function e(s){return{restrict:"E",scope:{id:"=",model:"=",element:"=",title:"=",path:"="},replace:!0,link:function(n,e){var t=!1,a={};a.id=n.id,_.isNil(n.path)||(a.path=n.path);var i=document.createElement(n.element);i.setAttribute("preload","none"),i.setAttribute("controls","true"),"audio"===n.element&&i.setAttribute("style","width: 265px;"),"video"===n.element&&i.setAttribute("style","max-width: 500px;"),i.setAttribute("title",n.title),i.setAttribute("src"," "),i.onplay=function(e){t||(t=!0,e.preventDefault(),s[n.model].download(a).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});i.setAttribute("type",e.type),i.setAttribute("src",URL.createObjectURL(t)),i.play()}).catch(function(e){console.error(e)}))},e.append(i)}}}e.$inject=["api"],angular.module("app.core").directive("msDialogRecording",e)}(),function(){"use strict";angular.module("app.core").directive("msDualMultiselect",function(){return{restrict:"E",scope:{options:"="},controller:["$scope",function(o){o.canTransfer=function(e,n,t){if(!n.readOnly)return void 0!==e.isValid&&e.isValid?t?o.transfer(n.selectedItems,n.items,n.selectedItems.indexOf(e),t):o.transfer(n.items,n.selectedItems,n.items.indexOf(e),t):void 0},o.transfer=function(e,n,t,a){var i=[];if(0<=t)i.push(e[t]),n.push(e[t]),e.splice(t,1);else{for(var s=0;s',link:function(t,e){var n=e.emojioneArea({pickerPosition:t.pickerPosition,search:t.search,recentEmojis:t.recentEmojis,placeholder:a.instant(t.placeholder||"Type a message"),attributes:{spellcheck:!0},events:{keypress:function(e,n){t.ngModel=this.getText(),t.onReply({event:n,body:this.getText()})},emojibtn_click:function(){t.ngModel=this.getText()}}});t.ngModel&&n[0].emojioneArea.setText(t.ngModel),t.internalControl=t.ctrlMethods||{},t.internalControl.setText=function(e){n[0].emojioneArea.setText(e)},t.internalControl.getText=function(){return n[0].emojioneArea.getText()},t.$watch("ngModel",function(e){e||n[0].emojioneArea.setText("")})}}}e.$inject=["$translate"],angular.module("app.core").directive("msEmojiArea",e)}(),function(){"use strict";angular.module("app.core").directive("msFontFamily",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.fonts=[{option:"Arial",value:"Arial,Helvetica,sans-serif"},{option:"Century Gothic",value:"Century Gothic,Futura,Didact Gothic,san-serif"},{option:"Calibri",value:"Calibri, Verdana, Geneva, sans-serif"},{option:"Comic Sans MS",value:"Comic Sans MS,cursive"},{option:"Courier New",value:"Courier New,Courier,monospace"},{option:"Georgia",value:"Georgia,serif"},{option:"Lucida Sans Unicode",value:"Lucida Sans Unicode,Lucida Grande,sans-serif"},{option:"Tahoma",value:"Tahoma,Geneva,sans-serif"},{option:"Times New Roman",value:"Times New Roman,Times,serif"},{option:"Trebuchet MS",value:"Trebuchet MS,Helvetica,sans-serif"},{option:"Verdana",value:"Verdana,Geneva,sans-serif"}]}],templateUrl:"app/core/directives/ms-font-family/ms-font-family.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsFormWizardController",function(){var n=this;function e(){return n.forms.length}function t(){return 0===n.selectedIndex}function a(){return n.selectedIndex===e()-1}n.forms=[],n.selectedIndex=0,n.registerForm=function(e){n.forms.push(e)},n.previousStep=function(){if(t())return;n.selectedIndex--},n.nextStep=function(){if(a())return;n.selectedIndex++},n.firstStep=function(){n.selectedIndex=0},n.lastStep=function(){n.selectedIndex=e()-1},n.totalSteps=e,n.isFirstStep=t,n.isLastStep=a,n.currentStepInvalid=function(){return angular.isDefined(n.forms[n.selectedIndex])&&n.forms[n.selectedIndex].$invalid},n.previousStepInvalid=function(){return 0d.options.responsive.md?d.options.responsive.md:d.columnCount:l("sm")?d.columnCount=d.columnCount>d.options.responsive.sm?d.options.responsive.sm:d.columnCount:d.columnCount=d.options.responsive.xs;d.columnWidth=d.containerPos.width/d.columnCount}(),r.$broadcast("msMasonry:relayoutStarted"),d.items=d.container.find("ms-masonry-item");for(var e=Array.apply(null,new Array(d.columnCount)).map(function(){return 0}),n=0;n'),r=angular.element('
'),l=n.parent();function d(){s.addClass("ms-nav-folded"),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function c(e){angular.isDefined(e)&&e.preventDefault(),s.addClass("ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),l.find(o).remove(),l.parent().append(r),r.on("mouseenter touchstart",function(e){m(e),i=!1})}function m(e){angular.isDefined(e)&&e.preventDefault(),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),s.removeClass("ms-nav-folded-open"),l.parent().find(r).remove(),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function u(){s.removeClass("ms-nav-folded ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),n.off("mouseenter mouseleave")}v.setFoldable(e,n,a),a?d():u(),e.toggleFold=function(){(a=!a)?d():u()},e.openFolded=c,e.closeFolded=m,e.isNavFoldedOpen=function(){return i},e.$on("$destroy",function(){o.off("mouseenter touchstart"),r.off("mouseenter touchstart"),n.off("mouseenter mouseleave")})}}}function n(t,a,i){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(e){return e.addClass("ms-nav"),function(e){t.$broadcast("msNav::expandMatchingToggles");var n=t.$on("$stateChangeSuccess",function(){t.$broadcast("msNav::expandMatchingToggles"),a.when("navigation").then(function(e){e.close(),i.isNavFoldedOpen()&&i.closeFolded()})});e.$on("$destroy",function(){n()})}}}}function t(m,u,p,g){return{restrict:"A",require:"^msNav",scope:!0,compile:function(e,n){return e.addClass("ms-nav-toggle"),angular.isUndefined(n.collapsed)&&(n.collapsed=!0),e.attr("collapsed",n.collapsed),function(a,i,e,t){var s={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},n=i.find("a"),o=[],r=/\(.*\)/g;function l(){return"true"===i.attr("collapsed")}function d(){var e=u.defer();if(!l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!1);var n=angular.element(i.find("ms-nav-toggle-items")[0]);n.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var t=n[0].offsetHeight;return n.css({position:"",visibility:"",display:"",height:""}),a.$evalAsync(function(){p.animate(n,{display:"block",height:"0px"},{height:t+"px"},s.expandAnimation).then(function(){n.addClass(s.expanded),n.css({height:""}),e.resolve({success:!0})})}),e.promise}function c(){var e=u.defer();if(l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!0);var n=angular.element(i.find("ms-nav-toggle-items")[0]),t=n[0].offsetHeight;return a.$evalAsync(function(){p.animate(n,{height:t+"px"},{height:"0px"},s.collapseAnimation).then(function(){n.removeClass(s.expanded),n.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}angular.forEach(n,function(e){var n=angular.element(e).attr("ui-sref");angular.isUndefined(n)||(n=n.replace(r,""),o.push(n))}),t.setToggleItem(i,a),i.children(".ms-nav-button").on("click",function(){if(t.isDisabled())return;t.disable(),l()?(t.clearLockedItems(),a.$emit("msNav::pushToLockedList"),m.$broadcast("msNav::collapse"),d().then(function(){t.enable()})):a.$broadcast("msNav::forceCollapse")}),a.$on("$destroy",function(){i.children(".ms-nav-button").off("click")}),a.$on("msNav::collapse",function(){var e=t.getLockedItems(),n=!1;angular.forEach(e,function(e){angular.equals(e.scope,a)&&(n=!0)}),n||c().then(function(){t.enable()})}),a.$on("msNav::forceCollapse",function(){c().then(function(){t.enable()})}),a.$on("msNav::expandMatchingToggles",function(){var n=g.current.name,t=!1;angular.forEach(o,function(e){n===e&&(t=!0)}),t?d():c()}),a.$on("msNav::pushToLockedList",function(){t.setLockedItem(i,a)})}}}}e.$inject=["$document","$rootScope","msNavFoldService"],n.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],t.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",function(){var t={};return{setFoldable:function(e,n){t={scope:e,element:n}},isNavFoldedOpen:function(){return t.scope.isNavFoldedOpen()},toggleFold:function(){t.scope.toggleFold()},openFolded:function(){t.scope.openFolded()},closeFolded:function(){t.scope.closeFolded()}}}).directive("msNavIsFolded",e).controller("MsNavController",function(){var e=this,n=!1,t=[],a=[];e.isDisabled=function(){return n},e.enable=function(){n=!1},e.disable=function(){n=!0},e.setToggleItem=function(e,n){t.push({element:e,scope:n})},e.getLockedItems=function(){return a},e.setLockedItem=function(e,n){a.push({element:e,scope:n})},e.clearLockedItems=function(){a=[]}}).directive("msNav",n).directive("msNavTitle",function(){return{restrict:"A",compile:function(e){return e.addClass("ms-nav-title"),function(){}}}}).directive("msNavButton",function(){return{restrict:"AE",compile:function(e){return e.addClass("ms-nav-button"),function(){}}}}).directive("msNavToggle",t)}(),function(){"use strict";function e(e,n){e.root?this.navigation=n.getNavigation(e.root):this.navigation=n.getNavigation(),this.toggleHorizontalMobileMenu=function(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")},n.sort()}function n(c,m,u,p){return{restrict:"E",scope:{folded:"=",root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/vertical.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation"),function(e,n){var t=angular.element("body"),a=angular.element('
'),i=angular.element('
'),s=u("navigation");function o(e){if(p.setFolded(e),e)c.$broadcast("msNavigation::collapse"),t.addClass("ms-navigation-folded"),r();else{var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.removeClass("ms-navigation-folded ms-navigation-folded-open"),i.remove()}}function r(){n.parent().append(a),m(function(){a.on("mouseenter touchstart",l)})}function l(e){e&&e.preventDefault(),p.setFoldedOpen(!0);var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.addClass("ms-navigation-folded-open"),a.remove(),t.find("#main").append(i),i.on("mouseenter touchstart",d)}function d(e){e&&e.preventDefault(),p.setFoldedOpen(!1),c.$broadcast("msNavigation::collapse"),t.removeClass("ms-navigation-folded-open"),i.remove(),r()}p.setNavigationScope(e),function(){null===p.getFolded()&&p.setFolded(e.folded);p.getFolded()&&(m(function(){c.$broadcast("msNavigation::collapse")}),t.addClass("ms-navigation-folded"),r())}(),e.$watch(function(){return s.isLockedOpen()},function(e,n){if(!angular.isUndefined(e)&&!angular.equals(e,n)&&p.getFolded())if(e)c.$broadcast("msNavigation::collapse");else{var t=p.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched")}}),e.$watch("folded",function(e,n){angular.isUndefined(e)||angular.equals(e,n)||o(e)}),e.toggleFolded=function(){o(!p.getFolded())},e.$on("$stateChangeStart",function(){s.close()}),e.$on("$destroy",function(){i.off("mouseenter touchstart"),a.off("mouseenter touchstart")})}}}}function t(t,e,a,i,n,s){var o=this;o.element=e,o.node=t.node,o.hasChildren=void 0,o.collapsed=void 0,o.collapsable=void 0,o.group=void 0,o.animateHeightClass="animate-height",o.toggleCollapsed=function(){o.collapsed?o.expand():o.collapse()},o.collapse=function(){var e=o.element.children("ul"),n=e[0].offsetHeight;t.$evalAsync(function(){o.collapsed=!0,o.element.addClass("collapsing"),i.animate(e,{display:"block",height:n+"px"},{height:"0px"},o.animateHeightClass).then(function(){e.css({display:"",height:""}),o.element.removeClass("collapsing")}),t.$broadcast("msNavigation::collapse")})},o.expand=function(){var e=o.element.children("ul");e.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var n=e[0].offsetHeight;e.css({position:"",visibility:"",display:"",height:""}),t.$evalAsync(function(){o.collapsed=!1,o.element.addClass("expanding"),i.animate(e,{display:"block",height:"0px"},{height:n+"px"},o.animateHeightClass).then(function(){e.css({height:""}),o.element.removeClass("expanding")}),a.$broadcast("msNavigation::collapse",o.node._path)})},o.getClass=function(){return o.node.class},o.isHidden=function(){if(angular.isDefined(o.node.hidden)&&angular.isFunction(o.node.hidden))return o.node.hidden();return!1},function(){o.hasChildren=0 target, inbound, fullname",e,n,t),b.calls.unshift({target:e,fullname:t||e,inbound:n,time:moment().format("HH:mm")}),50 session",e),b.conf.microphoneId?b.sessionConf.mediaConstraints.audio={deviceId:b.conf.microphoneId}:b.sessionConf.mediaConstraints.audio=!0,e.answer(b.sessionConf),b.isJabraEnabled&&(jabra.offHook(),b.jabraSession=e)}function S(e,n){console.debug("terminate -> session",e);var t={};if(n?t.status_code=n:e.isEstablished()||(t.status_code=603),e.terminate(t),b.isJabraEnabled)if(0===b.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),b.jabraSession=null;else{var a=_.last(b.sessions);a.localHold?(jabra.onHook(),jabra.hold(),b.jabraSession=a):jabra.offHook()}}function T(t){return console.debug("getVoiceChannels -> session",t),o.rpc.getVoiceChannels().$promise.then(function(e){var n=_.find(e.rows,function(e){return e.sipcalllinkedid===t.call_id?e:e.sipcalluniqueid===t.call_id?e:null});n&&(t.monitor=n.monitor,t.uniqueid=n.uniqueid,t.monitors=n.monitors)})}function I(e){console.debug("onAddstream -> data",e),this.remotePlayer.srcObject=e.stream,this.remotePlayer.play()}function C(){b.canGoInConference=!1,b.isInConference=!1,b.currentconferenceSessions=[]}function O(e,n){switch(e){case"ringing":b.soundPlayer.muted=b.conf.ringingMute,b.conf.ringingId&&b.soundPlayer.setSinkId(b.conf.ringingId).then(function(){b.soundPlayer.volume=b.conf.ringingVolume}).then(function(){n&&A()}).catch(function(e){console.info(e.message,b.conf.ringingId)});break;case"speaker":b.remotePlayer.muted=b.conf.speakerMute,b.conf.speakerId&&b.remotePlayer.setSinkId(b.conf.speakerId).then(function(){b.remotePlayer.volume=b.conf.speakerVolume}).then(function(){n&&A()}).catch(function(e){console.info(e.message,b.conf.speakerId)});break;case"microphone":for(var t=0;t session, textContent, position, delay",e,n,t,a),function(){i.show(i.simple().textContent(n).position(t).hideDelay(a)),S(e)}}function N(n){return console.debug("findSessionBySessionId -> sessionId, vm_pb.sessions",n,b.sessions),_.find(b.sessions,function(e){return e.call_id==n})}function D(e,n){return console.debug("callCallback -> url, params",e,n),s({url:e,method:"GET",params:n})}e(function(){},999),b.direction="right",b.selectedMode="md-scale",b.target="",b.showDialpad=!1,b.soundPlayer=document.createElement("audio"),b.remotePlayer=document.getElementById(b.conf.remotePlayerId),b.soundPlayer.volume=1,b.sessionConf={mediaConstraints:{audio:!0,video:!1},pcConfig:{iceServers:[]}},b.sessions=[],b.calls=[],b.callbackQueue=[],b.canGoInConference=!1,b.isInConference=!1,b.currentConferenceSessions=[],b.ua=new JsSIP.UA({sockets:[new JsSIP.WebSocketInterface("wss://"+b.conf.host+":8089/ws")],uri:new JsSIP.URI("sip",b.conf.name,b.conf.host,5060,null,null).toString(),authorization_user:b.conf.name,ha1:b.conf.ha1,realm:b.conf.realm,user_agent:b.conf.ua,session_timers_refresh_method:"invite",register_expires:b.conf.phoneBarExpires||60,register:!0}),b.conf=_.merge(d.webrtc,b.conf),b.initDeviceInProgress=!1,b.isJabraEnabled=!1,b.isJabraInitialized=!1,b.jabraSession=null,b.jabraClicked=!1,b.buttonClicked=!1,b.originateInProgress=!1,t.bind("keyup",function(e){switch(e.keyCode){case 27:p(function(){b.showDialpad=!1})}}),b.$onInit=function(){c(!1),navigator.mediaDevices.ondevicechange=function(e){b.initDeviceInProgress||(b.initDeviceInProgress=!0,jabra&&b.isJabraInitialized?jabra.shutdown().then(function(){b.isJabraInitialized=!1,c(!(b.isJabraEnabled=!1))}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):c(!0))};var e=[o.network.get({type:"turn",nolimit:!0}).$promise,o.network.get({type:"stun",nolimit:!0}).$promise];Promise.all(e).then(function(e){var n=e[0].rows,t=e[1].rows,a=[],i=[];t.forEach(function(e){i.push("stun:"+e.value)}),a.push({urls:i}),n.forEach(function(e){var n={urls:"turn:"+e.value};e.username&&(n.username=e.username),e.password&&(n.credential=e.password),a.push(n)}),b.sessionConf.pcConfig={iceServers:a}}),this.ua.on("registered",function(){this.registered=!0}.bind(this)),this.ua.on("unregistered",function(){this.registered=!1}.bind(this)),this.ua.on("newRTCSession",function(e){console.debug("onNewRTCSession -> data",e);var n,t,a,i,s,o=e.session,r=!0,l="",d=0;switch(e.originator){case"local":o.outgoing=!0,o.name=e.request.ruri.user,o.user=e.request.ruri.user,E(o.user,!1),t=e.request.extraHeaders,a="X-callback-url",s=_.find(t,function(e){return _.startsWith(e,a)}),n=!!s&&_.trim(s.replace(a,"").replace(i||":","")),b.isJabraEnabled&&(b.jabraSession&&jabra.resume(),b.jabraSession=o,jabra.offHook());break;case"remote":var c=f.getCurrentUser();if(c.voicePause&&c.phoneBarDnd||b.originateInProgress)r=!1;else if(o.incoming=!0,o.name=e.request.from.display_name,o.user=e.request.from.uri.user,l=e.request.getHeader("X-Answer-Mode")||"",d=e.request.getHeader("X-Answer-After")||0,function(n){console.debug("getNotification -> session",n);var e=n.name?n.name+" <"+n.user+">":n.user;h.create("Incoming call from: ",e,null,function(){y(n)},function(){S(n)}).then(function(e){n.notification=e}).catch(function(e){console.error("Error creating notification for incoming call",e)})}(e.session),E(e.session.user,!0),b.isJabraEnabled&&jabra.ring(),b.conf.autoAnswer&&p(function(){o.isInProgress()&&(o.autoAnswer=!0,y(o))},b.conf.autoAnswerDelay?1e3*b.conf.autoAnswerDelay:0),console.debug("xAnswerMode",l),console.debug("xAnswerAfterSec",d),"auto"==l.toLowerCase()){var m=0==d?500:1e3*d;console.debug("auto answer enabled after:"+m+" ms"),p(function(){o.isInProgress()&&(o.autoAnswer=!0,y(o))},m)}}r?(o.call_id=e.request.call_id,n&&D(b.callbackQueue[o.call_id]=n,{call_id:o.call_id}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}),o.connection&&(o.connection.onaddstream=I.bind(this)),o.iceCandidateTimeout=null,o.on("progress",function(e,n){console.debug("onProgress -> session, data",e,n);var t=!1;switch(n.originator){case"local":this.conf.ringingMute||(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/incoming-call.ogg"),t=!0);break;case"remote":this.putOtherCallsOnHold(e),this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/outgoing-call.ogg"),t=!0}b.originateInProgress&&(b.originateInProgress=!1),t&&(this.soundPlayer.loop="loop",this.soundPlayer.play().catch(function(e){console.log(e.message)})),T(e).then(function(){var n=b.callbackQueue[e.call_id];n&&D(n,{uniqueid:e.uniqueid,call_id:e.call_id,number_called:e.user}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}).finally(function(){delete b.callbackQueue[e.call_id]})}).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("confirmed",function(e,n){console.debug("onConfirmed -> session, data",e,n);var t=document.getElementById("div_session_"+e.id.substr(0,32));t&&$(t).scope().$broadcast("timer-start"),e.confirmed=!0,"remote"===n.originator&&e.connection&&(e.connection.onaddstream=I.bind(this),_.head(e.connection.getRemoteStreams())&&(this.remotePlayer.srcObject=_.head(e.connection.getRemoteStreams()),this.remotePlayer.play())),this.soundPlayer.pause(),this.soundPlayer.loop=null,this.putOtherCallsOnHold(e),e.autoAnswer&&(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/beep.ogg"),this.soundPlayer.play().catch(function(e){console.log("Unable to play autoAnswer notification",e)})),b.canGoInConference=2==b.sessions.length,T(e).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("hold",function(e,n){console.debug("onHold -> session, data",e,n),"local"===n.originator&&(e.localHold=!0)}.bind(this,o)),o.on("unhold",function(e,n){console.debug("onUnhold -> session, data",e,n),"local"===n.originator&&(e.localHold=!1)}.bind(this,o)),o.on("ended",function(e,n){if(console.debug("onEnded -> session, data",e,n),b.isInConference&&_.includes(b.currentConferenceSessions,e.id)&&(C(),b.buttonClicked=!0),_.remove(this.sessions,{id:e.id}),2!==b.sessions.length&&(b.canGoInConference=!1),b.isJabraEnabled)if(0===b.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),b.jabraSession=null;else{var t=_.last(b.sessions);t.localHold?(jabra.onHook(),jabra.hold(),b.jabraSession=t):jabra.offHook()}}.bind(this,o)),o.on("failed",function(e,n){if(console.debug("onFailed -> session, data",e,n),this.soundPlayer.pause(),this.soundPlayer.loop=null,e.notification&&e.notification.close(),b.isInConference&&_.includes(b.currentConferenceSessions,e.id)&&C(),b.originateInProgress&&(b.originateInProgress=!1),_.remove(this.sessions,{id:e.id}),2!==b.sessions.length&&(b.canGoInConference=!1),b.isJabraEnabled)if(0===b.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),b.jabraSession=null;else{var t=_.last(b.sessions);t.localHold?(jabra.onHook(),jabra.hold(),b.jabraSession=t):jabra.offHook()}}.bind(this,o)),o.on("icecandidate",function(e,n){console.debug("onIcecandidate -> session, data",e,n),null!==e.iceCandidateTimeout&&clearTimeout(e.iceCandidateTimeout),e.iceCandidateTimeout=setTimeout(n.ready,1e3)}.bind(this,o)),b.sessions.push(o),p(function(){u.$apply(),console.debug("onNewRTCSession -> vm_pb.sessions",b.sessions)})):S(o,486)}.bind(this)),r.on("webbar:originate",function(e){console.debug("originateHook -> payload",e);var n=e.callNumber,t=e.callerId,a=e.callbackUrl;b.conf.microphoneId?b.sessionConf.mediaConstraints.audio={deviceId:b.conf.microphoneId}:b.sessionConf.mediaConstraints.audio=!0;var i=n.replace(/ /g,"");if(i=(i=i.replace(/\(/g,"")).replace(/\)/g,"")){var s=angular.copy(b.sessionConf);s.extraHeaders=[],t&&s.extraHeaders.push("X-CID: "+t),a&&s.extraHeaders.push("X-callback-url: "+a),b.originateInProgress=!0,b.ua.call(i,s)}}.bind(this)),r.on("webbar:hangup",function(e){console.debug("hangupHook -> payload",e);var n=b.sessions;if(e.sessionId&&((n=[]).push(N(e.sessionId)),0==n.length))console.warn("call with session Id "+sessionId+" not found");else for(var t=0;t sessionToHangup",a),b.terminate(a)}}.bind(this)),r.on("webbar:answer",function(e){console.debug("answerHook -> payload",e);var n=_.find(b.sessions,function(e){return e.incoming&&!e.confirmed});if(e.sessionId){var t=N(e.sessionId);if(!t)return void console.warn("call with session Id "+sessionId+" not found");n=[t]}for(var a=0;a payload",e);var n=b.sessions;if(e.sessionId&&((n=[]).push(N(e.sessionId)),0==n.length))console.warn("call with session Id "+sessionId+" not found");else for(var t=0;t payload",e),e.sessionId){var n=N(e.sessionId);n?b.unhold(n):console.warn("call with session Id "+sessionId+" not found")}else console.error("sessionId required")}.bind(this)),r.on("webbar:transfer",function(e){if(console.debug("transferHook -> payload",e),e.sessionId)if(e.transferNumber){var n=N(e.sessionId);n?n.refer(e.transferNumber,{eventHandlers:{requestSucceeded:x(n,"requestSucceeded","top right",3e3),requestFailed:x(n,"requestFailed","top right",3e3)}}):console.warn("call with session Id "+sessionId+" not found")}else console.error("transferNumber required");else console.error("sessionId required")}.bind(this))}.bind(this),b.type=function(e,n){var t=e;switch(b.target||(b.target=""),n&&(b.target+=e,u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",b.target)),e){case"*":t="asterisk";break;case"#":t="pound"}b.conf.enableDtmfTone&&(b.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/dialpad/"+t+".ogg"),b.soundPlayer.play().catch(function(e){console.log(e.message)}));for(var a=0;a session",e),e.hold({useUpdate:!1}),b.isJabraEnabled&&(jabra.hold(),jabra.onHook())},b.refer=function(n){console.debug("refer -> session",n);var e=a.prompt().title("Transfer").textContent("Type the target").placeholder("Target").ariaLabel("Target").ok("Transfer").cancel("Cancel");a.show(e).then(function(e){return w(e)}).then(function(e){n.refer(e,{eventHandlers:{requestSucceeded:x(n,"requestSucceeded","top right",3e3),requestFailed:x(n,"requestFailed","top right",3e3)}})})},b.record=function(e){console.debug("record -> session",e),a.show({controller:"RecordDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/record/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:b.sessions}})},b.unhold=function(e){console.debug("unhold -> session",e),e.unhold({useUpdate:!1}),b.putOtherCallsOnHold(e),b.isJabraEnabled&&(jabra.offHook(),jabra.resume())},b.answer=y,b.terminate=S,b.selectSession=function(e){console.debug("selectSession -> session",e),b.unhold(e)},b.typeWrapper=function(e){switch(e.key.toLowerCase()){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"*":case"#":b.type(e.key);break;case"enter":b.call()}},b.toggleDialpad=function(){b.showDialpad=!b.showDialpad},b.referAttended=function(e){console.debug("referAttended -> session",e),a.show({controller:"ReferAttendedDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/referAttended/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:_.reject(b.sessions,{id:e.id}),isJabraEnabled:b.isJabraEnabled}})},b.closeDialpad=function(){b.showDialpad=!1},b.initDevice=O,b.putOtherCallsOnHold=function(e){if(console.debug("putOtherCallsOnHold -> session",e),1 evt, data",e,n),n.target&&(b.target=n.target,b.call())}),u.$on("webrtc::transfer",function(e,n){if(console.debug("onRemoteTransfer -> evt, data",e,n),n.target)for(var t=0;t session, textContent, position, delay",e,n,t,a),function(){s.show(s.simple().textContent(n).position(t).hideDelay(a)),e.terminate(),jabra&&i&&jabra.onHook(),l()}}function l(e){n.hide(e)}o.title="Refer Attended",o.sessions=a,o.session=i,o.isJabraEnabled=e,o.sessionTarget=null,a.length&&(o.target=a[0].user),o.closeDialog=l,o.transfer=function(){var e,n,t=_.find(a,function(e){if(e.user===o.target)return e});n=t.outgoing?(e=t,o.session):(e=o.session,t);n.refer(e.user,{replaces:e,eventHandlers:{requestSucceeded:r(i,"requestSucceeded","top right",3e3,o.isJabraEnabled),requestFailed:r(i,"requestFailed","top right",3e3,o.isJabraEnabled)}})}}e.$inject=["$mdDialog","$mdToast","sessions","session","isJabraEnabled"],angular.module("app.core").controller("ReferAttendedDialogController",e)}(),function(){"use strict";function e(e,s,n){var t=this;function a(e,n,t){var a;if(s[t]){if(a=_.find(e,function(e){return e.deviceId===s[t]}))return a.deviceId;var i=_.findIndex(e,function(e){return e.kind===n});if(0<=i)return e[i].deviceId}else(a=_.find(e,function(e){return e.kind===n}))&&(s[t]=a.deviceId);return s[t]||null}_.remove(n,function(e){return"audioinput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)||"audiooutput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)}),s.ringingId=a(n,"audiooutput","ringingId"),s.speakerId=a(n,"audiooutput","speakerId"),s.microphoneId=a(n,"audioinput","microphoneId"),s.ringingVolume=s.ringingVolume||.5,s.speakerVolume=s.speakerVolume||.5,s.microphoneVolume=s.microphoneVolume||1,s.ringingMute=s.ringingMute||!1,s.speakerMute=s.speakerMute||!1,s.microphoneMute=s.microphoneMute||!1,t.conf=angular.copy(s),t.devices=n,t.saveSettings=function(){e.hide(t.conf)},t.closeDialog=function(){e.hide()},t.isCompatibleBrowser=function(){return"chrome"===t.conf.browserName.toLowerCase()||"opera"===t.conf.browserName.toLowerCase()||"safari"===t.conf.browserName.toLowerCase()}}e.$inject=["$mdDialog","conf","devices"],angular.module("app.toolbar").controller("SettingsController",e)}(),function(){"use strict";function e(t,a){var i=this;function s(e){var n=e.key,t={param:i.query[n],resources:e.options,placeholder:e.placeholder,ngValue:e.ngValue};a.setPlaceholder(t).then(function(e){i.placeholders[n]=e})}i.pickerModels={},i.placeholders={},i.localizationMap=t.localizationMap,i.onMultiselectInit=function(e){s(e)},i.onDateRangeInit=function(e){var n=e.key;i.query[n]?i.pickerModels[n]=t.setSelectedDate(i.query[n]):i.pickerModels[n]={dateStart:null}},i.onMultiselectSelection=function(e){s(e),i.search()},i.onDateRangeSelection=function(e){var n=e.key;i.pickerModels[n].dateStart?i.query[n]={$gte:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),$lte:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]=void 0;i.search()},i.clearDate=function(e){var n=e.key;i.pickerModels[n]={dateStart:null},delete i.query[n],i.search()},i.clearSelection=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=!1===e.clearAll?[_.head(e.options)[t]]:[],s(e),i.search()},i.selectAll=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=_.map(e.options,t),s(e),i.search()}}function n(p,e){var g={localizationMap:e,setSelectedDate:function(e){var n=new Date(moment.utc(e.$gte).format("YYYY-MM-DD")),t=new Date(moment.utc(e.$lte).format("YYYY-MM-DD")),a={dateStart:new Date(n.getFullYear(),n.getMonth(),n.getDate()),dateEnd:new Date(t.getFullYear(),t.getMonth(),t.getDate())};return a.selectedTemplateName=(i=a,moment(i.dateStart).isSame(i.dateEnd)?(u=i,moment().startOf("day").isSame(u.dateStart)?g.localizationMap.Today:(m=i,moment().subtract(1,"days").startOf("day").isSame(m.dateStart)?g.localizationMap.Yesterday:p("date")(i.dateStart,"dd MMM yyyy"))):(c=i,moment().startOf("isoWeek").isSame(c.dateStart,"day")&&moment().endOf("isoWeek").isSame(c.dateEnd,"day")?g.localizationMap["This Week"]:(d=i,moment().subtract(1,"weeks").startOf("isoWeek").isSame(d.dateStart,"day")&&moment().subtract(1,"weeks").endOf("isoWeek").isSame(d.dateEnd,"day")?g.localizationMap["Last Week"]:(l=i,moment().startOf("month").isSame(l.dateStart,"day")&&moment().endOf("month").isSame(l.dateEnd,"day")?g.localizationMap["This Month"]:(r=i,moment().subtract(1,"months").startOf("month").isSame(r.dateStart,"day")&&moment().subtract(1,"months").endOf("month").isSame(r.dateEnd,"day")?g.localizationMap["Last Month"]:(o=i,moment().startOf("year").isSame(o.dateStart,"day")&&moment().endOf("year").isSame(o.dateEnd,"day")?g.localizationMap["This Year"]:(s=i,moment().subtract(1,"years").startOf("year").isSame(s.dateStart,"day")&&moment().subtract(1,"years").endOf("year").isSame(s.dateEnd,"day")?g.localizationMap["Last Year"]:p("date")(i.dateStart,"dd"+(i.dateStart.getMonth()!==i.dateEnd.getMonth()||i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" MMM":"")+(i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" yyyy":""))+" - "+p("date")(i.dateEnd,"dd MMM yyyy")))))))),a;var i,s,o,r,l,d,c,m,u}};return g}n.$inject=["$filter","dateFilterLocalizationFactory"],e.$inject=["dateRangeManager","quickFilterManager"],angular.module("app.core").directive("msQuickFilter",function(){return{restrict:"E",scope:{query:"=",filters:"=",search:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-quick-filter/ms-quick-filter.html"}}).factory("dateRangeManager",n)}(),function(){"use strict";angular.module("app.core").directive("msRandomClass",function(){return{restrict:"A",scope:{msRandomClass:"="},link:function(e,n){var t=e.msRandomClass[Math.floor(Math.random()*e.msRandomClass.length)];n.addClass(t)}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{id:"=",model:"=",download:"="},replace:!0,link:function(n,e){var t=!1,a=document.createElement("audio");n.download||a.setAttribute("controlsList","nodownload"),a.setAttribute("preload","none"),a.setAttribute("controls",""),a.setAttribute("style","width: 265px;"),a.setAttribute("src"," "),a.onplay=function(e){t||(t=!0,e.preventDefault(),i[n.model||"voiceRecording"].download({id:n.id}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});a.setAttribute("type",e.type),a.setAttribute("src",URL.createObjectURL(t)),a.play()}).catch(function(e){console.error(e)}))},e.append(a)}}}e.$inject=["api"],angular.module("app.core").directive("msRecording",e)}(),function(){"use strict";angular.module("app.core").directive("msResponsiveTable",function(){return{restrict:"A",link:function(e,n){var t=angular.element('
');n.after(t),t.append(n)}}})}(),function(){"use strict";function e(s,o,n,t){return{restrict:"AE",compile:function(e){if(!(t.getConfig("disableCustomScrollbars")||t.getConfig("disableCustomScrollbarsOnMobile")&&n.isMobile()))return e.addClass("ms-scroll"),function(e,n,t){var a={};function i(){PerfectScrollbar.update(n[0])}t.msScroll&&(a=e.$eval(t.msScroll)),a=angular.extend({},o.getConfig(),a),s(function(){PerfectScrollbar.initialize(n[0],a)},0),n.on("mouseenter",i),e.$watch(function(){return n.prop("scrollHeight")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$watch(function(){return n.prop("scrollWidth")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$on("$destroy",function(){n.off("mouseenter"),PerfectScrollbar.destroy(n[0])})}}}}e.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",function(){var n={wheelSpeed:1,wheelPropagation:!1,swipePropagation:!0,minScrollbarLength:null,maxScrollbarLength:null,useBothWheelAxes:!1,useKeyboard:!0,suppressScrollX:!1,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,stopPropagationOnClick:!0};this.config=function(e){n=angular.extend({},n,e)},this.$get=function(){var e={getConfig:function(){return n}};return e}}).directive("msScroll",e)}(),function(){"use strict";function e(s,i,e){var o=this;o.collapsed=!0,o.query=void 0,o.queryOptions={debounce:o.debounce||0};var n=!(!o.collapseOnBlur||"true"!=o.collapseOnBlur);o.resultsLoading=!1,o.results=null,o.selectedResultIndex=0,o.ignoreMouseEvents=!1,o.onInit=function(){s.$watch("vm.query",function(e,n){if(!angular.isUndefined(e)&&!angular.equals(e,n)){if(o.collapsed){if(!e)return;s.expand()}var t=s.$parent.$eval(o.onSearch,{query:e}),a=angular.isArray(t),i=t&&!!t.then;a&&o.populateResults(t),i&&(o.resultsLoading=!0,t.then(function(e){o.populateResults(e)},function(){o.populateResults([])}).finally(function(){o.resultsLoading=!1}))}})},o.populateResults=function(e){if(o.collapsed)return;var n=angular.isArray(e),t=null===e;if(!n&&!t)return;o.selectedResultIndex=0,o.results=e},o.expand=function(){o.collapsed=!1,s.expand(),o.onExpand&&angular.isFunction(o.onExpand)&&o.onExpand()},o.collapse=function(){o.query="",o.populateResults(null),o.collapsed=!0,s.collapse(),o.onCollapse&&angular.isFunction(o.onCollapse)&&o.onCollapse()},o.blurCollapse=function(){if(!n)return;o.collapse()},o.absorbEvent=function(e){e.preventDefault()},o.handleKeydown=function(e){var n=e.keyCode;-1<[27,38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:if(!o.results)return;o.handleResultClick(o.results[o.selectedResultIndex]);break;case 27:o.collapse();break;case 38:0<=o.selectedResultIndex-1&&(o.selectedResultIndex--,o.ensureSelectedResultIsVisible());break;case 40:if(!o.results)return;o.selectedResultIndex+1t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}}}function n(i){return{restrict:"E",scope:{},require:"msSearchBar",controller:"MsSearchBarController as vm",bindToController:{query:"=?",debounce:"=?",direction:"@",iconColor:"@",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(n,t){var a=i.find("body");n.collapse=function(){if(t.removeClass("expanded"),"down"===n.vm.direction){t.removeClass("down");var e=t.closest("md-toolbar");e&&e.removeClass("h-128")}a.removeClass("ms-search-bar-expanded")},n.expand=function(){if(t.addClass("expanded"),"down"===n.vm.direction){t.addClass("down");var e=t.closest("md-toolbar");e&&e.addClass("h-128")}a.addClass("ms-search-bar-expanded")}}}}}e.$inject=["$scope","$element","$timeout"],n.$inject=["$document"],angular.module("app.core").controller("MsSearchBarController",e).directive("msSearchBar",n)}(),function(){"use strict";function e(e,t,i,o,r,l){var d=this;d.query="",d.queryOptions={debounce:300},d.resultsLoading=!1,d.selectedResultIndex=0,d.ignoreMouseEvents=!1,d.mobileBarActive=!1,d.results=null,d.shortcuts=[],d.sortableOptions={ghostClass:"ghost",forceFallback:!0,fallbackClass:"dragging",onSort:function(){d.saveShortcuts()}},d.populateResults=function(){for(var e=[],n=l.getFlatNavigation(),t=r.defer(),a=0;a=d.shortcuts.length&&(d.selectedResultIndex=d.shortcuts.length-1)));d.saveShortcuts()},d.handleResultClick=function(e){e.hasShortcut?d.removeShortcut(e):d.addShortcut(e)},d.absorbEvent=function(e){e.preventDefault()},d.handleKeydown=function(e){var n=e.keyCode;-1<[38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:d.handleResultClick(d.results[d.selectedResultIndex]);break;case 38:0<=d.selectedResultIndex-1&&(d.selectedResultIndex--,d.ensureSelectedResultIsVisible());break;case 40:d.selectedResultIndex+1t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}},d.toggleMobileBar=function(){d.mobileBarActive=!d.mobileBarActive},d.loadShortcuts().then(function(e){d.shortcuts=e,0i.steps.length)}i.mainForm=void 0,i.orientation="horizontal",i.steps=[],i.currentStep=void 0,i.currentStepNumber=1,i.setOrientation=function(e){i.orientation=e||"horizontal"},i.registerMainForm=function(e){i.mainForm=e},i.registerStep=function(e,n,t){var a={element:e,scope:n,form:t,stepNumber:n.step||i.steps.length+1,stepTitle:n.stepTitle,stepTitleTranslate:n.stepTitleTranslate};return i.steps.push(a),i.steps.sort(function(e,n){return e.stepNumber-n.stepNumber}),a},i.setupSteps=function(){i.setCurrentStep(i.currentStepNumber)},i.resetForm=function(){e(function(){for(var e=0;ee.scrollWidth&&0==e.scrollLeft&&0==n.scrollLeft?"right":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft>=n.scrollWidth?"left":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeftt.position().top+i&&(m(function(){o=!0}),r.off("scroll",c))}}}}}e.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",function(){var n=this;n.scrollEl=void 0,n.setScrollEl=function(e){n.scrollEl=e},n.getScrollEl=function(){return n.scrollEl}}).directive("msTimeline",function(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,n,t,a){var i=angular.element('
');n.append(i);var s={scrollEl:"#content"};s=angular.extend(s,e.msTimeline,{});var o=angular.element(s.scrollEl);a.setScrollEl(o);var r=144;function l(){o.scrollTop()+o.height()+r>i.position().top&&(i.addClass("show"),c(),e.loadMore().then(function(){i.removeClass("show"),d()},function(){i.remove()}))}function d(){o.on("scroll",l)}function c(){o.off("scroll",l)}d(),e.$on("$destroy",function(){c()})}}}}).directive("msTimelineItem",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l){function d(){a.timeoutId&&clearTimeout(a.timeoutId)}function c(){void 0!==o.startTime&&(a.millis=moment().diff(moment(a.startTime))),a.maxTimeUnit&&"day"!==a.maxTimeUnit?"second"===a.maxTimeUnit?(a.seconds=Math.floor(a.millis/1e3),a.minutes=0,a.hours=0,a.days=0,a.months=0,a.years=0):"minute"===a.maxTimeUnit?(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4),a.hours=0,a.days=0,a.months=0,a.years=0):"hour"===a.maxTimeUnit?(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4%60),a.hours=Math.floor(a.millis/36e5),a.days=0,a.months=0,a.years=0):"month"===a.maxTimeUnit?(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4%60),a.hours=Math.floor(a.millis/36e5%24),a.days=Math.floor(a.millis/36e5/24%30),a.months=Math.floor(a.millis/36e5/24/30),a.years=0):"year"===a.maxTimeUnit&&(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4%60),a.hours=Math.floor(a.millis/36e5%24),a.days=Math.floor(a.millis/36e5/24%30),a.months=Math.floor(a.millis/36e5/24/30%12),a.years=Math.floor(a.millis/36e5/24/365)):(a.seconds=Math.floor(a.millis/1e3%60),a.minutes=Math.floor(a.millis/6e4%60),a.hours=Math.floor(a.millis/36e5%24),a.days=Math.floor(a.millis/36e5/24),a.months=0,a.years=0),a.secondsS=1===a.seconds||0===a.seconds?"":"s",a.minutesS=1===a.minutes||0===a.minutes?"":"s",a.hoursS=1===a.hours||0===a.hours?"":"s",a.daysS=1===a.days||0===a.days?"":"s",a.monthsS=1===a.months||0===a.months?"":"s",a.yearsS=1===a.years||0===a.years?"":"s",a.sseconds=a.seconds<10?"0"+a.seconds:a.seconds,a.mminutes=a.minutes<10?"0"+a.minutes:a.minutes,a.hhours=a.hours<10?"0"+a.hours:a.hours,a.ddays=a.days<10?"0"+a.days:a.days,a.mmonths=a.months<10?"0"+a.months:a.months,a.yyears=a.years<10?"0"+a.years:a.years}"function"!=typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),a.autoStart=o.autoStart||o.autostart,0===r.html().trim().length?r.append(l("{{millis}}")(a)):r.append(l(r.contents())(a)),a.interval=a.intervalAttr||1e3,a.startTime=null,a.endTime=null,a.timeoutId=null,a.countdown=a.countdownAttr&&0<=parseInt(a.countdownAttr,10)?parseInt(a.countdownAttr,10):void 0,a.isRunning=!1,a.$watch("startTimeAttr",function(e,n){e!==n&&a.isRunning&&a.start()}),a.$on("timer-start",function(){a.start()}),a.$on("timer-resume",function(){a.resume()}),a.$on("timer-stop",function(){a.stop()}),a.$on("timer-clear",function(){a.clear()}),a.$on("timer-set-countdown",function(e,n){a.countdown=n}),a.start=r[0].start=function(){var e=moment(),n=a.startTimeAttr?moment(a.startTimeAttr):null;a.startTime=!n||er.properties.length){var n=r.multiBarChart.series.length-r.properties.length;r.multiBarChart.series.splice(0,n),r.multiBarChart.data.splice(0,n)}for(var t=0;tr.filter.length){var a=r.multiBarChart.labels.length-r.filter.length;r.multiBarChart.labels.splice(0,a),r.multiBarChart.data[t].splice(0,a)}for(var i=0,s=0;io.properties.length){var n=o.pieChart.labels.length-o.properties.length;o.pieChart.labels.splice(0,n),o.pieChart.data.splice(0,n)}for(var t=0,a=0;t]+>/gm,"")}}).filter("nospace",function(){return function(e){return e?e.replace(/ /g,""):""}}).filter("humanizeDoc",function(){return function(e){if(e)return"directive"===e.type?e.name.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}):e.label||e.name}})}(),function(){"use strict";angular.module("app.core").filter("capitalize",function(){return function(e){return e?_.capitalize(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByIds",function(){return function(e,n){if(0===e.length||!n)return e;if(0===n.length)return[];for(var t=[],a=0;a')).html(i),s.append(o)})},rgba:l};function l(e,n){var t=n||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),t&&(e=function(e,n){var t={white:{1:"1",2:"0.7",3:"0.3",4:"0.12"},black:{1:"0.87",2:"0.54",3:"0.26",4:"0.12"}};255===e[0]&&255===e[1]&&255===e[2]?e[3]=t.white[n]:0===e[0]&&0===e[1]&&0===e[2]&&(e[3]=t.black[n]);return e}(e,t)),3===e.length?"rgb("+e.join(",")+")":4===e.length?"rgba("+e.join(",")+")":void a.error("Invalid number of arguments supplied in the color array: "+e.length+"\nThe array must have 3 or 4 colors.")}function d(e){return e.charAt(0).toUpperCase()+e.slice(1)}}e.$inject=["$cookies","$log","motionTheming"],angular.module("app.core").factory("motionGenerator",e)}(),function(){"use strict";angular.module("app.core").constant("motionPalettes",[{name:"motion-blue",options:{50:"#ebf1fa",100:"#c2d4ef",200:"#9ab8e5",300:"#78a0dc",400:"#5688d3",500:"#3470ca",600:"#2e62b1",700:"#275498",800:"#21467e",900:"#1a3865",A100:"#c2d4ef",A200:"#9ab8e5",A400:"#5688d3",A700:"#275498",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}},{name:"motion-paleblue",options:{50:"#ececee",100:"#c5c6cb",200:"#9ea1a9",300:"#7d818c",400:"#5c616f",500:"#3c4252",600:"#353a48",700:"#2d323e",800:"#262933",900:"#1e2129",A100:"#c5c6cb",A200:"#9ea1a9",A400:"#5c616f",A700:"#2d323e",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}}])}(),function(){"use strict";angular.module("app.core").constant("motionThemes",{default:{primary:{name:"motion-paleblue",hues:{default:"700","hue-1":"500","hue-2":"600","hue-3":"400"}},accent:{name:"light-blue",hues:{default:"600","hue-1":"400","hue-2":"700","hue-3":"A100"}},warn:{name:"red"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},pinkTheme:{primary:{name:"blue-grey",hues:{default:"800","hue-1":"600","hue-2":"400","hue-3":"A100"}},accent:{name:"pink",hues:{default:"400","hue-1":"300","hue-2":"600","hue-3":"A100"}},warn:{name:"blue"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},tealTheme:{primary:{name:"motion-blue",hues:{default:"900","hue-1":"600","hue-2":"500","hue-3":"A100"}},accent:{name:"teal",hues:{default:"500","hue-1":"400","hue-2":"600","hue-3":"A100"}},warn:{name:"deep-orange"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}}})}(),function(){"use strict";function e(t,e,n){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(n.custom=i),t.alwaysWatchTheme(!0),angular.forEach(e,function(e){t.definePalette(e.name,e.options)}),angular.forEach(n,function(e,n){t.theme(n).primaryPalette(e.primary.name,e.primary.hues).accentPalette(e.accent.name,e.accent.hues).warnPalette(e.warn.name,e.warn.hues).backgroundPalette(e.background.name,e.background.hues)})}e.$inject=["$mdThemingProvider","motionPalettes","motionThemes"],angular.module("app.core").config(e)}(),function(){"use strict";function e(n,t,e){var a={getRegisteredPalettes:function(){return e.PALETTES},getRegisteredThemes:function(){return e.THEMES},setActiveTheme:function(e){if(angular.isUndefined(a.themes.list[e]))return angular.isUndefined(a.themes.list.default)?void t.error('You must have at least one theme named "default"'):(t.warn('The theme "'+e+'" does not exist! Falling back to the "default" theme.'),a.themes.active.name="default",a.themes.active.theme=a.themes.list.default,void n.put("motion.selectedTheme",a.themes.active.name));a.themes.active.name=e,a.themes.active.theme=a.themes.list[e],n.put("motion.selectedTheme",e)},setThemesList:function(e){a.themes.list=e},themes:{list:{},active:{name:"",theme:{}}}};return a}e.$inject=["$cookies","$log","$mdTheming"],angular.module("app.core").service("motionTheming",e)}(),function(){"use strict";function e(n,s,o,r){this.search=function(n){for(var e=[],t=r.getFlatNavigation(),a=o.defer(),i=0;i"+(e.name||"extractedReport")+" will be deleted.").ariaLabel("delete extractedReport").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getExtractedReports=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticExtractedReport.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ExtractedReports",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditExtractedReport=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{extractedReport:n,extractedReports:f.extractedReports.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteExtractedReport=y,f.exportSelectedExtractedReports=function(){var e=angular.copy(f.selectedExtractedReports);return f.selectedExtractedReports=[],e},f.deleteSelectedExtractedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent(""+f.selectedExtractedReports.length+" selected will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedExtractedReports.forEach(function(e){y(e)}),f.selectedExtractedReports=[]})},f.deselectExtractedReports=function(){f.selectedExtractedReports=[]},f.selectAllExtractedReports=function(){f.selectedExtractedReports=f.extractedReports.rows};var b=!0,A=1;function E(e){f.extractedReports=e||{count:0,rows:[]}}function y(e){m.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(f.extractedReports.rows,{id:e.id}),f.extractedReports.count-=1,f.extractedReports.rows.length||f.getExtractedReports(),p.success({title:_.startCase("ExtractedReport")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticExtractedReport"}];for(var n=0;n"+(e.name||"metric")+" will be deleted.").ariaLabel("delete metric").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMetrics=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticMetric.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Metrics",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMetric=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{metric:n,metrics:f.metrics.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMetric=y,f.exportSelectedMetrics=function(){var e=angular.copy(f.selectedMetrics);return f.selectedMetrics=[],e},f.deleteSelectedMetrics=function(e){var n=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent(""+f.selectedMetrics.length+" selected will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMetrics.forEach(function(e){y(e)}),f.selectedMetrics=[]})},f.deselectMetrics=function(){f.selectedMetrics=[]},f.selectAllMetrics=function(){f.selectedMetrics=f.metrics.rows};var b=!0,A=1;function E(e){f.metrics=e||{count:0,rows:[]}}function y(e){m.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(f.metrics.rows,{id:e.id}),f.metrics.count-=1,f.metrics.rows.length||f.getMetrics(),p.success({title:_.startCase("Metric")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticMetric"}];for(var n=0;n"+e.field+" will be deleted.").ariaLabel("delete field").targetEvent(n).ok("OK").cancel("CANCEL");a.show(t).then(function(){p(e)},function(){console.log("CANCEL")})},c.success=u,c.getReportFields=function(){c.promise=o.analyticFieldReport.get(c.query,u).$promise},c.createOrEditReportField=function(e,n){a.show({controller:"CreateOrEditReportFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/edit/field/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:c.report,reportField:n,reportFields:c.reportFields.rows,metrics:c.metrics,columns:c.columns,setting:null,crudPermissions:c.crudPermissions}})},c.deleteReportField=p,c.deleteSelectedReportFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent(""+c.selectedReportFields.length+" selected will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){c.selectedReportFields.forEach(function(e){p(e)}),c.selectedReportFields=[]})},c.getMetricName=function(e){var n=_.find(c.metrics,{id:e});return n?n.name:d.instant("ANALYTICS.NO_METRIC_FOUND")},c.getMetricValue=function(e){var n=_.find(c.metrics,{id:e});return n?n.metric:d.instant("ANALYTICS.NO_METRIC_FOUND")};var m=!0;function u(e){c.reportFields=e||{count:0,rows:[]}}function p(e){o.analyticFieldReport.delete({id:e.id}).$promise.then(function(){c.selectedReportFields=[],_.remove(c.reportFields.rows,{id:e.id}),c.reportFields.count-=1,c.reportFields.rows.length||c.getReportFields(),s.success({title:"Field deleted!",msg:e.field?e.field+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}n.$watch("vm_rf.query.filter",function(e,n){m?t(function(){m=!1}):c.getReportFields()})}e.$inject=["$cookies","$scope","$timeout","$mdDialog","$document","toasty","api","describeTable","sqlUtil","$translate"],angular.module("app.analytics").controller("ReportFieldsController",e)}(),function(){"use strict";angular.module("app.analytics").factory("sqlUtil",function(){return{getFunctions:[{value:"SUM",option:function(e){return"SUM ("+e+")"}},{value:"COUNT",option:function(e){return"COUNT ("+e+")"}},{value:"COUNT DISTINCT",option:function(e){return"COUNT (DISTINCT "+e+")"}},{value:"MAX",option:function(e){return"MAX ("+e+")"}},{value:"MIN",option:function(e){return"MIN ("+e+")"}},{value:"AVG",option:function(e){return"AVG ("+e+")"}},{value:"GROUP_CONCAT",option:function(e){return"GROUP_CONCAT ("+e+")"}},{value:"GROUP_CONCAT ASC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" ASC)"}},{value:"GROUP_CONCAT DESC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" DESC)"}}],getFormats:[{value:"SEC_TO_TIME",option:function(e){return"SEC_TO_TIME ("+e+")"}},{value:"DATE",option:function(e){return"DATE ("+e+")"}},{value:"HOUR",option:function(e){return"HOUR ("+e+")"}},{value:"ROUND",option:function(e){return"ROUND ("+e+")"}},{value:"UNIX_TIMESTAMP",option:function(e){return"UNIX_TIMESTAMP ("+e+")"}}],getGroupBy:[{value:!1,option:function(){return"No"}},{value:!0,option:function(e){return"GROUP BY "+e}}],getOrderBy:[{value:"ASC",option:function(e){return"ORDER BY "+e+" ASC"}},{value:"DESC",option:function(e){return"ORDER BY "+e+" DESC"}}],getConditions:["=","!=","<","<=",">",">=","LIKE","NOT LIKE","IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"]}})}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(e){return _.isArray(e)}o.report=a||{},o.userProfileSection=s&&1==s.count?s.rows[0]:null,o.crudPermissions=i.parseCrudPermissions(o.userProfileSection?o.userProfileSection.crudPermissions:null),o.selectedTab=e.params.tab||0,o.gotoReports=function(){e.go("app.analytics.reports",{},{reload:"app.analytics.reports"})},o.saveReport=function(){o.report.conditions=angular.toJson(o.report.condition),t.analyticCustomReport.update({id:o.report.id},_.omit(o.report,"joins")).$promise.then(function(){n.success({title:"Report updated!",msg:o.report.name?o.report.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETreport",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.previewReport=function(){o.columns=[],o.rows=[],o.error=!1,t.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:o.report.id}).$promise.then(function(e){return o.columns=e?e.rows:[],t.analyticCustomReport.preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},n.error(o.error)})},o.queryReport=function(){return o.queryResult="Loading...",t.analyticCustomReport.query({id:o.report.id}).$promise.then(function(e){o.queryResult=e.sql}).catch(function(e){o.queryResult="",console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},n.error(o.error)})},o.mapArray=function(e,n){if(r(e))return _.map(e,n).join(",");return""},o.isArray=r,o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$state","toasty","api","report","Auth","userProfileSection"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.errors=[],o.report=angular.copy(a),o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},o.closeDialog=function(){n.hide()},function(){o.columns=[],o.rows=[],o.error=!1;var e={fields:"field,alias",nolimit:!0};e["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=o.report.id,o.promise=i.analyticFieldReport.get(e).$promise.then(function(e){return o.columns=e?e.rows:[],i[s].preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},t.error(o.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,n,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.reports={count:0,rows:[]},p.userProfile=r,p.userProfileSection=l&&1==l.count?l.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.selectedReports=[],p.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},p.apiName=null,p.currentPath="",p.customTree=!0,p.editstate=function(e,n){s.go("app.analytics.reports.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.copydialog=function(e,n){i.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,treeCustomData:p.treeCustomInstance.jstree(!0).get_json("#")}}).finally(function(){})},p.previewdialog=function(e,n){i.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName}})},p.rundialog=function(e,n){i.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,currentPath:p.currentPath}})},p.downloadfile=function(a,e){var i;d.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise.then(function(e){i=_.keyBy(e.rows,"id");var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===p.apiName?"CustomReportId":"DefaultReportId"]=a.id,d.analyticFieldReport.get(n).$promise}).then(function(e){for(var n=0;n"+e.name+" will be deleted.").ariaLabel("delete report").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){b(e)},function(){console.log("CANCEL")})},p.success=h,p.getReports=f,p.createOrEditReport=function(e,n){i.show({controller:"CreateOrEditReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:n,reports:p.reports.rows,apiName:p.apiName,currentNode:p.currentNode,setting:null,crudPermissions:p.crudPermissions}})},p.importReport=function(e,n,t){if("application/json"===e.file.type){var a=new FileReader;a.onload=function(e){console.log(e.target.result);try{var t=atob(e.target.result.split(",")[1]);t=angular.fromJson(t),d.analyticCustomReport.save({name:t.name,description:t.description,table:t.table,conditions:t.conditions,joins:t.joins,parent:p.currentNode.id}).$promise.then(function(n){p.reports.rows.unshift(n),m.success({title:"Report saved!",msg:n.name?n.name+" has been saved!":""});var e=_.map(t.fields,function(e){return _.extend({},e,{CustomReportId:n.id})});return d.analyticFieldReport.bulkCreate(e).$promise}).then(function(e){m.success({title:"Fields saved!",msg:"Fields has been saved!"})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}catch(e){console.error(e),m.error({title:"Decode File Error",msg:e.toString()})}},a.readAsDataURL(e.file)}else m.error({title:"Format Error",msg:"Please use only json files"})},p.deleteReport=b,p.exportSelectedReports=function(){var e=angular.copy(p.selectedReports);return p.selectedReports=[],e},p.deleteSelectedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected reports?").htmlContent(""+p.selectedReports.length+" selected will be deleted.").ariaLabel("delete Reports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){p.selectedReports.forEach(function(e){b(e)}),p.selectedReports=[]})},p.deselectReports=function(){p.selectedReports=[]},p.selectAllReports=function(){p.selectedReports=p.reports.rows},p.treeDefaultData=c.rows[0]?angular.fromJson(c.rows[0].tree):[],p.treeCustomData=c.rows[1]?angular.fromJson(c.rows[1].tree):[],p.treeDefaultConfig=S(!1),p.treeCustomConfig=S(!0),p.treeDefaultEvents=T(!1),p.treeCustomEvents=T(!0);var g=!0,v=1;function h(e){p.reports=e||{count:0,rows:[]}}function f(){if(p.query.offset=(p.query.page-1)*p.query.limit,p.apiName)if("admin"===p.currentUser.role||p.userProfileSection.autoAssociation)p.promise=d[p.apiName].get(p.query,h).$promise;else{var a=[];p.promise=d[p.apiName].get(p.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:p.userProfileSection.id,type:"analyticDefaultReport"===p.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0"+(t.text?t.text:"Node")+" and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n=p.treeCustomInstance.jstree(!0).get_parent(t);n=p.treeCustomInstance.jstree(!0).get_node(n),p.treeCustomInstance.jstree(!0).delete_node(t),e=[t.id].concat(t.children_d||[]),d.analyticCustomReport.get({parent:e.join(","),fields:"id,name"}).$promise.then(function(e){e&&e.rows&&e.rows.forEach(function(e){b(e)})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEreportsByParents",msg:e.data?JSON.stringify(e.data):e.toString()})}),p.treeCustomInstance.jstree(!0).select_node(n)})}}}),e}}}}function T(e){return e?{create_node:y,rename_node:y,move_node:y,delete_node:y,select_node:A}:{select_node:E}}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getReports())}),e.$watch("vm.search",function(e,n){p.treeDefaultInstance&&p.treeDefaultInstance.jstree(!0).search(e),p.treeCustomInstance&&p.treeCustomInstance.jstree(!0).search(e)})}e.$inject=["$scope","$timeout","$document","$mdDialog","$state","$window","$translate","userProfile","userProfileSection","api","treeReports","toasty","Auth"],angular.module("app.analytics").controller("ReportsController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r){var l=this;function d(){l.export={id:l.report.id,name:l.report.name,startDate:new Date(moment().startOf("day")),endDate:new Date(moment().endOf("day")),output:"xlsx",fullPath:r?r+"/"+l.report.name:l.report.name}}function c(){t.hide()}l.errors=[],l.report=angular.copy(n),l.export={},l.runReport=function(n){l.errors=[],l.exportDate=_.assign({},l.export,{startDate:moment(l.export.startDate).format("YYYY-MM-DD HH:mm:ss"),endDate:moment(l.export.endDate).format("YYYY-MM-DD HH:mm:ss")}),i[s].run(l.exportDate).$promise.then(function(e){"web"===l.export.output?t.show({controller:"WebReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/web/dialog.html",parent:angular.element(o.body),targetEvent:n,skipHide:!0,locals:{apiName:s,exportDate:l.exportDate,results:e},resolve:{columns:["apiResolver",function(e){var n={fields:"field,alias",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=l.report.id,e.resolve("analyticFieldReport@get",n)}]}}):(a.success({title:"Report properly run!",msg:l.report.name?l.report.name+" has been run!":""}),c())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},l.closeDialog=c,(l.refreshDate=d)()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","$document","currentPath"],angular.module("app.analytics").controller("RunReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o){var r=this;function l(e){r.results=e||{count:0,rows:[]}}r.errors=[],r.columns=a?a.rows:[],r.results=i||{rows:[],count:0},r.query={limit:10,page:1},r.closeDialog=function(){e.hide()},r.getResults=function(){o.offset=(r.query.page-1)*r.query.limit,o.limit=r.query.limit,r.promise=t[s].run(o,l).$promise},r.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$mdDialog","toasty","api","columns","results","apiName","exportDate"],angular.module("app.analytics").controller("WebReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_ODBC",g.odbc=angular.copy(l),g.odbcs=r,g.newOdbc=!1,g.odbc||(g.odbc={},g.title="CALLYSQUARE.NEW_ODBC",g.newOdbc=!0),g.addNewOdbc=function(){g.errors=[],d.squareOdbc.save(g.odbc).$promise.then(function(e){g.odbcs.unshift(e.toJSON()),o.success({title:"Odbc properly created",msg:g.odbc.name?g.odbc.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.save"}];for(var n=0;n"+(e.name||"odbc")+" will be deleted.").ariaLabel("delete odbc").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getODBC=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareOdbc.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ODBC",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOdbc=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{odbc:n,odbcs:f.odbcs.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOdbc=y,f.exportSelectedODBC=function(){var e=angular.copy(f.selectedODBC);return f.selectedODBC=[],e},f.deleteSelectedODBC=function(e){var n=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent(""+f.selectedODBC.length+" selected will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedODBC.forEach(function(e){y(e)}),f.selectedODBC=[]})},f.deselectODBC=function(){f.selectedODBC=[]},f.selectAllODBC=function(){f.selectedODBC=f.odbcs.rows};var b=!0,A=1;function E(e){f.odbcs=e||{count:0,rows:[]}}function y(e){m.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(f.odbcs.rows,{id:e.id}),f.odbcs.count-=1,f.odbcs.rows.length||f.getODBC(),p.success({title:_.startCase("Odbc")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareOdbc"}];for(var n=0;n"+e.name+" will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");l.show(t).then(function(){f(e)},function(){console.log("CANCEL")})},p.success=h,p.getProjects=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=o.squareProject.get(p.query,h).$promise:(p.query.id=p.userProfile.id,p.query.section="SquareProjects",p.promise=o.userProfile.getResources(p.query,h).$promise)},p.createOrEditProject=function(e,n){l.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(d.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:p.projects.rows,openFromEditor:null,setting:null,crudPermissions:p.crudPermissions}})},p.deleteProject=f,p.exportSelectedProjects=function(){var e=angular.copy(p.selectedProjects);return p.selectedProjects=[],e},p.deleteSelectedProjects=function(e){var n=l.confirm().title("Are you sure want to delete the selected projects?").htmlContent(""+p.selectedProjects.length+" selected will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");l.show(n).then(function(){p.selectedProjects.forEach(function(e){f(e)}),p.selectedProjects=[]})},p.deselectProjects=function(){p.selectedProjects=[]},p.selectAllProjects=function(){p.selectedProjects=p.projects.rows};var g=!0,v=1;function h(e){p.projects=e||{count:0,rows:[]}}function f(e){o.squareProject.delete({id:e.id}).$promise.then(function(){_.remove(p.projects.rows,{id:e.id}),p.projects.count-=1,p.projects.rows.length||p.getProjects(),m.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.project.delete"}];for(var n=0;n"+(e.name||"squareRecording")+" will be deleted.").ariaLabel("delete squareRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSquareRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SquareRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSquareRecording=function(e,n){i.show({controller:"CreateOrEditSquareRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/squareRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{squareRecording:n,squareRecordings:f.squareRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSquareRecording=y,f.exportSelectedSquareRecordings=function(){var e=angular.copy(f.selectedSquareRecordings);return f.selectedSquareRecordings=[],e},f.deleteSelectedSquareRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent(""+f.selectedSquareRecordings.length+" selected will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSquareRecordings.forEach(function(e){y(e)}),f.selectedSquareRecordings=[]})},f.deselectSquareRecordings=function(){f.selectedSquareRecordings=[]},f.selectAllSquareRecordings=function(){f.selectedSquareRecordings=f.squareRecordings.rows};var b=!0,A=1;function E(e){f.squareRecordings=e||{count:0,rows:[]}}function y(e){m.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.squareRecordings.rows,{id:e.id}),f.squareRecordings.count-=1,f.squareRecordings.rows.length||f.getSquareRecordings(),p.success({title:_.startCase("SquareRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareRecording"}];for(var n=0;n"+(e.name||"chatQueue")+" will be deleted.").ariaLabel("delete chatQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.chat.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.chat.realtime.queues",{})}},f.success=E,f.getChatQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatQueue=function(e,n){i.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:f.chatQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatQueue=y,f.exportSelectedChatQueues=function(){var e=angular.copy(f.selectedChatQueues);return f.selectedChatQueues=[],e},f.deleteSelectedChatQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent(""+f.selectedChatQueues.length+" selected will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatQueues.forEach(function(e){y(e)}),f.selectedChatQueues=[]})},f.deselectChatQueues=function(){f.selectedChatQueues=[]},f.selectAllChatQueues=function(){f.selectedChatQueues=f.chatQueues.rows};var b=!0,A=1;function E(e){f.chatQueues=e||{count:0,rows:[]}}function y(e){m.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.chatQueues.rows,{id:e.id}),f.chatQueues.count-=1,f.chatQueues.rows.length||f.getChatQueues(),p.success({title:_.startCase("ChatQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatQueue"}];for(var n=0;n":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={readOnly:!c.crudPermissions.canEdit,items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","chatQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getTeams({id:l.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){return _.find(l.items,{id:e.id})}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.chatQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={readOnly:!l.crudPermissions.canEdit,allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("CHAT.ALL_TEAMS"),labelSelected:t.instant("CHAT.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.chatQueue=c||e.params.chatQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoChatQueues=function(){e.go("app.chat.chatQueues",{},{reload:"app.chat.chatQueues"})},u.saveChatQueue=function(){r.chatQueue.update({id:u.chatQueue.id},u.chatQueue).$promise.then(function(){l.success({title:"ChatQueue updated!",msg:u.chatQueue.name?u.chatQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","chatQueue","userProfileSection"],angular.module("app.chat").controller("ChatQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatWebsites=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatWebsites",f.listOrder="",f.listOrderAsc=null,f.selectedChatWebsites=[],f.query={fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey",sort:"-updatedAt",limit:10,page:1},f.arrayagentIdentifier=_.keyBy([{option:"WebsiteAlias",value:"'website_alias'"},{option:"AgentAlias",value:"'agent_alias'"},{option:"AgentFullname",value:"'agent_fullname'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayalignment=_.keyBy([{option:"bottom_right",value:"'bottom_right'"},{option:"right",value:"'right'"},{option:"left",value:"'left'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymessagesAlignment=_.keyBy([{option:"alternate",value:"'alternate'"},{option:"centered",value:"'centered'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayratingType=_.keyBy([{option:"Star",value:"'star'"},{option:"Thumb",value:"'thumb'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:10})},f.offlinemessagesgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:11})},f.agentadddialog=function(e,n){i.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:f.chatWebsites?f.chatWebsites.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatWebsite")+"?").htmlContent(""+(e.name||"chatWebsite")+" will be deleted.").ariaLabel("delete chatWebsite").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChatWebsites=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatWebsite.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatWebsites",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatWebsite=function(e,n){i.show({controller:"CreateOrEditChatWebsiteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:n,chatWebsites:f.chatWebsites.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatWebsite=y,f.exportSelectedChatWebsites=function(){var e=angular.copy(f.selectedChatWebsites);return f.selectedChatWebsites=[],e},f.deleteSelectedChatWebsites=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent(""+f.selectedChatWebsites.length+" selected will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatWebsites.forEach(function(e){y(e)}),f.selectedChatWebsites=[]})},f.deselectChatWebsites=function(){f.selectedChatWebsites=[]},f.selectAllChatWebsites=function(){f.selectedChatWebsites=f.chatWebsites.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.lists,{id:Number(f.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.lists,{id:Number(f.chatWebsite.ListId)}));for(var i=0;i"+e.app+" will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.chatWebsiteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getChatWebsiteApps=function(){r.promise=o.chatWebsite.getApplications(r.query,t).$promise},r.editChatWebsiteApp=n,r.editInterval=function(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteChatWebsiteApp=function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedChatWebsiteApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent(""+r.selectedChatWebsiteApps.length+" selected will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedChatWebsiteApps.forEach(function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id})}),r.selectedChatWebsiteApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatWebsite.getAgents({id:c.chatWebsite.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatWebsite?"penalty "+e.UserChatWebsite.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatWebsite=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.removeAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.addAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={readOnly:!c.crudPermissions.canEdit,items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatWebsite","chatWebsites","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatWebsiteagentaddController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608"+(e.name||e.id&&_.upperFirst("chatCannedAnswer #")+e.id||"chatCannedAnswer")+" will be deleted.").ariaLabel("delete chatCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteChatCannedAnswers=p,m.createOrEditChatWebsiteChatCannedAnswer=function(e,n){o.show({controller:"CreateOrEditChatCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatCannedAnswer:n,chatCannedAnswers:m.chatWebsiteChatCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteChatCannedAnswers=function(){var e=angular.copy(m.selectedChatWebsiteChatCannedAnswers);return m.selectedChatWebsiteChatCannedAnswers=[],e},m.deleteChatWebsiteChatCannedAnswer=g,m.deleteSelectedChatWebsiteChatCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected chatCannedAnswers?").htmlContent(""+m.selectedChatWebsiteChatCannedAnswers.length+" selected will be deleted.").ariaLabel("delete chatCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteChatCannedAnswers.forEach(function(e){g(e)}),m.selectedChatWebsiteChatCannedAnswers=[]})};var v=!0,h=1;n.$watch("vm_dc.query.filter",function(e,n){v?s(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteChatCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATCANNEDANSWER",g.chatCannedAnswer=angular.copy(l),g.chatCannedAnswers=r,g.newChatCannedAnswer=!1,g.chatCannedAnswer||(g.chatCannedAnswer={},g.title="CHAT.NEW_CHATCANNEDANSWER",g.newChatCannedAnswer=!0),n.params.id&&(g.chatCannedAnswer.ChatWebsiteId=n.params.id),g.addNewChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.chatCannedAnswer).$promise.then(function(e){g.chatCannedAnswers.unshift(e.toJSON()),o.success({title:"ChatCannedAnswer properly created",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteInteractions={count:0,rows:[]},m.selectedChatWebsiteInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ChatWebsiteId=m.chatWebsite.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent(""+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+" will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.chatInteractionDownload=function(s,e,n){return d.chatInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="chat-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n"+m.selectedChatWebsiteInteractions.length+" selected will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteInteractions.forEach(function(e){g(e)}),m.selectedChatWebsiteInteractions=[]})};var f=!0,b=1;a.$watch("vm_dc.query.filter",function(e,n){f?s(function(){f=!1}):(n||(b=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=b),p())})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteInteractionsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608"+(e.name||e.id&&_.upperFirst("offlineMessage #")+e.id||"offlineMessage")+" will be deleted.").ariaLabel("delete offlineMessage").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteOfflineMessages=p,m.createOrEditChatWebsiteOfflineMessage=function(e,n){o.show({controller:"CreateOrEditOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,offlineMessage:n,offlineMessages:m.chatWebsiteOfflineMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showOfflineMessageChatWebsiteOfflineMessage=function(e,t){o.show({controller:"ShowOfflineMessageOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{message:["apiResolver","$stateParams",function(e,n){return e.resolve("chatOfflineMessage@get",{fields:"id,body",id:t.id})}]}})},m.exportSelectedChatWebsiteOfflineMessages=function(){var e=angular.copy(m.selectedChatWebsiteOfflineMessages);return m.selectedChatWebsiteOfflineMessages=[],e},m.deleteChatWebsiteOfflineMessage=g,m.deleteSelectedChatWebsiteOfflineMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected offlineMessages?").htmlContent(""+m.selectedChatWebsiteOfflineMessages.length+" selected will be deleted.").ariaLabel("delete offlineMessages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteOfflineMessages.forEach(function(e){g(e)}),m.selectedChatWebsiteOfflineMessages=[]})};var v=!0,h=1;n.$watch("vm_dc.query.filter",function(e,n){v?s(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteOfflineMessagesController",e)}(),function(){"use strict";function e(n,e){this.title="CHAT.OFFLINE_MESSAGE",this.message=e,this.closeDialog=function(e){n.hide(e)}}e.$inject=["$mdDialog","message"],angular.module("app.chat").controller("ShowOfflineMessageOfflineMessageDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteProactiveActions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getProactiveActions(m.query,u).$promise}function g(e){d.chatProactiveAction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteProactiveActions.rows,{id:e.id}),m.chatWebsiteProactiveActions.count-=1,m.chatWebsiteProactiveActions.rows.length||p(),l.success({title:"ChatProactiveAction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){vm.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n"+(e.name||e.id&&_.upperFirst("chatProactiveAction #")+e.id||"chatProactiveAction")+" will be deleted.").ariaLabel("delete chatProactiveAction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteProactiveActions=p,m.createOrEditChatWebsiteChatProactiveAction=function(e,n){o.show({controller:"CreateOrEditChatProactiveActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatProactiveAction:n,proactive:m.chatWebsiteProactiveActions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteProactiveActions=function(){var e=angular.copy(m.selectedChatWebsiteProactiveActions);return m.selectedChatWebsiteProactiveActions=[],e},m.deleteChatWebsiteChatProactiveAction=g,m.deleteSelectedChatWebsiteProactiveActions=function(e){var n=o.confirm().title("Are you sure want to delete the selected proactive?").htmlContent(""+m.selectedChatWebsiteProactiveActions.length+" selected will be deleted.").ariaLabel("delete proactive").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteProactiveActions.forEach(function(e){g(e)}),m.selectedChatWebsiteProactiveActions=[]})};var v=!0,h=1;n.$watch("vm_dc.query.filter",function(e,n){v?s(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteProactiveActionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATPROACTIVEACTION",g.chatProactiveAction=angular.copy(l),g.proactive=r,g.newChatProactiveAction=!1,g.chatProactiveAction||(g.chatProactiveAction={type:"mouseOver"},g.title="CHAT.NEW_CHATPROACTIVEACTION",g.newChatProactiveAction=!0),n.params.id&&(g.chatProactiveAction.ChatWebsiteId=n.params.id),g.addNewChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.save(g.chatProactiveAction).$promise.then(function(e){g.proactive.unshift(e.toJSON()),o.success({title:"ChatProactiveAction properly created",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.save"}];for(var n=0;n<\/script>',n.end="\n\x3c!-- START Motion Chat Script --\x3e"},n.info={},e.$watch("vm_ac.chatWebsite.remote",function(e){n.script='\n