From: Motion Team Date: Wed, 9 Dec 2015 18:32:17 +0000 (+0100) Subject: 0.0.7 | Built motion from commit d24580c. X-Git-Tag: 0.0.7 X-Git-Url: http://repos.xcallymotion.com/base/%22https:/wiki.xcallymotion.com/display/XMV//%22%7B%7Blicense.messaging?a=commitdiff_plain;h=26c42468892f299005ea57acdeaf611137fb1c9e;p=motion.git 0.0.7 | Built motion from commit d24580c. --- diff --git a/package.json b/package.json index 02fd002..f6f4dac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "motion", - "version": "0.0.7", + "version": "0.0.8", "main": "server/app.js", "dependencies": { "accept-language-parser": "^1.0.2", diff --git a/public/app/04405547.app.js b/public/app/c7518ced.app.js similarity index 83% rename from public/app/04405547.app.js rename to public/app/c7518ced.app.js index 9fcdbd7..9856bbc 100644 --- a/public/app/04405547.app.js +++ b/public/app/c7518ced.app.js @@ -7,15 +7,14 @@ c.workspaces=[],c.mainTab={active:!0},a.$on("$viewContentLoaded",function(){Metr }],a.queueAnnounces=[{display_name:"Default",value:null},{display_name:"Disabled",value:""}];var h=function(){return{select:function(c){b.post("/api/voice/queues/"+a.queue.name+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/voice/queues/"+a.queue.name+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/voice/queues/"+e.id).success(function(b){b.joinempty=""===b.joinempty?[]:b.joinempty.split(","),b.leavewhenempty=""===b.leavewhenempty?[]:b.leavewhenempty.split(","),b.periodic_announce=""===b.periodic_announce?[]:b.periodic_announce.split(","),a.queue=b}).error(function(a){g.path("/voice/queues/list")})},a.updateVoiceQueue=function(){var f=angular.copy(a.queue);f.joinempty=f.joinempty.join(","),f.leavewhenempty=f.leavewhenempty.join(","),f.periodic_announce=f.periodic_announce.join(","),f.context||(f.context=null),b.put("/api/voice/queues/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),f.joinempty=f.joinempty.split(","),f.leavewhenempty=f.leavewhenempty.split(","),f.periodic_announce=f.periodic_announce.split(","),a.queue=f})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b({url:"/api/voice/user_has_queues",method:"GET",params:{queue:a.queue.name}}).success(function(b){ComponentsDropdowns.bindQueue(a.teams,_.pluck(b,"UserId"),h)})}).error(function(a){console.error(a)})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getMohs=function(){b.get("/api/voice/musiconholds").success(function(b){a.voiceMohs=b.rows,f.syncUpdates("voice_musiconhold",a.voiceMohs)}).error(function(a){c.show(a.message,"danger")})},a.getSounds=function(){b.get("/api/uploads").success(function(b){a.queueAnnounces=a.queueAnnounces.concat(b),a.periodicAnnounces=angular.copy(b),b.unshift({display_name:"None",converted_path:null,value:""}),a.sounds=b,f.syncUpdates("upload",a.sounds)}).error(function(a){console.error(a)})},a.returnAnnouncePath=function(a){return console.log("func"),a.converted_path?a.converted_path+"/"+a.save_name:null===a.value?null:a.value}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues.view",{url:"/view/:id",templateUrl:"app/voice/queue/view/view.html",controller:"VoiceQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.queues.view.settings",{url:"/settings",templateUrl:"app/voice/queue/view/view.settings.html"}).state("main.voice.queues.view.agents",{url:"/agents",templateUrl:"app/voice/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={queue:void 0},a.item={},a.next=function(){b.post("/api/voice/queues/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_QUEUE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/queues/",a.item).success(function(){d.path("/voice/queues/list")}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues.wizard",{url:"/wizard",templateUrl:"app/voice/queue/wizard/wizard.html",controller:"VoiceQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.realtime",{url:"/realtime",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentCtrl",["$scope","$http","$log","$uibModal","$translate","socket","xAlert",function(a,b,c,d,e,f,g){a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){f.unsyncUpdates("user_has_voice_queue")}),a.groups=[],a.pauses=["pausa1","pausa2","pausa3"],a.pause=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/agent/pause.modal.html",controller:"VoiceRealtimeViewAgentPauseModalCtrl",resolve:{items:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.add=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/agent/queue.modal.add.html",controller:"VoiceRealtimeViewAgentQueueModalCtrl",resolve:{pauses:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){console.log(a),b.post("/api/voice/user_has_queues",a).then(function(){a.login?b.post("/api/ami",a).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.remove=function(a,f){var h=d.open({animation:!0,size:a,templateUrl:"app/voice/realtime/view/agent/queue.modal.remove.html",controller:"VoiceRealtimeViewAgentQueueModalCtrl",resolve:{pauses:function(){return null},data:function(){return f}}});h.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.initAgents=function(){b.get("/api/voice/user_has_queues").success(function(b){a.agents=b,a.groups=_.map(_.groupBy(a.agents,"membername"),function(a,b){return{membername:b,queues:a}}),f.socket.on("user_has_voice_queue:save",function(b){var c=_.find(a.groups,{membername:b.membername}),d=a.groups.indexOf(c);if(c){var e=_.find(c.queues,{queue:b.queue});e?_.merge(e,b):a.groups[d].queues.push(b)}else{var f={membername:b.membername,queues:[b]};a.groups.unshift(f)}}),f.socket.on("user_has_voice_queue:remove",function(b){var c=_.find(a.groups,{membername:b.membername});_.remove(c.queues,{queue:b.queue}),c.queues.length||_.remove(a.groups,{membername:b.membername})}),f.socket.on("report_agent:save",function(b){var c=_.find(a.groups,{membername:b.membername}),d=a.groups.indexOf(c);if(c){var e=_.find(c.queues,{queue:b.queue});e?_.merge(e,b):a.groups[d].queues.push(b)}else{var f={membername:b.membername,queues:[b]};a.groups.unshift(f)}})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentPauseModalCtrl",["$scope","$uibModalInstance","items","data",function(a,b,c,d){a.items=c,a.data=d,a.selected={item:a.items[0],queue:_.isArray(d)?a.data[0].queue:a.data.queue,membername:_.isArray(d)?a.data[0].membername:a.data.membername,"interface":_.isArray(d)?a.data[0]["interface"]:a.data["interface"]},a.ok=function(c){var e={action:"QueuePause","interface":a.selected["interface"],paused:c,reason:a.selected.item};_.isArray(d)||(e.queue=a.selected.queue),b.close(e)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","pauses","data",function(a,b,c,d,e){a.initAdd=function(){a.data=e,a.pauses=d,a.selected={membername:a.data[0].membername,"interface":a.data[0]["interface"],penalty:0,paused:!1,reason:a.pauses[0],UserId:a.data[0].UserId},c.get("/api/voice/queues",{params:{page:0,per_page:100}}).success(function(b){a.queues=_.reject(b.rows,function(b){return _.find(a.data,{queue:b.name})?!0:!1}),a.selected.queue=a.queues[0]?a.queues[0].name:null,console.log(a.queues)}).error(function(a){console.error(a)})},a.initRemove=function(){a.data=e,_.isArray(e)?a.selected={membername:a.data[0].membername,"interface":a.data[0]["interface"],logout:!1,UserId:a.data[0].UserId}:a.selected={membername:a.data.membername,"interface":a.data["interface"],queue:a.data.queue,logout:!1,UserId:a.data.UserId}},a.okAdd=function(){console.log(a.selected);var c={action:"QueueAdd",logged:a.data[0].logged,loggedAt:a.data[0].loggedAt,queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],penalty:a.selected.penalty,paused:a.selected.paused,UserId:a.selected.UserId};c.paused&&(c.reason=a.selected.reason),b.close(c)},a.okRemove=function(){var c;_.isArray(a.data)?(c=[],a.data.forEach(function(b){c.push({action:"QueueRemove",queue:b.queue,"interface":b["interface"],logout:a.selected.logout,UserId:b.UserId})})):c={action:"QueueRemove",queue:a.selected.queue,logout:a.selected.logout,"interface":a.selected["interface"],UserId:a.selected.UserId},b.close(c)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentReportCtrl",["$scope","$http","socket",function(a,b,c){a.$on("$destroy",function(){c.unsyncUpdates("report_agent")}),a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initReport=function(){a.agents=[],b.get("/api/report/agents").success(function(b){a.agents=b,c.syncUpdates("report_agent",a.agents)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").filter("VoiceRealtimeViewAgentReportFilter",function(){return function(a){return new Date(1970,0,1).setSeconds(a)}}),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueReportCtrl",["$scope","$http","socket",function(a,b,c){a.$on("$destroy",function(){c.unsyncUpdates("report_queue")}),a.conf={queuesByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.queuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initReport=function(){a.queues=[],b.get("/api/report/queues").success(function(b){console.log(b),a.queues=b,c.syncUpdates("report_queue",a.queues)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").filter("VoiceRealtimeViewQueueReportFilter",function(){return function(a){return new Date(1970,0,1).setSeconds(a)}}),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueuePauseModalCtrl",["$scope","$uibModalInstance","items","data",function(a,b,c,d){a.items=c,a.data=d,console.log(d),a.selected={item:a.items[0],queue:_.isArray(d)?a.data[0].queue:a.data.queue,membername:_.isArray(d)?a.data[0].membername:a.data.membername,"interface":_.isArray(d)?a.data[0]["interface"]:a.data["interface"]},a.ok=function(c,e){var f;_.isArray(d)?(f=[],d.forEach(function(b){f.push({action:"QueuePause",queue:b.queue,membername:b.membername,"interface":b["interface"],paused:c,reason:a.selected.item})})):f={action:"QueuePause",queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],paused:c,reason:a.selected.item},b.close(f)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueCtrl",["$scope","$http","$log","$uibModal","$translate","socket","xAlert",function(a,b,c,d,e,f,g){a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){f.unsyncUpdates("user_has_voice_queue")}),a.groups=[],a.pauses=["pausa1","pausa2","pausa3"],a.pause=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/queue/pause.modal.html",controller:"VoiceRealtimeViewQueuePauseModalCtrl",resolve:{items:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.add=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/queue/queue.modal.add.html",controller:"VoiceRealtimeViewQueueQueueModalCtrl",resolve:{pauses:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){console.log("action",a),b.post("/api/voice/user_has_queues",a).then(function(){a.login?b.post("/api/ami",a).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")}),console.log(a)},function(){c.info("Modal dismissed at: "+new Date)})},a.remove=function(a,f){var h=d.open({animation:!0,size:a,templateUrl:"app/voice/realtime/view/queue/queue.modal.remove.html",controller:"VoiceRealtimeViewQueueQueueModalCtrl",resolve:{pauses:function(){return null},data:function(){return f}}});h.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.initQueues=function(){b.get("/api/voice/user_has_queues").success(function(b){a.queues=b,a.groups=_.map(_.groupBy(a.queues,"queue"),function(a,b){return{queue:b,agents:a}}),console.log("ok"),f.socket.on("user_has_voice_queue:save",function(b){console.log("item",b);var c=_.find(a.groups,{queue:b.queue}),d=a.groups.indexOf(c);if(c){var e=_.find(c.agents,{membername:b.membername});e?_.merge(e,b):a.groups[d].agents.push(b)}else{var f={queue:b.queue,agents:[b]};a.groups.unshift(f)}}),f.socket.on("user_has_voice_queue:remove",function(b){var c=_.find(a.groups,{queue:b.queue});_.remove(c.agents,{membername:b.membername}),c.agents.length||_.remove(a.groups,{queue:b.queue})}),f.socket.on("report_agent:save",function(b){var c=_.find(a.groups,{queue:b.queue}),d=a.groups.indexOf(c);if(c){var e=_.find(c.agents,{membername:b.membername});e?_.merge(e,b):a.groups[d].agents.push(b)}else{var f={queue:b.queue,agents:[b]};a.groups.unshift(f)}})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueQueueModalCtrl",["$scope","$uibModalInstance","$http","pauses","data",function(a,b,c,d,e){a.initAdd=function(){a.data=e,a.pauses=d,a.selected={penalty:0,paused:!1,reason:a.pauses[0]},a.$watch("selected.agent",function(b){b&&(a.selected.membername=b.name,a.selected["interface"]="SIP/"+b.name,a.selected.UserId=b.id)}),c.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=_.reject(b.rows,function(b){return _.find(a.data,{membername:b.name})?!0:!1}),a.selected.queue=a.data[0]?a.data[0].queue:null}).error(function(a){console.error(a)})},a.initRemove=function(){a.data=e,console.log(e),_.isArray(e)?a.selected={queue:a.data[0].queue,logout:!1}:a.selected={membername:a.data.membername,"interface":a.data["interface"],queue:a.data.queue,logout:!1,UserId:a.data.UserId}},a.okAdd=function(){var c={action:"QueueAdd",queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],penalty:a.selected.penalty,paused:a.selected.paused,UserId:a.selected.UserId};c.paused&&(c.reason=a.selected.reason),b.close(c)},a.okRemove=function(){var c;_.isArray(a.data)?(c=[],a.data.forEach(function(b){c.push({action:"QueueRemove",queue:b.queue,"interface":b["interface"],logout:a.selected.logout,UserId:b.UserId})})):c={action:"QueueRemove",queue:a.selected.queue,logout:a.selected.logout,"interface":a.selected["interface"],UserId:a.selected.UserId},b.close(c)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"View1",link:"main.voice.realtime.view.agents"},{name:"View2",link:"main.voice.realtime.view.areports"}],a.queues=[{name:"View1",link:"main.voice.realtime.view.queues"},{name:"View2",link:"main.voice.realtime.view.qreports"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.realtime.view",{url:"/view",templateUrl:"app/voice/realtime/view/view.html",controller:"VoiceRealtimeViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.realtime.view.queues",{url:"/queues",controller:"VoiceRealtimeViewQueueCtrl",templateUrl:"app/voice/realtime/view/queue/queue.html"}).state("main.voice.realtime.view.qreports",{url:"/qreport/:search",controller:"VoiceRealtimeViewQueueReportCtrl",templateUrl:"app/voice/realtime/view/qreport/report.html"}).state("main.voice.realtime.view.agents",{url:"/agents",controller:"VoiceRealtimeViewAgentCtrl",templateUrl:"app/voice/realtime/view/agent/agent.html"}).state("main.voice.realtime.view.areports",{url:"/areport",controller:"VoiceRealtimeViewAgentReportCtrl",templateUrl:"app/voice/realtime/view/areport/report.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound",{url:"/inbound",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={routesByPage:{name:"10",value:10}},a.routesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.routes={checked:[]},a.check=function(b){b?a.routes.checked=angular.copy(_.pluck(a.displayedRoutes,"id")):a.routes.checked=[]},a.getRoutes=function(b){return _.map(a.displayedRoutes,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_extension"),b.url="/api/voice/extensions/route/inbound",h.getPage(b).then(function(c){a.displayedRoutes=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.routesByPage,a.displayedRoutes.length),e.updateTableConfig(a.conf.routesByPage,a.displayedRoutes.length)}),c.socket.on("voice_extension:save",function(c){"inbound"===c.type&&a.initList(b)}),c.socket.on("voice_extension:remove",function(c){"inbound"===c.type&&(a.routes.checked=_.without(a.routes.checked,c.id),a.initList(b))})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/extensions/"+a).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/extensions/",{params:{id:a.routes.checked}}).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound.list",{url:"/list",templateUrl:"app/voice/route/inbound/list/list.html",controller:"VoiceRouteInboundListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundViewCtrl",["$scope","$http","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=c,a.$application=j.application,a.$interval=k.interval,a.initApplication=function(){a.forms={settings:void 0,interval:void 0},a.application={VoiceExtensionId:d.id,type:"inbound"},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""}},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from.toLowerCase(),a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to.toLowerCase())):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from.toLowerCase(),a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to.toLowerCase())):e="*",b+","+c+","+d+","+e},a.$watch("main.app",function(c){if(c){var e,f;switch(d.appId||(a.application={VoiceExtensionId:d.id,type:"inbound",interval:a.application.interval}),c){case"Queue":e="api/voice/queues",f="/api/uploads";break;case"Playback":e="/api/uploads";break;case"AGI":e="/api/square/projects";break;case"Goto":e="/api/voice/contexts";break;default:e=null,f=null}e&&b.get(e).success(function(b){a.items="Playback"!==c?b.rows:b}),f&&b.get(f).success(function(b){a.items2=b})}},!0),a.getIntervals=function(){b.get("/api/intervals").success(function(b){a.Intervals=b.rows,e.syncUpdates("interval",a.Intervals)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.getRouteApplications=function(){b.get("/api/voice/extensions/"+d.id+"/applications").success(function(b){a.routeApplications=b,e.unsyncUpdates("voice_extension"),e.socket.on("voice_extension:remove",function(b){b.where.appGroup&&_.remove(a.routeApplications,function(a){return b.where.appGroup==a.appGroup})}),e.socket.on("voice_extension:save",function(b){if(b.VoiceExtensionId===d.id&&b.isApp){var c=_.find(a.routeApplications,{id:b.id});c||a.routeApplications.push(b)}})})},a.sortableOptions={stop:function(){b.post("api/voice/extensions/"+d.id+"/applications",{applications:_.pluck(a.routeApplications,"appGroup")}).success(function(b){a.getRouteApplications()}).error(function(a){console.error(a)})},"ui-floating":!0},a.getRoute=function(){b.get("/api/voice/extensions/"+d.id).success(function(b){a.route=b,e.socket.on("voice_extension:update",function(b){b.id==d.id&&(a.route=b)})}).error(function(a){f.path("/voice/routes/inbound/list")})},a.getApplication=function(){b.get("/api/voice/extensions/applications/"+d.appId).success(function(b){var c=_.filter(a.$application.applications,function(a){return a.value===b.app});if(c.length>0&&!b.customApp?a.main.app=b.app:a.main.app="custom",a.application=b,a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),"Queue"===b.app&&(a.application.app_options=b.app_options?b.app_options.split(","):[]),a.interval.intType=b.IntervalId?"list":"*,*,*,*"===b.interval?"always":"custom",a.interval.IntervalId=b.IntervalId,!b.IntervalId){var d,e=b.interval?b.interval.split(","):["*","*","*","*"];e.forEach(function(b,c){switch(c){case 0:"*"!==b?(d=b.split("-"),a.interval.t_from=moment(d[0],"HH:mm"),a.interval.t_to=moment(d[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==b?(d=b.split("-"),a.interval.wd_from=_.capitalize(d[0]),a.interval.wd_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==b?(d=b.split("-"),a.interval.md_from=d[0],a.interval.md_to=d[1]?d[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==b?(d=b.split("-"),a.interval.m_from=_.capitalize(d[0]),a.interval.m_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}).error(function(a){f.path("/voice/routes/inbound/view/"+d.id+"/applications")})},a.updateRoute=function(){var e=angular.copy(a.route);b.put("/api/voice/extensions/"+d.id,e).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){i.show(c.instant(b.message),"danger"),a.route=e})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,e.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.createItem=function(){switch(a.application.app=a.main.app,a.application.exten=a.route.exten,a.application.context=a.route.context,a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.post("/api/voice/extensions/",a.application).success(function(){f.path("/voice/routes/inbound/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.updateItem=function(){switch(a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.put("/api/voice/extensions/applications/"+d.appId,a.application).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),f.path("/voice/routes/inbound/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.deleteItem=h.confirm["delete"](function(d){b["delete"]("/api/voice/extensions/"+d).success(function(){a.getRouteApplications(),i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(c.instant(a.message),"danger")})}),a.goNext=function(){g.wizard().next()},a.previous=function(){g.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){e.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound.view",{url:"/view/:id",templateUrl:"app/voice/route/inbound/view/view.html",controller:"VoiceRouteInboundViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.routes.inbound.view.settings",{url:"/settings",templateUrl:"app/voice/route/inbound/view/view.settings.html"}).state("main.voice.routes.inbound.view.applications",{url:"/applications",templateUrl:"app/voice/route/inbound/view/view.applications.html",cache:!1}).state("main.voice.routes.inbound.view.application",{url:"/application",templateUrl:"app/voice/route/inbound/view/view.application.html",authenticate:!0}).state("main.voice.routes.inbound.view.applications.settings",{url:"/settings/:appId",templateUrl:"app/voice/route/inbound/view/view.applicationSettings.html",authenticate:!0,controller:"VoiceRouteInboundViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={route:void 0},a.item={type:"inbound",appdata:"Inbound Call",context:"from-voip-provider"},a.next=function(){b.post("/api/voice/extensions/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_ROUTE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/extensions/",a.item).success(function(a){d.path("/voice/routes/inbound/view/"+a.id+"/applications")}).error(function(a){e.show(g.instant(a.message),"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound.wizard",{url:"/wizard",templateUrl:"app/voice/route/inbound/wizard/wizard.html",controller:"VoiceRouteInboundWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal",{url:"/internal",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={routesByPage:{name:"10",value:10}},a.routesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.routes={checked:[]},a.check=function(b){b?a.routes.checked=angular.copy(_.pluck(a.displayedRoutes,"id")):a.routes.checked=[]},a.getRoutes=function(b){return _.map(a.displayedRoutes,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_extension"),b.url="/api/voice/extensions/route/internal",h.getPage(b).then(function(c){a.displayedRoutes=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.routesByPage,a.displayedRoutes.length),e.updateTableConfig(a.conf.routesByPage,a.displayedRoutes.length)}),c.socket.on("voice_extension:save",function(c){"internal"===c.type&&a.initList(b)}),c.socket.on("voice_extension:remove",function(c){"internal"===c.type&&(a.routes.checked=_.without(a.routes.checked,c.id),a.initList(b))})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/extensions/"+a).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/extensions/",{params:{id:a.routes.checked}}).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(d.instant(a.message),"danger"); })})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal.list",{url:"/list",templateUrl:"app/voice/route/internal/list/list.html",controller:"VoiceRouteInternalListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalViewCtrl",["$scope","$http","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=c,a.$application=j.application,a.$interval=k.interval,a.initApplication=function(){a.forms={settings:void 0,interval:void 0},a.application={VoiceExtensionId:d.id,type:"internal"},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""}},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from.toLowerCase(),a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to.toLowerCase())):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from.toLowerCase(),a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to.toLowerCase())):e="*",b+","+c+","+d+","+e},a.$watch("main.app",function(c){if(c){var e,f;switch(d.appId||(a.application={VoiceExtensionId:d.id,type:"internal",interval:a.application.interval}),c){case"Queue":e="api/voice/queues",f="/api/uploads";break;case"Playback":e="/api/uploads";break;case"AGI":e="/api/square/projects";break;case"Goto":e="/api/voice/contexts";break;default:e=null,f=null}e&&b.get(e).success(function(b){a.items="Playback"!==c?b.rows:b}),f&&b.get(f).success(function(b){a.items2=b})}},!0),a.getIntervals=function(){b.get("/api/intervals").success(function(b){a.Intervals=b.rows,e.syncUpdates("interval",a.Intervals)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.getRouteApplications=function(){b.get("/api/voice/extensions/"+d.id+"/applications").success(function(b){a.routeApplications=b,e.unsyncUpdates("voice_extension"),e.socket.on("voice_extension:remove",function(b){b.where.appGroup&&_.remove(a.routeApplications,function(a){return b.where.appGroup==a.appGroup})}),e.socket.on("voice_extension:save",function(b){if(b.VoiceExtensionId===d.id&&b.isApp){var c=_.find(a.routeApplications,{id:b.id});c||a.routeApplications.push(b)}})})},a.sortableOptions={stop:function(){b.post("api/voice/extensions/"+d.id+"/applications",{applications:_.pluck(a.routeApplications,"appGroup")}).success(function(b){a.getRouteApplications()}).error(function(a){console.error(a)})},"ui-floating":!0},a.getRoute=function(){b.get("/api/voice/extensions/"+d.id).success(function(b){a.route=b,e.socket.on("voice_extension:update",function(b){b.id==d.id&&(a.route=b)})}).error(function(a){console.error(a),f.path("/voice/routes/internal/list")})},a.getApplication=function(){b.get("/api/voice/extensions/applications/"+d.appId).success(function(b){var c=_.filter(a.applications,function(a){return a.value===b.app});if(c.length>0&&!b.customApp?a.main.app=b.app:a.main.app="custom",a.application=b,a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),"Queue"===b.app&&(a.application.app_options=b.app_options?b.app_options.split(","):[]),a.interval.intType=b.IntervalId?"list":"custom",a.interval.IntervalId=b.IntervalId,!b.IntervalId){var d,e=b.interval?b.interval.split(","):["*","*","*","*"];e.forEach(function(b,c){switch(c){case 0:"*"!==b?(d=b.split("-"),a.interval.t_from=moment(d[0],"HH:mm"),a.interval.t_to=moment(d[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==b?(d=b.split("-"),a.interval.wd_from=_.capitalize(d[0]),a.interval.wd_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==b?(d=b.split("-"),a.interval.md_from=d[0],a.interval.md_to=d[1]?d[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==b?(d=b.split("-"),a.interval.m_from=_.capitalize(d[0]),a.interval.m_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}).error(function(a){f.path("/voice/routes/internal/view/"+d.id+"/applications")})},a.updateRoute=function(){var e=angular.copy(a.route);b.put("/api/voice/extensions/"+d.id,e).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){i.show(c.instant(b.message),"danger"),a.route=e})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,e.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.createItem=function(){switch(a.application.app=a.main.app,a.application.exten=a.route.exten,a.application.context=a.route.context,a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.post("/api/voice/extensions/",a.application).success(function(){f.path("/voice/routes/internal/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.updateItem=function(){switch(a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.put("/api/voice/extensions/applications/"+d.appId,a.application).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),f.path("/voice/routes/internal/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.deleteItem=h.confirm["delete"](function(d){b["delete"]("/api/voice/extensions/"+d).success(function(b){a.getRouteApplications(),i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(c.instant(a.message),"danger")})}),a.goNext=function(){g.wizard().next()},a.previous=function(){g.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){e.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal.view",{url:"/view/:id",templateUrl:"app/voice/route/internal/view/view.html",controller:"VoiceRouteInternalViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.routes.internal.view.settings",{url:"/settings",templateUrl:"app/voice/route/internal/view/view.settings.html"}).state("main.voice.routes.internal.view.applications",{url:"/applications",templateUrl:"app/voice/route/internal/view/view.applications.html",cache:!1}).state("main.voice.routes.internal.view.application",{url:"/application",templateUrl:"app/voice/route/internal/view/view.application.html",authenticate:!0}).state("main.voice.routes.internal.view.applications.settings",{url:"/settings/:appId",templateUrl:"app/voice/route/internal/view/view.applicationSettings.html",authenticate:!0,controller:"VoiceRouteInternalViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={route:void 0},a.item={type:"internal",appdata:"Iternal Call",context:"from-sip"},a.next=function(){b.post("/api/voice/extensions/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_ROUTE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/extensions/",a.item).success(function(a){d.path("/voice/routes/internal/view/"+a.id+"/applications")}).error(function(a){e.show(g.instant(a.message),"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal.wizard",{url:"/wizard",templateUrl:"app/voice/route/internal/wizard/wizard.html",controller:"VoiceRouteInternalWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={routesByPage:{name:"10",value:10}},a.routesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.routes={checked:[]},a.check=function(b){b?a.routes.checked=angular.copy(_.pluck(a.displayedRoutes,"id")):a.routes.checked=[]},a.getRoutes=function(b){return _.map(a.displayedRoutes,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_extension"),b.url="/api/voice/extensions/route/outbound",h.getPage(b).then(function(c){a.displayedRoutes=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.routesByPage,a.displayedRoutes.length),d.updateTableConfig(a.conf.routesByPage,a.displayedRoutes.length)}),c.socket.on("voice_extension:save",function(c){"outbound"===c.type&&a.initList(b)}),c.socket.on("voice_extension:remove",function(c){"outbound"===c.type&&(a.routes.checked=_.without(a.routes.checked,c.id),a.initList(b))})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/extensions/"+a).success(function(){f(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/extensions/",{params:{id:a.routes.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(e.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound.list",{url:"/list",templateUrl:"app/voice/route/outbound/list/list.html",controller:"VoiceRouteOutboundListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound",{url:"/outbound",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","application","interval",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=d,a.$application=j.application,a.$interval=k.interval,a.initApplication=function(){a.forms={info:void 0,interval:void 0},a.application={VoiceExtensionId:e.id,type:"outbound"},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""},a.applications=[{name:"Dial",value:"Dial"},{name:"Custom",value:"custom"}]},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from.toLowerCase(),a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to.toLowerCase())):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from.toLowerCase(),a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to.toLowerCase())):e="*",b+","+c+","+d+","+e},a.$watch("main.app",function(c){if(c){var d,f;switch(e.appId||(a.application={VoiceExtensionId:e.id,type:"outbound",interval:a.application.interval}),c){case"Dial":d="api/trunks",f="/api/voice/contexts";break;default:d=null,f=null}d&&b.get(d).success(function(b){a.items="Dial"===c?b.rows:b}),f&&b.get(f).success(function(b){a.items2="Dial"===c?b.rows:b})}},!0),a.$watch("application.TrunkId",function(b){b&&(a.application.trunk=_.result(_.find(a.items,{id:b}),"name"))},!0),a.getIntervals=function(){b.get("/api/intervals").success(function(b){a.Intervals=b.rows,f.syncUpdates("interval",a.Intervals)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getRouteApplications=function(){b.get("/api/voice/extensions/"+e.id+"/applications").success(function(b){a.routeApplications=b,f.unsyncUpdates("voice_extension"),f.socket.on("voice_extension:remove",function(b){b.where.appGroup&&_.remove(a.routeApplications,function(a){return b.where.appGroup==a.appGroup})}),f.socket.on("voice_extension:save",function(b){if(b.VoiceExtensionId===e.id&&b.isApp){var c=_.find(a.routeApplications,{id:b.id});c||a.routeApplications.push(b)}})})},a.sortableOptions={stop:function(){b.post("api/voice/extensions/"+e.id+"/applications",{applications:_.pluck(a.routeApplications,"appGroup")}).success(function(){a.getRouteApplications()}).error(function(a){console.error(a)})},"ui-floating":!0},a.getRoute=function(){b.get("/api/voice/extensions/"+e.id).success(function(b){a.route=b,f.socket.on("voice_extension:update",function(b){b.id==e.id&&(a.route=b)})}).error(function(a){g.path("/voice/routes/outbound/list")})},a.getApplication=function(){b.get("/api/voice/extensions/applications/"+e.appId).success(function(b){var c=_.filter(a.applications,function(a){return a.value===b.app});if(c.length>0&&!b.customApp?a.main.app=b.app:a.main.app="custom",a.application=b,a.interval.intType=b.IntervalId?"list":"custom",a.interval.IntervalId=b.IntervalId,!b.IntervalId){var d,e=b.interval?b.interval.split(","):["*","*","*","*"];e.forEach(function(b,c){switch(c){case 0:"*"!==b?(d=b.split("-"),a.interval.t_from=moment(d[0],"HH:mm"),a.interval.t_to=moment(d[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==b?(d=b.split("-"),a.interval.wd_from=_.capitalize(d[0]),a.interval.wd_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==b?(d=b.split("-"),a.interval.md_from=d[0],a.interval.md_to=d[1]?d[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==b?(d=b.split("-"),a.interval.m_from=_.capitalize(d[0]),a.interval.m_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}).error(function(a){console.error(a),g.path("/voice/routes/outbound/view/"+e.id+"/routes")})},a.updateRoute=function(){var f=angular.copy(a.route);b.put("/api/voice/extensions/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.route=f})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.createItem=function(){switch(a.application.app=a.main.app,a.application.exten=a.route.exten,a.application.context=a.route.context,a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.post("/api/voice/extensions/",a.application).success(function(){g.path("/voice/routes/outbound/view/"+e.id+"/routes")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.updateItem=function(){switch(a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.put("/api/voice/extensions/applications/"+e.appId,a.application).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),g.path("/voice/routes/outbound/view/"+e.id+"/routes")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.deleteItem=i.confirm["delete"](function(e){b["delete"]("/api/voice/extensions/"+e).success(function(b){a.getRouteApplications(),c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){c.show(d.instant(a.message),"danger")})}),a.goNext=function(){h.wizard().next()},a.previous=function(){h.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){f.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound.view",{url:"/view/:id",templateUrl:"app/voice/route/outbound/view/view.html",controller:"VoiceRouteOutboundViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.routes.outbound.view.settings",{url:"/settings",templateUrl:"app/voice/route/outbound/view/view.settings.html"}).state("main.voice.routes.outbound.view.routes",{url:"/routes",templateUrl:"app/voice/route/outbound/view/view.routes.html",cache:!1}).state("main.voice.routes.outbound.view.route",{url:"/route",templateUrl:"app/voice/route/outbound/view/view.route.html",authenticate:!0}).state("main.voice.routes.outbound.view.routes.settings",{url:"/settings/:appId",templateUrl:"app/voice/route/outbound/view/view.routeSettings.html",authenticate:!0,controller:"VoiceRouteOutboundViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={route:void 0},a.item={type:"outbound",appdata:"Outbound Call",context:"from-sip"},a.next=function(){b.post("/api/voice/extensions/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_ROUTE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/extensions/",a.item).success(function(a){d.path("/voice/routes/outbound/view/"+a.id+"/routes")}).error(function(a){e.show(g.instant(a.message),"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound.wizard",{url:"/wizard",templateUrl:"app/voice/route/outbound/wizard/wizard.html",controller:"VoiceRouteOutboundWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes",{url:"/routes",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice",{url:"/voice",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={voicemailsByPage:{name:"10",value:10},labels:["mailbox","fullname","email"]},a.voicemailsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.voicemails={checked:[]},a.check=function(b,c){c?a.voicemails.checked=angular.copy(_.pluck(a.displayedVoicemails,"uniqueid")):a.voicemails.checked=[]},a.getVoicemails=function(b){return _.map(a.displayedVoicemails,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("voice_voicemail"),b.url="/api/voice/voicemails",h.getPage(b).then(function(c){a.displayedVoicemails=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.voicemailsByPage,a.displayedVoicemails.length),d.updateTableConfig(a.conf.voicemailsByPage,a.displayedVoicemails.length)}),f.socket.on("voice_voicemail:save",function(){a.initList(b)}),f.socket.on("voice_voicemail:remove",function(c){a.voicemails.checked=_.without(a.voicemails.checked,c.uniqueid),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/voicemails/"+a).success(function(){e.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){e.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/voicemails",{params:{uniqueid:a.voicemails.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails.list",{url:"/list",templateUrl:"app/voice/voicemail/list/list.html",controller:"VoiceVoicemailListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$sce","Modal","$location",function(a,b,c,d,e,f,g,h,i){a.getVoicemail=function(){b.get("/api/voice/voicemails/"+e.uniqueid).success(function(b){delete b.password,delete b.stamp,a.voicemail=b}).error(function(a){console.error(a),i.path("/voice/voicemails/list")})},a.updateVoiceVoicemail=function(){var f=angular.copy(a.voicemail);b.put("/api/voice/voicemails/"+e.uniqueid,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.voicemail=f})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(a.message,"danger")})},a.getMessages=function(){b.get("/api/voice/voicemails/"+e.uniqueid+"/messages/").success(function(b){a.voicemailMessages=b,f.syncUpdates("voice_voicemail_messages",a.voicemailMessages)}).error(function(a){c.show(a.message,"danger")})},a.encodeRecording=function(a){return g.trustAsResourceUrl("data:audio/ogg;base64,"+j(a.data))},a.returnMessageDate=function(a){return a.split("T")[0]},a.returnDuration=function(a){return 1e3*a},a.deleteItem=h.confirm["delete"](function(a){b["delete"]("/api/voice/voicemails/messages/"+a+"/delete").success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){console.log(a),c.show(a.message,"danger")})});var j=function(a){for(var b=new Uint8Array(a),c=b.byteLength,d="",e=0;c>e;e++)d+=String.fromCharCode(b[e]);return window.btoa(d)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails.view",{url:"/view/:uniqueid",templateUrl:"app/voice/voicemail/view/view.html",controller:"VoiceVoicemailViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.voicemails.view.settings",{url:"/settings",templateUrl:"app/voice/voicemail/view/view.settings.html"}).state("main.voice.voicemails.view.messages",{url:"/messages",templateUrl:"app/voice/voicemail/view/view.messages.html"})}]),angular.module("xCallyShuttleApp").controller("VoicemailCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails",{url:"/voicemails",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.initWizard=function(){a.forms={},a.item={}},a.next=function(){b.post("/api/voice/voicemails/validate/",a.item).success(function(a){a.length?e.show(g.instant("MESSAGE_EXIST_MAILBOX"),"danger"):c.wizard().next()}).error(function(a){e.show(a.message,"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){a.item.customer_id=a.item.mailbox,b.post("/api/voice/voicemails/",a.item).success(function(){d.path("/voice/voicemails/list")}).error(function(a){e.show(a.message,"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails.wizard",{url:"/wizard",templateUrl:"app/voice/voicemail/wizard/wizard.html",controller:"VoiceVoicemailWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={dashboardsByPage:{name:"10",value:10}},a.dashboardsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.dashboards={checked:[]},a.check=function(b,c){c?a.dashboards.checked=angular.copy(_.pluck(a.displayedDashboards,"id")):a.dashboards.checked=[]},a.getDashboards=function(b){return _.map(a.displayedDashboards,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){b.url="/api/dashboards",h.getPage(b).then(function(c){a.displayedDashboards=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.dashboardsByPage,a.displayedDashboards.length),d.updateTableConfig(a.conf.dashboardsByPage,a.displayedDashboards.length)}),c.socket.on("dashboard:save",function(){a.initList(b)}),c.socket.on("dashboard:remove",function(c){a.dashboards.checked=_.without(a.dashboards.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/dashboards/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/dashboards",{params:{id:a.dashboards.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/yourdashboard/list/create.modal.html",controller:"YourdashboardListCreateModalCtrl"});a.result.then(function(a){b.post("/api/dashboards",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards.list",{url:"/list",templateUrl:"app/yourdashboard/list/list.html",controller:"YourdashboardListCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardShowCtrl",["$scope","localStorageService","$http","xAlert","$translate","Auth","$stateParams","$location",function(a,b,c,d,e,f,g,h){a.Auth=f,a.dashboard={name:"dashboard",structure:"4-8",enableconfirmdelete:!0,editable:f.isAdmin()?!0:!1,maximizable:!0,collapsible:!0},a.getDashboard=function(){c.get("/api/dashboards/"+g.id).success(function(b){b.model=JSON.parse(b.model),a.dashboard=_.merge(a.dashboard,b)}).error(function(a){h.path("/yourdashboards/list")})};var i=function(b,f,h){var i=angular.copy(a.dashboard);i.name=a.dashboard.model.title,i.model=JSON.stringify(i.model),c.put("/api/dashboards/"+g.id,i).success(function(){d.show(e.instant("MESSAGE_DASHBOARD_SAVED")+"!","success")}).error(function(b){d.show(b.message,"danger"),i.model=JSON.parse(i.model),i.name="dashboard",a.dashboard=i})};a.$on("adfDashboardChanged",i),a.$on("destroy",function(){console.log("main dashboard")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards.show",{url:"/show/:id",templateUrl:"app/yourdashboard/show/show.html",controller:"YourdashboardShowCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.radioSwitch={isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.getDashboard=function(){b.get("/api/dashboards/"+e.id).success(function(b){delete b.model,a.dashboard=b}).error(function(a){f.path("/yourdashboards/list")})},a.updateDashboard=function(){var f=angular.copy(a.dashboard);b.put("/api/dashboards/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.dashboard=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards.view",{url:"/view/:id",templateUrl:"app/yourdashboard/view/view.html",controller:"YourdashboardViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.yourdashboards.view.settings",{url:"/settings",templateUrl:"app/yourdashboard/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards",{url:"/yourdashboards",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ZendeskListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.pluck(a.displayedZdAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedZdAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("zendesk_account"),b.url="/api/zendesk/accounts",h.getPage(b).then(function(d){a.displayedZdAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedZdAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedZdAccounts.length); }),f.socket.on("zendesk_account:save",function(){a.initList(b)}),f.socket.on("zendesk_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/zendesk/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/zendesk/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/zendesk/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.list",{url:"/list",templateUrl:"app/zendesk/list/list.html",controller:"ZendeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){g.unsyncUpdates("zendesk_configuration"),g.unsyncUpdates("zendesk_field")}),a.initView=function(){b.get("/api/zendesk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){h.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/zendesk/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/zendesk/configurations",{params:{ZendeskAccountId:c.id}}).success(function(b){a.configurations=b,g.socket.on("zendesk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.deleteConfiguration=i.confirm["delete"](function(a){b["delete"]("api/zendesk/configurations/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.ZendeskAccountId=c.id,b.post("api/zendesk/configurations",a.configuration).success(function(a){e.path("zendesk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){h.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/zendesk/accounts/"+c.id+"/fields").success(function(b){_.remove(b,function(a){return"subject"===a.type||"description"===a.type||"assignee"===a.type}),a.accountFields=b}).error(function(a){h.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/zendesk/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,g.socket.on("zendesk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){h.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/zendesk/fields/"+a.id).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/zendesk/fields/"+a.id,a).success(function(){}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){b.content="",a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"id",b);return c?c.system_field_options?c.system_field_options:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view",{url:"/view/:id",templateUrl:"app/zendesk/view/view.html",controller:"ZendeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.zendesk.view.account",{url:"/account",templateUrl:"app/zendesk/view/view.account.html"}).state("main.zendesk.view.configurations",{url:"/configurations",templateUrl:"app/zendesk/view/view.configurations.html"}).state("main.zendesk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/zendesk/view/view.configurationSettings.html",controller:"ZendeskViewCtrl"}).state("main.zendesk.view.configuration",{url:"/configuration",templateUrl:"app/zendesk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("ZendeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={},a.item.authType="password"},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/zendesk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/zendesk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.wizard",{url:"/wizard",templateUrl:"app/zendesk/wizard/wizard.html",controller:"ZendeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk",{url:"/zendesk",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").service("application",function(){var a={applications:[{name:"Queue",value:"Queue"},{name:"Playback",value:"Playback"},{name:"Dial",value:"Dial"},{name:"Cally-Square IVR",value:"AGI"},{name:"GoTo",value:"Goto"},{name:"Hangup",value:"Hangup"},{name:"Set",value:"Set"},{name:"Custom",value:"custom"},{name:"VoiceMail",value:"Voicemail"}],queueOptions:[{value:"C",name:"APPLICATION_QUEUE_OPTION_C"},{value:"c",name:"APPLICATION_QUEUE_OPTION_c"},{value:"d",name:"APPLICATION_QUEUE_OPTION_d"},{value:"F",name:"APPLICATION_QUEUE_OPTION_F"},{value:"h",name:"APPLICATION_QUEUE_OPTION_h"},{value:"H",name:"APPLICATION_QUEUE_OPTION_H"},{value:"n",name:"APPLICATION_QUEUE_OPTION_n"},{value:"i",name:"APPLICATION_QUEUE_OPTION_i"},{value:"I",name:"APPLICATION_QUEUE_OPTION_I"},{value:"r",name:"APPLICATION_QUEUE_OPTION_r"},{value:"R",name:"APPLICATION_QUEUE_OPTION_R"},{value:"t",name:"APPLICATION_QUEUE_OPTION_t"},{value:"T",name:"APPLICATION_QUEUE_OPTION_T"},{value:"w",name:"APPLICATION_QUEUE_OPTION_w"},{value:"W",name:"APPLICATION_QUEUE_OPTION_W"},{value:"k",name:"APPLICATION_QUEUE_OPTION_k"},{value:"K",name:"APPLICATION_QUEUE_OPTION_K"},{value:"x",name:"APPLICATION_QUEUE_OPTION_x"},{value:"X",name:"APPLICATION_QUEUE_OPTION_X"}],audioOptions:[{value:"skip",name:"APPLICATION_PLAYBACK_OPTION_SKIP"},{value:"noanswer",name:"APPLICATION_PLAYBACK_OPTION_NOANSWER"},{value:"j",name:"APPLICATION_PLAYBACK_OPTION_J"},{value:"say",name:"APPLICATION_PLAYBACK_OPTION_SAY"}],hangupCauses:[{value:"",name:"--"},{value:"1",name:"APPLICATION_HANGUP_CAUSE_1"},{value:"16",name:"APPLICATION_HANGUP_CAUSE_16"},{value:"17",name:"APPLICATION_HANGUP_CAUSE_17"},{value:"18",name:"APPLICATION_HANGUP_CAUSE_18"},{value:"21",name:"APPLICATION_HANGUP_CAUSE_21"},{value:"22",name:"APPLICATION_HANGUP_CAUSE_22"},{value:"27",name:"APPLICATION_HANGUP_CAUSE_27"},{value:"38",name:"APPLICATION_HANGUP_CAUSE_38"},{value:"41",name:"APPLICATION_HANGUP_CAUSE_41"}],intTypes:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"custom",name:"APPLICATION_CUSTOM"},{value:"list",name:"APPLICATION_FROM_LIST"}]};return{application:a}}),angular.module("xCallyShuttleApp").factory("Auth",["$location","$rootScope","$http","User","$cookieStore","$q",function(a,b,c,d,e,f){var g={};return e.get("token")&&(g=d.me()),{login:function(a,h){var i=h||angular.noop,j=f.defer();return c.post("/auth/local",{name:a.name,password:a.password,remember:a.remember}).success(function(a){return e.put("token",a.token),e.put("userId",a.userId),g=d.me({},function(){b.$broadcast("login")}),j.resolve(a),i()}).error(function(a){return this.logout(),j.reject(a),i(a)}.bind(this)),j.promise},loginWithToken:function(a,b,c){e.put("token",a),e.put("userId",b),e.put("name",c),g=d.me()},logout:function(){c.put("/api/users/"+g.id,{online:!1}).success(function(){e.remove("token"),e.remove("userId"),g={},b.$broadcast("logout")}).error(function(a){return a})},createUser:function(a,b){var c=b||angular.noop;return d.save(a,function(b){return e.put("token",b.token),g=d.me(),c(a)},function(a){return this.logout(),c(a)}.bind(this)).$promise},changePassword:function(a,b,c){var e=c||angular.noop;return d.changePassword({id:g.id},{oldPassword:a,newPassword:b},function(a){return e(null,a)},function(a){return e(a)}).$promise},getCurrentUser:function(){return g},isLoggedIn:function(){return g.hasOwnProperty("role")},isLoggedInAsync:function(a){g.hasOwnProperty("$promise")?g.$promise.then(function(){a(!0)})["catch"](function(){a(!1)}):a(g.hasOwnProperty("role")?!0:!1)},isAdmin:function(){return"admin"===g.role},getRole:function(){return g.role},getToken:function(){return e.get("token")},getUserId:function(){return console.log(e.get("userId")),e.get("userId")},getName:function(){return e.get("name")}}}]),angular.module("xCallyShuttleApp").factory("User",["$resource",function(a){return a("/api/users/:id/:controller",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},me:{method:"GET",params:{id:"me"}}})}]),angular.module("xCallyShuttleApp").service("automations",function(){var a={voice:{conditions:[],actions:[]},mail:{conditions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select",operators:"equals"},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",propertyField:"number",operators:"noequals"}],actions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select"}]},chat:{conditions:[],actions:[]},fax:{conditions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select",operators:"equals"},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",propertyField:"number",operators:"noequals"}],actions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select"}]}},b=["voice","mail","chat","fax"],c={equals:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"}],all:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"},{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}],noequals:[{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}]},d={voice:{},mail:{status:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_PENDING",value:"PENDING"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"},{name:"APPLICATION_STATUS_SOLVED",value:"SOLVED"}]},chat:{},fax:{status:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_PENDING",value:"PENDING"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"},{name:"APPLICATION_STATUS_SOLVED",value:"SOLVED"}]}};return{automations:a,properties:d,channels:b,operators:c}}),angular.module("xCallyShuttleApp").controller("FooterController",["$scope","$http",function(a,b){a.$on("$includeContentLoaded",function(){Layout.initFooter()}),a.initFooter=function(){b.get("/api/settings/info").success(function(b){a.info=b}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("HeaderController",["$scope","$rootScope","$location","$state","$http","$notification","Auth","xAlert","socket","ngAudio","settings","toastr","localStorageService",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.toggleQuickSidebar=function(){k.layout.pageQuickSidebarOpened=!k.layout.pageQuickSidebarOpened,k.layout.pageQuickSidebarOpened||m.remove("chatRoomId")},a.initHeader=function(){var c=j.load("api/xchatty/assets?resource=notification/xc_blubb.mp3");"agent"===g.getCurrentUser().role&&(i.socket.on("report_mail:save",function(a){c.play();var b=f("MAIL CHANNEL",{icon:"assets/images/media/channels/mail64.png",body:"NEW Incoming Mail Message!",delay:1e3*a.timeslot});b.$on("click",function(){e.put("/api/report/mails/"+a.id,{connect:!0}).success(function(){b.close(),h.show("Mail properly assigned","success")}).error(function(a){h.show(a.message,"danger")})})}),i.socket.on("report_chat:save",function(a){c.play();var d=f("CHAT CHANNEL",{icon:"assets/images/media/channels/chat64.png",body:"NEW Incoming Chat Visitor!",delay:1e3*a.timeslot});d.$on("click",function(){e.put("/api/report/chats/"+a.id,{connect:!0}).success(function(){d.close(),h.show("Chat properly assigned","success"),b.$broadcast("chatMessageEvent",{type:"external",chatRoomId:a.chatroomid})}).error(function(a){h.show(a.message,"danger")})})}),i.socket.on("chat_message:save",function(a){var d=m.get("chatRoomId");if(!d||d!==a.ChatRoomId){c.play();var e=f(a.User.fullname,{icon:"assets/images/media/channels/chat64.png",body:a.body.length>35?a.body.substring(0,35)+"...":a.body,delay:1e4});e.$on("click",function(){b.$broadcast("chatMessageEvent",{type:"internal",chatRoomId:a.ChatRoomId})})}})),e({url:"/api/fax/user_has_queues",method:"GET",params:{UserId:g.getCurrentUser().id}}).success(function(b){a.faxQueues=_.pluck(b,"FaxQueueId"),a.faxQueues.forEach(function(a){i.socket.on("FAX:QUEUE:"+a,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})})}),i.socket.on("FAX:AGENT:"+g.getCurrentUser().id,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){b(g.getCurrentUser().id),l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})})}).error(function(a){console.error(a)}),i.socket.on("user_has_fax_queue:save",function(b){b=_.map(b,function(a){return a.UserId=parseInt(a.UserId,10),a}),b=_.find(b,{UserId:g.getCurrentUser().id}),b&&-1===_.indexOf(a.faxQueues,b.FaxQueueId)&&(a.faxQueues.push(b.FaxQueueId),i.socket.on("FAX:QUEUE:"+b.FaxQueueId,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){b(g.getCurrentUser().id),l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})}))}),i.socket.on("user_has_fax_queue:remove",function(b){_.indexOf(b.where.UserId,g.getCurrentUser().id.toString())>=0&&_.indexOf(a.faxQueues,b.where.FaxQueueId)>=0&&(a.faxQueues=_.remove(a.faxQueues,b.where.FaxQueueId),i.socket.removeAllListeners("FAX:QUEUE:"+b.where.FaxQueueId))})},a.logout=function(){e.get("/auth/local/logout").success(function(){g.logout(),c.path("/login")}).error(function(a){console.error(a)})},a.isActive=function(a){return a===c.path()}}]),angular.module("xCallyShuttleApp").service("interval",function(){var a={months:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"jan",name:"APPLICATION_JANUARY"},{value:"feb",name:"APPLICATION_FEBRUARY"},{value:"mar",name:"APPLICATION_MARCH"},{value:"apr",name:"APPLICATION_APRIL"},{value:"may",name:"APPLICATION_MAY"},{value:"jun",name:"APPLICATION_JUNE"},{value:"jul",name:"APPLICATION_JULY"},{value:"aug",name:"APPLICATION_AUGUST"},{value:"sep",name:"APPLICATION_SEPTEMBER"},{value:"oct",name:"APPLICATION_OCTOBER"},{value:"nov",name:"APPLICATION_NOVEMBER"},{value:"dec",name:"APPLICATION_DECEMBER"}],daysOfWeek:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"mon",name:"APPLICATION_MONDAY"},{value:"tue",name:"APPLICATION_TUESDAY"},{value:"wed",name:"APPLICATION_WEDNESDAY"},{value:"thu",name:"APPLICATION_THURSDAY"},{value:"fri",name:"APPLICATION_FRIDAY"},{value:"sat",name:"APPLICATION_SATURDAY"},{value:"sun",name:"APPLICATION_SUNDAY"}],daysOfMonth:["always",1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]};return{interval:a}}),angular.module("xCallyShuttleApp").factory("Modal",["$rootScope","$uibModal",function(a,b){function c(c,d){console.log("openModal",d);var e=a.$new();return c=c||{},d=d||"modal-default",angular.extend(e,c),b.open({templateUrl:"components/modal/delete.html",windowClass:d,scope:e})}return{confirm:{"delete":function(a){return a=a||angular.noop,function(){var b,d=Array.prototype.slice.call(arguments),e=d.shift();b=c({modal:{dismissable:!0,title:"Confirm Delete",html:"

Are you sure you want to delete"+(e?" "+e+"":" selected items")+"?

",buttons:[{classes:"btn red",text:"Delete",click:function(a){b.close(a)}},{classes:"btn default",text:"Cancel",click:function(a){b.dismiss(a)}}]}},"over-topbar center"),b.result.then(function(b){a.apply(b,d)})}}}}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarControllerAddModal",["$scope","$uibModalInstance","Agent","items",function(a,b,c,d){a.items=d,a.agents=c.get(function(b){a.agents=b,a.items.forEach(function(b){_.remove(a.agents.rows,{id:b.id})})}),a.selected={items:[]},a.modal={title:"APPLICATION_AGENTS_SELECTION"},a.ok=function(){b.close(_.union(_.pluck(a.selected.items,"id"),_.pluck(a.items,"id")))},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarControllerCloseModal",["$scope","$uibModalInstance",function(a,b){a.modal={title:"APPLICATION_CONFIRM_CLOSE",text:"MESSAGE_ARE_YOU_SURE_YOU_WANT_TO_CLOSE_THE_CHAT"},a.ok=function(){b.close()},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarController",["$scope","$rootScope","$window","$http","$uibModal","$log","$timeout","Auth","Agent","User","ChatRoom","ChatMessage","socket","settings","localStorageService","xAlert","$translate",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){a.emojiMessage={},a.options={link:!0,linkTarget:"_blank",pdf:{embed:!1},image:{embed:!0},audio:{embed:!0},code:{highlight:!0,lineNumbers:!1},basicVideo:!1,video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,ytAuthKey:"_nkO9h1A7HlVyiUICO17oA"}};var r=a.currentUser=h.getCurrentUser();a.message={body:"",user:""},a.$on("$includeContentLoaded",function(){o.get("chatRoomId")&&k.get({id:o.get("chatRoomId")},t,u),o.get("currentTab")&&(a.currentTab=o.get("currentTab"))});var s=angular.element(c);a.getWindowDimensions=function(){return{h:s.height(),w:s.width()}},a.$watch(a.getWindowDimensions,function(b){a.style={height:b.h-46-46-46+"px"},a.style2={height:b.h-46-46-46-180+"px"}},!0),s.bind("resize",function(){a.$apply()}),a.agents=i.get({page:0,per_page:1e3},function(){m.syncUpdates("agent",a.agents.rows)}),a.users=j.get({page:0,per_page:1e3},function(){m.syncUpdates("user",a.users.rows)}),a.chatRooms=k.me(function(b){a.chatRooms=b,m.syncUpdates("chat_room",a.chatRooms)},function(a){console.error(a)}),a.currentTab=0,a.messagesTab=!1,b.$on("chatMessageEvent",function(b,c){switch(c.type){case"internal":a.currentTab=0;break;case"external":a.currentTab=2}k.get({id:c.chatRoomId},t,u)}),a.goToTab=function(b){a.currentTab=b,a.messagesTab=!1,a.chatRoom=null,o.set("currentTab",a.currentTab),o.set("messagesTab",a.messagesTab),o.remove("chatRoomId"),m.unsyncUpdates("chat_message"),m.unsyncUpdates("chat_room")},a.goToMessage=function(a,b){a?k.users({users:[r.id,a]},t,u):k.get({id:b},t,u)},a.sendMessage=function(){a.message.body.trim().length&&l.save({ChatRoomId:a.chatRoom.id,body:a.message.body},function(){a.message.body=""},function(a){console.error(a)})},a.goBack=function(){a.messagesTab=!1,a.chatRoom=null,o.set("messagesTab",a.messagesTab),o.remove("chatRoomId"),m.unsyncUpdates("chat_message"),m.unsyncUpdates("user_has_chat_room")},a.chatRoomsGroupsGreaterThan=function(a){return function(b){return b.Users?"external"!==b.type&&b.Users.length>a:!1}},a.closeChatRoom=function(a,b){var c=e.open({animation:!0,size:b,templateUrl:"components/quickSidebar/modal/close.html",controller:"QuickSidebarControllerCloseModal"});c.result.then(function(){d.put("/api/chat/rooms/"+a,{status:"close"}).then(function(){p.show(q.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){p.show(a.data.message,"danger")})},function(){f.info("Modal dismissed at: "+new Date)})},a.addAgent=function(b,c){var g=e.open({animation:!0,size:c,templateUrl:"components/quickSidebar/modal/add.html",controller:"QuickSidebarControllerAddModal",resolve:{items:function(){return _.map(a.chatRoom.Users?a.chatRoom.Users:[],function(a){return{id:a.id,fullname:a.fullname}})}}});g.result.then(function(c){d.put("/api/chat/rooms/"+b+"/users",{users:c}).then(function(b){m.unsyncUpdates("chat_message"),a.chatRoom=b.data,a.currentTab=3,a.messagesTab=!0;var c=_.find(a.chatRooms,{id:b.id}),d=a.chatRooms.indexOf(c);c?_.merge(a.chatRooms[d],b.data):a.chatRooms.push(b.data),m.socket.on("chat_message:save",function(c){c.ChatRoomId===b.data.id&&(a.chatRoom.ChatMessages.push(c),angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last"))}),p.show(q.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){p.show(a.data.message,"danger")})},function(){f.info("Modal dismissed at: "+new Date)})};var t=function(b){a.messagesTab=!0,n.layout.pageQuickSidebarOpened=!0,o.set("chatRoomId",b.id),o.set("messagesTab",a.messagesTab),a.chatRoom=b;var c=_.find(a.chatRooms,{id:b.id}),d=a.chatRooms.indexOf(c);c?_.merge(a.chatRooms[d],b):a.chatRooms.push(b),g(function(){angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last")},1e3),m.socket.on("chat_message:save",function(c){c.ChatRoomId===b.id&&(a.chatRoom.ChatMessages.push(c),angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last"))}),m.socket.on("chat_room:save",function(b){b.id===a.chatRoom.id&&(a.chatRoom.status=b.status)})},u=function(a){console.error(a)};a.$on("$destroy",function(){m.unsyncUpdates("agent"),m.unsyncUpdates("user")})}]),angular.module("xCallyShuttleApp").directive("resizeQuickSidebar",["$window",function(a){return function(b){var c=angular.element(a);b.getWindowDimensions=function(){return{h:c.height(),w:c.width()}},b.$watch(b.getWindowDimensions,function(a){b.style={height:a.h-46-46-46+"px"}},!0),c.bind("resize",function(){b.$apply()})}}]),angular.module("xCallyShuttleApp").controller("SidebarController",["$scope","$rootScope","$resource","$location","Auth","$http","xAlert","$stateParams","socket",function(a,b,c,d,e,f,g,h,i){a.Auth=e,a.$stateParams=h,a.$on("$includeContentLoaded",function(){Metronic.init(),Layout.initSidebar()}),a.isAssociated=function(a){if(e.isAdmin())return!0;if(e.getCurrentUser().Modules)for(var b=0;b",name:"APPLICATION_NOT_EQUALS_TO"}],all:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"},{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}],noequals:[{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}]},c={voice:{},mail:{},chat:{},fax:{}},d=["voice","mail","chat","fax"];return{triggers:a,properties:c,operators:b,channels:d}}),function(a,b){angular.module("adf.widget.counter",["adf.provider"]).value("apiServiceUrlCounter","/api/widgets/counter").config(["dashboardProvider",function(a){a.widget("counter",{title:"Counter",description:"Counter for db results",templateUrl:"{widgetsPath}/counter/src/view.html",controller:"apiwidgetCounterViewCtrl",edit:{templateUrl:"{widgetsPath}/counter/src/edit.html",controller:"apiwidgetCounterEditCtrl"}})}]).service("apiServiceCounter",["$q","$http","apiServiceUrlCounter",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiwidgetCounterEditCtrl",["$scope",function(a){a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.colors=[{name:"Blue",value:"blue-madison"},{name:"Red",value:"red-intense"},{name:"Green",value:"green-haze"},{name:"Purple",value:"purple-plum"},{name:"Orange",value:"yellow-casablanca"},{name:"Yellow",value:"yellow-crusta"}],a.config.icons=[{name:"Talk bubbles",value:"fa-comments"},{name:"Bar Chart",value:"fa-bar-chart"},{name:"Shopping Cart",value:"fa-shopping-cart"},{name:"Globe",value:"fa-globe"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.color=a.config.color?a.config.color:"blue-madison",a.config.icon=a.config.icon?a.config.icon:"fa-comments",a.config.link=a.config.link?a.config.link:"#",a.config.linkText=a.config.linkText?a.config.linkText:"VIEW MORE"}]).controller("apiwidgetCounterViewCtrl",["$scope","$interval","apiServiceCounter",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.color=a.config.color?a.config.color:"blue-madison",a.config.icon=a.config.icon?a.config.icon:"fa-comments",a.config.link=a.config.link?a.config.link:"#",a.config.linkText=a.config.linkText?a.config.linkText:"VIEW MORE",a.counterApiCall=function(){a.config.condition&&a.config.report&&c.get(a.config).then(function(b){a.count=parseInt(b[0].count)})},a.counterApiCall();var d=b(function(){a.counterApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.counter").run(["$templateCache",function(a){a.put("{widgetsPath}/counter/src/edit.html","
{{$select.selected.name}}
{{$select.selected.name}}
{{$select.selected.name}}
"), -a.put("{widgetsPath}/counter/src/view.html",'
{{count}}
{{config.details}}
{{config.linkText}}
')}])}(window),function(a,b){angular.module("adf.widget.pie-chart",["adf.provider"]).value("apiServiceUrlPieChart","/api/widgets/piechart").config(["dashboardProvider",function(a){a.widget("pie-chart",{title:"Pie-Chart",description:"Display a pie-chart starting from DB values",templateUrl:"{widgetsPath}/pie-chart/src/view.html",controller:"apiWidgetPieChartViewCtrl",edit:{templateUrl:"{widgetsPath}/pie-chart/src/edit.html",controller:"apiWidgetPieChartEditCtrl"}})}]).service("apiServicePieChart",["$q","$http","apiServiceUrlPieChart",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report,fields:d.fields}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiWidgetPieChartEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetPieChartViewCtrl",["$scope","$interval","apiServicePieChart",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.pieChartApiCall=function(){a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){if(b&&1===b.length){a.labels=[],a.data=[];for(var c in b[0])a.labels.push(c),a.data.push(b[0][c])}else a.labels=[],a.data=[]})},a.pieChartApiCall();var d=b(function(){a.pieChartApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.pie-chart").run(["$templateCache",function(a){a.put("{widgetsPath}/pie-chart/src/edit.html",'
{{$select.selected.name}}
as
'),a.put("{widgetsPath}/pie-chart/src/view.html",'
')}])}(window),function(a,b){angular.module("adf.widget.table",["adf.provider"]).value("apiServiceUrlTable","/api/widgets/table").config(["dashboardProvider",function(a){a.widget("table",{title:"Table",description:"Show tabbed results from db",templateUrl:"{widgetsPath}/table/src/view.html",controller:"apiWidgetTableViewCtrl",edit:{templateUrl:"{widgetsPath}/table/src/edit.html",controller:"apiWidgetTableEditCtrl"}})}]).service("apiServiceTable",["$q","$http","apiServiceUrlTable",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report,fields:d.fields}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiWidgetTableEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetTableViewCtrl",["$scope","$interval","apiServiceTable",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.style={"max-height":a.config.height+"px",overflow:"scroll"},a.tableApiCall=function(){a.config.condition&&a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){a.results=b})},a.tableApiCall();var d=b(function(){a.tableApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.table").run(["$templateCache",function(a){a.put("{widgetsPath}/table/src/edit.html",'
{{$select.selected.name}}
as
'),a.put("{widgetsPath}/table/src/view.html",'
{{field.alias}}
{{result[field.alias]}}
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
')}])}(window),function(){angular.module("pdf",[]).directive("ngPdf",["$window",function(a){return{restrict:"E",templateUrl:function(a,b){return b.templateUrl?b.templateUrl:"partials/viewer.html"},link:function(b,c,d){var e=d.pdfUrl,f=null,g=d.page?d.page:1,h=d.scale>0?d.scale:1,i=c.find("canvas"),j=i[0],k=j.getContext("2d"),l=angular.element(a);l.on("scroll",function(){b.$apply(function(){b.scroll=l[0].scrollY})}),PDFJS.disableWorker=!0,b.pageNum=g,b.renderPage=function(a){f.getPage(a).then(function(a){var e,f,g,i={};"page-fit"!==d.scale||h?e=a.getViewport(h):(e=a.getViewport(1),f=c[0].clientWidth/e.width,g=c[0].clientHeight/e.height,h=Math.min(f,g)),j.height=e.height,j.width=e.width,i={canvasContext:k,viewport:e},a.render(i).promise.then(function(){"function"==typeof b.onPageRender&&b.onPageRender()})})},b.goPrevious=function(){b.pageToDisplay<=1||(b.pageNum=parseInt(b.pageNum)-1)},b.goNext=function(){b.pageToDisplay>=f.numPages||(b.pageNum=parseInt(b.pageNum)+1)},b.zoomIn=function(){return h=parseFloat(h)+.2,b.renderPage(b.pageToDisplay),h},b.zoomOut=function(){return h=parseFloat(h)-.2,b.renderPage(b.pageToDisplay),h},b.changePage=function(){b.renderPage(b.pageToDisplay)},b.rotate=function(){"rotate0"===j.getAttribute("class")?j.setAttribute("class","rotate90"):"rotate90"===j.getAttribute("class")?j.setAttribute("class","rotate180"):"rotate180"===j.getAttribute("class")?j.setAttribute("class","rotate270"):j.setAttribute("class","rotate0")},PDFJS.getDocument(e,null,null,b.onProgress).then(function(a){"function"==typeof b.onLoad&&b.onLoad(),f=a,b.renderPage(b.pageToDisplay),b.$apply(function(){b.pageCount=a.numPages})},function(a){a&&"function"==typeof b.onError&&b.onError(a)}),b.$watch("pageNum",function(a){b.pageToDisplay=parseInt(a),null!==f&&b.renderPage(b.pageToDisplay)})}}}])}(),function(a){a.module("angular-elastic-builder",["RecursionHelper"])}(window.angular),function(a){a.module("angular-elastic-builder").directive("elasticBuilder",["elasticQueryService",function(a){return{scope:{data:"=elasticBuilder"},templateUrl:"angular-elastic-builder/BuilderDirective.html",link:function(b){var c=b.data;b.filters=[],b.removeChild=function(a){b.filters.splice(a,1)},b.addRule=function(){b.filters.push({})},b.addGroup=function(){b.filters.push({type:"group",subType:"and",rules:[]})},b.$watch("data.needsUpdate",function(d){d&&(b.filters=a.toFilters(c.query,b.data.fields),b.data.needsUpdate=!1)}),b.$watch("filters",function(d){d&&(c.query=a.toQuery(b.filters,b.data.fields))},!0)}}}])}(window.angular),function(a){var b=a.module("angular-elastic-builder");b.directive("elasticBuilderChooser",["RecursionHelper","groupClassHelper",function(a,b){return{scope:{elasticFields:"=",item:"=elasticBuilderChooser",onRemove:"&"},templateUrl:"angular-elastic-builder/ChooserDirective.html",compile:function(c){return a.compile(c,function(a,c,d){var e=a.depth=+d.depth,f=a.item;a.getGroupClassName=function(){var a=e;return"group"===f.type&&a++,b(a)}})}}}])}(window.angular),function(a){var b=a.module("angular-elastic-builder");b.directive("elasticBuilderGroup",["RecursionHelper","groupClassHelper",function(a,b){return{scope:{elasticFields:"=",group:"=elasticBuilderGroup",onRemove:"&"},templateUrl:"angular-elastic-builder/GroupDirective.html",compile:function(c){return a.compile(c,function(a,c,d){var e=a.depth=+d.depth,f=a.group;a.addRule=function(){f.rules.push({})},a.addGroup=function(){f.rules.push({type:"group",subType:"and",rules:[]})},a.removeChild=function(a){f.rules.splice(a,1)},a.getGroupClassName=function(){return b(e+1)}})}}}])}(window.angular),function(a){var b=a.module("angular-elastic-builder");b.directive("elasticBuilderRule",[function(){return{scope:{elasticFields:"=",rule:"=elasticBuilderRule",onRemove:"&"},templateUrl:"angular-elastic-builder/RuleDirective.html",link:function(a){a.getType=function(){var b=a.elasticFields,c=a.rule.field;return b&&c?"boolean"===b[c].subType?"boolean":b[c].type:void 0}}}}])}(window.angular),function(a){var b=a.module("angular-elastic-builder");b.directive("elasticType",[function(){return{scope:{type:"=elasticType",rule:"=",guide:"="},template:'',link:function(a){a.getTemplateUrl=function(){var b=a.type;if(b)return b=b.charAt(0).toUpperCase()+b.slice(1),"angular-elastic-builder/types/"+b+".html"},a.booleans=["False","True"],a.booleansOrder=["True","False"],a.inputNeeded=function(){var b=["equals","notEquals","gt","gte","lt","lte"];return~b.indexOf(a.rule.subType)}}}}])}(window.angular),function(a){a.module("angular-elastic-builder").factory("groupClassHelper",function(){return function(a){var b=[""];return b[a%b.length]}})}(window.angular),function(a){function b(a,b){var c=a.map(d.bind(a,b));return c}function c(a,b){var c=a.map(e.bind(a,b)).filter(function(a){return!!a});return c}function d(a,b,c){c!==!1&&(c=!0);var e=Object.keys(b)[0],g={or:"group",and:"group",range:"number"},h=g[e]||"item",i=f(h);switch(e){case"or":case"and":i.rules=b[e].map(d.bind(b,a)),i.subType=e;break;case"missing":case"exists":i.field=b[e].field,i.subType={exists:"exists",missing:"notExists"}[e],delete i.value;break;case"term":case"terms":i.field=Object.keys(b[e])[0];var j=a[Object.keys(b[e])[0]];if("multi"===j.type){var k=b[e][i.field];"string"==typeof k&&(k=[k]),i.value=b[e][i.field]}else i.subType=c?"equals":"notEquals",i.value=b[e][i.field],"number"==typeof i.value&&(i.subType="boolean");break;case"range":i.field=Object.keys(b[e])[0],i.subType=Object.keys(b[e][i.field])[0],i.value=b[e][i.field][i.subType];break;case"not":i=d(a,b[e].filter,!1);break;default:i.field=Object.keys(b[e])[0]}return i}function e(a,b){var c={};if("group"===b.type)return c[b.subType]=b.rules.map(e.bind(b,a)).filter(function(a){return!!a}),c;var d=b.field,f=a[d];if(d){switch(f.type){case"term":case"multiterm":if("boolean"===f.subType&&(b.subType="boolean"),!b.subType)return;switch(b.subType){case"equals":case"boolean":if(void 0===b.value)return;c.term={},c.term[d]=b.value;break;case"notEquals":if(void 0===b.value)return;c.not={filter:{term:{}}},c.not.filter.term[d]=b.value;break;case"exists":c.exists={field:d};break;case"notExists":c.missing={field:d};break;default:throw new Error("unexpected subtype "+b.subType)}break;case"number":c.range={},c.range[d]={},c.range[d][b.subType]=b.value;break;case"date":if("exists"===b.subType)c.exists={field:d};else{if("notExists"!==b.subType)throw new Error("unexpected subtype");c.missing={field:d}}break;case"multi":c.terms={},c.terms[d]=b.value;break;default:throw new Error("unexpected type")}return c}}function f(b){var c={group:{type:"group",subType:"",rules:[]},item:{field:"",subType:"",value:""},number:{field:"",subType:"",value:null}};return a.copy(c[b])}a.module("angular-elastic-builder").factory("elasticQueryService",[function(){return{toFilters:b,toQuery:c}}])}(window.angular),function(a){a.module("angular-elastic-builder").run(["$templateCache",function(a){a.put("angular-elastic-builder/BuilderDirective.html",'\n\n\n
\n \n
\n \n \n \n \n \n'),a.put("angular-elastic-builder/ChooserDirective.html",'\n\n\n
\n
\n
\n
\n'),a.put("angular-elastic-builder/GroupDirective.html",'\n\n\n\n
\n
\n
\n \n
{{ \'APPLICATION_IF\' | translate }}\n \n {{group.subType == \'and\' ? \'MESSAGE_CODITIONS_MET_ALL\' : \'MESSAGE_CODITIONS_MET_ANY\' | translate}}\n
\n
\n
\n \n
\n\n\n'),a.put("angular-elastic-builder/RuleDirective.html",'\n\n \n {{elasticFields[rule.field].action.label | translate}}\n \n \n\n \n\n \n\n \n \n \n\n\n'),a.put("angular-elastic-builder/types/Boolean.html",'\n Equals\n\n \n \n \n\n'),a.put("angular-elastic-builder/types/Date.html",'\n \n\n\n'),a.put("angular-elastic-builder/types/Multi.html",'\n\n\n {{guide.action.midterm | translate}}\n \n \n \n\n \n\n'),a.put("angular-elastic-builder/types/Multiterm.html",'\n \n \n\n'),a.put("angular-elastic-builder/types/Number.html",'\n \n\n \n \n\n \n\n\n'),a.put("angular-elastic-builder/types/Term.html",'\n \n \n\n \n \n\n\n\n \n \n\n')}])}(window.angular);var Metronic=function(){var a,b=!1,c=!1,d=!1,e=!1,f=[],g="assets/",h="img/",i="plugins/",j="css/",k={blue:"#89C4F4",red:"#F3565D",green:"#1bbc9b",purple:"#9b59b6",grey:"#95a5a6",yellow:"#F8CB00"},l=function(){"rtl"===$("body").css("direction")&&(b=!0),c=!!navigator.userAgent.match(/MSIE 8.0/),d=!!navigator.userAgent.match(/MSIE 9.0/),e=!!navigator.userAgent.match(/MSIE 10.0/),e&&$("html").addClass("ie10"),(e||d||c)&&$("html").addClass("ie")},m=function(){for(var a=0;a .portlet-title > .tools > a.remove",function(a){a.preventDefault();var b=$(this).closest(".portlet");$("body").hasClass("page-portlet-fullscreen")&&$("body").removeClass("page-portlet-fullscreen"),b.find(".portlet-title .fullscreen").tooltip("destroy"),b.find(".portlet-title > .tools > .reload").tooltip("destroy"),b.find(".portlet-title > .tools > .remove").tooltip("destroy"),b.find(".portlet-title > .tools > .config").tooltip("destroy"),b.find(".portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip("destroy"),b.remove()}),$("body").on("click",".portlet > .portlet-title .fullscreen",function(a){ -a.preventDefault();var b=$(this).closest(".portlet");if(b.hasClass("portlet-fullscreen"))$(this).removeClass("on"),b.removeClass("portlet-fullscreen"),$("body").removeClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height","auto");else{var c=Metronic.getViewPort().height-b.children(".portlet-title").outerHeight()-parseInt(b.children(".portlet-body").css("padding-top"))-parseInt(b.children(".portlet-body").css("padding-bottom"));$(this).addClass("on"),b.addClass("portlet-fullscreen"),$("body").addClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height",c)}}),$("body").on("click",".portlet > .portlet-title > .tools > a.reload",function(a){a.preventDefault();var b=$(this).closest(".portlet").children(".portlet-body"),c=$(this).attr("data-url"),d=$(this).attr("data-error-display");c?(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),$.ajax({type:"GET",cache:!1,url:c,dataType:"html",success:function(a){Metronic.unblockUI(b),b.html(a)},error:function(a,c,e){Metronic.unblockUI(b);var f="Error on reloading the content. Please check your connection and try again.";"toastr"==d&&toastr?toastr.error(f):"notific8"==d&&$.notific8?($.notific8("zindex",11500),$.notific8(f,{theme:"ruby",life:3e3})):alert(f)}})):(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),window.setTimeout(function(){Metronic.unblockUI(b)},1e3))}),$('.portlet .portlet-title a.reload[data-load="true"]').click(),$("body").on("click",".portlet > .portlet-title > .tools > .collapse, .portlet .portlet-title > .tools > .expand",function(a){a.preventDefault()})},p=function(){if($().uniform){var a=$("input[type=checkbox]:not(.toggle, .make-switch, .icheck), input[type=radio]:not(.toggle, .star, .make-switch, .icheck)");a.size()>0&&a.each(function(){0===$(this).parents(".checker").size()&&$(this).show()})}},q=function(){$().iCheck&&$(".icheck").each(function(){var a=$(this).attr("data-checkbox")?$(this).attr("data-checkbox"):"icheckbox_minimal-grey",b=$(this).attr("data-radio")?$(this).attr("data-radio"):"iradio_minimal-grey";a.indexOf("_line")>-1||b.indexOf("_line")>-1?$(this).iCheck({checkboxClass:a,radioClass:b,insert:'
'+$(this).attr("data-label")}):$(this).iCheck({checkboxClass:a,radioClass:b})})},r=function(){$().bootstrapSwitch&&$(".make-switch").bootstrapSwitch()},s=function(){$().confirmation&&$("[data-toggle=confirmation]").confirmation({container:"body",btnOkClass:"btn-xs btn-success",btnCancelClass:"btn-xs btn-danger"})},t=function(){$("body").on("shown.bs.collapse",".accordion.scrollable",function(a){Metronic.scrollTo($(a.target))})},u=function(){if(location.hash){var a=location.hash.substr(1);$('a[href="#'+a+'"]').parents(".tab-pane:hidden").each(function(){var a=$(this).attr("id");$('a[href="#'+a+'"]').click()}),$('a[href="#'+a+'"]').click()}},v=function(){$("body").on("hide.bs.modal",function(){$(".modal:visible").size()>1&&$("html").hasClass("modal-open")===!1?$("html").addClass("modal-open"):$(".modal:visible").size()<=1&&$("html").removeClass("modal-open")}),$("body").on("show.bs.modal",".modal",function(){$(this).hasClass("modal-scroll")&&$("body").addClass("modal-open-noscroll")}),$("body").on("hide.bs.modal",".modal",function(){$("body").removeClass("modal-open-noscroll")}),$("body").on("hidden.bs.modal",".modal:not(.modal-cached)",function(){$(this).removeData("bs.modal")})},w=function(){$(".tooltips").tooltip(),$(".portlet > .portlet-title .fullscreen").tooltip({container:"body",title:"Fullscreen"}),$(".portlet > .portlet-title > .tools > .reload").tooltip({container:"body",title:"Reload"}),$(".portlet > .portlet-title > .tools > .remove").tooltip({container:"body",title:"Remove"}),$(".portlet > .portlet-title > .tools > .config").tooltip({container:"body",title:"Settings"}),$(".portlet > .portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip({container:"body",title:"Collapse/Expand"})},x=function(){$("body").on("click",".dropdown-menu.hold-on-click",function(a){a.stopPropagation()})},y=function(){$("body").on("click",'[data-close="alert"]',function(a){$(this).parent(".alert").hide(),$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-close="note"]',function(a){$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-remove="note"]',function(a){$(this).closest(".note").remove(),a.preventDefault()})},z=function(){$('[data-hover="dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")})},A=function(){$(".popovers").popover(),$(document).on("click.bs.popover.data-api",function(b){a&&a.popover("hide")})},B=function(){Metronic.initSlimScroll(".scroller")},C=function(){jQuery.fancybox&&$(".fancybox-button").size()>0&&$(".fancybox-button").fancybox({groupAttr:"data-rel",prevEffect:"none",nextEffect:"none",closeBtn:!0,helpers:{title:{type:"inside"}}})},D=function(){(c||d)&&$("input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)").each(function(){var a=$(this);""===a.val()&&""!==a.attr("placeholder")&&a.addClass("placeholder").val(a.attr("placeholder")),a.focus(function(){a.val()==a.attr("placeholder")&&a.val("")}),a.blur(function(){(""===a.val()||a.val()==a.attr("placeholder"))&&a.val(a.attr("placeholder"))})})},E=function(){$().select2&&$(".select2me").select2({placeholder:"Select"})};return{init:function(){l(),n(),p(),q(),r(),B(),C(),E(),o(),y(),x(),u(),w(),A(),t(),v(),s(),D()},initAjax:function(){p(),q(),r(),z(),B(),E(),C(),x(),w(),A(),t(),s()},initComponents:function(){this.initAjax()},setLastPopedPopover:function(b){a=b},addResizeHandler:function(a){f.push(a)},runResizeHandlers:function(){m()},scrollTo:function(a,b){var c=a&&a.size()>0?a.offset().top:0;a&&($("body").hasClass("page-header-fixed")&&(c-=$(".page-header").height()),c+=b?b:-1*a.height()),$("html,body").animate({scrollTop:c},"slow")},initSlimScroll:function(a){$(a).each(function(){if(!$(this).attr("data-initialized")){var a;a=$(this).attr("data-height")?$(this).attr("data-height"):$(this).css("height"),$(this).slimScroll({allowPageScroll:!0,size:"7px",color:$(this).attr("data-handle-color")?$(this).attr("data-handle-color"):"#bbb",wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",railColor:$(this).attr("data-rail-color")?$(this).attr("data-rail-color"):"#eaeaea",position:b?"left":"right",height:a,alwaysVisible:"1"==$(this).attr("data-always-visible")?!0:!1,railVisible:"1"==$(this).attr("data-rail-visible")?!0:!1,disableFadeOut:!0}),$(this).attr("data-initialized","1")}})},destroySlimScroll:function(a){$(a).each(function(){if("1"===$(this).attr("data-initialized")){$(this).removeAttr("data-initialized"),$(this).removeAttr("style");var a={};$(this).attr("data-handle-color")&&(a["data-handle-color"]=$(this).attr("data-handle-color")),$(this).attr("data-wrapper-class")&&(a["data-wrapper-class"]=$(this).attr("data-wrapper-class")),$(this).attr("data-rail-color")&&(a["data-rail-color"]=$(this).attr("data-rail-color")),$(this).attr("data-always-visible")&&(a["data-always-visible"]=$(this).attr("data-always-visible")),$(this).attr("data-rail-visible")&&(a["data-rail-visible"]=$(this).attr("data-rail-visible")),$(this).slimScroll({wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",destroy:!0});var b=$(this);$.each(a,function(a,c){b.attr(a,c)})}})},scrollTop:function(){Metronic.scrollTo()},blockUI:function(a){a=$.extend(!0,{},a);var b="";if(b=a.animate?'
':a.iconOnly?'
':a.textOnly?'
  '+(a.message?a.message:"LOADING...")+"
":'
  '+(a.message?a.message:"LOADING...")+"
",a.target){var c=$(a.target);c.height()<=$(window).height()&&(a.cenrerY=!0),c.block({message:b,baseZ:a.zIndex?a.zIndex:1e3,centerY:void 0!==a.cenrerY?a.cenrerY:!1,css:{top:"10%",border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})}else $.blockUI({message:b,baseZ:a.zIndex?a.zIndex:1e3,css:{border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})},unblockUI:function(a){a?$(a).unblock({onUnblock:function(){$(a).css("position",""),$(a).css("zoom","")}}):$.unblockUI()},startPageLoading:function(a){a&&a.animate?($(".page-spinner-bar").remove(),$("body").append('
')):($(".page-loading").remove(),$("body").append('
  '+(a&&a.message?a.message:"Loading...")+"
"))},stopPageLoading:function(){$(".page-loading, .page-spinner-bar").remove()},alert:function(a){a=$.extend(!0,{container:"",place:"append",type:"success",message:"",close:!0,reset:!0,focus:!0,closeInSeconds:0,icon:""},a);var b=Metronic.getUniqueID("Metronic_alert"),c='
'+(a.close?'':"")+(""!==a.icon?' ':"")+a.message+"
";return a.reset&&$(".Metronic-alerts").remove(),a.container?"append"==a.place?$(a.container).append(c):$(a.container).prepend(c):$("body").hasClass("page-container-bg-solid")?$(".page-title").after(c):$(".page-bar").size()>0?$(".page-bar").after(c):$(".page-breadcrumb").after(c),a.focus&&Metronic.scrollTo($("#"+b)),a.closeInSeconds>0&&setTimeout(function(){$("#"+b).remove()},1e3*a.closeInSeconds),b},initUniform:function(a){a?$(a).each(function(){0===$(this).parents(".checker").size()&&($(this).show(),$(this).uniform())}):p()},updateUniform:function(a){$.uniform.update(a)},initFancybox:function(){C()},getActualVal:function(a){return a=$(a),a.val()===a.attr("placeholder")?"":a.val()},getURLParameter:function(a){var b,c,d=window.location.search.substring(1),e=d.split("&");for(b=0;b a").each(function(){var a=$(this).attr("href").toLowerCase();return a.length>1&&d.substr(1,a.length-1)==a.substr(1)?void(b=$(this)):void 0}),b&&0!=b.size()&&"javascript:;"!==b.attr("href").toLowerCase()&&"#"!==b.attr("href").toLowerCase()){parseInt(e.data("slide-speed")),e.data("keep-expanded");e.find("li.active").removeClass("active"),e.find("li > a > .selected").remove(),e.hasClass("page-sidebar-menu-hover-submenu")===!1?e.find("li.open").each(function(){0===$(this).children(".sub-menu").size()&&($(this).removeClass("open"),$(this).find("> a > .arrow.open").removeClass("open"))}):e.find("li.open").removeClass("open"),b.parents("li").each(function(){$(this).addClass("active"),$(this).find("> a > span.arrow").addClass("open"),1===$(this).parent("ul.page-sidebar-menu").size()&&$(this).find("> a").append(''),1===$(this).children("ul.sub-menu").size()&&$(this).addClass("open")}),"click"===a&&Metronic.getViewPort().width a",function(a){var b=$(this).next().hasClass("sub-menu");if(!(Metronic.getViewPort().width>=c&&1===$(this).parents(".page-sidebar-menu-hover-submenu").size())){if(b===!1)return void(Metronic.getViewPort().width a.ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=jQuery(".page-sidebar ul"),e=($(".page-content"),$(".page-content .page-content-body"));d.children("li.active").removeClass("active"),d.children("arrow.open").removeClass("open"),$(this).parents("li").each(function(){$(this).addClass("active"),$(this).children("a > span.arrow").addClass("open")}),$(this).parents("li").addClass("active"),Metronic.getViewPort().width li.open > a").click(),Metronic.stopPageLoading(),e.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){Metronic.stopPageLoading(),e.html("

Could not load the requested content.

")}})}),jQuery(".page-content").on("click",".ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=($(".page-content"),$(".page-content .page-content-body"));Metronic.startPageLoading(),Metronic.getViewPort().widthCould not load the requested content."),Metronic.stopPageLoading()}})}),i(),$(".page-sidebar").on("click",".sidebar-search .remove",function(a){a.preventDefault(),$(".sidebar-search").removeClass("open")}),$(".page-sidebar .sidebar-search").on("keypress","input.form-control",function(a){return 13==a.which?($(".sidebar-search").submit(),!1):void 0}),$(".sidebar-search .submit").on("click",function(a){a.preventDefault(),$("body").hasClass("page-sidebar-closed")&&$(".sidebar-search").hasClass("open")===!1?(1===$(".page-sidebar-fixed").size()&&$(".page-sidebar .sidebar-toggler").click(),$(".sidebar-search").addClass("open")):$(".sidebar-search").submit()}),0!==$(".sidebar-search").size()&&($(".sidebar-search .input-group").on("click",function(a){a.stopPropagation()}),$("body").on("click",function(){$(".sidebar-search").hasClass("open")&&$(".sidebar-search").removeClass("open")}))},g=function(){var a=Metronic.getViewPort().height-$(".page-header").outerHeight();return $("body").hasClass("page-footer-fixed")&&(a-=$(".page-footer").outerHeight()),a},h=function(){var a=$(".page-sidebar-menu");return Metronic.destroySlimScroll(a),0===$(".page-sidebar-fixed").size()?void d():void(Metronic.getViewPort().width>=c&&(a.attr("data-height",g()),Metronic.initSlimScroll(a),d()))},i=function(){var a=$("body");a.hasClass("page-sidebar-fixed")&&$(".page-sidebar").on("mouseenter",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").removeClass("page-sidebar-menu-closed")}).on("mouseleave",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").addClass("page-sidebar-menu-closed")})},j=function(){var a=$("body");$.cookie&&"1"===$.cookie("sidebar_closed")&&Metronic.getViewPort().width>=c?($("body").addClass("page-sidebar-closed"),$(".page-sidebar-menu").addClass("page-sidebar-menu-closed")):$.cookie&&$.cookie("sidebar_closed","0"),$("body").on("click",".sidebar-toggler",function(b){var c=$(".page-sidebar"),d=$(".page-sidebar-menu");$(".sidebar-search",c).removeClass("open"),a.hasClass("page-sidebar-closed")?(a.removeClass("page-sidebar-closed"),d.removeClass("page-sidebar-menu-closed"),$.cookie&&$.cookie("sidebar_closed","0")):(a.addClass("page-sidebar-closed"),d.addClass("page-sidebar-menu-closed"),a.hasClass("page-sidebar-fixed")&&d.trigger("mouseleave"),$.cookie&&$.cookie("sidebar_closed","1")),$(window).trigger("resize")})},k=function(){$(".page-header").on("click",'.hor-menu a[data-toggle="tab"]',function(a){a.preventDefault();var b=$(".hor-menu .nav"),c=b.find("li.current");$("li.active",c).removeClass("active"),$(".selected",c).remove();var d=$(this).parents("li").last();d.addClass("current"),d.find("a:first").append('')}),$(".page-header").on("click",".search-form",function(a){$(this).addClass("open"),$(this).find(".form-control").focus(),$(".page-header .search-form .form-control").on("blur",function(a){$(this).closest(".search-form").removeClass("open"),$(this).unbind("blur")})}),$(".page-header").on("keypress",".hor-menu .search-form .form-control",function(a){return 13==a.which?($(this).closest(".search-form").submit(),!1):void 0}),$(".page-header").on("mousedown",".search-form.open .submit",function(a){a.preventDefault(),a.stopPropagation(),$(this).closest(".search-form").submit()}),$('[data-hover="megamenu-dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")}),$(document).on("click",".mega-menu-dropdown .dropdown-menu",function(a){a.stopPropagation()})},l=function(){$("body").on("shown.bs.tab",'a[data-toggle="tab"]',function(){d()})},m=function(){var a=300,b=500;navigator.userAgent.match(/iPhone|iPad|iPod/i)?$(window).bind("touchend touchcancel touchleave",function(c){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}):$(window).scroll(function(){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}),$(".scroll-to-top").click(function(a){return a.preventDefault(),$("html, body").animate({scrollTop:0},b),!1})},n=function(){var a,b=$(".full-height-content");if(a=Metronic.getViewPort().height-$(".page-header").outerHeight(!0)-$(".page-footer").outerHeight(!0)-$(".page-title").outerHeight(!0)-$(".page-bar").outerHeight(!0),b.hasClass("portlet")){var d=b.find(".portlet-body");if(Metronic.getViewPort().width\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_AGENTS\' | translate }} \n
\n \n
\n
\n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
{{ \'APPLICATION_FULLNAME\' | translate }}{{ \'APPLICATION_USERNAME\' | translate }}{{ \'APPLICATION_EMAIL\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
{{agent.fullname}}{{agent.name}}{{agent.email}}\n \n {{ \'APPLICATION_PROFILE\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
\n No agents available\n
\n \n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/agent/view/view.account.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}\n
\n \n
\n\n
\n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{ \'APPLICATION_SELECT_IMAGE\' | translate }} \n
\n
\n \n \n
\n

\n
{{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} jpg, png, jpeg.\n

\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n
\n \n {{ item.file.name }}\n \n \n {{ item.file.size/1024/1024|number:2 }} MB\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n
\n \n
\n
\n
\n
\n
\n'), -a.put("app/agent/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n\n \n
\n
\n {{agent.fullname}}\n
\n
\n {{agent.role}}\n
\n
\n \n\n \n \n \n
\n \n
\n \n\n \n
\n
\n \n
\n
\n\n'),a.put("app/agent/wizard/wizard.html",'
\n \n \n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_AGENT\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n \n \n \n \n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n \n
\n \n\n \n
\n
\n\n \n
\n\n \n \n \n\n \n
\n \n \n {{$item}}\n \n {{transport}}\n \n \n \n {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n \n
\n \n\n \n \n \n\n \n \n\n \n\n \n \n \n\n \n
\n \n \n {{$item}}\n \n {{allow}}\n \n \n \n {{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n \n
\n \n\n \n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n
\n
\n
\n
\n \n
\n'),a.put("app/automation/list/list.html",'\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_AUTOMATIONS\' | translate }} \n
\n \n
\n
\n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
{{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_CHANNEL\' | translate }}{{ \'APPLICATION_STATUS\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
{{Automation.name}}{{Automation.description}}{{Automation.channel | capitalize}}\n \n \n \n {{ \'APPLICATION_EDIT\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
\n No available automations\n
\n \n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n
\n \n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/automation/view/view.html",'\n
\n
\n \n\n\n\n\n \n
\n \n
\n \n
\n \n
\n \n\n \n
\n
\n {{ automation.name }}\n
\n
\n {{ automation.description }}\n
\n
\n \n\n \n \n \n
\n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/automation/view/view.settings.html",'
\n
\n
\n \n
\n \n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n \n
\n
\n
\n
\n \n {{ \'APPLICATION_CONDITIONS\' | translate }} \n
\n
\n
\n \n
\n
\n
\n
\n
\n \n {{ \'APPLICATION_ACTIONS\' | translate }} \n
\n
\n
\n \n
\n
\n\n \n
\n
\n
\n
\n
\n
\n'),a.put("app/automation/wizard/wizard.html",'
\n
\n \n \n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD \n
\n
\n
\n \n \n \n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_CHANNEL\' | translate }} \n
\n
\n
\n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n {{ \'APPLICATION_CONDITIONS\' | translate }} \n
\n
\n
\n \n
\n
\n
\n
\n
\n \n {{ \'APPLICATION_ACTIONS\' | translate }} \n
\n
\n
\n \n
\n
\n \n \n
\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n
\n
\n
\n \n
\n
\n\n'), -a.put("app/chat/preview/preview.html",'\n
\n
\n \n \n \n \n \n {{statePreview.state == \'online\' ? chatWebsite.header_online : chatWebsite.header_offline}}\n
\n
\n
\n
\n \n
    \n
    \n
    \n
    \n

    \n \n \n \n {{chatWebsite.enquiry_button}}
    \n
    \n \n \n \n
    \n
    \n'),a.put("app/chat/queue/list/list.html",'\n\n\n
    \n
    \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_QUEUE\' | translate }} \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n {{$select.selected.name}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_STRATEGY\' | translate }}{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
    {{chatQueue.name}}{{chatQueue.description}}{{chatQueue.strategy | uppercase}}{{chatQueue.timeout}}\n \n {{ \'APPLICATION_EDIT\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
    \n No chat queues available\n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n \n
    \n \n
    \n
    \n \n
    \n
    \n\n'),a.put("app/chat/queue/view/view.agents.html",'
    \n
    \n
    \n
    \n
    \n \n {{\'APPLICATION_AGENTS\' | translate}}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n'),a.put("app/chat/queue/view/view.html",'\n
    \n
    \n \n\n \n
    \n \n
    \n \n
    \n \n
    \n \n \n
    \n
    \n {{queue.name}}\n
    \n \n
    \n \n\n \n \n \n
    \n \n
    \n \n \n
    \n
    \n \n
    \n
    \n\n'),a.put("app/chat/queue/view/view.settings.html",'
    \n
    \n
    \n
    \n
    \n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
    \n
    \n
    \n
    \n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n
    \n \n\n \n
    \n \n \n
    \n \n\n \n
    \n \n \n \n {{$select.selected.toUpperCase()}}\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n'),a.put("app/chat/queue/wizard/wizard.html",'
    \n \n \n \n\n \n
    \n
    \n
    \n \n {{ \'APPLICATION_QUEUES\' | translate }} WIZARD \n
    \n
    \n
    \n \n \n
    \n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n
    \n \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n {{$select.selected.toUpperCase()}}\n \n
    \n
    \n
    \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n \n
    \n
    \n\n \n

    {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

    \n \n
    \n
    \n
    \n
    \n \n
    \n'),a.put("app/chat/realtime/view/agent/agent.html",'\n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n {{$select.selected.name}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    {{ \'APPLICATION_UNIQUEID\' | translate }}{{ \'APPLICATION_QUEUE\' | translate }}{{ \'APPLICATION_AGENT\' | translate }}{{ \'APPLICATION_VISITOR\' | translate }}{{ \'APPLICATION_WEB_SITE\' | translate }}{{ \'APPLICATION_CALLED_AT\' | translate }}{{ \'APPLICATION_CONNECTED_AT\' | translate }}{{ \'APPLICATION_UNASWER_AT\' | translate }}{{ \'APPLICATION_REASON\' | translate }}
    \n \n \n \n {{agent.uniqueid}}{{agent.chatqueuename}}{{agent.fullname}}{{agent.visitorname}} {{agent.visitoremail}}{{agent.websitename}}\n \n \n \n \n \n \n {{agent.reason | uppercase}}\n
    \n No agents available\n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n \n
    \n
    \n\n'), -a.put("app/chat/realtime/view/session/session.html",'\n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n {{$select.selected.name}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    {{ \'APPLICATION_UNIQUEID\' | translate }}{{ \'APPLICATION_QUEUE\' | translate }}{{ \'APPLICATION_AGENT\' | translate }}{{ \'APPLICATION_VISITOR\' | translate }}{{ \'APPLICATION_WEB_SITE\' | translate }}{{ \'APPLICATION_JOIN_AT\' | translate }}{{ \'APPLICATION_LEAVE_AT\' | translate }}{{ \'APPLICATION_UNMANAGED_AT\' | translate }}
    \n \n \n \n {{session.uniqueid}}{{session.chatqueuename}}{{session.fullname}}{{session.visitorname + \' [\' + session.visitoremail + \']\'}}{{session.websitename}}\n \n \n \n \n \n
    \n No sessions available\n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n \n
    \n
    \n\n'),a.put("app/chat/realtime/view/view.html",'\n
    \n
    \n \n\n
    \n \n
    \n
    \n
    \n
    \n\n'),a.put("app/chat/statistic/statistic.conversation.html",'\n
    \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_CONVERSATIONS\' | translate }} \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    {{ \'APPLICATION_TYPE\' | translate }}{{ \'APPLICATION_USERS\' | translate }}{{ \'APPLICATION_VISITOR\' | translate }}{{ \'APPLICATION_STATUS\' | translate }}{{ \'APPLICATION_TIME\' | translate }}
    {{chatRoom.type | uppercase}}{{getUsersFullname(chatRoom.Users)}}{{chatRoom.ChatVisitor.email}}\n \n {{chatRoom.status | capitalize}}\n \n \n \n
    \n \n
    \n \n
    \n
    \n \n
    \n\n'),a.put("app/chat/statistic/statistic.conversation.view.html",'\n
    \n
    \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_TRANSCRIPT\' | translate }} \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_VISITOR\' | translate }}: \n {{chatRoom.ChatVisitor.fullname}}\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{\'APPLICATION_FULLNAME\' | translate}}\n
    \n
    \n {{chatRoom.ChatVisitor.fullname}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_EMAIL\' | translate}}\n
    \n
    \n {{chatRoom.ChatVisitor.email}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n
    \n
    \n {{chatRoom.ChatVisitor.remote_address}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_REFERER\' | translate}}\n
    \n
    \n {{chatRoom.ChatVisitor.referer}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_BROWSER\' | translate}}\n
    \n
    \n {{chatRoom.ChatVisitor.browser}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_ENGINE\' | translate}}\n
    \n
    \n {{chatRoom.ChatVisitor.engine}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_OS\' | translate}}\n
    \n
    \n {{chatRoom.ChatVisitor.os}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_DEVICE\' | translate}}\n
    \n
    \n {{chatRoom.ChatVisitor.device}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_COUNTRY\' | translate}}\n
    \n
    \n {{chatRoom.ChatVisitor.country}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_REGION\' | translate}}\n
    \n
    \n {{chatRoom.ChatVisitor.region}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_CITY\' | translate}}\n
    \n
    \n {{chatRoom.ChatVisitor.city}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_LATITUDE\' | translate}}\n
    \n
    \n {{chatRoom.ChatVisitor.latitude}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_LONGITUDE\' | translate}}\n
    \n
    \n {{chatRoom.ChatVisitor.longitude}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_AGENT\' | translate }}: \n {{user.fullname}}\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{\'APPLICATION_FULLNAME\' | translate}}\n
    \n
    \n {{user.fullname}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_USERNAME\' | translate}}\n
    \n
    \n {{user.name}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_ROLE\' | translate}}\n
    \n
    \n {{user.role | uppercase}}\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n'),a.put("app/chat/statistic/statistic.enquiry.html",'\n
    \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_ENQUIRIES\' | translate }} \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    {{ \'APPLICATION_USERNAME\' | translate }}{{ \'APPLICATION_EMAIL\' | translate }}{{ \'APPLICATION_TIME\' | translate }}
    {{chatEnquiry.username}}{{chatEnquiry.email}}\n \n
    \n \n
    \n \n
    \n
    \n \n
    \n\n'),a.put("app/chat/statistic/statistic.enquiry.view.html",'\n
    \n
    \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_TEXT\' | translate }} \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n

    {{chatEnquiry.ChatVisitor.fullname}} -\n \n

    \n

    \n {{chatEnquiry.text}}\n

    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_VISITOR\' | translate }}: \n {{chatEnquiry.ChatVisitor.fullname}}\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{\'APPLICATION_FULLNAME\' | translate}}\n
    \n
    \n {{chatEnquiry.ChatVisitor.fullname}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_EMAIL\' | translate}}\n
    \n
    \n {{chatEnquiry.ChatVisitor.email}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n
    \n
    \n {{chatEnquiry.ChatVisitor.remote_address}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_REFERER\' | translate}}\n
    \n
    \n {{chatEnquiry.ChatVisitor.referer}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_BROWSER\' | translate}}\n
    \n
    \n {{chatEnquiry.ChatVisitor.browser}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_ENGINE\' | translate}}\n
    \n
    \n {{chatEnquiry.ChatVisitor.engine}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_OS\' | translate}}\n
    \n
    \n {{chatEnquiry.ChatVisitor.os}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_DEVICE\' | translate}}\n
    \n
    \n {{chatEnquiry.ChatVisitor.device}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_COUNTRY\' | translate}}\n
    \n
    \n {{chatEnquiry.ChatVisitor.country}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_REGION\' | translate}}\n
    \n
    \n {{chatEnquiry.ChatVisitor.region}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_CITY\' | translate}}\n
    \n
    \n {{chatEnquiry.ChatVisitor.city}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_LATITUDE\' | translate}}\n
    \n
    \n {{chatEnquiry.ChatVisitor.latitude}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_LONGITUDE\' | translate}}\n
    \n
    \n {{chatEnquiry.ChatVisitor.longitude}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n\n'),a.put("app/chat/statistic/statistic.html",'\n\n\n'),a.put("app/chat/statistic/statistic.summary.html",'
    \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_LOCATIONS\' | translate }} \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n\n\n \n
    \n
    \n
    \n \n {{ \'APPLICATION_CONVERSATIONS\' | translate }} \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
      \n
    • \n \n {{ \'APPLICATION_OPENED\' | translate }} \n \n \n {{ (chatRooms | filter:{ status:\'open\' }).length }} \n
    • \n
    • \n \n {{ \'APPLICATION_CLOSED\' | translate }} \n \n \n {{ (chatRooms | filter:{ status:\'close\' }).length }} \n
    • \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n \n
    \n
    \n
    \n \n {{ \'APPLICATION_VISITORS\' | translate }} \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
      \n
    • \n \n {{ \'APPLICATION_PENDING\' | translate }} \n \n \n {{ (chatVisitors | filter:{ status:\'pending\' }).length }} \n
    • \n
    • \n \n {{ \'APPLICATION_SERVED\' | translate }} \n \n \n {{ (chatVisitors | filter:{ status:\'served\' }:true).length }} \n
    • \n
    • \n \n {{ \'APPLICATION_UNSERVED\' | translate }} \n \n {{ (chatVisitors | filter:{ status:\'unserved\' }).length }} \n
    • \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n \n
    \n
    \n
    \n \n {{ \'APPLICATION_ENQUIRIES\' | translate }} \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
      \n
    • \n \n {{ \'APPLICATION_READ\' | translate }}\n \n \n {{(chatEnquiries | filter:{ read:true }).length}} \n
    • \n
    • \n \n {{ \'APPLICATION_UNREAD\' | translate }}\n \n \n {{(chatEnquiries | filter:{ read:false }).length}} \n
    • \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n'), -a.put("app/chat/statistic/statistic.visitor.html",'\n
    \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_VISITORS\' | translate }} \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_EMAIL\' | translate }}{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}{{ \'APPLICATION_ORIGIN\' | translate }}{{ \'APPLICATION_DEVICE\' | translate }}{{ \'APPLICATION_BROWSER\' | translate }}{{ \'APPLICATION_LANGUAGES\' | translate }}{{ \'APPLICATION_STATUS\' | translate }}{{ \'APPLICATION_TIME\' | translate }}
    {{chatVisitor.fullname}}{{chatVisitor.email}}{{chatVisitor.remote_address}}{{chatVisitor.referer}}{{chatVisitor.device ? chatVisitor.device : \'--\'}}\n \n \n \n \n \n \n \n \n \n \n {{ $translate.instant(\'APPLICATION_\' + $filter(\'uppercase\')(chatVisitor.status)) }}\n \n \n \n
    \n \n
    \n \n
    \n
    \n \n
    \n\n'),a.put("app/chat/statistic/statistic.visitor.view.html",'\n
    \n
    \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_LOCATION\' | translate }} \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_VISITOR\' | translate }}: \n {{chatVisitor.fullname}}\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{\'APPLICATION_FULLNAME\' | translate}}\n
    \n
    \n {{chatVisitor.fullname}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_EMAIL\' | translate}}\n
    \n
    \n {{chatVisitor.email}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n
    \n
    \n {{chatVisitor.remote_address}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_REFERER\' | translate}}\n
    \n
    \n {{chatVisitor.referer}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_BROWSER\' | translate}}\n
    \n
    \n {{chatVisitor.browser}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_ENGINE\' | translate}}\n
    \n
    \n {{chatVisitor.engine}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_OS\' | translate}}\n
    \n
    \n {{chatVisitor.os}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_DEVICE\' | translate}}\n
    \n
    \n {{chatVisitor.device}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_COUNTRY\' | translate}}\n
    \n
    \n {{chatVisitor.country}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_REGION\' | translate}}\n
    \n
    \n {{chatVisitor.region}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_CITY\' | translate}}\n
    \n
    \n {{chatVisitor.city}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_LATITUDE\' | translate}}\n
    \n
    \n {{chatVisitor.latitude}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_LONGITUDE\' | translate}}\n
    \n
    \n {{chatVisitor.longitude}}\n
    \n
    \n
    \n
    \n {{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n\n'),a.put("app/chat/timeline/list/list.html",'
    \n \n
    \n\n\n
    \n
    \n

    \n Timeline\n

    \n \n \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n {{event.name | uppercase}}\n at {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}\n
    \n
    \n \n
    \n
    \n
    \n \n {{event.MailRoom.subject ? event.MailRoom.subject + \' - \' : \'\'}}{{event.User.fullname}}\n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n\n'),a.put("app/chat/website/list/list.html",'\n\n\n
    \n
    \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_WEB_SITES\' | translate }} \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n {{$select.selected.name}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_WEB_ADDRESS\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
    {{chatWebsite.name}}{{chatWebsite.description}}{{chatWebsite.address}}\n \n {{ \'APPLICATION_PROFILE\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
    \n {{\'MESSAGE_NO_AVAILABLE_WEBSITES\' | translate}}\n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n
    \n\n'),a.put("app/chat/website/view/action/list/list.html",'
    \n
    \n
    \n
    \n
    \n \n {{\'APPLICATION_ACTIONS\' | translate}}\n
    \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{\'APPLICATION_APPLICATION\' | translate}}{{\'APPLICATION_TIMEOUT\' | translate}} [s]{{ \'APPLICATION_INTERVAL\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
    \n \n \n \n {{application.timeout}}{{application.Interval ? application.Interval.name : application.interval}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
    \n No applications available\n
    \n \n
    \n
    \n
    \n
    \n'),a.put("app/chat/website/view/action/view/view.html",'\n
    \n
    \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_ACTION\' | translate }} \n
    \n
    \n
    \n
    \n \n
    \n \n \n {{$select.selected.name}}\n \n
    \n
    \n
    \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n
    \n \n
    \n \n \n {{$select.selected.name}}\n \n
    \n
    \n
    \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n
    \n\n
    \n \n
    \n \n \n {{$select.selected.fullname}}\n \n
    \n
    \n
    \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n
    \n\n \n
    \n \n \n {{ $select.selected.name | translate }}\n \n {{ intType.name | translate }}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n
    \n \n
    \n \n
    \n
    \n \n
    \n
    to
    \n
    \n \n
    \n
    \n \n\n \n
    \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n
    \n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate}}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate }}\n \n \n
    \n
    \n \n\n \n
    \n \n
    \n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
    \n
    \n \n\n \n
    \n \n
    \n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n
    \n
    \n \n
    \n\n
    \n\n \n
    \n \n \n {{ $select.selected.name}}\n \n {{ interval.name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n
    \n \n
    \n
    \n
    \n \n
    \n
    \n\n'), -a.put("app/chat/website/view/action/wizard/wizard.html",'\n
    \n
    \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_ACTION\' | translate }} WIZARD \n
    \n
    \n
    \n \n \n
    \n \n
    \n \n \n {{$select.selected.name}}\n \n
    \n
    \n
    \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n
    \n \n
    \n \n \n {{$select.selected.name}}\n \n
    \n
    \n
    \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n
    \n\n
    \n \n
    \n \n \n {{$select.selected.fullname}}\n \n
    \n
    \n
    \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n
    \n\n \n
    \n \n \n {{ $select.selected.name | translate }}\n \n {{ intType.name | translate }}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n
    \n \n
    \n \n
    \n
    \n \n
    \n
    to
    \n
    \n \n
    \n
    \n \n\n \n
    \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n
    \n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate}}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate }}\n \n \n
    \n
    \n \n\n \n
    \n \n
    \n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
    \n
    \n \n\n \n
    \n \n
    \n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n
    \n
    \n \n
    \n\n
    \n\n \n
    \n \n \n {{ $select.selected.name}}\n \n {{ interval.name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n
    \n\n \n
    \n
    \n \n

    {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n\n'),a.put("app/chat/website/view/snippet/view/view.html",'
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n

    {{\'APPLICATION_EMBED_SNIPPET\' | translate}}

    \n

    \n {{\'MESSAGE_EMBED_SNIPPET\' | translate}}\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n \n
    \n
    \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n \n {{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}\n \n
    \n
    \n
    \n
    \n \n\n \n
    \n \n \n \n {{$select.selected ? \'On\' : \'Off\'}}\n \n
    \n
    \n
    \n
    \n \n\n\n \n
    \n
    \n \n\n \n
    \n
    \n\n \n
    \n \n \n {{$select.selected ? \'On\' : \'Off\'}}\n \n
    \n
    \n
    \n
    \n \n\n \n
    \n
    \n \n\n \n
    \n
    \n\n

    {{\'APPLICATION_ONLINE_STATE\' | translate}}

    \n\n \n
    \n \n \n
    \n \n\n \n
    \n \n \n
    \n \n\n \n
    \n \n \n
    \n \n\n \n
    \n \n \n
    \n \n\n \n
    \n \n \n
    \n \n\n

    {{\'APPLICATION_OFFLINE_STATE\' | translate}}

    \n\n \n
    \n \n \n
    \n \n\n \n
    \n \n \n
    \n \n\n \n
    \n \n \n
    \n \n\n \n
    \n \n \n
    \n \n\n \n
    \n
    \n \n\n \n
    \n
    \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n
    \n \n\n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n \n \n \n {{$select.selected}}\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n'), +a.put("{widgetsPath}/counter/src/view.html",'
    {{count}}
    {{config.details}}
    {{config.linkText}}
    ')}])}(window),function(a,b){angular.module("adf.widget.pie-chart",["adf.provider"]).value("apiServiceUrlPieChart","/api/widgets/piechart").config(["dashboardProvider",function(a){a.widget("pie-chart",{title:"Pie-Chart",description:"Display a pie-chart starting from DB values",templateUrl:"{widgetsPath}/pie-chart/src/view.html",controller:"apiWidgetPieChartViewCtrl",edit:{templateUrl:"{widgetsPath}/pie-chart/src/edit.html",controller:"apiWidgetPieChartEditCtrl"}})}]).service("apiServicePieChart",["$q","$http","apiServiceUrlPieChart",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report,fields:d.fields}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiWidgetPieChartEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetPieChartViewCtrl",["$scope","$interval","apiServicePieChart",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.pieChartApiCall=function(){a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){if(b&&1===b.length){a.labels=[],a.data=[];for(var c in b[0])a.labels.push(c),a.data.push(b[0][c])}else a.labels=[],a.data=[]})},a.pieChartApiCall();var d=b(function(){a.pieChartApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.pie-chart").run(["$templateCache",function(a){a.put("{widgetsPath}/pie-chart/src/edit.html",'
    {{$select.selected.name}}
    as
    '),a.put("{widgetsPath}/pie-chart/src/view.html",'
    ')}])}(window),function(a,b){angular.module("adf.widget.table",["adf.provider"]).value("apiServiceUrlTable","/api/widgets/table").config(["dashboardProvider",function(a){a.widget("table",{title:"Table",description:"Show tabbed results from db",templateUrl:"{widgetsPath}/table/src/view.html",controller:"apiWidgetTableViewCtrl",edit:{templateUrl:"{widgetsPath}/table/src/edit.html",controller:"apiWidgetTableEditCtrl"}})}]).service("apiServiceTable",["$q","$http","apiServiceUrlTable",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report,fields:d.fields}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiWidgetTableEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetTableViewCtrl",["$scope","$interval","apiServiceTable",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.style={"max-height":a.config.height+"px",overflow:"scroll"},a.tableApiCall=function(){a.config.condition&&a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){a.results=b})},a.tableApiCall();var d=b(function(){a.tableApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.table").run(["$templateCache",function(a){a.put("{widgetsPath}/table/src/edit.html",'
    {{$select.selected.name}}
    as
    '),a.put("{widgetsPath}/table/src/view.html",'
    {{field.alias}}
    {{result[field.alias]}}
    {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
    ')}])}(window),function(){angular.module("pdf",[]).directive("ngPdf",["$window",function(a){return{restrict:"E",templateUrl:function(a,b){return b.templateUrl?b.templateUrl:"partials/viewer.html"},link:function(b,c,d){var e=d.pdfUrl,f=null,g=d.page?d.page:1,h=d.scale>0?d.scale:1,i=c.find("canvas"),j=i[0],k=j.getContext("2d"),l=angular.element(a);l.on("scroll",function(){b.$apply(function(){b.scroll=l[0].scrollY})}),PDFJS.disableWorker=!0,b.pageNum=g,b.renderPage=function(a){f.getPage(a).then(function(a){var e,f,g,i={};"page-fit"!==d.scale||h?e=a.getViewport(h):(e=a.getViewport(1),f=c[0].clientWidth/e.width,g=c[0].clientHeight/e.height,h=Math.min(f,g)),j.height=e.height,j.width=e.width,i={canvasContext:k,viewport:e},a.render(i).promise.then(function(){"function"==typeof b.onPageRender&&b.onPageRender()})})},b.goPrevious=function(){b.pageToDisplay<=1||(b.pageNum=parseInt(b.pageNum)-1)},b.goNext=function(){b.pageToDisplay>=f.numPages||(b.pageNum=parseInt(b.pageNum)+1)},b.zoomIn=function(){return h=parseFloat(h)+.2,b.renderPage(b.pageToDisplay),h},b.zoomOut=function(){return h=parseFloat(h)-.2,b.renderPage(b.pageToDisplay),h},b.changePage=function(){b.renderPage(b.pageToDisplay)},b.rotate=function(){"rotate0"===j.getAttribute("class")?j.setAttribute("class","rotate90"):"rotate90"===j.getAttribute("class")?j.setAttribute("class","rotate180"):"rotate180"===j.getAttribute("class")?j.setAttribute("class","rotate270"):j.setAttribute("class","rotate0")},PDFJS.getDocument(e,null,null,b.onProgress).then(function(a){"function"==typeof b.onLoad&&b.onLoad(),f=a,b.renderPage(b.pageToDisplay),b.$apply(function(){b.pageCount=a.numPages})},function(a){a&&"function"==typeof b.onError&&b.onError(a)}),b.$watch("pageNum",function(a){b.pageToDisplay=parseInt(a),null!==f&&b.renderPage(b.pageToDisplay)})}}}])}();var Metronic=function(){var a,b=!1,c=!1,d=!1,e=!1,f=[],g="assets/",h="img/",i="plugins/",j="css/",k={blue:"#89C4F4",red:"#F3565D",green:"#1bbc9b",purple:"#9b59b6",grey:"#95a5a6",yellow:"#F8CB00"},l=function(){"rtl"===$("body").css("direction")&&(b=!0),c=!!navigator.userAgent.match(/MSIE 8.0/),d=!!navigator.userAgent.match(/MSIE 9.0/),e=!!navigator.userAgent.match(/MSIE 10.0/),e&&$("html").addClass("ie10"),(e||d||c)&&$("html").addClass("ie")},m=function(){for(var a=0;a .portlet-title > .tools > a.remove",function(a){a.preventDefault();var b=$(this).closest(".portlet");$("body").hasClass("page-portlet-fullscreen")&&$("body").removeClass("page-portlet-fullscreen"),b.find(".portlet-title .fullscreen").tooltip("destroy"),b.find(".portlet-title > .tools > .reload").tooltip("destroy"),b.find(".portlet-title > .tools > .remove").tooltip("destroy"),b.find(".portlet-title > .tools > .config").tooltip("destroy"),b.find(".portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip("destroy"),b.remove()}),$("body").on("click",".portlet > .portlet-title .fullscreen",function(a){a.preventDefault();var b=$(this).closest(".portlet");if(b.hasClass("portlet-fullscreen"))$(this).removeClass("on"),b.removeClass("portlet-fullscreen"),$("body").removeClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height","auto");else{var c=Metronic.getViewPort().height-b.children(".portlet-title").outerHeight()-parseInt(b.children(".portlet-body").css("padding-top"))-parseInt(b.children(".portlet-body").css("padding-bottom"));$(this).addClass("on"),b.addClass("portlet-fullscreen"),$("body").addClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height",c)}}),$("body").on("click",".portlet > .portlet-title > .tools > a.reload",function(a){a.preventDefault();var b=$(this).closest(".portlet").children(".portlet-body"),c=$(this).attr("data-url"),d=$(this).attr("data-error-display");c?(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),$.ajax({type:"GET",cache:!1,url:c,dataType:"html",success:function(a){Metronic.unblockUI(b),b.html(a)},error:function(a,c,e){Metronic.unblockUI(b);var f="Error on reloading the content. Please check your connection and try again.";"toastr"==d&&toastr?toastr.error(f):"notific8"==d&&$.notific8?($.notific8("zindex",11500),$.notific8(f,{theme:"ruby",life:3e3})):alert(f)}})):(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),window.setTimeout(function(){Metronic.unblockUI(b)},1e3))}),$('.portlet .portlet-title a.reload[data-load="true"]').click(),$("body").on("click",".portlet > .portlet-title > .tools > .collapse, .portlet .portlet-title > .tools > .expand",function(a){a.preventDefault()})},p=function(){if($().uniform){var a=$("input[type=checkbox]:not(.toggle, .make-switch, .icheck), input[type=radio]:not(.toggle, .star, .make-switch, .icheck)");a.size()>0&&a.each(function(){0===$(this).parents(".checker").size()&&$(this).show()})}},q=function(){$().iCheck&&$(".icheck").each(function(){var a=$(this).attr("data-checkbox")?$(this).attr("data-checkbox"):"icheckbox_minimal-grey",b=$(this).attr("data-radio")?$(this).attr("data-radio"):"iradio_minimal-grey";a.indexOf("_line")>-1||b.indexOf("_line")>-1?$(this).iCheck({checkboxClass:a,radioClass:b,insert:'
    '+$(this).attr("data-label")}):$(this).iCheck({checkboxClass:a,radioClass:b})})},r=function(){$().bootstrapSwitch&&$(".make-switch").bootstrapSwitch()},s=function(){$().confirmation&&$("[data-toggle=confirmation]").confirmation({container:"body",btnOkClass:"btn-xs btn-success",btnCancelClass:"btn-xs btn-danger"})},t=function(){$("body").on("shown.bs.collapse",".accordion.scrollable",function(a){Metronic.scrollTo($(a.target))})},u=function(){if(location.hash){var a=location.hash.substr(1);$('a[href="#'+a+'"]').parents(".tab-pane:hidden").each(function(){var a=$(this).attr("id");$('a[href="#'+a+'"]').click()}),$('a[href="#'+a+'"]').click()}},v=function(){$("body").on("hide.bs.modal",function(){$(".modal:visible").size()>1&&$("html").hasClass("modal-open")===!1?$("html").addClass("modal-open"):$(".modal:visible").size()<=1&&$("html").removeClass("modal-open")}),$("body").on("show.bs.modal",".modal",function(){$(this).hasClass("modal-scroll")&&$("body").addClass("modal-open-noscroll")}),$("body").on("hide.bs.modal",".modal",function(){$("body").removeClass("modal-open-noscroll")}),$("body").on("hidden.bs.modal",".modal:not(.modal-cached)",function(){$(this).removeData("bs.modal")})},w=function(){$(".tooltips").tooltip(),$(".portlet > .portlet-title .fullscreen").tooltip({container:"body",title:"Fullscreen"}),$(".portlet > .portlet-title > .tools > .reload").tooltip({container:"body",title:"Reload"}),$(".portlet > .portlet-title > .tools > .remove").tooltip({container:"body",title:"Remove"}),$(".portlet > .portlet-title > .tools > .config").tooltip({container:"body",title:"Settings"}),$(".portlet > .portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip({container:"body",title:"Collapse/Expand"})},x=function(){$("body").on("click",".dropdown-menu.hold-on-click",function(a){a.stopPropagation()})},y=function(){$("body").on("click",'[data-close="alert"]',function(a){$(this).parent(".alert").hide(),$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-close="note"]',function(a){$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-remove="note"]',function(a){$(this).closest(".note").remove(),a.preventDefault()})},z=function(){$('[data-hover="dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")})},A=function(){$(".popovers").popover(),$(document).on("click.bs.popover.data-api",function(b){a&&a.popover("hide")})},B=function(){Metronic.initSlimScroll(".scroller")},C=function(){jQuery.fancybox&&$(".fancybox-button").size()>0&&$(".fancybox-button").fancybox({groupAttr:"data-rel",prevEffect:"none",nextEffect:"none",closeBtn:!0,helpers:{title:{type:"inside"}}})},D=function(){(c||d)&&$("input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)").each(function(){var a=$(this);""===a.val()&&""!==a.attr("placeholder")&&a.addClass("placeholder").val(a.attr("placeholder")),a.focus(function(){a.val()==a.attr("placeholder")&&a.val("")}),a.blur(function(){(""===a.val()||a.val()==a.attr("placeholder"))&&a.val(a.attr("placeholder"))})})},E=function(){$().select2&&$(".select2me").select2({placeholder:"Select"})};return{init:function(){l(),n(),p(),q(),r(),B(),C(),E(),o(),y(),x(),u(),w(),A(),t(),v(),s(),D()},initAjax:function(){p(),q(),r(),z(),B(),E(),C(),x(),w(),A(),t(),s()},initComponents:function(){this.initAjax()},setLastPopedPopover:function(b){a=b},addResizeHandler:function(a){f.push(a)},runResizeHandlers:function(){m()},scrollTo:function(a,b){var c=a&&a.size()>0?a.offset().top:0;a&&($("body").hasClass("page-header-fixed")&&(c-=$(".page-header").height()),c+=b?b:-1*a.height()),$("html,body").animate({scrollTop:c},"slow")},initSlimScroll:function(a){$(a).each(function(){if(!$(this).attr("data-initialized")){var a;a=$(this).attr("data-height")?$(this).attr("data-height"):$(this).css("height"),$(this).slimScroll({allowPageScroll:!0,size:"7px",color:$(this).attr("data-handle-color")?$(this).attr("data-handle-color"):"#bbb",wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",railColor:$(this).attr("data-rail-color")?$(this).attr("data-rail-color"):"#eaeaea",position:b?"left":"right",height:a,alwaysVisible:"1"==$(this).attr("data-always-visible")?!0:!1,railVisible:"1"==$(this).attr("data-rail-visible")?!0:!1,disableFadeOut:!0}),$(this).attr("data-initialized","1")}})},destroySlimScroll:function(a){$(a).each(function(){if("1"===$(this).attr("data-initialized")){$(this).removeAttr("data-initialized"),$(this).removeAttr("style");var a={};$(this).attr("data-handle-color")&&(a["data-handle-color"]=$(this).attr("data-handle-color")),$(this).attr("data-wrapper-class")&&(a["data-wrapper-class"]=$(this).attr("data-wrapper-class")),$(this).attr("data-rail-color")&&(a["data-rail-color"]=$(this).attr("data-rail-color")),$(this).attr("data-always-visible")&&(a["data-always-visible"]=$(this).attr("data-always-visible")),$(this).attr("data-rail-visible")&&(a["data-rail-visible"]=$(this).attr("data-rail-visible")),$(this).slimScroll({wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",destroy:!0});var b=$(this);$.each(a,function(a,c){b.attr(a,c)})}})},scrollTop:function(){Metronic.scrollTo()},blockUI:function(a){a=$.extend(!0,{},a);var b="";if(b=a.animate?'
    ':a.iconOnly?'
    ':a.textOnly?'
      '+(a.message?a.message:"LOADING...")+"
    ":'
      '+(a.message?a.message:"LOADING...")+"
    ",a.target){var c=$(a.target);c.height()<=$(window).height()&&(a.cenrerY=!0),c.block({message:b,baseZ:a.zIndex?a.zIndex:1e3,centerY:void 0!==a.cenrerY?a.cenrerY:!1,css:{top:"10%",border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})}else $.blockUI({message:b,baseZ:a.zIndex?a.zIndex:1e3,css:{border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})},unblockUI:function(a){a?$(a).unblock({onUnblock:function(){$(a).css("position",""),$(a).css("zoom","")}}):$.unblockUI()},startPageLoading:function(a){a&&a.animate?($(".page-spinner-bar").remove(),$("body").append('
    ')):($(".page-loading").remove(),$("body").append('
      '+(a&&a.message?a.message:"Loading...")+"
    "))},stopPageLoading:function(){$(".page-loading, .page-spinner-bar").remove()},alert:function(a){a=$.extend(!0,{container:"",place:"append",type:"success",message:"",close:!0,reset:!0,focus:!0,closeInSeconds:0,icon:""},a);var b=Metronic.getUniqueID("Metronic_alert"),c='
    '+(a.close?'':"")+(""!==a.icon?' ':"")+a.message+"
    ";return a.reset&&$(".Metronic-alerts").remove(),a.container?"append"==a.place?$(a.container).append(c):$(a.container).prepend(c):$("body").hasClass("page-container-bg-solid")?$(".page-title").after(c):$(".page-bar").size()>0?$(".page-bar").after(c):$(".page-breadcrumb").after(c),a.focus&&Metronic.scrollTo($("#"+b)),a.closeInSeconds>0&&setTimeout(function(){$("#"+b).remove()},1e3*a.closeInSeconds),b},initUniform:function(a){a?$(a).each(function(){0===$(this).parents(".checker").size()&&($(this).show(),$(this).uniform())}):p()},updateUniform:function(a){$.uniform.update(a)},initFancybox:function(){C()},getActualVal:function(a){return a=$(a),a.val()===a.attr("placeholder")?"":a.val()},getURLParameter:function(a){var b,c,d=window.location.search.substring(1),e=d.split("&");for(b=0;b a").each(function(){var a=$(this).attr("href").toLowerCase();return a.length>1&&d.substr(1,a.length-1)==a.substr(1)?void(b=$(this)):void 0}),b&&0!=b.size()&&"javascript:;"!==b.attr("href").toLowerCase()&&"#"!==b.attr("href").toLowerCase()){parseInt(e.data("slide-speed")),e.data("keep-expanded");e.find("li.active").removeClass("active"),e.find("li > a > .selected").remove(),e.hasClass("page-sidebar-menu-hover-submenu")===!1?e.find("li.open").each(function(){0===$(this).children(".sub-menu").size()&&($(this).removeClass("open"),$(this).find("> a > .arrow.open").removeClass("open"))}):e.find("li.open").removeClass("open"),b.parents("li").each(function(){$(this).addClass("active"),$(this).find("> a > span.arrow").addClass("open"),1===$(this).parent("ul.page-sidebar-menu").size()&&$(this).find("> a").append(''),1===$(this).children("ul.sub-menu").size()&&$(this).addClass("open")}),"click"===a&&Metronic.getViewPort().width a",function(a){var b=$(this).next().hasClass("sub-menu");if(!(Metronic.getViewPort().width>=c&&1===$(this).parents(".page-sidebar-menu-hover-submenu").size())){if(b===!1)return void(Metronic.getViewPort().width a.ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=jQuery(".page-sidebar ul"),e=($(".page-content"),$(".page-content .page-content-body"));d.children("li.active").removeClass("active"),d.children("arrow.open").removeClass("open"),$(this).parents("li").each(function(){$(this).addClass("active"),$(this).children("a > span.arrow").addClass("open")}),$(this).parents("li").addClass("active"),Metronic.getViewPort().width li.open > a").click(),Metronic.stopPageLoading(),e.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){Metronic.stopPageLoading(),e.html("

    Could not load the requested content.

    ")}})}),jQuery(".page-content").on("click",".ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=($(".page-content"),$(".page-content .page-content-body"));Metronic.startPageLoading(),Metronic.getViewPort().widthCould not load the requested content."),Metronic.stopPageLoading()}})}),i(),$(".page-sidebar").on("click",".sidebar-search .remove",function(a){a.preventDefault(),$(".sidebar-search").removeClass("open")}),$(".page-sidebar .sidebar-search").on("keypress","input.form-control",function(a){return 13==a.which?($(".sidebar-search").submit(),!1):void 0}),$(".sidebar-search .submit").on("click",function(a){a.preventDefault(),$("body").hasClass("page-sidebar-closed")&&$(".sidebar-search").hasClass("open")===!1?(1===$(".page-sidebar-fixed").size()&&$(".page-sidebar .sidebar-toggler").click(), +$(".sidebar-search").addClass("open")):$(".sidebar-search").submit()}),0!==$(".sidebar-search").size()&&($(".sidebar-search .input-group").on("click",function(a){a.stopPropagation()}),$("body").on("click",function(){$(".sidebar-search").hasClass("open")&&$(".sidebar-search").removeClass("open")}))},g=function(){var a=Metronic.getViewPort().height-$(".page-header").outerHeight();return $("body").hasClass("page-footer-fixed")&&(a-=$(".page-footer").outerHeight()),a},h=function(){var a=$(".page-sidebar-menu");return Metronic.destroySlimScroll(a),0===$(".page-sidebar-fixed").size()?void d():void(Metronic.getViewPort().width>=c&&(a.attr("data-height",g()),Metronic.initSlimScroll(a),d()))},i=function(){var a=$("body");a.hasClass("page-sidebar-fixed")&&$(".page-sidebar").on("mouseenter",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").removeClass("page-sidebar-menu-closed")}).on("mouseleave",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").addClass("page-sidebar-menu-closed")})},j=function(){var a=$("body");$.cookie&&"1"===$.cookie("sidebar_closed")&&Metronic.getViewPort().width>=c?($("body").addClass("page-sidebar-closed"),$(".page-sidebar-menu").addClass("page-sidebar-menu-closed")):$.cookie&&$.cookie("sidebar_closed","0"),$("body").on("click",".sidebar-toggler",function(b){var c=$(".page-sidebar"),d=$(".page-sidebar-menu");$(".sidebar-search",c).removeClass("open"),a.hasClass("page-sidebar-closed")?(a.removeClass("page-sidebar-closed"),d.removeClass("page-sidebar-menu-closed"),$.cookie&&$.cookie("sidebar_closed","0")):(a.addClass("page-sidebar-closed"),d.addClass("page-sidebar-menu-closed"),a.hasClass("page-sidebar-fixed")&&d.trigger("mouseleave"),$.cookie&&$.cookie("sidebar_closed","1")),$(window).trigger("resize")})},k=function(){$(".page-header").on("click",'.hor-menu a[data-toggle="tab"]',function(a){a.preventDefault();var b=$(".hor-menu .nav"),c=b.find("li.current");$("li.active",c).removeClass("active"),$(".selected",c).remove();var d=$(this).parents("li").last();d.addClass("current"),d.find("a:first").append('')}),$(".page-header").on("click",".search-form",function(a){$(this).addClass("open"),$(this).find(".form-control").focus(),$(".page-header .search-form .form-control").on("blur",function(a){$(this).closest(".search-form").removeClass("open"),$(this).unbind("blur")})}),$(".page-header").on("keypress",".hor-menu .search-form .form-control",function(a){return 13==a.which?($(this).closest(".search-form").submit(),!1):void 0}),$(".page-header").on("mousedown",".search-form.open .submit",function(a){a.preventDefault(),a.stopPropagation(),$(this).closest(".search-form").submit()}),$('[data-hover="megamenu-dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")}),$(document).on("click",".mega-menu-dropdown .dropdown-menu",function(a){a.stopPropagation()})},l=function(){$("body").on("shown.bs.tab",'a[data-toggle="tab"]',function(){d()})},m=function(){var a=300,b=500;navigator.userAgent.match(/iPhone|iPad|iPod/i)?$(window).bind("touchend touchcancel touchleave",function(c){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}):$(window).scroll(function(){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}),$(".scroll-to-top").click(function(a){return a.preventDefault(),$("html, body").animate({scrollTop:0},b),!1})},n=function(){var a,b=$(".full-height-content");if(a=Metronic.getViewPort().height-$(".page-header").outerHeight(!0)-$(".page-footer").outerHeight(!0)-$(".page-title").outerHeight(!0)-$(".page-bar").outerHeight(!0),b.hasClass("portlet")){var d=b.find(".portlet-body");if(Metronic.getViewPort().width\n
    \n
    \n \n\n \n
    \n
    \n
    \n \n {{ \'APPLICATION_AGENTS\' | translate }} \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n {{$select.selected.name}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    {{ \'APPLICATION_FULLNAME\' | translate }}{{ \'APPLICATION_USERNAME\' | translate }}{{ \'APPLICATION_EMAIL\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
    {{agent.fullname}}{{agent.name}}{{agent.email}}\n \n {{ \'APPLICATION_PROFILE\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
    \n No agents available\n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n
    \n\n'),a.put("app/agent/view/view.account.html",'
    \n
    \n
    \n
    \n
    \n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}\n
    \n \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n {{ \'APPLICATION_SELECT_IMAGE\' | translate }} \n
    \n
    \n \n \n
    \n

    \n
    {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} jpg, png, jpeg.\n

    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n
    \n \n {{ item.file.name }}\n \n \n {{ item.file.size/1024/1024|number:2 }} MB\n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n'),a.put("app/agent/view/view.html",'\n
    \n
    \n \n\n \n
    \n \n
    \n \n
    \n \n
    \n \n\n \n
    \n
    \n {{agent.fullname}}\n
    \n
    \n {{agent.role}}\n
    \n
    \n \n\n \n \n \n
    \n \n
    \n \n\n \n
    \n
    \n \n
    \n
    \n\n'),a.put("app/agent/wizard/wizard.html",'
    \n \n \n \n\n \n
    \n
    \n
    \n \n {{ \'APPLICATION_AGENT\' | translate }} WIZARD \n
    \n
    \n
    \n \n \n
    \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
    \n \n\n \n
    \n \n
    \n \n \n \n \n
    \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n \n
    \n \n\n \n
    \n
    \n\n \n
    \n\n \n \n \n\n \n
    \n \n \n {{$item}}\n \n {{transport}}\n \n \n \n {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n \n
    \n \n\n \n \n \n\n \n \n\n \n\n \n \n \n\n \n
    \n \n \n {{$item}}\n \n {{allow}}\n \n \n \n {{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n \n
    \n \n\n \n \n
    \n
    \n\n \n

    {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

    \n \n
    \n
    \n
    \n
    \n \n
    \n'), +a.put("app/automation/list/list.html",'\n\n\n
    \n
    \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_AUTOMATIONS\' | translate }} \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n {{$select.selected.name}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_CHANNEL\' | translate }}{{ \'APPLICATION_STATUS\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
    {{Automation.name}}{{Automation.description}}{{Automation.channel | capitalize}}\n \n \n \n {{ \'APPLICATION_EDIT\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
    \n No available automations\n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n \n
    \n \n
    \n
    \n \n
    \n
    \n\n'),a.put("app/automation/view/view.html",'\n
    \n
    \n \n\n\n\n\n \n
    \n \n
    \n \n
    \n \n
    \n \n\n \n
    \n
    \n {{ automation.name }}\n
    \n
    \n {{ automation.description }}\n
    \n
    \n \n\n \n \n \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n\n'),a.put("app/automation/view/view.settings.html",'
    \n
    \n
    \n \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n
    \n \n\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n {{ \'APPLICATION_CONDITIONS\' | translate }} \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n {{ \'APPLICATION_ACTIONS\' | translate }} \n
    \n
    \n
    \n \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n'),a.put("app/automation/wizard/wizard.html",'
    \n
    \n \n \n \n\n \n
    \n
    \n
    \n \n {{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD \n
    \n
    \n
    \n \n \n \n
    \n \n
    \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
    \n \n\n \n
    \n \n \n
    \n \n\n \n
    \n
    \n \n
    \n
    \n
    \n \n {{ \'APPLICATION_CHANNEL\' | translate }} \n
    \n
    \n
    \n
    \n \n \n {{$select.selected | capitalize}}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n {{ \'APPLICATION_CONDITIONS\' | translate }} \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n {{ \'APPLICATION_ACTIONS\' | translate }} \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n \n

    {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n\n'),a.put("app/chat/preview/preview.html",'\n
    \n
    \n \n \n \n \n \n {{statePreview.state == \'online\' ? chatWebsite.header_online : chatWebsite.header_offline}}\n
    \n
    \n
    \n
    \n \n
      \n
      \n
      \n
      \n

      \n \n \n \n {{chatWebsite.enquiry_button}}
      \n
      \n \n \n \n
      \n
      \n'),a.put("app/chat/queue/list/list.html",'\n\n\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_QUEUE\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_STRATEGY\' | translate }}{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{chatQueue.name}}{{chatQueue.description}}{{chatQueue.strategy | uppercase}}{{chatQueue.timeout}}\n \n {{ \'APPLICATION_EDIT\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n No chat queues available\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'), +a.put("app/chat/queue/view/view.agents.html",'
      \n
      \n
      \n
      \n
      \n \n {{\'APPLICATION_AGENTS\' | translate}}\n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n'),a.put("app/chat/queue/view/view.html",'\n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n \n
      \n \n \n
      \n
      \n {{queue.name}}\n
      \n \n
      \n \n\n \n \n \n
      \n \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/chat/queue/view/view.settings.html",'
      \n
      \n
      \n
      \n
      \n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
      \n
      \n
      \n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n \n {{$select.selected.toUpperCase()}}\n \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n'),a.put("app/chat/queue/wizard/wizard.html",'
      \n \n \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_QUEUES\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.toUpperCase()}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n
      \n
      \n
      \n
      \n \n
      \n'),a.put("app/chat/realtime/view/agent/agent.html",'\n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_UNIQUEID\' | translate }}{{ \'APPLICATION_QUEUE\' | translate }}{{ \'APPLICATION_AGENT\' | translate }}{{ \'APPLICATION_VISITOR\' | translate }}{{ \'APPLICATION_WEB_SITE\' | translate }}{{ \'APPLICATION_CALLED_AT\' | translate }}{{ \'APPLICATION_CONNECTED_AT\' | translate }}{{ \'APPLICATION_UNASWER_AT\' | translate }}{{ \'APPLICATION_REASON\' | translate }}
      \n \n \n \n {{agent.uniqueid}}{{agent.chatqueuename}}{{agent.fullname}}{{agent.visitorname}} {{agent.visitoremail}}{{agent.websitename}}\n \n \n \n \n \n \n {{agent.reason | uppercase}}\n
      \n No agents available\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n \n
      \n \n
      \n
      \n\n'),a.put("app/chat/realtime/view/session/session.html",'\n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_UNIQUEID\' | translate }}{{ \'APPLICATION_QUEUE\' | translate }}{{ \'APPLICATION_AGENT\' | translate }}{{ \'APPLICATION_VISITOR\' | translate }}{{ \'APPLICATION_WEB_SITE\' | translate }}{{ \'APPLICATION_JOIN_AT\' | translate }}{{ \'APPLICATION_LEAVE_AT\' | translate }}{{ \'APPLICATION_UNMANAGED_AT\' | translate }}
      \n \n \n \n {{session.uniqueid}}{{session.chatqueuename}}{{session.fullname}}{{session.visitorname + \' [\' + session.visitoremail + \']\'}}{{session.websitename}}\n \n \n \n \n \n
      \n No sessions available\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n \n
      \n \n
      \n
      \n\n'),a.put("app/chat/realtime/view/view.html",'\n
      \n
      \n \n\n
      \n \n
      \n
      \n
      \n
      \n\n'),a.put("app/chat/statistic/statistic.conversation.html",'\n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_CONVERSATIONS\' | translate }} \n
      \n
      \n \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_TYPE\' | translate }}{{ \'APPLICATION_USERS\' | translate }}{{ \'APPLICATION_VISITOR\' | translate }}{{ \'APPLICATION_STATUS\' | translate }}{{ \'APPLICATION_TIME\' | translate }}
      {{chatRoom.type | uppercase}}{{getUsersFullname(chatRoom.Users)}}{{chatRoom.ChatVisitor.email}}\n \n {{chatRoom.status | capitalize}}\n \n \n \n
      \n \n
      \n \n
      \n
      \n \n
      \n\n'),a.put("app/chat/statistic/statistic.conversation.view.html",'\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_TRANSCRIPT\' | translate }} \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_VISITOR\' | translate }}: \n {{chatRoom.ChatVisitor.fullname}}\n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n {{\'APPLICATION_FULLNAME\' | translate}}\n
      \n
      \n {{chatRoom.ChatVisitor.fullname}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_EMAIL\' | translate}}\n
      \n
      \n {{chatRoom.ChatVisitor.email}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n
      \n
      \n {{chatRoom.ChatVisitor.remote_address}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_REFERER\' | translate}}\n
      \n
      \n {{chatRoom.ChatVisitor.referer}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_BROWSER\' | translate}}\n
      \n
      \n {{chatRoom.ChatVisitor.browser}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_ENGINE\' | translate}}\n
      \n
      \n {{chatRoom.ChatVisitor.engine}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_OS\' | translate}}\n
      \n
      \n {{chatRoom.ChatVisitor.os}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_DEVICE\' | translate}}\n
      \n
      \n {{chatRoom.ChatVisitor.device}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_COUNTRY\' | translate}}\n
      \n
      \n {{chatRoom.ChatVisitor.country}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_REGION\' | translate}}\n
      \n
      \n {{chatRoom.ChatVisitor.region}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_CITY\' | translate}}\n
      \n
      \n {{chatRoom.ChatVisitor.city}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_LATITUDE\' | translate}}\n
      \n
      \n {{chatRoom.ChatVisitor.latitude}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_LONGITUDE\' | translate}}\n
      \n
      \n {{chatRoom.ChatVisitor.longitude}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n
      \n
      \n \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_AGENT\' | translate }}: \n {{user.fullname}}\n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n {{\'APPLICATION_FULLNAME\' | translate}}\n
      \n
      \n {{user.fullname}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_USERNAME\' | translate}}\n
      \n
      \n {{user.name}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_ROLE\' | translate}}\n
      \n
      \n {{user.role | uppercase}}\n
      \n
      \n
      \n
      \n \n
      \n
      \n\n'), +a.put("app/chat/statistic/statistic.enquiry.html",'\n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_ENQUIRIES\' | translate }} \n
      \n
      \n \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_USERNAME\' | translate }}{{ \'APPLICATION_EMAIL\' | translate }}{{ \'APPLICATION_TIME\' | translate }}
      {{chatEnquiry.username}}{{chatEnquiry.email}}\n \n
      \n \n
      \n \n
      \n
      \n \n
      \n\n'),a.put("app/chat/statistic/statistic.enquiry.view.html",'\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_TEXT\' | translate }} \n
      \n
      \n \n \n \n
      \n
      \n
      \n \n
      \n

      {{chatEnquiry.ChatVisitor.fullname}} -\n \n

      \n

      \n {{chatEnquiry.text}}\n

      \n
      \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_VISITOR\' | translate }}: \n {{chatEnquiry.ChatVisitor.fullname}}\n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n {{\'APPLICATION_FULLNAME\' | translate}}\n
      \n
      \n {{chatEnquiry.ChatVisitor.fullname}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_EMAIL\' | translate}}\n
      \n
      \n {{chatEnquiry.ChatVisitor.email}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n
      \n
      \n {{chatEnquiry.ChatVisitor.remote_address}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_REFERER\' | translate}}\n
      \n
      \n {{chatEnquiry.ChatVisitor.referer}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_BROWSER\' | translate}}\n
      \n
      \n {{chatEnquiry.ChatVisitor.browser}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_ENGINE\' | translate}}\n
      \n
      \n {{chatEnquiry.ChatVisitor.engine}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_OS\' | translate}}\n
      \n
      \n {{chatEnquiry.ChatVisitor.os}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_DEVICE\' | translate}}\n
      \n
      \n {{chatEnquiry.ChatVisitor.device}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_COUNTRY\' | translate}}\n
      \n
      \n {{chatEnquiry.ChatVisitor.country}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_REGION\' | translate}}\n
      \n
      \n {{chatEnquiry.ChatVisitor.region}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_CITY\' | translate}}\n
      \n
      \n {{chatEnquiry.ChatVisitor.city}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_LATITUDE\' | translate}}\n
      \n
      \n {{chatEnquiry.ChatVisitor.latitude}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_LONGITUDE\' | translate}}\n
      \n
      \n {{chatEnquiry.ChatVisitor.longitude}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n
      \n
      \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/chat/statistic/statistic.html",'\n\n\n'),a.put("app/chat/statistic/statistic.summary.html",'
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_LOCATIONS\' | translate }} \n
      \n
      \n
      \n \n \n \n
      \n
      \n \n\n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_CONVERSATIONS\' | translate }} \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
        \n
      • \n \n {{ \'APPLICATION_OPENED\' | translate }} \n \n \n {{ (chatRooms | filter:{ status:\'open\' }).length }} \n
      • \n
      • \n \n {{ \'APPLICATION_CLOSED\' | translate }} \n \n \n {{ (chatRooms | filter:{ status:\'close\' }).length }} \n
      • \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_VISITORS\' | translate }} \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
        \n
      • \n \n {{ \'APPLICATION_PENDING\' | translate }} \n \n \n {{ (chatVisitors | filter:{ status:\'pending\' }).length }} \n
      • \n
      • \n \n {{ \'APPLICATION_SERVED\' | translate }} \n \n \n {{ (chatVisitors | filter:{ status:\'served\' }:true).length }} \n
      • \n
      • \n \n {{ \'APPLICATION_UNSERVED\' | translate }} \n \n {{ (chatVisitors | filter:{ status:\'unserved\' }).length }} \n
      • \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_ENQUIRIES\' | translate }} \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
        \n
      • \n \n {{ \'APPLICATION_READ\' | translate }}\n \n \n {{(chatEnquiries | filter:{ read:true }).length}} \n
      • \n
      • \n \n {{ \'APPLICATION_UNREAD\' | translate }}\n \n \n {{(chatEnquiries | filter:{ read:false }).length}} \n
      • \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n \n
      \n'),a.put("app/chat/statistic/statistic.visitor.html",'\n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_VISITORS\' | translate }} \n
      \n
      \n \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_EMAIL\' | translate }}{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}{{ \'APPLICATION_ORIGIN\' | translate }}{{ \'APPLICATION_DEVICE\' | translate }}{{ \'APPLICATION_BROWSER\' | translate }}{{ \'APPLICATION_LANGUAGES\' | translate }}{{ \'APPLICATION_STATUS\' | translate }}{{ \'APPLICATION_TIME\' | translate }}
      {{chatVisitor.fullname}}{{chatVisitor.email}}{{chatVisitor.remote_address}}{{chatVisitor.referer}}{{chatVisitor.device ? chatVisitor.device : \'--\'}}\n \n \n \n \n \n \n \n \n \n \n {{ $translate.instant(\'APPLICATION_\' + $filter(\'uppercase\')(chatVisitor.status)) }}\n \n \n \n
      \n \n
      \n \n
      \n
      \n \n
      \n\n'),a.put("app/chat/statistic/statistic.visitor.view.html",'\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_LOCATION\' | translate }} \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_VISITOR\' | translate }}: \n {{chatVisitor.fullname}}\n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n {{\'APPLICATION_FULLNAME\' | translate}}\n
      \n
      \n {{chatVisitor.fullname}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_EMAIL\' | translate}}\n
      \n
      \n {{chatVisitor.email}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n
      \n
      \n {{chatVisitor.remote_address}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_REFERER\' | translate}}\n
      \n
      \n {{chatVisitor.referer}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_BROWSER\' | translate}}\n
      \n
      \n {{chatVisitor.browser}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_ENGINE\' | translate}}\n
      \n
      \n {{chatVisitor.engine}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_OS\' | translate}}\n
      \n
      \n {{chatVisitor.os}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_DEVICE\' | translate}}\n
      \n
      \n {{chatVisitor.device}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_COUNTRY\' | translate}}\n
      \n
      \n {{chatVisitor.country}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_REGION\' | translate}}\n
      \n
      \n {{chatVisitor.region}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_CITY\' | translate}}\n
      \n
      \n {{chatVisitor.city}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_LATITUDE\' | translate}}\n
      \n
      \n {{chatVisitor.latitude}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_LONGITUDE\' | translate}}\n
      \n
      \n {{chatVisitor.longitude}}\n
      \n
      \n
      \n
      \n {{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n
      \n
      \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/chat/timeline/list/list.html",'
      \n \n
      \n\n\n
      \n
      \n

      \n Timeline\n

      \n \n \n
      \n \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n
      \n {{event.name | uppercase}}\n at {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}\n
      \n
      \n \n
      \n
      \n
      \n \n {{event.MailRoom.subject ? event.MailRoom.subject + \' - \' : \'\'}}{{event.User.fullname}}\n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n\n'),a.put("app/chat/website/list/list.html",'\n\n\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_WEB_SITES\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_WEB_ADDRESS\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{chatWebsite.name}}{{chatWebsite.description}}{{chatWebsite.address}}\n \n {{ \'APPLICATION_PROFILE\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n {{\'MESSAGE_NO_AVAILABLE_WEBSITES\' | translate}}\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'), +a.put("app/chat/website/view/action/list/list.html",'
      \n
      \n
      \n
      \n
      \n \n {{\'APPLICATION_ACTIONS\' | translate}}\n
      \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      {{\'APPLICATION_APPLICATION\' | translate}}{{\'APPLICATION_TIMEOUT\' | translate}} [s]{{ \'APPLICATION_INTERVAL\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      \n \n \n \n {{application.timeout}}{{application.Interval ? application.Interval.name : application.interval}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n No applications available\n
      \n \n
      \n
      \n
      \n
      \n'),a.put("app/chat/website/view/action/view/view.html",'\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_ACTION\' | translate }} \n
      \n
      \n
      \n
      \n \n
      \n \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n
      \n \n
      \n \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n
      \n\n
      \n \n
      \n \n \n {{$select.selected.fullname}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n
      \n\n \n
      \n \n \n {{ $select.selected.name | translate }}\n \n {{ intType.name | translate }}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n
      \n \n
      \n \n
      \n
      \n \n
      \n
      to
      \n
      \n \n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n
      \n \n\n \n
      \n \n
      \n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate}}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate }}\n \n \n
      \n
      \n \n\n \n
      \n \n
      \n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
      \n
      \n \n\n \n
      \n \n
      \n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n
      \n
      \n \n
      \n\n
      \n\n \n
      \n \n \n {{ $select.selected.name}}\n \n {{ interval.name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n
      \n \n
      \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/chat/website/view/action/wizard/wizard.html",'\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_ACTION\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n \n
      \n \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n
      \n \n
      \n \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n
      \n\n
      \n \n
      \n \n \n {{$select.selected.fullname}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n
      \n\n \n
      \n \n \n {{ $select.selected.name | translate }}\n \n {{ intType.name | translate }}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n
      \n \n
      \n \n
      \n
      \n \n
      \n
      to
      \n
      \n \n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n
      \n \n\n \n
      \n \n
      \n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate}}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate }}\n \n \n
      \n
      \n \n\n \n
      \n \n
      \n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
      \n
      \n \n\n \n
      \n \n
      \n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n
      \n
      \n \n
      \n\n
      \n\n \n
      \n \n \n {{ $select.selected.name}}\n \n {{ interval.name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n
      \n\n \n
      \n
      \n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/chat/website/view/snippet/view/view.html",'
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n \n
      \n

      {{\'APPLICATION_EMBED_SNIPPET\' | translate}}

      \n

      \n {{\'MESSAGE_EMBED_SNIPPET\' | translate}}\n

      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n \n\n \n
      \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}\n \n
      \n
      \n
      \n
      \n \n\n \n
      \n \n \n \n {{$select.selected ? \'On\' : \'Off\'}}\n \n
      \n
      \n
      \n
      \n \n\n\n \n
      \n
      \n \n\n \n
      \n
      \n\n \n
      \n \n \n {{$select.selected ? \'On\' : \'Off\'}}\n \n
      \n
      \n
      \n
      \n \n\n \n
      \n
      \n \n\n \n
      \n
      \n\n

      {{\'APPLICATION_ONLINE_STATE\' | translate}}

      \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n

      {{\'APPLICATION_OFFLINE_STATE\' | translate}}

      \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n
      \n \n\n \n
      \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n
      \n \n
      \n
      \n
      \n \n
      \n \n \n \n {{$select.selected}}\n \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n'), a.put("app/chat/website/view/view.html",'\n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n \n
      \n \n \n
      \n
      \n {{chatWebsite.name}}\n
      \n
      \n {{chatWebsite.address}}\n
      \n
      \n \n \n \n \n
      \n \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/chat/website/wizard/wizard.html",'\n\n\n\n\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_WEB_SITE\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n \n
      \n
      \n\n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}\n \n
      \n
      \n
      \n
      \n \n\n \n
      \n \n \n {{$select.selected ? \'On\' : \'Off\'}}\n \n
      \n
      \n
      \n
      \n \n\n\n \n
      \n
      \n\n \n
      \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n
      \n\n \n
      \n\n \n
      \n \n \n {{$select.selected ? \'On\' : \'Off\'}}\n \n
      \n
      \n
      \n
      \n \n\n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/contactmanager/list/list.html",'\n
      \n
      \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_CONTACTS\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_SURNAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{contact.name}} {{}}{{contact.surname}}{{contact.description}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n {{ \'MESSAGE_NO_CONTACTS_AVAILABLE\' | translate }}\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/contactmanager/view/view.history.html",'
      \n
      \n
      \n
      \n
      \n \n {{\'APPLICATION_HISTORY\' | translate}}\n
      \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      {{ \'APPLICATION_CALLERID\' | translate }}{{ \'APPLICATION_DATE\' | translate }}
      {{history.callerid}}{{history.name}}
      \n {{ \'MESSAGE_NO_CONTACTS_AVAILABLE\' | translate }}\n
      \n \n
      \n
      \n
      \n
      \n'),a.put("app/contactmanager/view/view.html",'\n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n \n
      \n \n \n
      \n
      \n {{contact.mailbox}}\n
      \n \n
      \n \n\n \n \n \n
      \n \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/contactmanager/view/view.settings.html",'
      \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_CONTACT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n
      \n \n \n \n \n\n
      \n
      \n
      \n
      \n
      \n'), -a.put("app/contactmanager/wizard/wizard.html",'
      \n \n \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_CONTACT\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n \n
      \n
      \n
      \n
      \n \n
      \n'),a.put("app/dashboard/dashboard.html",'\n
      \n
      \n \n\n
      \n \n
      \n
      \n
      \n
      \n\n'),a.put("app/dashboard/mail/mail.html",'
      \nThis is the mail view.\n
      \n'),a.put("app/dashboard/voice/voice.html",'
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n {{queueStats.abandonedCalls}}\n
      \n
      \n {{\'APPLICATION_DASHBOARD_ABANDONED\' | translate}}\n
      \n
      \n \n {{\'APPLICATION_VIEW_MORE\' | translate}} \n \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n {{queueStats.completedCalls}}\n
      \n
      \n {{\'APPLICATION_DASHBOARD_COMPLETED\' | translate}}\n
      \n
      \n \n {{\'APPLICATION_VIEW_MORE\' | translate}} \n \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n {{queueStats.waitCalls}}\n
      \n
      \n {{\'APPLICATION_DASHBOARD_WAIT\' | translate}}\n
      \n
      \n \n {{\'APPLICATION_VIEW_MORE\' | translate}} \n \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n {{queueStats.activeCalls}}\n
      \n
      \n {{\'APPLICATION_DASHBOARD_ACTIVE\' | translate}}\n
      \n
      \n \n {{\'APPLICATION_VIEW_MORE\' | translate}} \n \n
      \n
      \n
      \n'),a.put("app/fax/account/list/list.html",'\n\n\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_ACCOUNTS\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_PHONE\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{faxAccount.name}}{{faxAccount.description}}{{faxAccount.phone}}\n \n {{ \'APPLICATION_EDIT\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n No fax account available\n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/fax/account/view/view.applications.html",'
      \n
      \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n \n
      \n \n \n {{$select.selected | uppercase}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n \n \n\n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/fax/account/view/view.html",'\n
      \n
      \n \n\n\n\n\n \n
      \n \n
      \n \n
      \n \n
      \n \n\n \n
      \n
      \n {{ account.name || account.description }}\n
      \n
      \n {{ account.phone }}\n
      \n
      \n \n\n \n \n \n
      \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/fax/account/view/view.routes.html",'
      \n
      \n
      \n
      \n
      \n \n {{\'APPLICATION_ROUTES\' | translate}}\n
      \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      {{\'APPLICATION_APPLICATION\' | translate}}{{\'APPLICATION_ARGUMENTS\' | translate}}{{\'APPLICATION_TIMEOUT\' | translate}}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{application.app}} {{getAppdata(application.app, application.appdata)}}{{application.timeout}}\n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n No applications available\n
      \n \n
      \n
      \n
      \n
      \n'),a.put("app/fax/account/view/view.settings.html",'
      \n
      \n
      \n
      \n
      \n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
      \n \n
      \n
      \n
      \n \n
      \n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n
      \n \n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n
      \n \n\n
      \n
      \n
      \n
      \n
      \n'), +a.put("app/contactmanager/wizard/wizard.html",'
      \n \n \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_CONTACT\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n \n
      \n
      \n
      \n
      \n \n
      \n'),a.put("app/dashboard/dashboard.html",'\n
      \n
      \n \n\n
      \n \n
      \n
      \n
      \n
      \n\n'),a.put("app/dashboard/mail/mail.html",'
      \nThis is the mail view2.\n
      \n'),a.put("app/dashboard/voice/voice.html",'
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n {{queueStats.abandonedCalls}}\n
      \n
      \n {{\'APPLICATION_DASHBOARD_ABANDONED\' | translate}}\n
      \n
      \n \n {{\'APPLICATION_VIEW_MORE\' | translate}} \n \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n {{queueStats.completedCalls}}\n
      \n
      \n {{\'APPLICATION_DASHBOARD_COMPLETED\' | translate}}\n
      \n
      \n \n {{\'APPLICATION_VIEW_MORE\' | translate}} \n \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n {{queueStats.waitCalls}}\n
      \n
      \n {{\'APPLICATION_DASHBOARD_WAIT\' | translate}}\n
      \n
      \n \n {{\'APPLICATION_VIEW_MORE\' | translate}} \n \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n {{queueStats.activeCalls}}\n
      \n
      \n {{\'APPLICATION_DASHBOARD_ACTIVE\' | translate}}\n
      \n
      \n \n {{\'APPLICATION_VIEW_MORE\' | translate}} \n \n
      \n
      \n
      \n'),a.put("app/fax/account/list/list.html",'\n\n\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_ACCOUNTS\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_PHONE\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{faxAccount.name}}{{faxAccount.description}}{{faxAccount.phone}}\n \n {{ \'APPLICATION_EDIT\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n No fax account available\n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/fax/account/view/view.applications.html",'
      \n
      \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n \n
      \n \n \n {{$select.selected | uppercase}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n \n \n\n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/fax/account/view/view.html",'\n
      \n
      \n \n\n\n\n\n \n
      \n \n
      \n \n
      \n \n
      \n \n\n \n
      \n
      \n {{ account.name || account.description }}\n
      \n
      \n {{ account.phone }}\n
      \n
      \n \n\n \n \n \n
      \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/fax/account/view/view.routes.html",'
      \n
      \n
      \n
      \n
      \n \n {{\'APPLICATION_ROUTES\' | translate}}\n
      \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      {{\'APPLICATION_APPLICATION\' | translate}}{{\'APPLICATION_ARGUMENTS\' | translate}}{{\'APPLICATION_TIMEOUT\' | translate}}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{application.app}} {{getAppdata(application.app, application.appdata)}}{{application.timeout}}\n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n No applications available\n
      \n \n
      \n
      \n
      \n
      \n'),a.put("app/fax/account/view/view.settings.html",'
      \n
      \n
      \n
      \n
      \n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
      \n \n
      \n
      \n
      \n \n
      \n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n
      \n \n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n
      \n \n\n
      \n
      \n
      \n
      \n
      \n'), a.put("app/fax/account/wizard/wizard.html",'\n\n\n\n\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n
      \n \n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n\n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n
      \n\n
      \n\n
      \n
      \n \n
      \n
      \n\n'),a.put("app/fax/automation/list/list.html",'\n\n\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_AUTOMATIONS\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_STATUS\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{faxAutomation.name}}{{faxAutomation.description}}\n \n \n \n {{ \'APPLICATION_EDIT\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n {{\'MESSAGE_NO_AVAILABLE_AUTOMATIONS\' | translate}}\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/fax/automation/view/view.html",'\n
      \n
      \n \n\n\n\n\n \n
      \n \n
      \n \n
      \n \n
      \n \n\n \n
      \n
      \n {{ automation.name }}\n
      \n
      \n {{automation.description}}\n
      \n
      \n \n\n \n \n \n
      \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/fax/automation/view/view.settings.html",'
      \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n
      \n \n\n \n
      \n
      \n
      \n \n \n \n \n Meet all of the following conditions: \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n {{$select.selected.value}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n {{$select.selected.value}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n {{$select.selected.value}}\n \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n Add condition\n
      \n
      \n
      \n \n\n
      \n
      \n
      \n \n \n \n \n Meet all of the following conditions: \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n {{$select.selected.value}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n {{$select.selected.value}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n {{$select.selected.value}}\n \n
      \n
      \n
      \n
      \n
      \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n Add condition\n
      \n
      \n
      \n\n \n
      \n
      \n
      \n \n \n \n \n Meet all of the following conditions: \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n {{$select.selected.value}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n {{$select.selected.value}}\n \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n Add condition\n
      \n
      \n\n
      \n \n
      \n
      \n
      \n
      \n
      \n'),a.put("app/fax/automation/wizard/wizard.html",'\n
      \n
      \n \n \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n\n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n
      \n
      \n\n
      \n
      \n
      \n
      \n
      \n\n
      \n
      \n \n \n \n \n Meet any of the following conditions: \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n {{$select.selected.value}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n
      \n
      \n
      \n \n {{$select.selected.value}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n
      \n
      \n
      \n \n {{$select.selected.value}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n
      \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n Add condition\n
      \n
      \n\n
      \n
      \n \n \n \n \n Meet all of the following conditions: \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n {{$select.selected.value}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n
      \n
      \n
      \n \n {{$select.selected.value}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n
      \n
      \n
      \n \n {{$select.selected.value}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n
      \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n Add condition\n
      \n
      \n\n
      \n
      \n \n \n \n \n Perform these actions: \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n {{$select.selected.value}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n
      \n
      \n
      \n \n {{$select.selected.value}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n
      \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n
      \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n Add action\n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n\n'), a.put("app/fax/inbox/inbox.html",'\n\n\n
      \n
      \n
      \n
      \n'),a.put("app/fax/inbox/incoming/incoming.html",'\n
      \n \n
      \n

      Inbox

      \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n \n
      \n
      \n \n \n \n \n
      \n \n {{$select.selected}}\n \n \n \n \n
      \n
      \n
      \n \n \n {{faxRoom.from}}\n \n {{faxRoom.MailAccount.description ? faxRoom.MailAccount.description : faxRoom.MailAccount.name}}\n \n {{faxRoom.status | uppercase}} \n \n {{faxRoom.User.fullname}} \n {{\'APPLICATION_UNASSIGNED\' | translate}} \n \n \n
      \n {{\'MESSAGE_NO_AVAILABLE_MESSAGES\' | translate}}\n
      \n \n
      \n
      \n
      \n'),a.put("app/fax/inbox/room/room.html",'\n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n
        \n
      • \n \n
        \n \n \n {{\'APPLICATION_FROM\' | translate}}: \n {{faxMessage.From.fullname}} \n <{{faxMessage.From.phone}}> \n
        \n {{\'APPLICATION_TO\' | translate}}: \n {{faxMessage.To.fullname}} \n <{{faxMessage.To.phone}}> \n
        \n \n \n \n \n {{faxMessage.status | uppercase}} \n
        \n
        \n \n
        \n \n
        \n
        \n
        \n
        \n
      • \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n \n {{ getCurrentUser().fullname }}\n
      \n
      \n
      \n \n\n \n
      \n
      \n
      \n
      \n \n
      \n
      \n \n {{$select.selected.name}} - {{$select.selected.phone}}\n \n
      \n \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n
      \n
      \n
      \n\n \n
      \n
      \n
      \n
      \n \n
      \n
      \n \n {{$item}}\n \n {{to}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n
      \n
      \n
      \n\n \n
      \n
      \n \n
      \n
      \n
      \n \n\n \n
      \n
      \n \n \n \n \n \n \n \n \n \n
      \n \n {{ item.file.name }}\n \n \n {{ item.file.size/1024/1024|number:2 }} MB\n \n \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n\n
      \n
      \n
      \n
      \n
      \n
      \n
      \n\n'),a.put("app/fax/queue/list/list.html",'\n\n\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_QUEUES\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_STRATEGY\' | translate}}{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{queue.name}}{{queue.description}}{{queue.strategy | uppercase}}{{queue.timeout}}\n \n {{ \'APPLICATION_PROFILE\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n No available queues\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/fax/queue/view/view.agents.html",'
      \n
      \n
      \n
      \n
      \n \n {{\'APPLICATION_AGENTS\' | translate}}\n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n'),a.put("app/fax/queue/view/view.html",'\n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n \n
      \n \n \n
      \n
      \n {{queue.name}}\n
      \n \n
      \n \n\n \n \n \n
      \n \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/fax/queue/view/view.settings.html",'
      \n
      \n
      \n
      \n
      \n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
      \n
      \n
      \n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n \n {{$select.selected.toUpperCase()}}\n \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n'),a.put("app/fax/queue/wizard/wizard.html",'
      \n \n \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_QUEUES\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.toUpperCase()}}\n \n
      \n
      \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n
      \n
      \n
      \n
      \n \n
      \n'), a.put("app/fax/timeline/list/list.html",'\n\n\n
      \n
      \n

      \n {{\'APPLICATION_TIMELINE\' | translate}}\n

      \n \n \n
      \n \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n
      \n {{event.name | uppercase}}\n {{\'APPLICATION_AT\' | translate}} {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}\n
      \n \n
      \n
      \n \n {{event.FaxRoom.subject ? event.FaxRoom.subject + \' - \' : \'\'}}{{event.User.fullname}}\n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n\n'),a.put("app/integration/list/list.html",'\n\n
      \n
      \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_INTEGRATIONS\' | translate }} \n
      \n
      \n \n New App \n \n \n \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_ID\' | translate }}{{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_FILENAME\' | translate }}{{ \'APPLICATION_VERSION\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{integration.id}}{{integration.name}}{{integration.filename}}{{integration.version}}{{integration.description}}\n \n {{ \'APPLICATION_UPDATE\' | translate }} \n \n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n No integrations available\n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n \n \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/interval/list/list.html",'\n
      \n
      \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_INTERVALS\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{interval.name}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n {{ \'MESSAGE_NO_INTERVALS_AVAILABLE\' | translate }}\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/interval/view/view.html",'\n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n \n
      \n \n \n
      \n
      \n {{interval.name}}\n
      \n \n
      \n \n\n \n \n \n
      \n \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/interval/view/view.settings.html",'
      \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_INTERVAL\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n
      \n \n\n
      \n
      \n
      \n
      \n
      \n'),a.put("app/interval/view/view.subinterval.html",'\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_NEW_SUBINTERVAL\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n
      \n
      \n
      to
      \n
      \n \n
      \n
      \n \n\n \n
      \n \n
      \n \n {{$translate.instant($select.selected.name)}}\n \n {{$translate.instant(weekDay.name)}}\n \n \n to\n \n {{$translate.instant($select.selected.name)}}\n \n {{$translate.instant(weekDay.name)}}\n \n \n
      \n
      \n \n\n \n
      \n \n
      \n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
      \n
      \n \n\n \n
      \n \n
      \n \n {{$translate.instant($select.selected.name)}}\n \n {{$translate.instant(month.name)}}\n \n \n to\n \n {{$translate.instant($select.selected.name)}}\n \n {{$translate.instant(month.name)}}\n \n \n
      \n
      \n \n\n\n\n \n
      \n
      \n\n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/interval/view/view.subintervalSettings.html",'\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_SUBINTERVAL_SETTINGS\' | translate }} WIZARD \n
      \n
      \n
      \n \n
      \n {{subinterval.name}}\n
      \n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n
      \n
      \n
      to
      \n
      \n \n
      \n
      \n \n\n \n
      \n \n
      \n \n {{$translate.instant($select.selected.name)}}\n \n {{$translate.instant(weekDay.name)}}\n \n \n to\n \n {{$translate.instant($select.selected.name)}}\n \n {{$translate.instant(weekDay.name)}}\n \n \n
      \n
      \n \n\n \n
      \n \n
      \n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
      \n
      \n \n\n \n
      \n \n
      \n \n {{$translate.instant($select.selected.name)}}\n \n {{$translate.instant(month.name)}}\n \n \n to\n \n {{$translate.instant($select.selected.name)}}\n \n {{$translate.instant(month.name)}}\n \n \n
      \n
      \n \n\n\n\n \n
      \n
      \n\n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/interval/view/view.subintervals.html",'
      \n
      \n
      \n
      \n
      \n
      \n \n {{\'APPLICATION_SUBINTERVALS\' | translate}}\n
      \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_TIME\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{subinterval.name}}{{subinterval.interval}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n {{ \'MESSAGE_NO_SUBINTERVALS_AVAILABLE\' | translate }}\n
      \n \n
      \n
      \n
      \n
      \n
      \n'), @@ -28,7 +27,7 @@ a.put("app/mail/template/view/view.agents.html",'
      \n'),a.put("app/sound/list/list.html",'\n\n\n\n
      \n

      {{ \'APPLICATION_SOUNDS\' | translate }}

      \n
      \n
      \n
      \n
      \n \n \n {{\'APPLICATION_FILE_UPLOAD\' | translate}} \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n {{\'APPLICATION_SELECT_FILES\' | translate}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n Base drop zone\n
      \n
      \n \n \n {{\'APPLICATION_FILE_UPLOAD\' | translate}}\n \n \n \n \n {{\'APPLICATION_MULTI_FILE_UPLOAD\' | translate}}\n
      \n
      \n

      \n
      \n {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} wav, mp3, gsm, ogg.\n

      \n

      \n {{ \'MESSAGE_MAXIMUM_SOUND_UPLOAD_SIZE\' | translate }} 15 Mb.\n

      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n {{\'APPLICATION_UPLOAD_QUEUE\' | translate}}\n {{\'APPLICATION_QUEUE_LENGTH\' | translate}}: {{ uploader.queue.length }}\n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      {{\'APPLICATION_NAME\' | translate}}{{\'APPLICATION_SIZE\' | translate}}{{\'APPLICATION_PROGRESS\' | translate}}{{\'APPLICATION_STATUS\' | translate}}{{\'APPLICATION_MESSAGE\' | translate}}{{\'APPLICATION_ACTIONS\' | translate}}
      {{ item.file.name }}{{ item.file.size/1024/1024|number:2 }} MB\n
      \n
      \n
      \n
      \n \n \n \n \n \n {{item.responseMessage}}\n \n \n \n \n
      \n
      \n
      \n

      {{\'APPLICATION_UPLOAD_QUEUE_PROGRESS\' | translate}}:

      \n
      \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n

      {{ \'MESSAGE_NO_SOUNDS\' | translate }}

      \n

      \n \n {{ \'MESSAGE_RETURN_HOME\' | translate }} \n {{ \'MESSAGE_OR_UPLOAD_SOUND_FILE\' | translate }}\n

      \n
      \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n \n
      \n

      \n {{ sound.description || "Empty" }}\n

      \n

      \n \n \n \n

      \n
      \n
      \n
      \n
      \n\n'),a.put("app/sound/sound.html","\n
      \n\n"),a.put("app/square/odbc/list/list.html",'\n
      \n
      \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_ODBCS\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{odbc.name}}{{odbc.description}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n {{ \'MESSAGE_NO_ODBCS_AVAILABLE\' | translate }}\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/square/odbc/view/view.html",'\n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n \n
      \n \n \n
      \n
      \n {{odbc.name}}\n
      \n \n
      \n \n\n \n \n \n
      \n \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/square/odbc/view/view.settings.html",'
      \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_ODBC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n \n
      \n
      \n \n\n
      \n
      \n
      \n
      \n
      \n'),a.put("app/square/odbc/wizard/wizard.html",'
      \n \n \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_ODBC\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n \n
      \n
      \n
      \n
      \n \n
      \n'),a.put("app/square/project/list/list.html",'\n
      \n
      \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_PROJECTS\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{project.name}}{{project.description}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n {{ \'MESSAGE_NO_PROJECTS_AVAILABLE\' | translate }}\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/square/project/view/view.html",'\n\n
      \n
      \n
      \n
      \n
      \n\n\n'),a.put("app/square/project/wizard/wizard.html",'
      \n \n \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_PROJECT\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n \n
      \n
      \n
      \n
      \n \n
      \n'), a.put("app/tag/list/create.modal.html",'\n\n\n'),a.put("app/tag/list/list.html",'\n
      \n
      \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_TAGS\' | translate }} \n
      \n
      \n \n
      \n \n
      \n \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{tag.name}}{{tag.description}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n {{ \'MESSAGE_NO_TAGS_AVAILABLE\' | translate }}\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/tag/view/view.html",'\n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n \n
      \n \n \n
      \n
      \n {{tag.name}}\n
      \n \n
      \n \n\n \n \n \n
      \n \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/tag/view/view.settings.html",'
      \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_TAG\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n \n
      \n
      \n \n\n
      \n
      \n
      \n
      \n
      \n'),a.put("app/team/list/list.html",'\n\n\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_TEAMS\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{team.name}}{{team.description}}\n \n {{ \'APPLICATION_PROFILE\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n No teams available\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/team/view/view.agents.html",'
      \n
      \n
      \n
      \n
      \n \n {{\'APPLICATION_AGENTS\' | translate}}\n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n'),a.put("app/team/view/view.html",'\n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n \n
      \n \n \n
      \n
      \n {{team.name}}\n
      \n\n
      \n \n\n \n \n \n
      \n \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/team/view/view.settings.html",'
      \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}\n
      \n
      \n\n
      \n \n
      \n\n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n
      \n \n
      \n
      \n
      \n
      \n'),a.put("app/team/wizard/wizard.html",'\n\n\n\n\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_TEAM\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/trigger/list/list.html",'\n\n\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_TRIGGERS\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_CHANNEL\' | translate }}{{ \'APPLICATION_STATUS\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{Trigger.name}}{{Trigger.description}}{{Trigger.channel | capitalize}}\n \n \n \n {{ \'APPLICATION_EDIT\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n No available triggers\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'), a.put("app/trigger/view/view.html",'\n
      \n
      \n \n\n\n\n\n \n
      \n \n
      \n \n
      \n \n
      \n \n\n \n
      \n
      \n {{ trigger.name }}\n
      \n
      \n {{ trigger.description }}\n
      \n
      \n \n\n \n \n \n
      \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/trigger/view/view.settings.html",'
      \n
      \n
      \n \n
      \n \n
      \n \n
      \n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n
      \n \n \n\n
      \n
      \n
      \n \n {{ \'APPLICATION_CONDITIONS\' | translate }} \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_ACTIONS\' | translate }} \n
      \n
      \n
      \n \n
      \n
      \n\n \n
      \n
      \n
      \n
      \n
      \n\n'),a.put("app/trigger/wizard/wizard.html",'\n
      \n
      \n \n \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_TRIGGERS\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_CHANNEL\' | translate }} \n
      \n
      \n
      \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_CONDITIONS\' | translate }} \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_ACTIONS\' | translate }} \n
      \n
      \n
      \n \n
      \n
      \n \n \n
      \n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/trunk/list/list.html",'\n
      \n
      \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_TRUNKS\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_HOST\' | translate }}{{ \'APPLICATION_CONTEXT\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{trunk.name}}{{trunk.host}}{{trunk.context}}{{trunk.description}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/trunk/view/view.html",'\n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n \n
      \n \n \n
      \n
      \n {{trunk.name}}\n
      \n \n
      \n \n\n \n \n \n
      \n \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/trunk/view/view.settings.html",'
      \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_TRUNK\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n
      \n
      \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_TRUNK_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n \n \n\n \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_TRUNK_TYPE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_TRUNK_DTMFMODE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n
      \n
      \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$item}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_TRUNK_NAT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_TRUNK_QUALIFY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$item}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_TRUNK_ALLOW_CODEC\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$item}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_TRUNK_INSECURE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_CALLLIMIT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n
      \n
      \n\n \n
      \n \n \n
      \n \n\n \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_TRUNK_LIMITONPEERS\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n \n
      \n \n\n \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_TRUNK_DIRECTMEDIA\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_TRUNK_CALLCOUNTER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_FROMDOMAIN\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_FROMUSER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n
      \n
      \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_OUTBOUNDPROXY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_TRUNK_USEREQPHONE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_TRUNK_TRUSTRPID\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_TRUNK_SENDRPID\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_TRUNK_ENCRYPTION\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_PORT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$item}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_TRUNK_TRANSPORT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n
      \n
      \n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_OTHER_FIELDS\' | translate }}\n \n
      \n \n\n \n
      \n
      \n \n\n
      \n
      \n
      \n
      \n
      \n'), -a.put("app/trunk/wizard/wizard.html",'
      \n \n \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_TRUNK\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n
      \n\n \n
      \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n \n
      \n \n \n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n \n
      \n
      \n
      \n
      \n \n
      \n'),a.put("app/update/list/checkout/checkout.html",'\n\n\n'),a.put("app/update/list/list.html",'\n
      \n
      \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_UPDATES\' | translate }} \n
      \n
      \n \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      {{ \'APPLICATION_MESSAGE\' | translate }}{{ \'APPLICATION_DATE\' | translate }}
      \n {{update.message | truncate: 30 : \'...\': true}}\n \n \n
      \n {{\'MESSAGE_NO_AVAILABLE_UPDATES\' | translate}}\n
      \n
      \n \n \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/update/view/view.account.html",'
      \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}\n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_SELECT_IMAGE\' | translate }} \n
      \n
      \n \n \n
      \n

      \n
      {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} jpg, png, jpeg.\n

      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n \n \n \n \n
      \n \n {{ item.file.name }}\n \n \n {{ item.file.size/1024/1024|number:2 }} MB\n \n \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n'),a.put("app/update/view/view.html",'\n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n \n
      \n \n\n \n
      \n
      \n {{update.fullname}}\n
      \n
      \n {{update.role}}\n
      \n
      \n \n\n \n \n \n
      \n \n
      \n \n\n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/update/wizard/wizard.html",'
      \n \n \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_UPDATE\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
      \n \n\n \n
      \n \n
      \n \n \n \n \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n \n
      \n \n\n \n
      \n
      \n\n \n
      \n\n \n \n \n\n \n
      \n \n \n {{$item}}\n \n {{transport}}\n \n \n \n {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n \n
      \n \n\n \n \n \n\n \n \n\n \n\n \n \n \n\n \n
      \n \n \n {{$item}}\n \n {{allow}}\n \n \n \n {{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n \n
      \n \n\n \n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n
      \n
      \n
      \n
      \n \n
      \n'), +a.put("app/trunk/wizard/wizard.html",'
      \n \n \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_TRUNK\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n\n \n
      \n
      \n\n \n
      \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n \n
      \n \n \n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n \n
      \n
      \n
      \n
      \n \n
      \n'),a.put("app/update/list/checkout/checkout.html",'\n\n\n'),a.put("app/update/list/list.html",'\n
      \n
      \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_UPDATES\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      {{ \'APPLICATION_MESSAGE\' | translate }}{{ \'APPLICATION_DATE\' | translate }}
      \n {{update.message | truncate: 30 : \'...\': true}}\n \n \n
      \n {{\'MESSAGE_NO_AVAILABLE_UPDATES\' | translate}}\n
      \n
      \n \n \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/update/view/view.account.html",'
      \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}\n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_SELECT_IMAGE\' | translate }} \n
      \n
      \n \n \n
      \n

      \n
      {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} jpg, png, jpeg.\n

      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n \n \n \n \n
      \n \n {{ item.file.name }}\n \n \n {{ item.file.size/1024/1024|number:2 }} MB\n \n \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n'),a.put("app/update/view/view.html",'\n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n \n
      \n \n\n \n
      \n
      \n {{update.fullname}}\n
      \n
      \n {{update.role}}\n
      \n
      \n \n\n \n \n \n
      \n \n
      \n \n\n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/update/wizard/wizard.html",'
      \n \n \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_UPDATE\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
      \n \n\n \n
      \n \n
      \n \n \n \n \n
      \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n \n
      \n \n\n \n
      \n
      \n\n \n
      \n\n \n \n \n\n \n
      \n \n \n {{$item}}\n \n {{transport}}\n \n \n \n {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n \n
      \n \n\n \n \n \n\n \n \n\n \n\n \n \n \n\n \n
      \n \n \n {{$item}}\n \n {{allow}}\n \n \n \n {{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n \n
      \n \n\n \n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n
      \n
      \n
      \n
      \n \n
      \n'), a.put("app/user/list/list.html",'\n
      \n
      \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_USERS\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_FULLNAME\' | translate }}{{ \'APPLICATION_USERNAME\' | translate }}{{ \'APPLICATION_EMAIL\' | translate }}{{ \'APPLICATION_ROLE\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{user.fullname}}{{user.name}}{{user.email}}{{user.role}}\n \n {{ \'APPLICATION_PROFILE\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n No users available\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/user/view/view.account.html",'
      \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}\n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
      \n \n\n \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_SELECT_IMAGE\' | translate }} \n
      \n
      \n \n \n
      \n

      \n
      {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} jpg, png, jpeg.\n

      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n \n \n \n \n
      \n \n {{ item.file.name }}\n \n \n {{ item.file.size/1024/1024|number:2 }} MB\n \n \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n \n
      \n \n
      \n \n
      \n
      \n
      \n
      \n
      \n'),a.put("app/user/view/view.html",'\n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n \n
      \n \n \n
      \n
      \n {{user.fullname}}\n
      \n
      \n {{user.role}}\n
      \n
      \n \n\n \n \n \n
      \n \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/user/wizard/wizard.html",'
      \n \n \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_USER\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
      \n \n\n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n
      \n
      \n
      \n
      \n \n
      \n'),a.put("app/variable/list/create.modal.html",'\n\n\n'),a.put("app/variable/list/list.html",'\n
      \n
      \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_VARIABLES\' | translate }} \n
      \n
      \n \n
      \n \n
      \n \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{variable.name}}{{variable.description}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n {{ \'MESSAGE_NO_VARIABLES_AVAILABLE\' | translate }}\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'), a.put("app/variable/view/view.html",'\n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n \n
      \n \n \n
      \n
      \n {{variable.name}}\n
      \n \n
      \n \n\n \n \n \n
      \n \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/variable/view/view.settings.html",'
      \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_VARIABLE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n \n
      \n
      \n \n\n
      \n
      \n
      \n
      \n
      \n'),a.put("app/voice/context/list/list.html",'\n
      \n
      \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_CONTEXTS\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{context.name}}{{context.description}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n {{ \'MESSAGE_NO_CONTEXTS_AVAILABLE\' | translate }}\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/voice/context/view/view.html",'\n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n \n
      \n \n \n
      \n
      \n {{context.name}}\n
      \n \n
      \n \n\n \n \n \n
      \n \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/voice/context/view/view.settings.html",'
      \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_CONTEXT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n\n \n
      \n \n \n
      \n \n \n
      \n
      \n \n\n
      \n
      \n
      \n
      \n
      \n'),a.put("app/voice/context/wizard/wizard.html",'
      \n \n \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_CONTEXT\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n
      \n \n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n \n
      \n
      \n
      \n
      \n \n
      \n'),a.put("app/voice/moh/list/list.html",'\n
      \n
      \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_MOHS\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_PATH\' | translate }}{{ \'APPLICATION_SORT\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{moh.name}}{{moh.directory}}{{moh.sort | capitalize}}{{moh.description}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n {{ \'MESSAGE_NO_MOHS_AVAILABLE\' | translate }}\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/voice/moh/view/view.addFiles.html",'\n
      \n
      \n \n
      \n
      \n
      \n \n {{ \'APPLICATION_MOH\' | translate }} {{ \'APPLICATION_ADD_FILES\' | translate }} \n
      \n
      \n
      \n
      \n

      Warning!

      \n

      \n {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n

      \n
      \n
      \n\n \n
      \n \n \n {{$item.display_name}}\n \n {{sound.display_name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/voice/moh/view/view.audios.html",'
      \n
      \n
      \n
      \n
      \n
      \n \n {{\'APPLICATION_AUDIOS\' | translate}}\n
      \n \n
      \n
      \n
      \n

      Warning!

      \n

      \n {{ \'MESSAGE_FOLDER_DOES_NOT_EXIST\' | translate }}\n

      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_PREVIEW\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{audiofile}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n {{ \'MESSAGE_NO_AUDIOFILES_AVAILABLE\' | translate }}\n
      \n \n
      \n
      \n
      \n
      \n
      \n'),a.put("app/voice/moh/view/view.html",'\n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n \n
      \n \n \n
      \n
      \n {{moh.name}}\n
      \n \n
      \n \n\n \n \n \n
      \n \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/voice/moh/view/view.settings.html",'
      \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_MOH_CLASS\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n\n \n
      \n \n \n
      \n \n\n \n
      \n \n \n {{$translate.instant($select.selected.name)}}\n \n {{$translate.instant(sort.name)}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n\n \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n'), a.put("app/voice/moh/wizard/wizard.html",'
      \n \n \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_MOH_CLASS\' | translate }} WIZARD \n
      \n
      \n
      \n \n \n
      \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n \n \n\n \n
      \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n\n \n
      \n
      \n\n \n

      {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

      \n \n \n
      \n
      \n
      \n
      \n \n
      \n'),a.put("app/voice/queue/list/list.html",'\n
      \n
      \n \n\n \n
      \n
      \n
      \n \n {{ \'APPLICATION_QUEUES\' | translate }} \n
      \n \n
      \n
      \n \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_STRATEGY\' | translate }}{{ \'APPLICATION_CONTEXT\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
      {{queue.name}}{{queue.description}}{{queue.strategy}}{{queue.context}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
      \n {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/voice/queue/view/view.agents.html",'
      \n
      \n
      \n
      \n
      \n \n {{\'APPLICATION_AGENTS\' | translate}}\n
      \n
      \n
      \n

      Warning!

      \n

      \n {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n

      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n'),a.put("app/voice/queue/view/view.html",'\n
      \n
      \n \n\n \n
      \n \n
      \n \n
      \n \n
      \n \n \n
      \n
      \n {{queue.name}}\n
      \n \n
      \n \n\n \n \n \n
      \n \n
      \n \n \n
      \n
      \n \n
      \n
      \n\n'),a.put("app/voice/queue/view/view.settings.html",'
      \n
      \n
      \n
      \n
      \n \n {{ \'APPLICATION_QUEUE_SETTINGS\' | translate}}\n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n
      \n
      \n \n
      \n \n \n {{$select.selected.toUpperCase()}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_VOICE_MOH\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_QUEUE_TIMEOUT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_QUEUE_MAXLEN\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_QUEUE_RETRY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n
      \n
      \n \n
      \n \n \n \n {{ \'DESCRIPTION_QUEUE_WRAPUPTIME\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_QUEUE_WEIGHT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$item}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_JOINEMPTY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$item}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_LEAVEWHENEMPTY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.display_name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_ANNOUNCE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n
      \n
      \n \n
      \n \n \n
      \n \n\n \n
      \n
      \n\n
      \n
      \n
      \n
      \n \n
      \n \n \n {{$item.display_name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n
      \n
      \n
      \n
      \n

      {{\'APPLICATION_SETTINGS\' | translate}}

      \n \n
      \n \n \n \n {{ \'DESCRIPTION_QUEUE_ANNOUNCE_FREQUENCY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_QUEUE_MIN_ANNOUNCE_FREQUENCY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE_FREQUENCY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_RANDOM_PERIODIC_ANNOUNCE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_ANNOUNCE_HOLDTIME\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION_LIMIT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_REPORTHOLDTIME\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n
      \n
      \n

      {{\'APPLICATION_SOUNDS\' | translate}}

      \n \n
      \n \n \n {{$select.selected.display_name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_REPORTHOLD\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.display_name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_YOUARENEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.display_name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_THEREARE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.display_name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_CALLSWAITING\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.display_name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_HOLDTIME\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.display_name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_MINUTES\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.display_name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_MINUTE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.display_name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_SECONDS\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.display_name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_THANKYOU\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n
      \n
      \n\n \n
      \n
      \n \n \n
      \n
      \n\n
      \n
      \n\n \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_AUTOPAUSE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_RINGINUSE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n \n {{ \'DESCRIPTION_QUEUE_MEMBER_DELAY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n
      \n
      \n\n \n
      \n \n \n {{$select.selected | capitalize}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_TIMEOUTRESTART\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_MONITOR_FORMAT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n \n
      \n \n \n {{$select.selected.name}}\n \n
      \n
      \n
      \n \n {{ \'DESCRIPTION_QUEUE_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
      \n \n\n
      \n
      \n\n \n
      \n
      \n \n\n
      \n
      \n
      \n
      \n
      \n'), diff --git a/public/assets/plugins/angular-elastic-builder-back/.bower.json b/public/assets/plugins/angular-elastic-builder-back/.bower.json deleted file mode 100644 index 1b348aa..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/.bower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "angular-elastic-builder", - "homepage": "https://github.com/dncrews/angular-elastic-builder", - "authors": [ - "Dan Crews " - ], - "description": "Angular Module for building an Elasticsearch Query", - "main": "dist/angular-elastic-builder.js", - "keywords": [ - "elasticsearch", - "angular" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ], - "version": "1.4.0", - "_release": "1.4.0", - "_resolution": { - "type": "version", - "tag": "1.4.0", - "commit": "5794b36762eb825433a836dbae055be841ee057c" - }, - "_source": "git://github.com/dncrews/angular-elastic-builder.git", - "_target": "~1.4.0", - "_originalSource": "angular-elastic-builder", - "_direct": true -} \ No newline at end of file diff --git a/public/assets/plugins/angular-elastic-builder-back/LICENSE.md b/public/assets/plugins/angular-elastic-builder-back/LICENSE.md deleted file mode 100644 index ea15051..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/LICENSE.md +++ /dev/null @@ -1,9 +0,0 @@ -Copyright © 2014 by Intellectual Reserve, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name(s) of the above copyright holders shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization. diff --git a/public/assets/plugins/angular-elastic-builder-back/README.md b/public/assets/plugins/angular-elastic-builder-back/README.md deleted file mode 100644 index d05655b..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/README.md +++ /dev/null @@ -1,141 +0,0 @@ -# Angular Elasticsearch Query Builder - -[![NPM version][npm-image]][npm-url] -![Bower version][bower-image] -[![Downloads][downloads-image]][downloads-url] -[![Tips][gratipay-image]][gratipay-url] - -This is an Angular.js directive for building an [Elasticsearch](https://www.elastic.co/) query. -You just give it the fields and can generate a query for it. Its layout is defined using [Bootstrap](http://getbootstrap.com/) classes, but you may also choose to just style it yourself. - -It's still pretty early on, as it doesn't support a whole lot of use-cases, but we need to make it awesome. Contributions accepted. - -## Try it Out -[View an example here](http://dncrews.com/angular-elastic-builder/examples/) - -## Usage - -### Dependency -Notice: this plugin requires the [Angular Recursion](https://github.com/marklagendijk/angular-recursion) module. - -### Installation -First you'll need to download the [dist](https://github.com/dncrews/angular-elastic-builder/tree/master/dist) files and include this JS file to your app (don't forget to substitute `x.x.x` with the current version number), along with the RecursionHelper, if you're not already using it. -```html - - -``` - -Then make sure that it's included in your app's dependencies during module creation. - -```js -angularmodule('appName', [ 'angular-elastic-builder' ]); -``` - -Then you can use it in your app -```js -/* Controller code */ - -/** - * The elasticBuilderData object will be modified in place so that you can use - * your own $watch, and/or your own saving mechanism - */ -$scope.elasticBuilderData = {}; -$scope.elasticBuilderData.query = []; - -/** - * This object is the lookup for what fields - * are available in your database, as well as definitions of what kind - * of data they are - */ -$scope.elasticBuilderData.fields = { - 'some.number.field': { type: 'number' }, - 'some.term.field': { type: 'term' }, - 'some.boolean.field': { type: 'term', subType: 'boolean' }, - 'multi.selector': { type: 'multi', choices: [ 'AZ', 'CA', 'CT' ]} -}; -``` - -```html -
      -``` - -The above elasticFields would allow you create the following form: -![Screenshot][screenshot-image] - -Which represents the following Elasticsearch Query: -```json -[ - { - "terms": { - "multi.selector": [ - "AZ", - "CT" - ] - } - }, - { - "term": { - "some.boolean.field": "0" - } - }, - { - "not": { - "filter": { - "term": { - "some.term.field": "Hello World" - } - } - } - }, - { - "and": [ - { - "range": { - "some.number.field": { - "gte": 0 - } - } - }, - { - "range": { - "some.number.field": { - "lt": 100 - } - } - } - ] - } -] -``` - - -### Field Options - - `type`: This determines how the fields are displayed in the form. - - Currently supported: - - `'number'`: in addition to Generic Options, gets ">", "≥", "<", "≤", "=" - - `'term'`: in addition to Generic Options, gets "Equals" and "! Equals" - - `'boolean'`: Does not get Generic Options. Gets `true` and `false` - - These are actually "equals 0" and "equals 1" for the database query - -Generic Options - - In addition to any specific options for fields, all fields also get a "Exists" and "! Exists" option - - -## External Changes && Initial State -If you want to pass in an initial state (or if you make changes to the query externally), you'll need to -set the configuration flag `needsUpdate` to `true`. Any time this flag changes to `true`, this directive -will overwrite the current state and data with whatever is now defined in your configuration object. - - -## Local Development -To work on this module locally, you will need to clone it and run `gulp watch`. This will ensure that your changes get compiled properly. You will also need to make sure you run `gulp` to build the "dist" files before commit. - - -[npm-image]: https://img.shields.io/npm/v/angular-elastic-builder.svg -[npm-url]: https://www.npmjs.org/package/angular-elastic-builder -[bower-image]: https://img.shields.io/bower/v/angular-elastic-builder.svg -[downloads-image]: https://img.shields.io/npm/dm/angular-elastic-builder.svg -[downloads-url]: https://www.npmjs.org/package/angular-elastic-builder -[gratipay-image]: https://img.shields.io/gratipay/dncrews.svg -[gratipay-url]: https://www.gratipay.com/dncrews/ -[screenshot-image]: https://raw.githubusercontent.com/dncrews/angular-elastic-builder/master/screenshot.png diff --git a/public/assets/plugins/angular-elastic-builder-back/bower.json b/public/assets/plugins/angular-elastic-builder-back/bower.json deleted file mode 100644 index 43641b1..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/bower.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "angular-elastic-builder", - "homepage": "https://github.com/dncrews/angular-elastic-builder", - "authors": [ - "Dan Crews " - ], - "description": "Angular Module for building an Elasticsearch Query", - "main": "dist/angular-elastic-builder.js", - "keywords": [ - "elasticsearch", - "angular" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/public/assets/plugins/angular-elastic-builder-back/dist/angular-elastic-builder.js b/public/assets/plugins/angular-elastic-builder-back/dist/angular-elastic-builder.js deleted file mode 100644 index 352ab2e..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/dist/angular-elastic-builder.js +++ /dev/null @@ -1,608 +0,0 @@ -/** - * # angular-elastic-builder - * ## Angular Module for building an Elasticsearch Query - * - * @version v1.4.0 - * @link https://github.com/dncrews/angular-elastic-builder.git - * @license MIT - * @author Dan Crews - */ - -/** - * angular-elastic-builder - * - * /src/module.js - * - * Angular Module for building an Elasticsearch query - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder', [ - 'RecursionHelper', - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/directives/BuilderDirective.js - * - * Angular Directive for injecting a query builder form. - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder') - .directive('elasticBuilder', [ - 'elasticQueryService', - - function EB(elasticQueryService) { - - return { - scope: { - data: '=elasticBuilder', - }, - - templateUrl: 'angular-elastic-builder/BuilderDirective.html', - - link: function(scope) { - var data = scope.data; - - scope.filters = []; - - /** - * Removes either Group or Rule - */ - scope.removeChild = function(idx) { - scope.filters.splice(idx, 1); - }; - - /** - * Adds a Single Rule - */ - scope.addRule = function() { - scope.filters.push({}); - }; - - /** - * Adds a Group of Rules - */ - scope.addGroup = function() { - scope.filters.push({ - type: 'group', - subType: '$and', - rules: [], - }); - }; - - /** - * Any time "outside forces" change the query, they should tell us so via - * `data.needsUpdate` - */ - scope.$watch('data.needsUpdate', function(curr) { - if (!curr) { - return; - } - - scope.filters = elasticQueryService.toFilters(data.query, scope.data.fields); - scope.data.needsUpdate = false; - }); - - /** - * Changes on the page update the Query - */ - scope.$watch('filters', function(curr) { - if (!curr) { - return; - } - - data.query = elasticQueryService.toQuery(scope.filters, scope.data.fields); - }, true); - } - }; - } - - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/directives/Chooser.js - * - * This file is to help recursively, to decide whether to show a group or rule - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticBuilderChooser', [ - 'RecursionHelper', - 'groupClassHelper', - - function elasticBuilderChooser(RH, groupClassHelper) { - - return { - scope: { - elasticFields: '=', - item: '=elasticBuilderChooser', - onRemove: '&', - }, - - templateUrl: 'angular-elastic-builder/ChooserDirective.html', - - compile: function(element) { - return RH.compile(element, function(scope, el, attrs) { - var depth = scope.depth = (+attrs.depth); - var item = scope.item; - - scope.getGroupClassName = function() { - var level = depth; - if (item.type === 'group') { - level++; - } - - return groupClassHelper(level); - }; - }); - } - }; - } - - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/directives/Group.js - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticBuilderGroup', [ - 'RecursionHelper', - 'groupClassHelper', - - function elasticBuilderGroup(RH, groupClassHelper) { - - return { - scope: { - elasticFields: '=', - group: '=elasticBuilderGroup', - onRemove: '&', - }, - - templateUrl: 'angular-elastic-builder/GroupDirective.html', - - compile: function(element) { - return RH.compile(element, function(scope, el, attrs) { - var depth = scope.depth = (+attrs.depth); - var group = scope.group; - - scope.addRule = function() { - group.rules.push({}); - }; - scope.addGroup = function() { - group.rules.push({ - type: 'group', - subType: '$and', - rules: [], - }); - }; - - scope.removeChild = function(idx) { - group.rules.splice(idx, 1); - }; - - scope.getGroupClassName = function() { - return groupClassHelper(depth + 1); - }; - }); - } - }; - } - - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/directives/Rule.js - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticBuilderRule', [ - - function elasticBuilderRule() { - return { - scope: { - elasticFields: '=', - rule: '=elasticBuilderRule', - onRemove: '&', - }, - - templateUrl: 'angular-elastic-builder/RuleDirective.html', - - link: function(scope) { - scope.getType = function() { - var fields = scope.elasticFields; - var field = scope.rule.field; - - if (!fields || !field) { - return; - } - - if (fields[field].subType === 'boolean') { - return 'boolean'; - } - - return fields[field].type; - }; - } - }; - } - - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/directives/RuleTypes.js - * - * Determines which Rule type should be displayed - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticType', [ - - function() { - return { - scope: { - type: '=elasticType', - rule: '=', - guide: '=', - }, - - template: '', - - link: function(scope) { - scope.getTemplateUrl = function() { - var type = scope.type; - if (!type) { - return; - } - - type = type.charAt(0).toUpperCase() + type.slice(1); - - return 'angular-elastic-builder/types/' + type + '.html'; - }; - - // This is a weird hack to make sure these are numbers - scope.booleans = ['False', 'True']; - scope.booleansOrder = ['True', 'False']; - - scope.inputNeeded = function() { - var needs = [ - 'equals', - 'notEquals', - - '$gt', - '$gte', - '$lt', - '$lte', - ]; - - return ~needs.indexOf(scope.rule.subType); - }; - }, - }; - } - - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/services/GroupClassHelper.js - * - * This keeps all of the groups colored correctly - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder') - .factory('groupClassHelper', function groupClassHelper() { - - return function(level) { - var levels = [ - '', - // 'list-group-item-info', - // 'list-group-item-success', - // 'list-group-item-warning', - // 'list-group-item-danger', - ]; - - return levels[level % levels.length]; - }; - }); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/services/QueryService.js - * - * This file is used to convert filters into queries, and vice versa - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder') - .factory('elasticQueryService', [ - function() { - - return { - toFilters: toFilters, - toQuery: toQuery, - }; - } - ]); - - function toFilters(query, fieldMap) { - var filters = query.map(parseQueryGroup.bind(query, fieldMap)); - return filters; - } - - function toQuery(filters, fieldMap) { - var query = filters.map(parseFilterGroup.bind(filters, fieldMap)).filter(function(item) { - return !!item; - }); - return query; - } - - function parseQueryGroup(fieldMap, group, truthy) { - if (truthy !== false) { - truthy = true; - } - - var key = Object.keys(group)[0]; - var typeMap = { - or: 'group', - and: 'group', - range: 'number', - }; - var type = typeMap[key] || 'item'; - var obj = getFilterTemplate(type); - - switch (key) { - case '$or': - case '$and': - obj.rules = group[key].map(parseQueryGroup.bind(group, fieldMap)); - obj.subType = key; - break; - case 'missing': - case 'exists': - obj.field = group[key].field; - obj.subType = { - exists: 'exists', - missing: 'notExists', - }[key]; - delete obj.value; - break; - case 'term': - case 'terms': - obj.field = Object.keys(group[key])[0]; - var fieldData = fieldMap[Object.keys(group[key])[0]]; - - if (fieldData.type === 'multi') { - var vals = group[key][obj.field]; - if (typeof vals === 'string') { - vals = [vals]; - } - obj.values = fieldData.choices.reduce(function(prev, choice) { - prev[choice] = truthy === (group[key][obj.field].indexOf(choice) > -1); - return prev; - }, {}); - } else { - obj.subType = truthy ? 'equals' : 'notEquals'; - obj.value = group[key][obj.field]; - - if (typeof obj.value === 'number') { - obj.subType = 'boolean'; - } - } - break; - case 'range': - obj.field = Object.keys(group[key])[0]; - obj.subType = Object.keys(group[key][obj.field])[0]; - obj.value = group[key][obj.field][obj.subType]; - break; - case 'not': - obj = parseQueryGroup(fieldMap, group[key].filter, false); - break; - default: - obj.field = Object.keys(group[key])[0]; - break; - } - - return obj; - } - - function parseFilterGroup(fieldMap, group) { - var obj = {}; - if (group.type === 'group') { - obj[group.subType] = group.rules.map(parseFilterGroup.bind(group, fieldMap)).filter(function(item) { - return !!item; - }); - return obj; - } - - var fieldName = group.field; - var fieldData = fieldMap[fieldName]; - - if (!fieldName) { - return; - } - - switch (fieldData.type) { - case 'term': - if (fieldData.subType === 'boolean') { - group.subType = 'boolean'; - } - - if (!group.subType) { - return; - } - switch (group.subType) { - case 'equals': - case 'boolean': - if (group.value === undefined) { - return; - } - obj[fieldName] = group.value; - break; - case 'notEquals': - if (group.value === undefined) { - return; - } - obj[fieldName] = { - $ne: group.value - }; - break; - case 'exists': - obj.exists = { - field: fieldName - }; - break; - case 'notExists': - obj.missing = { - field: fieldName - }; - break; - default: - throw new Error('unexpected subtype ' + group.subType); - } - break; - - case 'select': - - case 'number': - obj[fieldName] = {}; - - switch (group.subType) { - case 'equals': - obj[fieldName] = group.value; - break; - default: - obj[fieldName][group.subType] = group.value; - } - - break; - - case 'date': - if (group.subType === 'exists') { - obj.exists = { - field: fieldName - }; - } else if (group.subType === 'notExists') { - obj.missing = { - field: fieldName - }; - } else { - throw new Error('unexpected subtype'); - } - - break; - - case 'multi': - obj.terms = {}; - obj.terms[fieldName] = Object.keys(group.values || {}).reduce(function(prev, key) { - if (group.values[key]) { - prev.push(key); - } - - return prev; - }, []); - break; - - // case 'multi': - // obj.terms = {}; - // obj.terms[fieldName] = Object.keys(group.values || {}).reduce(function(prev, key) { - // if (group.values[key]) { - // prev.push(key); - // } - // - // return prev; - // }, []); - // break; - - default: - throw new Error('unexpected type'); - } - - return obj; - } - - function getFilterTemplate(type) { - var templates = { - group: { - type: 'group', - subType: '', - rules: [], - }, - item: { - field: '', - subType: '', - value: '', - }, - number: { - field: '', - subType: '', - value: null, - } - }; - - return angular.copy(templates[type]); - } - -})(window.angular); - -(function(angular) {"use strict"; angular.module("angular-elastic-builder").run(["$templateCache", function($templateCache) {$templateCache.put("angular-elastic-builder/BuilderDirective.html","\n
      \n
      \n \n \n \n"); -$templateCache.put("angular-elastic-builder/ChooserDirective.html","
      \n
      \n
      \n
      \n"); -$templateCache.put("angular-elastic-builder/GroupDirective.html","\n
      \n
      \n
      \n \n
      If\n \n of these conditions are met\n
      \n
      \n
      \n \n
      \n\n\n"); -$templateCache.put("angular-elastic-builder/RuleDirective.html","\n \n\n \n\n \n\n \n \n \n\n\n"); -$templateCache.put("angular-elastic-builder/types/Boolean.html","\n Equals\n\n \n \n \n\n"); -$templateCache.put("angular-elastic-builder/types/Date.html","\n \n\n\n"); -$templateCache.put("angular-elastic-builder/types/Multi.html","\n \n \n \n\n"); -$templateCache.put("angular-elastic-builder/types/Number.html","\n \n\n \n \n\n"); -$templateCache.put("angular-elastic-builder/types/Select.html","\n \n\n \n \n\n \n\n"); -$templateCache.put("angular-elastic-builder/types/Term.html","\n \n \n\n");}]);})(window.angular); \ No newline at end of file diff --git a/public/assets/plugins/angular-elastic-builder-back/dist/angular-elastic-builder.min.js b/public/assets/plugins/angular-elastic-builder-back/dist/angular-elastic-builder.min.js deleted file mode 100644 index a9d67a8..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/dist/angular-elastic-builder.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";e.module("angular-elastic-builder",["RecursionHelper"])}(window.angular),function(e){"use strict";e.module("angular-elastic-builder").directive("elasticBuilder",["elasticQueryService",function(e){return{scope:{data:"=elasticBuilder"},templateUrl:"angular-elastic-builder/BuilderDirective.html",link:function(n){var t=n.data;n.filters=[],n.removeChild=function(e){n.filters.splice(e,1)},n.addRule=function(){n.filters.push({})},n.addGroup=function(){n.filters.push({type:"group",subType:"$and",rules:[]})},n.$watch("data.needsUpdate",function(a){a&&(n.filters=e.toFilters(t.query,n.data.fields),n.data.needsUpdate=!1)}),n.$watch("filters",function(a){a&&(t.query=e.toQuery(n.filters,n.data.fields))},!0)}}}])}(window.angular),function(e){"use strict";var n=e.module("angular-elastic-builder");n.directive("elasticBuilderChooser",["RecursionHelper","groupClassHelper",function(e,n){return{scope:{elasticFields:"=",item:"=elasticBuilderChooser",onRemove:"&"},templateUrl:"angular-elastic-builder/ChooserDirective.html",compile:function(t){return e.compile(t,function(e,t,a){var l=e.depth=+a.depth,i=e.item;e.getGroupClassName=function(){var e=l;return"group"===i.type&&e++,n(e)}})}}}])}(window.angular),function(e){"use strict";var n=e.module("angular-elastic-builder");n.directive("elasticBuilderGroup",["RecursionHelper","groupClassHelper",function(e,n){return{scope:{elasticFields:"=",group:"=elasticBuilderGroup",onRemove:"&"},templateUrl:"angular-elastic-builder/GroupDirective.html",compile:function(t){return e.compile(t,function(e,t,a){var l=e.depth=+a.depth,i=e.group;e.addRule=function(){i.rules.push({})},e.addGroup=function(){i.rules.push({type:"group",subType:"$and",rules:[]})},e.removeChild=function(e){i.rules.splice(e,1)},e.getGroupClassName=function(){return n(l+1)}})}}}])}(window.angular),function(e){"use strict";var n=e.module("angular-elastic-builder");n.directive("elasticBuilderRule",[function(){return{scope:{elasticFields:"=",rule:"=elasticBuilderRule",onRemove:"&"},templateUrl:"angular-elastic-builder/RuleDirective.html",link:function(e){e.getType=function(){var n=e.elasticFields,t=e.rule.field;return n&&t?"boolean"===n[t].subType?"boolean":n[t].type:void 0}}}}])}(window.angular),function(e){"use strict";var n=e.module("angular-elastic-builder");n.directive("elasticType",[function(){return{scope:{type:"=elasticType",rule:"=",guide:"="},template:'',link:function(e){e.getTemplateUrl=function(){var n=e.type;if(n)return n=n.charAt(0).toUpperCase()+n.slice(1),"angular-elastic-builder/types/"+n+".html"},e.booleans=["False","True"],e.booleansOrder=["True","False"],e.inputNeeded=function(){var n=["equals","notEquals","$gt","$gte","$lt","$lte"];return~n.indexOf(e.rule.subType)}}}}])}(window.angular),function(e){"use strict";e.module("angular-elastic-builder").factory("groupClassHelper",function(){return function(e){var n=[""];return n[e%n.length]}})}(window.angular),function(e){"use strict";function n(e,n){var t=e.map(a.bind(e,n));return t}function t(e,n){var t=e.map(l.bind(e,n)).filter(function(e){return!!e});return t}function a(e,n,t){t!==!1&&(t=!0);var l=Object.keys(n)[0],s={or:"group",and:"group",range:"number"},r=s[l]||"item",o=i(r);switch(l){case"$or":case"$and":o.rules=n[l].map(a.bind(n,e)),o.subType=l;break;case"missing":case"exists":o.field=n[l].field,o.subType={exists:"exists",missing:"notExists"}[l],delete o.value;break;case"term":case"terms":o.field=Object.keys(n[l])[0];var u=e[Object.keys(n[l])[0]];if("multi"===u.type){var c=n[l][o.field];"string"==typeof c&&(c=[c]),o.values=u.choices.reduce(function(e,a){return e[a]=t===n[l][o.field].indexOf(a)>-1,e},{})}else o.subType=t?"equals":"notEquals",o.value=n[l][o.field],"number"==typeof o.value&&(o.subType="boolean");break;case"range":o.field=Object.keys(n[l])[0],o.subType=Object.keys(n[l][o.field])[0],o.value=n[l][o.field][o.subType];break;case"not":o=a(e,n[l].filter,!1);break;default:o.field=Object.keys(n[l])[0]}return o}function l(e,n){var t={};if("group"===n.type)return t[n.subType]=n.rules.map(l.bind(n,e)).filter(function(e){return!!e}),t;var a=n.field,i=e[a];if(a){switch(i.type){case"term":if("boolean"===i.subType&&(n.subType="boolean"),!n.subType)return;switch(n.subType){case"equals":case"boolean":if(void 0===n.value)return;t[a]=n.value;break;case"notEquals":if(void 0===n.value)return;t[a]={$ne:n.value};break;case"exists":t.exists={field:a};break;case"notExists":t.missing={field:a};break;default:throw new Error("unexpected subtype "+n.subType)}break;case"select":case"number":switch(t[a]={},n.subType){case"equals":t[a]=n.value;break;default:t[a][n.subType]=n.value}break;case"date":if("exists"===n.subType)t.exists={field:a};else{if("notExists"!==n.subType)throw new Error("unexpected subtype");t.missing={field:a}}break;case"multi":t.terms={},t.terms[a]=Object.keys(n.values||{}).reduce(function(e,t){return n.values[t]&&e.push(t),e},[]);break;default:throw new Error("unexpected type")}return t}}function i(n){var t={group:{type:"group",subType:"",rules:[]},item:{field:"",subType:"",value:""},number:{field:"",subType:"",value:null}};return e.copy(t[n])}e.module("angular-elastic-builder").factory("elasticQueryService",[function(){return{toFilters:n,toQuery:t}}])}(window.angular),function(e){"use strict";e.module("angular-elastic-builder").run(["$templateCache",function(e){e.put("angular-elastic-builder/BuilderDirective.html",'\n
      \n
      \n \n \n \n'),e.put("angular-elastic-builder/ChooserDirective.html",'
      \n
      \n
      \n
      \n'),e.put("angular-elastic-builder/GroupDirective.html",'\n
      \n
      \n
      \n \n
      If\n \n of these conditions are met\n
      \n
      \n
      \n \n
      \n\n\n'),e.put("angular-elastic-builder/RuleDirective.html",'\n \n\n \n\n \n\n \n \n \n\n\n'),e.put("angular-elastic-builder/types/Boolean.html",'\n Equals\n\n \n \n \n\n'),e.put("angular-elastic-builder/types/Date.html",'\n \n\n\n'),e.put("angular-elastic-builder/types/Multi.html",'\n \n \n \n\n'),e.put("angular-elastic-builder/types/Number.html",'\n \n\n \n \n\n'),e.put("angular-elastic-builder/types/Select.html",'\n \n\n \n \n\n \n\n'),e.put("angular-elastic-builder/types/Term.html",'\n \n \n\n')}])}(window.angular); \ No newline at end of file diff --git a/public/assets/plugins/angular-elastic-builder-back/examples/index.html b/public/assets/plugins/angular-elastic-builder-back/examples/index.html deleted file mode 100644 index 0d0ad23..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/examples/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - Angular Elastic Builder - - - - - -
      -
      -
      -
      -

      Filters

      -
      -
      -
      -

      Query

      -
      
      -          
      -
      -
      -
      - - - - - - - - - diff --git a/public/assets/plugins/angular-elastic-builder-back/examples/index.js b/public/assets/plugins/angular-elastic-builder-back/examples/index.js deleted file mode 100644 index d39b589..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/examples/index.js +++ /dev/null @@ -1,12 +0,0 @@ -var path = require('path'); -var express = require('express'); - -var app = express(); - -app.use(express.static(__dirname)); -app.use('/js', express.static(path.join(__dirname, '../dist'))); -app.use('/angular', express.static(path.join(__dirname, '../node_modules/angular-recursion'))); - -app.listen(process.env.PORT || 3000, function() { - console.log('listening on ' + ( process.env.PORT || 3000)); -}); diff --git a/public/assets/plugins/angular-elastic-builder-back/examples/js/exampleApp.js b/public/assets/plugins/angular-elastic-builder-back/examples/js/exampleApp.js deleted file mode 100644 index ee4a7e8..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/examples/js/exampleApp.js +++ /dev/null @@ -1,76 +0,0 @@ -(function(angular) { - - var app = angular.module('exampleApp', [ - 'angular-elastic-builder', - ]); - - app.controller('BasicController', function() { - - var data = this.data = {}; - - data.query = [ - { - 'and': [ - { - 'range': { - 'test.number': { - 'gte': 650 - } - } - }, - { - 'range': { - 'test.number': { - 'lt': 850 - } - } - } - ] - }, - { - 'term': { - 'test.boolean': 0 - } - }, - { - 'terms': { - 'test.state.multi': [ 'AZ', 'CT' ] - } - }, - { - 'not': { - 'filter': { - 'term': { - 'test.term': 'asdfasdf' - } - } - } - }, - { - 'exists': { - 'field': 'test.term' - } - } - ]; - - data.fields = { - 'test.number': { type: 'number', minimum: 650 }, - 'test.term': { type: 'term' }, - 'test.boolean': { type: 'term', subType: 'boolean' }, - 'test.state.multi': { type: 'multi', choices: [ 'AZ', 'CA', 'CT' ]} - }; - - data.needsUpdate = true; - - this.showQuery = function() { - var queryToShow = { - size: 0, - filter: { and : data.query } - }; - - return JSON.stringify(queryToShow, null, 2); - }; - - }); - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder-back/gulpfile.js b/public/assets/plugins/angular-elastic-builder-back/gulpfile.js deleted file mode 100644 index 9194d1a..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/gulpfile.js +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Package Dependencies - */ -var concat = require('gulp-concat') - , del = require('del') - , header = require('gulp-header') - , gulp = require('gulp') - , templateCache = require('gulp-angular-templatecache') - , rename = require('gulp-rename') - , uglify = require('gulp-uglifyjs') - , util = require('util'); - -/** - * Local Dependencies - */ -var pkg = require('./package.json'); -var banner = ['/**' - , ' * # <%= pkg.name %>' - , ' * ## <%= pkg.description %>' - , ' *' - , ' * @version v<%= pkg.version %>' - , ' * @link <%= pkg.repository.url %>' - , ' * @license <%= pkg.license %>' - , ' * @author <%= pkg.author %>' - , ' */' - , '' - , ''].join('\n'); - -var filename = util.format('%s.js', pkg.name) - , dest = 'dist/' + filename; - -gulp.task('build', ['uglify']); -gulp.task('default', ['uglify']); - - -gulp.task('clean', function(done) { - del('./dist', done); -}); - -gulp.task('concat', [ 'templatecache' ], function() { - return gulp.src(['./src/module.js', './src/**/*.js']) - .pipe(concat(filename)) - .pipe(gulp.dest('./dist')); -}); - -gulp.task('header', [ 'concat' ], function() { - return gulp.src('./dist/*.js') - .pipe(header(banner, { pkg: pkg })) - .pipe(gulp.dest('./dist')); -}); - -gulp.task('uglify', [ 'header' ], function() { - return gulp.src('./dist/*.js') - .pipe(uglify(dest.replace(/\.js$/, '.min.js'))) - .pipe(gulp.dest('./')); -}); - -gulp.task('templatecache', [ 'clean' ], function() { - var TEMPLATE_HEADER = '(function(angular) {"use strict"; angular.module("<%= module %>"<%= standalone %>).run(["$templateCache", function($templateCache) {' - , TEMPLATE_FOOTER = '}]);})(window.angular);'; - - return gulp.src('src/tmpl/**/*.html') - .pipe(templateCache({ - root: 'angular-elastic-builder', - module: 'angular-elastic-builder', - templateHeader: TEMPLATE_HEADER, - templateFooter: TEMPLATE_FOOTER, - })) - .pipe(rename('ElasticBuilderTemplates.js')) - .pipe(gulp.dest('src/tmpl')); -}); - -gulp.task('watch', [ 'templatecache', 'build' ], function() { - gulp.watch('src/tmpl/**/*.html', [ 'templatecache', 'build' ]); - gulp.watch(['src/**/**.js','!src/tmpl/ElasticBuilderTemplates.js'], [ 'build' ]); -}); diff --git a/public/assets/plugins/angular-elastic-builder-back/package.json b/public/assets/plugins/angular-elastic-builder-back/package.json deleted file mode 100644 index 987e3f9..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "angular-elastic-builder", - "version": "1.4.0", - "description": "Angular Module for building an Elasticsearch Query", - "author": "Dan Crews ", - "license": "MIT", - "keywords": [ - "angular", - "elasticsearch" - ], - "repository": { - "type": "git", - "url": "https://github.com/dncrews/angular-elastic-builder.git" - }, - "devDependencies": { - "angular-recursion": "^1.0.5", - "del": "^1.1.1", - "express": "^4.12.3", - "gulp": "^3.8.11", - "gulp-angular-templatecache": "^1.6.0", - "gulp-concat": "^2.5.2", - "gulp-header": "^1.2.2", - "gulp-rename": "^1.2.2", - "gulp-uglifyjs": "^0.6.1" - }, - "scripts": { - "example": "node examples", - "test": "echo \"Error: no test specified\" && exit 1" - } -} diff --git a/public/assets/plugins/angular-elastic-builder-back/screenshot.png b/public/assets/plugins/angular-elastic-builder-back/screenshot.png deleted file mode 100644 index ca8d57d..0000000 Binary files a/public/assets/plugins/angular-elastic-builder-back/screenshot.png and /dev/null differ diff --git a/public/assets/plugins/angular-elastic-builder-back/src/directives/BuilderDirective.js b/public/assets/plugins/angular-elastic-builder-back/src/directives/BuilderDirective.js deleted file mode 100644 index 8a72214..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/directives/BuilderDirective.js +++ /dev/null @@ -1,84 +0,0 @@ -/** - * angular-elastic-builder - * - * /src/directives/BuilderDirective.js - * - * Angular Directive for injecting a query builder form. - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder') - .directive('elasticBuilder', [ - 'elasticQueryService', - - function EB(elasticQueryService) { - - return { - scope: { - data: '=elasticBuilder', - }, - - templateUrl: 'angular-elastic-builder/BuilderDirective.html', - - link: function(scope) { - var data = scope.data; - - scope.filters = []; - - /** - * Removes either Group or Rule - */ - scope.removeChild = function(idx) { - scope.filters.splice(idx, 1); - }; - - /** - * Adds a Single Rule - */ - scope.addRule = function() { - scope.filters.push({}); - }; - - /** - * Adds a Group of Rules - */ - scope.addGroup = function() { - scope.filters.push({ - type: 'group', - subType: '$and', - rules: [], - }); - }; - - /** - * Any time "outside forces" change the query, they should tell us so via - * `data.needsUpdate` - */ - scope.$watch('data.needsUpdate', function(curr) { - if (!curr) { - return; - } - - scope.filters = elasticQueryService.toFilters(data.query, scope.data.fields); - scope.data.needsUpdate = false; - }); - - /** - * Changes on the page update the Query - */ - scope.$watch('filters', function(curr) { - if (!curr) { - return; - } - - data.query = elasticQueryService.toQuery(scope.filters, scope.data.fields); - }, true); - } - }; - } - - ]); - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder-back/src/directives/Chooser.js b/public/assets/plugins/angular-elastic-builder-back/src/directives/Chooser.js deleted file mode 100644 index 1787461..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/directives/Chooser.js +++ /dev/null @@ -1,49 +0,0 @@ -/** - * angular-elastic-builder - * - * /src/directives/Chooser.js - * - * This file is to help recursively, to decide whether to show a group or rule - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticBuilderChooser', [ - 'RecursionHelper', - 'groupClassHelper', - - function elasticBuilderChooser(RH, groupClassHelper) { - - return { - scope: { - elasticFields: '=', - item: '=elasticBuilderChooser', - onRemove: '&', - }, - - templateUrl: 'angular-elastic-builder/ChooserDirective.html', - - compile: function(element) { - return RH.compile(element, function(scope, el, attrs) { - var depth = scope.depth = (+attrs.depth); - var item = scope.item; - - scope.getGroupClassName = function() { - var level = depth; - if (item.type === 'group') { - level++; - } - - return groupClassHelper(level); - }; - }); - } - }; - } - - ]); - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder-back/src/directives/Group.js b/public/assets/plugins/angular-elastic-builder-back/src/directives/Group.js deleted file mode 100644 index d6b93a6..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/directives/Group.js +++ /dev/null @@ -1,57 +0,0 @@ -/** - * angular-elastic-builder - * - * /src/directives/Group.js - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticBuilderGroup', [ - 'RecursionHelper', - 'groupClassHelper', - - function elasticBuilderGroup(RH, groupClassHelper) { - - return { - scope: { - elasticFields: '=', - group: '=elasticBuilderGroup', - onRemove: '&', - }, - - templateUrl: 'angular-elastic-builder/GroupDirective.html', - - compile: function(element) { - return RH.compile(element, function(scope, el, attrs) { - var depth = scope.depth = (+attrs.depth); - var group = scope.group; - - scope.addRule = function() { - group.rules.push({}); - }; - scope.addGroup = function() { - group.rules.push({ - type: 'group', - subType: '$and', - rules: [], - }); - }; - - scope.removeChild = function(idx) { - group.rules.splice(idx, 1); - }; - - scope.getGroupClassName = function() { - return groupClassHelper(depth + 1); - }; - }); - } - }; - } - - ]); - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder-back/src/directives/Rule.js b/public/assets/plugins/angular-elastic-builder-back/src/directives/Rule.js deleted file mode 100644 index 53268ab..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/directives/Rule.js +++ /dev/null @@ -1,45 +0,0 @@ -/** - * angular-elastic-builder - * - * /src/directives/Rule.js - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticBuilderRule', [ - - function elasticBuilderRule() { - return { - scope: { - elasticFields: '=', - rule: '=elasticBuilderRule', - onRemove: '&', - }, - - templateUrl: 'angular-elastic-builder/RuleDirective.html', - - link: function(scope) { - scope.getType = function() { - var fields = scope.elasticFields; - var field = scope.rule.field; - - if (!fields || !field) { - return; - } - - if (fields[field].subType === 'boolean') { - return 'boolean'; - } - - return fields[field].type; - }; - } - }; - } - - ]); - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder-back/src/directives/RuleTypes.js b/public/assets/plugins/angular-elastic-builder-back/src/directives/RuleTypes.js deleted file mode 100644 index 6b12536..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/directives/RuleTypes.js +++ /dev/null @@ -1,61 +0,0 @@ -/** - * angular-elastic-builder - * - * /src/directives/RuleTypes.js - * - * Determines which Rule type should be displayed - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticType', [ - - function() { - return { - scope: { - type: '=elasticType', - rule: '=', - guide: '=', - }, - - template: '', - - link: function(scope) { - scope.getTemplateUrl = function() { - var type = scope.type; - if (!type) { - return; - } - - type = type.charAt(0).toUpperCase() + type.slice(1); - - return 'angular-elastic-builder/types/' + type + '.html'; - }; - - // This is a weird hack to make sure these are numbers - scope.booleans = ['False', 'True']; - scope.booleansOrder = ['True', 'False']; - - scope.inputNeeded = function() { - var needs = [ - 'equals', - 'notEquals', - - '$gt', - '$gte', - '$lt', - '$lte', - ]; - - return ~needs.indexOf(scope.rule.subType); - }; - }, - }; - } - - ]); - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder-back/src/module.js b/public/assets/plugins/angular-elastic-builder-back/src/module.js deleted file mode 100644 index a4f9a9c..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/module.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * angular-elastic-builder - * - * /src/module.js - * - * Angular Module for building an Elasticsearch query - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder', [ - 'RecursionHelper', - ]); - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder-back/src/services/GroupClassHelper.js b/public/assets/plugins/angular-elastic-builder-back/src/services/GroupClassHelper.js deleted file mode 100644 index bfd45b5..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/services/GroupClassHelper.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * angular-elastic-builder - * - * /src/services/GroupClassHelper.js - * - * This keeps all of the groups colored correctly - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder') - .factory('groupClassHelper', function groupClassHelper() { - - return function(level) { - var levels = [ - '', - // 'list-group-item-info', - // 'list-group-item-success', - // 'list-group-item-warning', - // 'list-group-item-danger', - ]; - - return levels[level % levels.length]; - }; - }); - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder-back/src/services/QueryService.js b/public/assets/plugins/angular-elastic-builder-back/src/services/QueryService.js deleted file mode 100644 index 2354ca5..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/services/QueryService.js +++ /dev/null @@ -1,240 +0,0 @@ -/** - * angular-elastic-builder - * - * /src/services/QueryService.js - * - * This file is used to convert filters into queries, and vice versa - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder') - .factory('elasticQueryService', [ - function() { - - return { - toFilters: toFilters, - toQuery: toQuery, - }; - } - ]); - - function toFilters(query, fieldMap) { - var filters = query.map(parseQueryGroup.bind(query, fieldMap)); - return filters; - } - - function toQuery(filters, fieldMap) { - var query = filters.map(parseFilterGroup.bind(filters, fieldMap)).filter(function(item) { - return !!item; - }); - return query; - } - - function parseQueryGroup(fieldMap, group, truthy) { - if (truthy !== false) { - truthy = true; - } - - var key = Object.keys(group)[0]; - var typeMap = { - or: 'group', - and: 'group', - range: 'number', - }; - var type = typeMap[key] || 'item'; - var obj = getFilterTemplate(type); - - switch (key) { - case '$or': - case '$and': - obj.rules = group[key].map(parseQueryGroup.bind(group, fieldMap)); - obj.subType = key; - break; - case 'missing': - case 'exists': - obj.field = group[key].field; - obj.subType = { - exists: 'exists', - missing: 'notExists', - }[key]; - delete obj.value; - break; - case 'term': - case 'terms': - obj.field = Object.keys(group[key])[0]; - var fieldData = fieldMap[Object.keys(group[key])[0]]; - - if (fieldData.type === 'multi') { - var vals = group[key][obj.field]; - if (typeof vals === 'string') { - vals = [vals]; - } - obj.values = fieldData.choices.reduce(function(prev, choice) { - prev[choice] = truthy === (group[key][obj.field].indexOf(choice) > -1); - return prev; - }, {}); - } else { - obj.subType = truthy ? 'equals' : 'notEquals'; - obj.value = group[key][obj.field]; - - if (typeof obj.value === 'number') { - obj.subType = 'boolean'; - } - } - break; - case 'range': - obj.field = Object.keys(group[key])[0]; - obj.subType = Object.keys(group[key][obj.field])[0]; - obj.value = group[key][obj.field][obj.subType]; - break; - case 'not': - obj = parseQueryGroup(fieldMap, group[key].filter, false); - break; - default: - obj.field = Object.keys(group[key])[0]; - break; - } - - return obj; - } - - function parseFilterGroup(fieldMap, group) { - var obj = {}; - if (group.type === 'group') { - obj[group.subType] = group.rules.map(parseFilterGroup.bind(group, fieldMap)).filter(function(item) { - return !!item; - }); - return obj; - } - - var fieldName = group.field; - var fieldData = fieldMap[fieldName]; - - if (!fieldName) { - return; - } - - switch (fieldData.type) { - case 'term': - if (fieldData.subType === 'boolean') { - group.subType = 'boolean'; - } - - if (!group.subType) { - return; - } - switch (group.subType) { - case 'equals': - case 'boolean': - if (group.value === undefined) { - return; - } - obj[fieldName] = group.value; - break; - case 'notEquals': - if (group.value === undefined) { - return; - } - obj[fieldName] = { - $ne: group.value - }; - break; - case 'exists': - obj.exists = { - field: fieldName - }; - break; - case 'notExists': - obj.missing = { - field: fieldName - }; - break; - default: - throw new Error('unexpected subtype ' + group.subType); - } - break; - - case 'select': - - case 'number': - obj[fieldName] = {}; - - switch (group.subType) { - case 'equals': - obj[fieldName] = group.value; - break; - default: - obj[fieldName][group.subType] = group.value; - } - - break; - - case 'date': - if (group.subType === 'exists') { - obj.exists = { - field: fieldName - }; - } else if (group.subType === 'notExists') { - obj.missing = { - field: fieldName - }; - } else { - throw new Error('unexpected subtype'); - } - - break; - - case 'multi': - obj.terms = {}; - obj.terms[fieldName] = Object.keys(group.values || {}).reduce(function(prev, key) { - if (group.values[key]) { - prev.push(key); - } - - return prev; - }, []); - break; - - // case 'multi': - // obj.terms = {}; - // obj.terms[fieldName] = Object.keys(group.values || {}).reduce(function(prev, key) { - // if (group.values[key]) { - // prev.push(key); - // } - // - // return prev; - // }, []); - // break; - - default: - throw new Error('unexpected type'); - } - - return obj; - } - - function getFilterTemplate(type) { - var templates = { - group: { - type: 'group', - subType: '', - rules: [], - }, - item: { - field: '', - subType: '', - value: '', - }, - number: { - field: '', - subType: '', - value: null, - } - }; - - return angular.copy(templates[type]); - } - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/BuilderDirective.html b/public/assets/plugins/angular-elastic-builder-back/src/tmpl/BuilderDirective.html deleted file mode 100644 index 1f6866a..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/BuilderDirective.html +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/ChooserDirective.html b/public/assets/plugins/angular-elastic-builder-back/src/tmpl/ChooserDirective.html deleted file mode 100644 index dc64e01..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/ChooserDirective.html +++ /dev/null @@ -1,11 +0,0 @@ -
      -
      -
      -
      diff --git a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/ElasticBuilderTemplates.js b/public/assets/plugins/angular-elastic-builder-back/src/tmpl/ElasticBuilderTemplates.js deleted file mode 100644 index 8e864aa..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/ElasticBuilderTemplates.js +++ /dev/null @@ -1,10 +0,0 @@ -(function(angular) {"use strict"; angular.module("angular-elastic-builder").run(["$templateCache", function($templateCache) {$templateCache.put("angular-elastic-builder/BuilderDirective.html","\n
      \n
      \n \n \n \n"); -$templateCache.put("angular-elastic-builder/ChooserDirective.html","
      \n
      \n
      \n
      \n"); -$templateCache.put("angular-elastic-builder/GroupDirective.html","\n
      \n
      \n
      \n \n
      If\n \n of these conditions are met\n
      \n
      \n
      \n \n
      \n\n\n"); -$templateCache.put("angular-elastic-builder/RuleDirective.html","\n \n\n \n\n \n\n \n \n \n\n\n"); -$templateCache.put("angular-elastic-builder/types/Boolean.html","\n Equals\n\n \n \n \n\n"); -$templateCache.put("angular-elastic-builder/types/Date.html","\n \n\n\n"); -$templateCache.put("angular-elastic-builder/types/Multi.html","\n \n \n \n\n"); -$templateCache.put("angular-elastic-builder/types/Number.html","\n \n\n \n \n\n"); -$templateCache.put("angular-elastic-builder/types/Select.html","\n \n\n \n \n\n \n\n"); -$templateCache.put("angular-elastic-builder/types/Term.html","\n \n \n\n");}]);})(window.angular); \ No newline at end of file diff --git a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/GroupDirective.html b/public/assets/plugins/angular-elastic-builder-back/src/tmpl/GroupDirective.html deleted file mode 100644 index 6051da3..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/GroupDirective.html +++ /dev/null @@ -1,35 +0,0 @@ - -
      -
      -
      - -
      If - - of these conditions are met -
      -
      -
      - -
      - diff --git a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/RuleDirective.html b/public/assets/plugins/angular-elastic-builder-back/src/tmpl/RuleDirective.html deleted file mode 100644 index 40dd570..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/RuleDirective.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - diff --git a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Boolean.html b/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Boolean.html deleted file mode 100644 index 1ac8380..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Boolean.html +++ /dev/null @@ -1,10 +0,0 @@ - - Equals - - - - diff --git a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Date.html b/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Date.html deleted file mode 100644 index 377edd4..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Date.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Multi.html b/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Multi.html deleted file mode 100644 index 3c0e5a1..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Multi.html +++ /dev/null @@ -1,8 +0,0 @@ - - - - - diff --git a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Number.html b/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Number.html deleted file mode 100644 index 7a9040e..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Number.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - diff --git a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Select.html b/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Select.html deleted file mode 100644 index cf2e560..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Select.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - diff --git a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Term.html b/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Term.html deleted file mode 100644 index 06a4c58..0000000 --- a/public/assets/plugins/angular-elastic-builder-back/src/tmpl/types/Term.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - diff --git a/public/assets/plugins/angular-elastic-builder/.bower.json b/public/assets/plugins/angular-elastic-builder/.bower.json deleted file mode 100644 index 1b348aa..0000000 --- a/public/assets/plugins/angular-elastic-builder/.bower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "angular-elastic-builder", - "homepage": "https://github.com/dncrews/angular-elastic-builder", - "authors": [ - "Dan Crews " - ], - "description": "Angular Module for building an Elasticsearch Query", - "main": "dist/angular-elastic-builder.js", - "keywords": [ - "elasticsearch", - "angular" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ], - "version": "1.4.0", - "_release": "1.4.0", - "_resolution": { - "type": "version", - "tag": "1.4.0", - "commit": "5794b36762eb825433a836dbae055be841ee057c" - }, - "_source": "git://github.com/dncrews/angular-elastic-builder.git", - "_target": "~1.4.0", - "_originalSource": "angular-elastic-builder", - "_direct": true -} \ No newline at end of file diff --git a/public/assets/plugins/angular-elastic-builder/LICENSE.md b/public/assets/plugins/angular-elastic-builder/LICENSE.md deleted file mode 100644 index ea15051..0000000 --- a/public/assets/plugins/angular-elastic-builder/LICENSE.md +++ /dev/null @@ -1,9 +0,0 @@ -Copyright © 2014 by Intellectual Reserve, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name(s) of the above copyright holders shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization. diff --git a/public/assets/plugins/angular-elastic-builder/README.md b/public/assets/plugins/angular-elastic-builder/README.md deleted file mode 100644 index d05655b..0000000 --- a/public/assets/plugins/angular-elastic-builder/README.md +++ /dev/null @@ -1,141 +0,0 @@ -# Angular Elasticsearch Query Builder - -[![NPM version][npm-image]][npm-url] -![Bower version][bower-image] -[![Downloads][downloads-image]][downloads-url] -[![Tips][gratipay-image]][gratipay-url] - -This is an Angular.js directive for building an [Elasticsearch](https://www.elastic.co/) query. -You just give it the fields and can generate a query for it. Its layout is defined using [Bootstrap](http://getbootstrap.com/) classes, but you may also choose to just style it yourself. - -It's still pretty early on, as it doesn't support a whole lot of use-cases, but we need to make it awesome. Contributions accepted. - -## Try it Out -[View an example here](http://dncrews.com/angular-elastic-builder/examples/) - -## Usage - -### Dependency -Notice: this plugin requires the [Angular Recursion](https://github.com/marklagendijk/angular-recursion) module. - -### Installation -First you'll need to download the [dist](https://github.com/dncrews/angular-elastic-builder/tree/master/dist) files and include this JS file to your app (don't forget to substitute `x.x.x` with the current version number), along with the RecursionHelper, if you're not already using it. -```html - - -``` - -Then make sure that it's included in your app's dependencies during module creation. - -```js -angularmodule('appName', [ 'angular-elastic-builder' ]); -``` - -Then you can use it in your app -```js -/* Controller code */ - -/** - * The elasticBuilderData object will be modified in place so that you can use - * your own $watch, and/or your own saving mechanism - */ -$scope.elasticBuilderData = {}; -$scope.elasticBuilderData.query = []; - -/** - * This object is the lookup for what fields - * are available in your database, as well as definitions of what kind - * of data they are - */ -$scope.elasticBuilderData.fields = { - 'some.number.field': { type: 'number' }, - 'some.term.field': { type: 'term' }, - 'some.boolean.field': { type: 'term', subType: 'boolean' }, - 'multi.selector': { type: 'multi', choices: [ 'AZ', 'CA', 'CT' ]} -}; -``` - -```html -
      -``` - -The above elasticFields would allow you create the following form: -![Screenshot][screenshot-image] - -Which represents the following Elasticsearch Query: -```json -[ - { - "terms": { - "multi.selector": [ - "AZ", - "CT" - ] - } - }, - { - "term": { - "some.boolean.field": "0" - } - }, - { - "not": { - "filter": { - "term": { - "some.term.field": "Hello World" - } - } - } - }, - { - "and": [ - { - "range": { - "some.number.field": { - "gte": 0 - } - } - }, - { - "range": { - "some.number.field": { - "lt": 100 - } - } - } - ] - } -] -``` - - -### Field Options - - `type`: This determines how the fields are displayed in the form. - - Currently supported: - - `'number'`: in addition to Generic Options, gets ">", "≥", "<", "≤", "=" - - `'term'`: in addition to Generic Options, gets "Equals" and "! Equals" - - `'boolean'`: Does not get Generic Options. Gets `true` and `false` - - These are actually "equals 0" and "equals 1" for the database query - -Generic Options - - In addition to any specific options for fields, all fields also get a "Exists" and "! Exists" option - - -## External Changes && Initial State -If you want to pass in an initial state (or if you make changes to the query externally), you'll need to -set the configuration flag `needsUpdate` to `true`. Any time this flag changes to `true`, this directive -will overwrite the current state and data with whatever is now defined in your configuration object. - - -## Local Development -To work on this module locally, you will need to clone it and run `gulp watch`. This will ensure that your changes get compiled properly. You will also need to make sure you run `gulp` to build the "dist" files before commit. - - -[npm-image]: https://img.shields.io/npm/v/angular-elastic-builder.svg -[npm-url]: https://www.npmjs.org/package/angular-elastic-builder -[bower-image]: https://img.shields.io/bower/v/angular-elastic-builder.svg -[downloads-image]: https://img.shields.io/npm/dm/angular-elastic-builder.svg -[downloads-url]: https://www.npmjs.org/package/angular-elastic-builder -[gratipay-image]: https://img.shields.io/gratipay/dncrews.svg -[gratipay-url]: https://www.gratipay.com/dncrews/ -[screenshot-image]: https://raw.githubusercontent.com/dncrews/angular-elastic-builder/master/screenshot.png diff --git a/public/assets/plugins/angular-elastic-builder/bower.json b/public/assets/plugins/angular-elastic-builder/bower.json deleted file mode 100644 index 43641b1..0000000 --- a/public/assets/plugins/angular-elastic-builder/bower.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "angular-elastic-builder", - "homepage": "https://github.com/dncrews/angular-elastic-builder", - "authors": [ - "Dan Crews " - ], - "description": "Angular Module for building an Elasticsearch Query", - "main": "dist/angular-elastic-builder.js", - "keywords": [ - "elasticsearch", - "angular" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/public/assets/plugins/angular-elastic-builder/dist/angular-elastic-builder.js b/public/assets/plugins/angular-elastic-builder/dist/angular-elastic-builder.js deleted file mode 100644 index 4b51820..0000000 --- a/public/assets/plugins/angular-elastic-builder/dist/angular-elastic-builder.js +++ /dev/null @@ -1,590 +0,0 @@ -/** - * # angular-elastic-builder - * ## Angular Module for building an Elasticsearch Query - * - * @version v1.4.0 - * @link https://github.com/dncrews/angular-elastic-builder.git - * @license MIT - * @author Dan Crews - */ - -/** - * angular-elastic-builder - * - * /src/module.js - * - * Angular Module for building an Elasticsearch query - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder', [ - 'RecursionHelper', - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/directives/BuilderDirective.js - * - * Angular Directive for injecting a query builder form. - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder') - .directive('elasticBuilder', [ - 'elasticQueryService', - - function EB(elasticQueryService) { - - return { - scope: { - data: '=elasticBuilder', - }, - - templateUrl: 'angular-elastic-builder/BuilderDirective.html', - - link: function(scope) { - var data = scope.data; - - scope.filters = []; - - /** - * Removes either Group or Rule - */ - scope.removeChild = function(idx) { - scope.filters.splice(idx, 1); - }; - - /** - * Adds a Single Rule - */ - scope.addRule = function() { - scope.filters.push({}); - }; - - /** - * Adds a Group of Rules - */ - scope.addGroup = function() { - scope.filters.push({ - type: 'group', - subType: 'and', - rules: [], - }); - }; - - /** - * Any time "outside forces" change the query, they should tell us so via - * `data.needsUpdate` - */ - scope.$watch('data.needsUpdate', function(curr) { - if (!curr) { - return; - } - - scope.filters = elasticQueryService.toFilters(data.query, scope.data.fields); - scope.data.needsUpdate = false; - }); - - /** - * Changes on the page update the Query - */ - scope.$watch('filters', function(curr) { - if (!curr) { - return; - } - - data.query = elasticQueryService.toQuery(scope.filters, scope.data.fields); - }, true); - } - }; - } - - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/directives/Chooser.js - * - * This file is to help recursively, to decide whether to show a group or rule - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticBuilderChooser', [ - 'RecursionHelper', - 'groupClassHelper', - - function elasticBuilderChooser(RH, groupClassHelper) { - - return { - scope: { - elasticFields: '=', - item: '=elasticBuilderChooser', - onRemove: '&', - }, - - templateUrl: 'angular-elastic-builder/ChooserDirective.html', - - compile: function (element) { - return RH.compile(element, function(scope, el, attrs) { - var depth = scope.depth = (+ attrs.depth) - , item = scope.item; - - scope.getGroupClassName = function() { - var level = depth; - if (item.type === 'group') level++; - - return groupClassHelper(level); - }; - }); - } - }; - } - - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/directives/Group.js - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticBuilderGroup', [ - 'RecursionHelper', - 'groupClassHelper', - - function elasticBuilderGroup(RH, groupClassHelper) { - - return { - scope: { - elasticFields: '=', - group: '=elasticBuilderGroup', - onRemove: '&', - }, - - templateUrl: 'angular-elastic-builder/GroupDirective.html', - - compile: function(element) { - return RH.compile(element, function(scope, el, attrs) { - var depth = scope.depth = (+ attrs.depth); - var group = scope.group; - - scope.addRule = function() { - group.rules.push({}); - }; - scope.addGroup = function() { - group.rules.push({ - type: 'group', - subType: 'and', - rules: [], - }); - }; - - scope.removeChild = function(idx) { - group.rules.splice(idx, 1); - }; - - scope.getGroupClassName = function() { - return groupClassHelper(depth + 1); - }; - }); - } - }; - } - - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/directives/Rule.js - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticBuilderRule', [ - - function elasticBuilderRule() { - return { - scope: { - elasticFields: '=', - rule: '=elasticBuilderRule', - onRemove: '&', - }, - - templateUrl: 'angular-elastic-builder/RuleDirective.html', - - link: function(scope) { - scope.getType = function() { - var fields = scope.elasticFields; - var field = scope.rule.field; - - if (!fields || !field) { - return; - } - - if (fields[field].subType === 'boolean') { - return 'boolean'; - } - - return fields[field].type; - }; - } - }; - } - - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/directives/RuleTypes.js - * - * Determines which Rule type should be displayed - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticType', [ - - function() { - return { - scope: { - type: '=elasticType', - rule: '=', - guide: '=', - }, - - template: '', - - link: function(scope) { - scope.getTemplateUrl = function() { - var type = scope.type; - if (! type) return; - - type = type.charAt(0).toUpperCase() + type.slice(1); - - return 'angular-elastic-builder/types/' + type + '.html'; - }; - - // This is a weird hack to make sure these are numbers - scope.booleans = [ 'False', 'True' ]; - scope.booleansOrder = [ 'True', 'False' ]; - - scope.inputNeeded = function() { - var needs = [ - 'equals', - 'notEquals', - - 'gt', - 'gte', - 'lt', - 'lte', - ]; - - return ~needs.indexOf(scope.rule.subType); - }; - }, - }; - } - - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/services/GroupClassHelper.js - * - * This keeps all of the groups colored correctly - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder') - .factory('groupClassHelper', function groupClassHelper() { - - return function(level) { - var levels = [ - '', - // 'list-group-item-info', - // 'list-group-item-success', - // 'list-group-item-warning', - // 'list-group-item-danger', - ]; - - return levels[level % levels.length]; - }; - }); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/services/QueryService.js - * - * This file is used to convert filters into queries, and vice versa - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder') - .factory('elasticQueryService', [ - function() { - - return { - toFilters: toFilters, - toQuery: toQuery, - }; - } - ]); - - function toFilters(query, fieldMap) { - var filters = query.map(parseQueryGroup.bind(query, fieldMap)); - return filters; - } - - function toQuery(filters, fieldMap) { - var query = filters.map(parseFilterGroup.bind(filters, fieldMap)).filter(function(item) { - return !!item; - }); - return query; - } - - function parseQueryGroup(fieldMap, group, truthy) { - if (truthy !== false) { - truthy = true; - } - - var key = Object.keys(group)[0], - typeMap = { - or: 'group', - and: 'group', - range: 'number', - }, - type = typeMap[key] || 'item', - obj = getFilterTemplate(type); - - switch (key) { - case 'or': - case 'and': - obj.rules = group[key].map(parseQueryGroup.bind(group, fieldMap)); - obj.subType = key; - break; - case 'missing': - case 'exists': - obj.field = group[key].field; - obj.subType = { - exists: 'exists', - missing: 'notExists', - }[key]; - delete obj.value; - break; - case 'term': - case 'terms': - obj.field = Object.keys(group[key])[0]; - var fieldData = fieldMap[Object.keys(group[key])[0]]; - - if (fieldData.type === 'multi') { - var vals = group[key][obj.field]; - if (typeof vals === 'string') { - vals = [vals]; - } - // MY CUSTOM MODIFICATION - obj.value = group[key][obj.field]; - // obj.values = fieldData.choices.reduce(function(prev, choice) { - // prev[choice] = truthy === (group[key][obj.field].indexOf(choice) > -1); - // return prev; - // }, {}); - } else { - obj.subType = truthy ? 'equals' : 'notEquals'; - obj.value = group[key][obj.field]; - - if (typeof obj.value === 'number') { - obj.subType = 'boolean'; - } - } - break; - case 'range': - obj.field = Object.keys(group[key])[0]; - obj.subType = Object.keys(group[key][obj.field])[0]; - obj.value = group[key][obj.field][obj.subType]; - break; - case 'not': - obj = parseQueryGroup(fieldMap, group[key].filter, false); - break; - default: - obj.field = Object.keys(group[key])[0]; - break; - } - - return obj; - } - - function parseFilterGroup(fieldMap, group) { - var obj = {}; - if (group.type === 'group') { - obj[group.subType] = group.rules.map(parseFilterGroup.bind(group, fieldMap)).filter(function(item) { - return !!item; - }); - return obj; - } - - var fieldName = group.field; - var fieldData = fieldMap[fieldName]; - - if (!fieldName) { - return; - } - - switch (fieldData.type) { - case 'term': - case 'multiterm': - if (fieldData.subType === 'boolean') { - group.subType = 'boolean'; - } - - if (!group.subType) { - return; - } - switch (group.subType) { - case 'equals': - case 'boolean': - if (group.value === undefined) { - return; - } - obj.term = {}; - obj.term[fieldName] = group.value; - break; - case 'notEquals': - if (group.value === undefined) { - return; - } - obj.not = { - filter: { - term: {} - } - }; - obj.not.filter.term[fieldName] = group.value; - break; - case 'exists': - obj.exists = { - field: fieldName - }; - break; - case 'notExists': - obj.missing = { - field: fieldName - }; - break; - default: - throw new Error('unexpected subtype ' + group.subType); - } - break; - - case 'number': - obj.range = {}; - obj.range[fieldName] = {}; - obj.range[fieldName][group.subType] = group.value; - break; - - case 'date': - if (group.subType === 'exists') { - obj.exists = { - field: fieldName - }; - } else if (group.subType === 'notExists') { - obj.missing = { - field: fieldName - }; - } else { - throw new Error('unexpected subtype'); - } - - break; - - case 'multi': - obj.terms = {}; - obj.terms[fieldName] = group.value; - // obj.terms[fieldName] = Object.keys(group.values || {}).reduce(function(prev, key) { - // if (group.values[key]) prev.push(key); - // - // return prev; - // }, []); - break; - - default: - throw new Error('unexpected type'); - } - - return obj; - } - - function getFilterTemplate(type) { - var templates = { - group: { - type: 'group', - subType: '', - rules: [], - }, - item: { - field: '', - subType: '', - value: '', - }, - number: { - field: '', - subType: '', - value: null, - } - }; - - return angular.copy(templates[type]); - } - -})(window.angular); - -(function(angular) {"use strict"; angular.module("angular-elastic-builder").run(["$templateCache", function($templateCache) {$templateCache.put("angular-elastic-builder/BuilderDirective.html","\n\n\n
      \n \n
      \n \n \n \n \n \n"); -$templateCache.put("angular-elastic-builder/ChooserDirective.html","\n\n\n
      \n
      \n
      \n
      \n"); -$templateCache.put("angular-elastic-builder/GroupDirective.html","\n\n\n\n
      \n
      \n
      \n \n
      {{ \'APPLICATION_IF\' | translate }}\n \n {{group.subType == \'and\' ? \'MESSAGE_CODITIONS_MET_ALL\' : \'MESSAGE_CODITIONS_MET_ANY\' | translate}}\n
      \n
      \n
      \n \n
      \n\n\n"); -$templateCache.put("angular-elastic-builder/RuleDirective.html","\n\n \n {{elasticFields[rule.field].action.label | translate}}\n \n \n\n \n\n \n\n \n \n \n\n\n"); -$templateCache.put("angular-elastic-builder/types/Boolean.html","\n Equals\n\n \n \n \n\n"); -$templateCache.put("angular-elastic-builder/types/Date.html","\n \n\n\n"); -$templateCache.put("angular-elastic-builder/types/Multi.html","\n\n\n {{guide.action.midterm | translate}}\n \n \n \n\n \n\n"); -$templateCache.put("angular-elastic-builder/types/Multiterm.html","\n \n \n\n"); -$templateCache.put("angular-elastic-builder/types/Number.html","\n \n\n \n \n\n \n\n\n"); -$templateCache.put("angular-elastic-builder/types/Term.html","\n \n \n\n \n \n\n\n\n \n \n\n");}]);})(window.angular); \ No newline at end of file diff --git a/public/assets/plugins/angular-elastic-builder/dist/angular-elastic-builder.min.js b/public/assets/plugins/angular-elastic-builder/dist/angular-elastic-builder.min.js deleted file mode 100644 index 3e84dce..0000000 --- a/public/assets/plugins/angular-elastic-builder/dist/angular-elastic-builder.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";e.module("angular-elastic-builder",["RecursionHelper"])}(window.angular),function(e){"use strict";e.module("angular-elastic-builder").directive("elasticBuilder",["elasticQueryService",function(e){return{scope:{data:"=elasticBuilder"},templateUrl:"angular-elastic-builder/BuilderDirective.html",link:function(n){var r=n.data;n.filters=[],n.removeChild=function(e){n.filters.splice(e,1)},n.addRule=function(){n.filters.push({})},n.addGroup=function(){n.filters.push({type:"group",subType:"and",rules:[]})},n.$watch("data.needsUpdate",function(t){t&&(n.filters=e.toFilters(r.query,n.data.fields),n.data.needsUpdate=!1)}),n.$watch("filters",function(t){t&&(r.query=e.toQuery(n.filters,n.data.fields))},!0)}}}])}(window.angular),function(e){"use strict";var n=e.module("angular-elastic-builder");n.directive("elasticBuilderChooser",["RecursionHelper","groupClassHelper",function(e,n){return{scope:{elasticFields:"=",item:"=elasticBuilderChooser",onRemove:"&"},templateUrl:"angular-elastic-builder/ChooserDirective.html",compile:function(r){return e.compile(r,function(e,r,t){var a=e.depth=+t.depth,l=e.item;e.getGroupClassName=function(){var e=a;return"group"===l.type&&e++,n(e)}})}}}])}(window.angular),function(e){"use strict";var n=e.module("angular-elastic-builder");n.directive("elasticBuilderGroup",["RecursionHelper","groupClassHelper",function(e,n){return{scope:{elasticFields:"=",group:"=elasticBuilderGroup",onRemove:"&"},templateUrl:"angular-elastic-builder/GroupDirective.html",compile:function(r){return e.compile(r,function(e,r,t){var a=e.depth=+t.depth,l=e.group;e.addRule=function(){l.rules.push({})},e.addGroup=function(){l.rules.push({type:"group",subType:"and",rules:[]})},e.removeChild=function(e){l.rules.splice(e,1)},e.getGroupClassName=function(){return n(a+1)}})}}}])}(window.angular),function(e){"use strict";var n=e.module("angular-elastic-builder");n.directive("elasticBuilderRule",[function(){return{scope:{elasticFields:"=",rule:"=elasticBuilderRule",onRemove:"&"},templateUrl:"angular-elastic-builder/RuleDirective.html",link:function(e){e.getType=function(){var n=e.elasticFields,r=e.rule.field;return n&&r?"boolean"===n[r].subType?"boolean":n[r].type:void 0}}}}])}(window.angular),function(e){"use strict";var n=e.module("angular-elastic-builder");n.directive("elasticType",[function(){return{scope:{type:"=elasticType",rule:"=",guide:"="},template:'',link:function(e){e.getTemplateUrl=function(){var n=e.type;if(n)return n=n.charAt(0).toUpperCase()+n.slice(1),"angular-elastic-builder/types/"+n+".html"},e.booleans=["False","True"],e.booleansOrder=["True","False"],e.inputNeeded=function(){var n=["equals","notEquals","gt","gte","lt","lte"];return~n.indexOf(e.rule.subType)}}}}])}(window.angular),function(e){"use strict";e.module("angular-elastic-builder").run(["$templateCache",function(e){e.put("angular-elastic-builder/BuilderDirective.html",'\r\n\r\n\r\n
      \r\n \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n'),e.put("angular-elastic-builder/ChooserDirective.html",'\r\n\r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n'),e.put("angular-elastic-builder/GroupDirective.html",'\r\n\r\n\r\n\r\n
      \r\n
      \r\n
      \r\n \r\n
      {{ \'APPLICATION_IF\' | translate }}\r\n \r\n {{group.subType == \'and\' ? \'MESSAGE_CODITIONS_MET_ALL\' : \'MESSAGE_CODITIONS_MET_ANY\' | translate}}\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n\r\n\r\n'),e.put("angular-elastic-builder/RuleDirective.html",'\r\n\r\n \n {{elasticFields[rule.field].action.label | translate}}\n \n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n'),e.put("angular-elastic-builder/types/Boolean.html",'\r\n Equals\r\n\r\n \r\n \r\n \r\n\r\n'),e.put("angular-elastic-builder/types/Date.html",'\r\n \r\n\r\n\r\n'),e.put("angular-elastic-builder/types/Multi.html",'\r\n\r\n\r\n {{guide.action.midterm | translate}}\r\n \r\n \r\n \r\n\r\n \r\n\r\n'),e.put("angular-elastic-builder/types/Multiterm.html",'\r\n \r\n \r\n\r\n'),e.put("angular-elastic-builder/types/Number.html",'\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n\r\n'),e.put("angular-elastic-builder/types/Term.html",'\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n\r\n')}])}(window.angular),function(e){"use strict";e.module("angular-elastic-builder").factory("groupClassHelper",function(){return function(e){var n=[""];return n[e%n.length]}})}(window.angular),function(e){"use strict";function n(e,n){var r=e.map(t.bind(e,n));return r}function r(e,n){var r=e.map(a.bind(e,n)).filter(function(e){return!!e});return r}function t(e,n,r){r!==!1&&(r=!0);var a=Object.keys(n)[0],i={or:"group",and:"group",range:"number"},s=i[a]||"item",o=l(s);switch(a){case"or":case"and":o.rules=n[a].map(t.bind(n,e)),o.subType=a;break;case"missing":case"exists":o.field=n[a].field,o.subType={exists:"exists",missing:"notExists"}[a],delete o.value;break;case"term":case"terms":o.field=Object.keys(n[a])[0];var u=e[Object.keys(n[a])[0]];if("multi"===u.type){var c=n[a][o.field];"string"==typeof c&&(c=[c]),o.value=n[a][o.field]}else o.subType=r?"equals":"notEquals",o.value=n[a][o.field],"number"==typeof o.value&&(o.subType="boolean");break;case"range":o.field=Object.keys(n[a])[0],o.subType=Object.keys(n[a][o.field])[0],o.value=n[a][o.field][o.subType];break;case"not":o=t(e,n[a].filter,!1);break;default:o.field=Object.keys(n[a])[0]}return o}function a(e,n){var r={};if("group"===n.type)return r[n.subType]=n.rules.map(a.bind(n,e)).filter(function(e){return!!e}),r;var t=n.field,l=e[t];if(t){switch(l.type){case"term":case"multiterm":if("boolean"===l.subType&&(n.subType="boolean"),!n.subType)return;switch(n.subType){case"equals":case"boolean":if(void 0===n.value)return;r.term={},r.term[t]=n.value;break;case"notEquals":if(void 0===n.value)return;r.not={filter:{term:{}}},r.not.filter.term[t]=n.value;break;case"exists":r.exists={field:t};break;case"notExists":r.missing={field:t};break;default:throw new Error("unexpected subtype "+n.subType)}break;case"number":r.range={},r.range[t]={},r.range[t][n.subType]=n.value;break;case"date":if("exists"===n.subType)r.exists={field:t};else{if("notExists"!==n.subType)throw new Error("unexpected subtype");r.missing={field:t}}break;case"multi":r.terms={},r.terms[t]=n.value;break;default:throw new Error("unexpected type")}return r}}function l(n){var r={group:{type:"group",subType:"",rules:[]},item:{field:"",subType:"",value:""},number:{field:"",subType:"",value:null}};return e.copy(r[n])}e.module("angular-elastic-builder").factory("elasticQueryService",[function(){return{toFilters:n,toQuery:r}}])}(window.angular); \ No newline at end of file diff --git a/public/assets/plugins/angular-elastic-builder/dist/angular-elastic-builder_old.js b/public/assets/plugins/angular-elastic-builder/dist/angular-elastic-builder_old.js deleted file mode 100644 index 8c29ba8..0000000 --- a/public/assets/plugins/angular-elastic-builder/dist/angular-elastic-builder_old.js +++ /dev/null @@ -1,589 +0,0 @@ -/** - * # angular-elastic-builder - * ## Angular Module for building an Elasticsearch Query - * - * @version v1.4.0 - * @link https://github.com/dncrews/angular-elastic-builder.git - * @license MIT - * @author Dan Crews - */ - -/** - * angular-elastic-builder - * - * /src/module.js - * - * Angular Module for building an Elasticsearch query - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder', [ - 'RecursionHelper', - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/directives/BuilderDirective.js - * - * Angular Directive for injecting a query builder form. - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder') - .directive('elasticBuilder', [ - 'elasticQueryService', - - function EB(elasticQueryService) { - - return { - scope: { - data: '=elasticBuilder', - }, - - templateUrl: 'angular-elastic-builder/BuilderDirective.html', - - link: function(scope) { - var data = scope.data; - - scope.filters = []; - - /** - * Removes either Group or Rule - */ - scope.removeChild = function(idx) { - scope.filters.splice(idx, 1); - }; - - /** - * Adds a Single Rule - */ - scope.addRule = function() { - scope.filters.push({}); - }; - - /** - * Adds a Group of Rules - */ - scope.addGroup = function() { - scope.filters.push({ - type: 'group', - subType: 'and', - rules: [], - }); - }; - - /** - * Any time "outside forces" change the query, they should tell us so via - * `data.needsUpdate` - */ - scope.$watch('data.needsUpdate', function(curr) { - if (!curr) { - return; - } - - scope.filters = elasticQueryService.toFilters(data.query, scope.data.fields); - scope.data.needsUpdate = false; - }); - - /** - * Changes on the page update the Query - */ - scope.$watch('filters', function(curr) { - if (!curr) { - return; - } - - data.query = elasticQueryService.toQuery(scope.filters, scope.data.fields); - }, true); - } - }; - } - - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/directives/Chooser.js - * - * This file is to help recursively, to decide whether to show a group or rule - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticBuilderChooser', [ - 'RecursionHelper', - 'groupClassHelper', - - function elasticBuilderChooser(RH, groupClassHelper) { - - return { - scope: { - elasticFields: '=', - item: '=elasticBuilderChooser', - onRemove: '&', - }, - - templateUrl: 'angular-elastic-builder/ChooserDirective.html', - - compile: function (element) { - return RH.compile(element, function(scope, el, attrs) { - var depth = scope.depth = (+ attrs.depth) - , item = scope.item; - - scope.getGroupClassName = function() { - var level = depth; - if (item.type === 'group') level++; - - return groupClassHelper(level); - }; - }); - } - }; - } - - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/directives/Group.js - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticBuilderGroup', [ - 'RecursionHelper', - 'groupClassHelper', - - function elasticBuilderGroup(RH, groupClassHelper) { - - return { - scope: { - elasticFields: '=', - group: '=elasticBuilderGroup', - onRemove: '&', - }, - - templateUrl: 'angular-elastic-builder/GroupDirective.html', - - compile: function(element) { - return RH.compile(element, function(scope, el, attrs) { - var depth = scope.depth = (+ attrs.depth); - var group = scope.group; - - scope.addRule = function() { - group.rules.push({}); - }; - scope.addGroup = function() { - group.rules.push({ - type: 'group', - subType: 'and', - rules: [], - }); - }; - - scope.removeChild = function(idx) { - group.rules.splice(idx, 1); - }; - - scope.getGroupClassName = function() { - return groupClassHelper(depth + 1); - }; - }); - } - }; - } - - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/directives/Rule.js - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticBuilderRule', [ - - function elasticBuilderRule() { - return { - scope: { - elasticFields: '=', - rule: '=elasticBuilderRule', - onRemove: '&', - }, - - templateUrl: 'angular-elastic-builder/RuleDirective.html', - - link: function(scope) { - scope.getType = function() { - var fields = scope.elasticFields; - var field = scope.rule.field; - - if (!fields || !field) { - return; - } - - if (fields[field].subType === 'boolean') { - return 'boolean'; - } - - return fields[field].type; - }; - } - }; - } - - ]); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/directives/RuleTypes.js - * - * Determines which Rule type should be displayed - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticType', [ - - function() { - return { - scope: { - type: '=elasticType', - rule: '=', - guide: '=', - }, - - template: '', - - link: function(scope) { - scope.getTemplateUrl = function() { - var type = scope.type; - if (! type) return; - - type = type.charAt(0).toUpperCase() + type.slice(1); - - return 'angular-elastic-builder/types/' + type + '.html'; - }; - - // This is a weird hack to make sure these are numbers - scope.booleans = [ 'False', 'True' ]; - scope.booleansOrder = [ 'True', 'False' ]; - - scope.inputNeeded = function() { - var needs = [ - 'equals', - 'notEquals', - - 'gt', - 'gte', - 'lt', - 'lte', - ]; - - return ~needs.indexOf(scope.rule.subType); - }; - }, - }; - } - - ]); - -})(window.angular); - -(function(angular) {"use strict"; angular.module("angular-elastic-builder").run(["$templateCache", function($templateCache) {$templateCache.put("angular-elastic-builder/BuilderDirective.html","\r\n\r\n\r\n
      \r\n \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n"); -$templateCache.put("angular-elastic-builder/ChooserDirective.html","\r\n\r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n"); -$templateCache.put("angular-elastic-builder/GroupDirective.html","\r\n\r\n\r\n\r\n
      \r\n
      \r\n
      \r\n \r\n
      {{ \'APPLICATION_IF\' | translate }}\r\n \r\n {{group.subType == \'and\' ? \'MESSAGE_CODITIONS_MET_ALL\' : \'MESSAGE_CODITIONS_MET_ANY\' | translate}}\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n\r\n\r\n"); -$templateCache.put("angular-elastic-builder/RuleDirective.html","\r\n\r\n \n {{elasticFields[rule.field].action.label | translate}}\n \n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n"); -$templateCache.put("angular-elastic-builder/types/Boolean.html","\r\n Equals\r\n\r\n \r\n \r\n \r\n\r\n"); -$templateCache.put("angular-elastic-builder/types/Date.html","\r\n \r\n\r\n\r\n"); -$templateCache.put("angular-elastic-builder/types/Multi.html","\r\n\r\n\r\n {{guide.action.midterm | translate}}\r\n \r\n \r\n \r\n\r\n \r\n\r\n"); -$templateCache.put("angular-elastic-builder/types/Multiterm.html","\r\n \r\n \r\n\r\n"); -$templateCache.put("angular-elastic-builder/types/Number.html","\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n\r\n"); -$templateCache.put("angular-elastic-builder/types/Term.html","\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n\r\n");}]);})(window.angular); -/** - * angular-elastic-builder - * - * /src/services/GroupClassHelper.js - * - * This keeps all of the groups colored correctly - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder') - .factory('groupClassHelper', function groupClassHelper() { - - return function(level) { - var levels = [ - '', - // 'list-group-item-info', - // 'list-group-item-success', - // 'list-group-item-warning', - // 'list-group-item-danger', - ]; - - return levels[level % levels.length]; - }; - }); - -})(window.angular); - -/** - * angular-elastic-builder - * - * /src/services/QueryService.js - * - * This file is used to convert filters into queries, and vice versa - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder') - .factory('elasticQueryService', [ - function() { - - return { - toFilters: toFilters, - toQuery: toQuery, - }; - } - ]); - - function toFilters(query, fieldMap) { - var filters = query.map(parseQueryGroup.bind(query, fieldMap)); - return filters; - } - - function toQuery(filters, fieldMap) { - var query = filters.map(parseFilterGroup.bind(filters, fieldMap)).filter(function(item) { - return !!item; - }); - return query; - } - - function parseQueryGroup(fieldMap, group, truthy) { - if (truthy !== false) { - truthy = true; - } - - var key = Object.keys(group)[0], - typeMap = { - or: 'group', - and: 'group', - range: 'number', - }, - type = typeMap[key] || 'item', - obj = getFilterTemplate(type); - - switch (key) { - case 'or': - case 'and': - obj.rules = group[key].map(parseQueryGroup.bind(group, fieldMap)); - obj.subType = key; - break; - case 'missing': - case 'exists': - obj.field = group[key].field; - obj.subType = { - exists: 'exists', - missing: 'notExists', - }[key]; - delete obj.value; - break; - case 'term': - case 'terms': - obj.field = Object.keys(group[key])[0]; - var fieldData = fieldMap[Object.keys(group[key])[0]]; - - if (fieldData.type === 'multi') { - var vals = group[key][obj.field]; - if (typeof vals === 'string') { - vals = [vals]; - } - // MY CUSTOM MODIFICATION - obj.value = group[key][obj.field]; - // obj.values = fieldData.choices.reduce(function(prev, choice) { - // prev[choice] = truthy === (group[key][obj.field].indexOf(choice) > -1); - // return prev; - // }, {}); - } else { - obj.subType = truthy ? 'equals' : 'notEquals'; - obj.value = group[key][obj.field]; - - if (typeof obj.value === 'number') { - obj.subType = 'boolean'; - } - } - break; - case 'range': - obj.field = Object.keys(group[key])[0]; - obj.subType = Object.keys(group[key][obj.field])[0]; - obj.value = group[key][obj.field][obj.subType]; - break; - case 'not': - obj = parseQueryGroup(fieldMap, group[key].filter, false); - break; - default: - obj.field = Object.keys(group[key])[0]; - break; - } - - return obj; - } - - function parseFilterGroup(fieldMap, group) { - var obj = {}; - if (group.type === 'group') { - obj[group.subType] = group.rules.map(parseFilterGroup.bind(group, fieldMap)).filter(function(item) { - return !!item; - }); - return obj; - } - - var fieldName = group.field; - var fieldData = fieldMap[fieldName]; - - if (!fieldName) { - return; - } - - switch (fieldData.type) { - case 'term': - case 'multiterm': - if (fieldData.subType === 'boolean') { - group.subType = 'boolean'; - } - - if (!group.subType) { - return; - } - switch (group.subType) { - case 'equals': - case 'boolean': - if (group.value === undefined) { - return; - } - obj.term = {}; - obj.term[fieldName] = group.value; - break; - case 'notEquals': - if (group.value === undefined) { - return; - } - obj.not = { - filter: { - term: {} - } - }; - obj.not.filter.term[fieldName] = group.value; - break; - case 'exists': - obj.exists = { - field: fieldName - }; - break; - case 'notExists': - obj.missing = { - field: fieldName - }; - break; - default: - throw new Error('unexpected subtype ' + group.subType); - } - break; - - case 'number': - obj.range = {}; - obj.range[fieldName] = {}; - obj.range[fieldName][group.subType] = group.value; - break; - - case 'date': - if (group.subType === 'exists') { - obj.exists = { - field: fieldName - }; - } else if (group.subType === 'notExists') { - obj.missing = { - field: fieldName - }; - } else { - throw new Error('unexpected subtype'); - } - - break; - - case 'multi': - obj.terms = {}; - obj.terms[fieldName] = group.value; - // obj.terms[fieldName] = Object.keys(group.values || {}).reduce(function(prev, key) { - // if (group.values[key]) prev.push(key); - // - // return prev; - // }, []); - break; - - default: - throw new Error('unexpected type'); - } - - return obj; - } - - function getFilterTemplate(type) { - var templates = { - group: { - type: 'group', - subType: '', - rules: [], - }, - item: { - field: '', - subType: '', - value: '', - }, - number: { - field: '', - subType: '', - value: null, - } - }; - - return angular.copy(templates[type]); - } - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder/examples/index.html b/public/assets/plugins/angular-elastic-builder/examples/index.html deleted file mode 100644 index 0d0ad23..0000000 --- a/public/assets/plugins/angular-elastic-builder/examples/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - Angular Elastic Builder - - - - - -
      -
      -
      -
      -

      Filters

      -
      -
      -
      -

      Query

      -
      
      -          
      -
      -
      -
      - - - - - - - - - diff --git a/public/assets/plugins/angular-elastic-builder/examples/index.js b/public/assets/plugins/angular-elastic-builder/examples/index.js deleted file mode 100644 index d39b589..0000000 --- a/public/assets/plugins/angular-elastic-builder/examples/index.js +++ /dev/null @@ -1,12 +0,0 @@ -var path = require('path'); -var express = require('express'); - -var app = express(); - -app.use(express.static(__dirname)); -app.use('/js', express.static(path.join(__dirname, '../dist'))); -app.use('/angular', express.static(path.join(__dirname, '../node_modules/angular-recursion'))); - -app.listen(process.env.PORT || 3000, function() { - console.log('listening on ' + ( process.env.PORT || 3000)); -}); diff --git a/public/assets/plugins/angular-elastic-builder/examples/js/exampleApp.js b/public/assets/plugins/angular-elastic-builder/examples/js/exampleApp.js deleted file mode 100644 index ee4a7e8..0000000 --- a/public/assets/plugins/angular-elastic-builder/examples/js/exampleApp.js +++ /dev/null @@ -1,76 +0,0 @@ -(function(angular) { - - var app = angular.module('exampleApp', [ - 'angular-elastic-builder', - ]); - - app.controller('BasicController', function() { - - var data = this.data = {}; - - data.query = [ - { - 'and': [ - { - 'range': { - 'test.number': { - 'gte': 650 - } - } - }, - { - 'range': { - 'test.number': { - 'lt': 850 - } - } - } - ] - }, - { - 'term': { - 'test.boolean': 0 - } - }, - { - 'terms': { - 'test.state.multi': [ 'AZ', 'CT' ] - } - }, - { - 'not': { - 'filter': { - 'term': { - 'test.term': 'asdfasdf' - } - } - } - }, - { - 'exists': { - 'field': 'test.term' - } - } - ]; - - data.fields = { - 'test.number': { type: 'number', minimum: 650 }, - 'test.term': { type: 'term' }, - 'test.boolean': { type: 'term', subType: 'boolean' }, - 'test.state.multi': { type: 'multi', choices: [ 'AZ', 'CA', 'CT' ]} - }; - - data.needsUpdate = true; - - this.showQuery = function() { - var queryToShow = { - size: 0, - filter: { and : data.query } - }; - - return JSON.stringify(queryToShow, null, 2); - }; - - }); - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder/gulpfile.js b/public/assets/plugins/angular-elastic-builder/gulpfile.js deleted file mode 100644 index 9194d1a..0000000 --- a/public/assets/plugins/angular-elastic-builder/gulpfile.js +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Package Dependencies - */ -var concat = require('gulp-concat') - , del = require('del') - , header = require('gulp-header') - , gulp = require('gulp') - , templateCache = require('gulp-angular-templatecache') - , rename = require('gulp-rename') - , uglify = require('gulp-uglifyjs') - , util = require('util'); - -/** - * Local Dependencies - */ -var pkg = require('./package.json'); -var banner = ['/**' - , ' * # <%= pkg.name %>' - , ' * ## <%= pkg.description %>' - , ' *' - , ' * @version v<%= pkg.version %>' - , ' * @link <%= pkg.repository.url %>' - , ' * @license <%= pkg.license %>' - , ' * @author <%= pkg.author %>' - , ' */' - , '' - , ''].join('\n'); - -var filename = util.format('%s.js', pkg.name) - , dest = 'dist/' + filename; - -gulp.task('build', ['uglify']); -gulp.task('default', ['uglify']); - - -gulp.task('clean', function(done) { - del('./dist', done); -}); - -gulp.task('concat', [ 'templatecache' ], function() { - return gulp.src(['./src/module.js', './src/**/*.js']) - .pipe(concat(filename)) - .pipe(gulp.dest('./dist')); -}); - -gulp.task('header', [ 'concat' ], function() { - return gulp.src('./dist/*.js') - .pipe(header(banner, { pkg: pkg })) - .pipe(gulp.dest('./dist')); -}); - -gulp.task('uglify', [ 'header' ], function() { - return gulp.src('./dist/*.js') - .pipe(uglify(dest.replace(/\.js$/, '.min.js'))) - .pipe(gulp.dest('./')); -}); - -gulp.task('templatecache', [ 'clean' ], function() { - var TEMPLATE_HEADER = '(function(angular) {"use strict"; angular.module("<%= module %>"<%= standalone %>).run(["$templateCache", function($templateCache) {' - , TEMPLATE_FOOTER = '}]);})(window.angular);'; - - return gulp.src('src/tmpl/**/*.html') - .pipe(templateCache({ - root: 'angular-elastic-builder', - module: 'angular-elastic-builder', - templateHeader: TEMPLATE_HEADER, - templateFooter: TEMPLATE_FOOTER, - })) - .pipe(rename('ElasticBuilderTemplates.js')) - .pipe(gulp.dest('src/tmpl')); -}); - -gulp.task('watch', [ 'templatecache', 'build' ], function() { - gulp.watch('src/tmpl/**/*.html', [ 'templatecache', 'build' ]); - gulp.watch(['src/**/**.js','!src/tmpl/ElasticBuilderTemplates.js'], [ 'build' ]); -}); diff --git a/public/assets/plugins/angular-elastic-builder/package.json b/public/assets/plugins/angular-elastic-builder/package.json deleted file mode 100644 index 987e3f9..0000000 --- a/public/assets/plugins/angular-elastic-builder/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "angular-elastic-builder", - "version": "1.4.0", - "description": "Angular Module for building an Elasticsearch Query", - "author": "Dan Crews ", - "license": "MIT", - "keywords": [ - "angular", - "elasticsearch" - ], - "repository": { - "type": "git", - "url": "https://github.com/dncrews/angular-elastic-builder.git" - }, - "devDependencies": { - "angular-recursion": "^1.0.5", - "del": "^1.1.1", - "express": "^4.12.3", - "gulp": "^3.8.11", - "gulp-angular-templatecache": "^1.6.0", - "gulp-concat": "^2.5.2", - "gulp-header": "^1.2.2", - "gulp-rename": "^1.2.2", - "gulp-uglifyjs": "^0.6.1" - }, - "scripts": { - "example": "node examples", - "test": "echo \"Error: no test specified\" && exit 1" - } -} diff --git a/public/assets/plugins/angular-elastic-builder/screenshot.png b/public/assets/plugins/angular-elastic-builder/screenshot.png deleted file mode 100644 index ca8d57d..0000000 Binary files a/public/assets/plugins/angular-elastic-builder/screenshot.png and /dev/null differ diff --git a/public/assets/plugins/angular-elastic-builder/src/directives/BuilderDirective.js b/public/assets/plugins/angular-elastic-builder/src/directives/BuilderDirective.js deleted file mode 100644 index a23e2a6..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/directives/BuilderDirective.js +++ /dev/null @@ -1,84 +0,0 @@ -/** - * angular-elastic-builder - * - * /src/directives/BuilderDirective.js - * - * Angular Directive for injecting a query builder form. - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder') - .directive('elasticBuilder', [ - 'elasticQueryService', - - function EB(elasticQueryService) { - - return { - scope: { - data: '=elasticBuilder', - }, - - templateUrl: 'angular-elastic-builder/BuilderDirective.html', - - link: function(scope) { - var data = scope.data; - - scope.filters = []; - - /** - * Removes either Group or Rule - */ - scope.removeChild = function(idx) { - scope.filters.splice(idx, 1); - }; - - /** - * Adds a Single Rule - */ - scope.addRule = function() { - scope.filters.push({}); - }; - - /** - * Adds a Group of Rules - */ - scope.addGroup = function() { - scope.filters.push({ - type: 'group', - subType: 'and', - rules: [], - }); - }; - - /** - * Any time "outside forces" change the query, they should tell us so via - * `data.needsUpdate` - */ - scope.$watch('data.needsUpdate', function(curr) { - if (!curr) { - return; - } - - scope.filters = elasticQueryService.toFilters(data.query, scope.data.fields); - scope.data.needsUpdate = false; - }); - - /** - * Changes on the page update the Query - */ - scope.$watch('filters', function(curr) { - if (!curr) { - return; - } - - data.query = elasticQueryService.toQuery(scope.filters, scope.data.fields); - }, true); - } - }; - } - - ]); - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder/src/directives/Chooser.js b/public/assets/plugins/angular-elastic-builder/src/directives/Chooser.js deleted file mode 100644 index ccf917e..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/directives/Chooser.js +++ /dev/null @@ -1,47 +0,0 @@ -/** - * angular-elastic-builder - * - * /src/directives/Chooser.js - * - * This file is to help recursively, to decide whether to show a group or rule - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticBuilderChooser', [ - 'RecursionHelper', - 'groupClassHelper', - - function elasticBuilderChooser(RH, groupClassHelper) { - - return { - scope: { - elasticFields: '=', - item: '=elasticBuilderChooser', - onRemove: '&', - }, - - templateUrl: 'angular-elastic-builder/ChooserDirective.html', - - compile: function (element) { - return RH.compile(element, function(scope, el, attrs) { - var depth = scope.depth = (+ attrs.depth) - , item = scope.item; - - scope.getGroupClassName = function() { - var level = depth; - if (item.type === 'group') level++; - - return groupClassHelper(level); - }; - }); - } - }; - } - - ]); - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder/src/directives/Group.js b/public/assets/plugins/angular-elastic-builder/src/directives/Group.js deleted file mode 100644 index d691913..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/directives/Group.js +++ /dev/null @@ -1,57 +0,0 @@ -/** - * angular-elastic-builder - * - * /src/directives/Group.js - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticBuilderGroup', [ - 'RecursionHelper', - 'groupClassHelper', - - function elasticBuilderGroup(RH, groupClassHelper) { - - return { - scope: { - elasticFields: '=', - group: '=elasticBuilderGroup', - onRemove: '&', - }, - - templateUrl: 'angular-elastic-builder/GroupDirective.html', - - compile: function(element) { - return RH.compile(element, function(scope, el, attrs) { - var depth = scope.depth = (+ attrs.depth); - var group = scope.group; - - scope.addRule = function() { - group.rules.push({}); - }; - scope.addGroup = function() { - group.rules.push({ - type: 'group', - subType: 'and', - rules: [], - }); - }; - - scope.removeChild = function(idx) { - group.rules.splice(idx, 1); - }; - - scope.getGroupClassName = function() { - return groupClassHelper(depth + 1); - }; - }); - } - }; - } - - ]); - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder/src/directives/Rule.js b/public/assets/plugins/angular-elastic-builder/src/directives/Rule.js deleted file mode 100644 index 53268ab..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/directives/Rule.js +++ /dev/null @@ -1,45 +0,0 @@ -/** - * angular-elastic-builder - * - * /src/directives/Rule.js - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticBuilderRule', [ - - function elasticBuilderRule() { - return { - scope: { - elasticFields: '=', - rule: '=elasticBuilderRule', - onRemove: '&', - }, - - templateUrl: 'angular-elastic-builder/RuleDirective.html', - - link: function(scope) { - scope.getType = function() { - var fields = scope.elasticFields; - var field = scope.rule.field; - - if (!fields || !field) { - return; - } - - if (fields[field].subType === 'boolean') { - return 'boolean'; - } - - return fields[field].type; - }; - } - }; - } - - ]); - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder/src/directives/RuleTypes.js b/public/assets/plugins/angular-elastic-builder/src/directives/RuleTypes.js deleted file mode 100644 index 8df37c1..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/directives/RuleTypes.js +++ /dev/null @@ -1,59 +0,0 @@ -/** - * angular-elastic-builder - * - * /src/directives/RuleTypes.js - * - * Determines which Rule type should be displayed - */ - -(function(angular) { - 'use strict'; - - var app = angular.module('angular-elastic-builder'); - - app.directive('elasticType', [ - - function() { - return { - scope: { - type: '=elasticType', - rule: '=', - guide: '=', - }, - - template: '', - - link: function(scope) { - scope.getTemplateUrl = function() { - var type = scope.type; - if (! type) return; - - type = type.charAt(0).toUpperCase() + type.slice(1); - - return 'angular-elastic-builder/types/' + type + '.html'; - }; - - // This is a weird hack to make sure these are numbers - scope.booleans = [ 'False', 'True' ]; - scope.booleansOrder = [ 'True', 'False' ]; - - scope.inputNeeded = function() { - var needs = [ - 'equals', - 'notEquals', - - 'gt', - 'gte', - 'lt', - 'lte', - ]; - - return ~needs.indexOf(scope.rule.subType); - }; - }, - }; - } - - ]); - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder/src/module.js b/public/assets/plugins/angular-elastic-builder/src/module.js deleted file mode 100644 index a4f9a9c..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/module.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * angular-elastic-builder - * - * /src/module.js - * - * Angular Module for building an Elasticsearch query - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder', [ - 'RecursionHelper', - ]); - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder/src/services/GroupClassHelper.js b/public/assets/plugins/angular-elastic-builder/src/services/GroupClassHelper.js deleted file mode 100644 index bfd45b5..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/services/GroupClassHelper.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * angular-elastic-builder - * - * /src/services/GroupClassHelper.js - * - * This keeps all of the groups colored correctly - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder') - .factory('groupClassHelper', function groupClassHelper() { - - return function(level) { - var levels = [ - '', - // 'list-group-item-info', - // 'list-group-item-success', - // 'list-group-item-warning', - // 'list-group-item-danger', - ]; - - return levels[level % levels.length]; - }; - }); - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder/src/services/QueryService.js b/public/assets/plugins/angular-elastic-builder/src/services/QueryService.js deleted file mode 100644 index 6f088b1..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/services/QueryService.js +++ /dev/null @@ -1,226 +0,0 @@ -/** - * angular-elastic-builder - * - * /src/services/QueryService.js - * - * This file is used to convert filters into queries, and vice versa - */ - -(function(angular) { - 'use strict'; - - angular.module('angular-elastic-builder') - .factory('elasticQueryService', [ - function() { - - return { - toFilters: toFilters, - toQuery: toQuery, - }; - } - ]); - - function toFilters(query, fieldMap) { - var filters = query.map(parseQueryGroup.bind(query, fieldMap)); - return filters; - } - - function toQuery(filters, fieldMap) { - var query = filters.map(parseFilterGroup.bind(filters, fieldMap)).filter(function(item) { - return !!item; - }); - return query; - } - - function parseQueryGroup(fieldMap, group, truthy) { - if (truthy !== false) { - truthy = true; - } - - var key = Object.keys(group)[0], - typeMap = { - or: 'group', - and: 'group', - range: 'number', - }, - type = typeMap[key] || 'item', - obj = getFilterTemplate(type); - - switch (key) { - case 'or': - case 'and': - obj.rules = group[key].map(parseQueryGroup.bind(group, fieldMap)); - obj.subType = key; - break; - case 'missing': - case 'exists': - obj.field = group[key].field; - obj.subType = { - exists: 'exists', - missing: 'notExists', - }[key]; - delete obj.value; - break; - case 'term': - case 'terms': - obj.field = Object.keys(group[key])[0]; - var fieldData = fieldMap[Object.keys(group[key])[0]]; - - if (fieldData.type === 'multi') { - var vals = group[key][obj.field]; - if (typeof vals === 'string') { - vals = [vals]; - } - // MY CUSTOM MODIFICATION - obj.value = group[key][obj.field]; - // obj.values = fieldData.choices.reduce(function(prev, choice) { - // prev[choice] = truthy === (group[key][obj.field].indexOf(choice) > -1); - // return prev; - // }, {}); - } else { - obj.subType = truthy ? 'equals' : 'notEquals'; - obj.value = group[key][obj.field]; - - if (typeof obj.value === 'number') { - obj.subType = 'boolean'; - } - } - break; - case 'range': - obj.field = Object.keys(group[key])[0]; - obj.subType = Object.keys(group[key][obj.field])[0]; - obj.value = group[key][obj.field][obj.subType]; - break; - case 'not': - obj = parseQueryGroup(fieldMap, group[key].filter, false); - break; - default: - obj.field = Object.keys(group[key])[0]; - break; - } - - return obj; - } - - function parseFilterGroup(fieldMap, group) { - var obj = {}; - if (group.type === 'group') { - obj[group.subType] = group.rules.map(parseFilterGroup.bind(group, fieldMap)).filter(function(item) { - return !!item; - }); - return obj; - } - - var fieldName = group.field; - var fieldData = fieldMap[fieldName]; - - if (!fieldName) { - return; - } - - switch (fieldData.type) { - case 'term': - case 'multiterm': - if (fieldData.subType === 'boolean') { - group.subType = 'boolean'; - } - - if (!group.subType) { - return; - } - switch (group.subType) { - case 'equals': - case 'boolean': - if (group.value === undefined) { - return; - } - obj.term = {}; - obj.term[fieldName] = group.value; - break; - case 'notEquals': - if (group.value === undefined) { - return; - } - obj.not = { - filter: { - term: {} - } - }; - obj.not.filter.term[fieldName] = group.value; - break; - case 'exists': - obj.exists = { - field: fieldName - }; - break; - case 'notExists': - obj.missing = { - field: fieldName - }; - break; - default: - throw new Error('unexpected subtype ' + group.subType); - } - break; - - case 'number': - obj.range = {}; - obj.range[fieldName] = {}; - obj.range[fieldName][group.subType] = group.value; - break; - - case 'date': - if (group.subType === 'exists') { - obj.exists = { - field: fieldName - }; - } else if (group.subType === 'notExists') { - obj.missing = { - field: fieldName - }; - } else { - throw new Error('unexpected subtype'); - } - - break; - - case 'multi': - obj.terms = {}; - obj.terms[fieldName] = group.value; - // obj.terms[fieldName] = Object.keys(group.values || {}).reduce(function(prev, key) { - // if (group.values[key]) prev.push(key); - // - // return prev; - // }, []); - break; - - default: - throw new Error('unexpected type'); - } - - return obj; - } - - function getFilterTemplate(type) { - var templates = { - group: { - type: 'group', - subType: '', - rules: [], - }, - item: { - field: '', - subType: '', - value: '', - }, - number: { - field: '', - subType: '', - value: null, - } - }; - - return angular.copy(templates[type]); - } - -})(window.angular); diff --git a/public/assets/plugins/angular-elastic-builder/src/tmpl/BuilderDirective.html b/public/assets/plugins/angular-elastic-builder/src/tmpl/BuilderDirective.html deleted file mode 100644 index 9df6d7c..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/tmpl/BuilderDirective.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/public/assets/plugins/angular-elastic-builder/src/tmpl/ChooserDirective.html b/public/assets/plugins/angular-elastic-builder/src/tmpl/ChooserDirective.html deleted file mode 100644 index b28fb4a..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/tmpl/ChooserDirective.html +++ /dev/null @@ -1,29 +0,0 @@ - - - -
      -
      -
      -
      diff --git a/public/assets/plugins/angular-elastic-builder/src/tmpl/ElasticBuilderTemplates.js b/public/assets/plugins/angular-elastic-builder/src/tmpl/ElasticBuilderTemplates.js deleted file mode 100644 index 9a212f7..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/tmpl/ElasticBuilderTemplates.js +++ /dev/null @@ -1,10 +0,0 @@ -(function(angular) {"use strict"; angular.module("angular-elastic-builder").run(["$templateCache", function($templateCache) {$templateCache.put("angular-elastic-builder/BuilderDirective.html","\r\n\r\n\r\n
      \r\n \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n"); -$templateCache.put("angular-elastic-builder/ChooserDirective.html","\r\n\r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n"); -$templateCache.put("angular-elastic-builder/GroupDirective.html","\r\n\r\n\r\n\r\n
      \r\n
      \r\n
      \r\n \r\n
      {{ \'APPLICATION_IF\' | translate }}\r\n \r\n {{group.subType == \'and\' ? \'MESSAGE_CODITIONS_MET_ALL\' : \'MESSAGE_CODITIONS_MET_ANY\' | translate}}\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n\r\n\r\n"); -$templateCache.put("angular-elastic-builder/RuleDirective.html","\r\n\r\n \n {{elasticFields[rule.field].action.label | translate}}\n \n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n"); -$templateCache.put("angular-elastic-builder/types/Boolean.html","\r\n Equals\r\n\r\n \r\n \r\n \r\n\r\n"); -$templateCache.put("angular-elastic-builder/types/Date.html","\r\n \r\n\r\n\r\n"); -$templateCache.put("angular-elastic-builder/types/Multi.html","\r\n\r\n\r\n {{guide.action.midterm | translate}}\r\n \r\n \r\n \r\n\r\n \r\n\r\n"); -$templateCache.put("angular-elastic-builder/types/Multiterm.html","\r\n \r\n \r\n\r\n"); -$templateCache.put("angular-elastic-builder/types/Number.html","\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n\r\n"); -$templateCache.put("angular-elastic-builder/types/Term.html","\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n\r\n");}]);})(window.angular); \ No newline at end of file diff --git a/public/assets/plugins/angular-elastic-builder/src/tmpl/GroupDirective.html b/public/assets/plugins/angular-elastic-builder/src/tmpl/GroupDirective.html deleted file mode 100644 index 1196759..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/tmpl/GroupDirective.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - -
      -
      -
      - -
      {{ 'APPLICATION_IF' | translate }} - - {{group.subType == 'and' ? 'MESSAGE_CODITIONS_MET_ALL' : 'MESSAGE_CODITIONS_MET_ANY' | translate}} -
      -
      -
      - -
      - diff --git a/public/assets/plugins/angular-elastic-builder/src/tmpl/RuleDirective.html b/public/assets/plugins/angular-elastic-builder/src/tmpl/RuleDirective.html deleted file mode 100644 index f7d69a1..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/tmpl/RuleDirective.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - {{elasticFields[rule.field].action.label | translate}} - - - - - - - - - - - - diff --git a/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Boolean.html b/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Boolean.html deleted file mode 100644 index 1ac8380..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Boolean.html +++ /dev/null @@ -1,10 +0,0 @@ - - Equals - - - - diff --git a/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Date.html b/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Date.html deleted file mode 100644 index 377edd4..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Date.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Multi.html b/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Multi.html deleted file mode 100644 index 1a233b8..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Multi.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - {{guide.action.midterm | translate}} - - - - - - diff --git a/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Multiterm.html b/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Multiterm.html deleted file mode 100644 index 25c4849..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Multiterm.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Number.html b/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Number.html deleted file mode 100644 index 564a1a8..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Number.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - diff --git a/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Term.html b/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Term.html deleted file mode 100644 index 95f2b76..0000000 --- a/public/assets/plugins/angular-elastic-builder/src/tmpl/types/Term.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - diff --git a/public/index.html b/public/index.html index 935cb50..668e0a2 100644 --- a/public/index.html +++ b/public/index.html @@ -61,7 +61,7 @@ - + diff --git a/release-notes/changelog_0.0.6.txt b/release-notes/changelog_0.0.7.txt similarity index 70% rename from release-notes/changelog_0.0.6.txt rename to release-notes/changelog_0.0.7.txt index 1335a13..51835ab 100644 --- a/release-notes/changelog_0.0.6.txt +++ b/release-notes/changelog_0.0.7.txt @@ -1,5 +1,7 @@ # xCALLY MOTION Changelog +- * d24580c - 2015-12-09: client side assets angular-elastic-builder +- * a1ec677 - 2015-12-07: client app update list - * fb69603 - 2015-12-07: socket fix - * 5e05839 - 2015-12-07: Change Message Build - * ca62527 - 2015-12-07: sever side API update @@ -65,29 +67,4 @@ - * c6908e8 - 2015-12-03: server side models index.js - * d10be43 - 2015-12-03: server side migrations folder - * ba8942e - 2015-12-03: server side config. Added config.json file. -- * b1797e2 - 2015-12-02: Update Nodejs -- * 245bc5a - 2015-12-02: package.js -- * 4879475 - 2015-12-02: Checkout production -- * 27a821b - 2015-12-02: server side routes.js -- * fb32d86 - 2015-12-02: server side config -- * ca31944 - 2015-12-02: server side api -- * 6221198 - 2015-12-02: client side components -- * 5c0d60b - 2015-12-02: client side app chat realtime -- * 2528ed9 - 2015-12-02: Move languages under assets -- * 8d3a5e0 - 2015-12-02: Remove Images -- * 9d724cd - 2015-12-01: change MD5 with md5 -- * 3388ac3 - 2015-12-01: removed elastic builder and recursion helper request from app.js -- * 19955f8 - 2015-12-01: removed recursion helper -- * 2f2aadc - 2015-12-01: Triggers client side with new directive; First new triggers server side (only conditions check). -- * ff0433d - 2015-12-01: Bug fix grunt file to build -- * 6a9e7a3 - 2015-12-01: remove angular-smiles and change path languages -- * 0d2376d - 2015-12-01: appjs with ami and agi -- * b59c77a - 2015-12-01: bower.json -- * 19b362a - 2015-12-01: server side models -- * 86d977a - 2015-12-01: server side config -- * 24768e3 - 2015-12-01: server side API -- * 1e4a001 - 2015-12-01: client side quickSidebar component -- * dfa6a84 - 2015-12-01: client side languages components -- * 787afbe - 2015-12-01: client side header component -- * 8f08964 - 2015-12-01: client side app