Built motion from commit 1a9b445.|0.0.70
authorDaniele Cinti <daniele.cinti@xcally.com>
Tue, 29 Mar 2016 15:47:56 +0000 (17:47 +0200)
committerDaniele Cinti <daniele.cinti@xcally.com>
Tue, 29 Mar 2016 15:47:56 +0000 (17:47 +0200)
102 files changed:
public/app/1a0f1474.app.css [moved from public/app/e59e4d75.app.css with 60% similarity]
public/app/8f31380f.app.js [moved from public/app/116b9f4e.app.js with 60% similarity]
public/assets/css/global/custom.css
public/assets/css/global/profile-old.css
public/assets/images/media/list.png [moved from public/assets/images/media/service.png with 100% similarity]
public/assets/languages/locale-en_EN.json
public/assets/languages/locale-it.json
public/assets/plugins/square/js/Dialogs.js
public/assets/plugins/square/js/Sidebar.js
public/assets/plugins/square/js/custom.js
public/assets/plugins/square/resources/dia.txt
public/assets/plugins/square/resources/dia_it.txt
public/index.html
release-notes/changelog_0.0.70.txt
server/api/agent/agent.controller.js
server/api/contact_manager/contact_manager.controller.js
server/api/list/index.js [moved from server/api/service/index.js with 67% similarity]
server/api/list/list.controller.js [moved from server/api/service/service.controller.js with 67% similarity]
server/api/list/list.socket.js [moved from server/api/service/service.socket.js with 74% similarity]
server/api/report_chat/report_chat.socket.js
server/api/report_chat_room/index.js [new file with mode: 0644]
server/api/report_chat_room/report_chat_room.controller.js [new file with mode: 0644]
server/api/report_chat_room/report_chat_room.socket.js [new file with mode: 0644]
server/api/report_queue/index.js
server/api/report_queue/report_queue.controller.js
server/api/report_queue/report_queue.socket.js
server/api/service/service.spec.js [deleted file]
server/api/sms_account/index.js [new file with mode: 0644]
server/api/sms_account/index.spec.js [new file with mode: 0644]
server/api/sms_account/sms_account.controller.js [new file with mode: 0644]
server/api/sms_account/sms_account.socket.js [new file with mode: 0644]
server/api/sms_application/index.js [new file with mode: 0644]
server/api/sms_application/index.spec.js [new file with mode: 0644]
server/api/sms_application/sms_application.controller.js [new file with mode: 0644]
server/api/sms_application/sms_application.socket.js [new file with mode: 0644]
server/api/sms_message/index.js [new file with mode: 0644]
server/api/sms_message/index.spec.js [new file with mode: 0644]
server/api/sms_message/sms_message.controller.js [new file with mode: 0644]
server/api/sms_message/sms_message.socket.js [new file with mode: 0644]
server/api/sms_queue/index.js [new file with mode: 0644]
server/api/sms_queue/index.spec.js [new file with mode: 0644]
server/api/sms_queue/sms_queue.controller.js [new file with mode: 0644]
server/api/sms_queue/sms_queue.socket.js [new file with mode: 0644]
server/api/sms_room/index.js [new file with mode: 0644]
server/api/sms_room/index.spec.js [new file with mode: 0644]
server/api/sms_room/sms_room.controller.js [new file with mode: 0644]
server/api/sms_room/sms_room.socket.js [new file with mode: 0644]
server/api/update/update.controller.js
server/api/user/user.socket.js
server/api/user_has_list/index.js [moved from server/api/user_has_service/index.js with 85% similarity]
server/api/user_has_list/user_has_list.controller.js [moved from server/api/user_has_service/user_has_service.controller.js with 67% similarity]
server/api/user_has_list/user_has_list.socket.js [moved from server/api/user_has_service/user_has_service.socket.js with 50% similarity]
server/api/user_has_service/user_has_service.spec.js [deleted file]
server/api/xchatty/xchatty.controller.js
server/auth/auth.service.js
server/config/agi.js
server/config/agi_scripts/ispeech-asr.agi
server/config/ami/index.js
server/config/ami/transfer.js
server/config/history/history.js
server/config/routing/chat/index.js
server/config/routing/chat/session.js
server/config/routing/mail/index.js
server/config/routing/mail/session.js
server/config/seed.js
server/config/seedp.js
server/config/sms/index.js [new file with mode: 0644]
server/config/sms/skebby.js [new file with mode: 0644]
server/config/sms/sms.js [new file with mode: 0644]
server/config/sms/twilio.js [new file with mode: 0644]
server/config/socketio.js
server/config/tools/chatRoom.js
server/files/attachments/CINTI.pdf [new file with mode: 0644]
server/files/attachments/image001.jpg [new file with mode: 0644]
server/files/attachments/image004.png [new file with mode: 0644]
server/migrations/20160315183016-motion.js [deleted file]
server/models/chat_room.js
server/models/company.js
server/models/contact.js
server/models/custom_field.js
server/models/history/report_chat_room_history.js [new file with mode: 0644]
server/models/history/report_chat_session_history.js
server/models/history/report_mail_room_history.js [new file with mode: 0644]
server/models/history/report_mail_session_history.js
server/models/list.js [moved from server/models/service.js with 64% similarity]
server/models/report_chat.js
server/models/report_chat_room.js [new file with mode: 0644]
server/models/report_chat_session.js
server/models/report_mail_room.js [new file with mode: 0644]
server/models/report_mail_session.js
server/models/report_queue.js
server/models/report_tranfer.js
server/models/sms_account.js [new file with mode: 0644]
server/models/sms_application.js [new file with mode: 0644]
server/models/sms_message.js [new file with mode: 0644]
server/models/sms_queue.js [new file with mode: 0644]
server/models/sms_room.js [new file with mode: 0644]
server/models/telephone.js [deleted file]
server/models/user.js
server/models/user_has_list.js [moved from server/models/user_has_service.js with 64% similarity]
server/models/user_has_voice_queue.js
server/routes.js

similarity index 60%
rename from public/app/e59e4d75.app.css
rename to public/app/1a0f1474.app.css
index cf69c9c..932efd9 100644 (file)
@@ -1 +1 @@
-.audio-portlet .audio-portlet-title,.audio-portlet .audio-portlet-title a{white-space:nowrap;overflow:hidden;word-wrap:break-word;text-overflow:ellipsis}.audio-portlet .audio-portlet-title,h1,h2,h3,h4,h5,h6{font-family:"Open Sans",sans-serif;font-weight:300}.badge,.btn-arrow-link,.btn-lg{vertical-align:middle}.chart-tooltip,.chart-tooltip .label,.chat-form,.dashboard-stat .more,.dashboard-stat2 .display:after,.dashboard-stat2 .progress-info,.dashboard-stat2 .progress-info .progress,.dashboard-stat:after,.dropdown-menu li>a,.feeds li .col1,.feeds li:after,.form .form-actions:after,.general-item-list>.item>.item-head:after,.portlet>.portlet-title:after,.social-icons:after,.tabbable:after,.table-toolbar:after,.tiles .tile .tile-object:after,.tiles:after{clear:both}.inactive-link,a.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled,fieldset[disabled] a.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button{pointer-events:none}#faxMessages::-webkit-scrollbar-track{background-color:#fff!important}#faxMessages::-webkit-scrollbar{width:5px}.our-integrations h3{margin-bottom:0;padding:10px;background:#f9f9f9}.our-integrations small{display:block;font-size:12px;color:#999;margin-top:5px}.our-integrations .integration-info{padding:10px;overflow:hidden;background:#f5f5f5}.interval-to{min-height:34px;padding:9px 12px}.audio-portlet .audio-portlet-title{margin-bottom:0;padding:10px;background:#f9f9f9;font-size:17px;margin-top:20px;line-height:1.1;color:inherit}.audio-portlet .audio-portlet-title a{display:block}.audio-portlet .file-info{padding:10px;overflow:hidden;background:#f5f5f5;height:105px}.audio-portlet-wrapper{float:left;margin:0 0 0 20px;-webkit-animation:fadeInUpm .5s;animation:fadeInUpm .5s;-moz-transition:all .5s linear;-webkit-transition:all .5s linear;transition:all .5s linear}.animate-repeat{list-style:none;box-sizing:border-box}.animate-repeat.ng-enter,.animate-repeat.ng-leave,.animate-repeat.ng-move{-webkit-transition:all linear .5s;transition:all linear .5s}.animate-repeat.ng-enter,.animate-repeat.ng-leave.ng-leave-active,.animate-repeat.ng-move{opacity:0;max-height:0}.animate-repeat.ng-enter.ng-enter-active,.animate-repeat.ng-leave,.animate-repeat.ng-move.ng-move-active{opacity:1;max-height:600px}audio{-moz-transition:all .5s linear;-webkit-transition:all .5s linear;transition:all .5s linear;border-radius:0}@media (min-width:502px){.audio-portlet-wrapper{width:240px}.editable-error,audio{width:220px}}@media (max-width:501px){.audio-portlet-wrapper{width:320px}.editable-error,audio{width:300px}}.editable-error{white-space:pre-line}#description_div,.dropdown-menu li>a,.table-scrollable>.table>tbody>tr>th,.table-scrollable>.table>tfoot>tr>td,.table-scrollable>.table>tfoot>tr>th,.table-scrollable>.table>thead>tr>th{white-space:nowrap}#description_div{text-overflow:ellipsis;overflow:hidden;word-wrap:break-word}.portlet-title.collapsible{cursor:pointer}.ui-padding{padding-bottom:200px}div[contenteditable]{max-height:100px;overflow:auto;display:block;width:100%;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}a,button,code,div,img,input,label,li,p,pre,select,span,table,td,textarea,th,ul{-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important}.img-circle{border-radius:50%!important}.img-rounded{border-radius:6px!important}body{color:#333;font-family:"Open Sans",sans-serif;padding:0!important;margin:0!important;font-size:13px;direction:ltr}@-ms-viewport{width:device-width}@-o-viewport{width:device-width}@viewport{width:device-width}@-ms-viewport{width:auto!important}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background-color:#eaeaea;border-radius:0;box-shadow:none;border:0}::-webkit-scrollbar-thumb{background-color:#cecece;border-radius:0;box-shadow:none;border:0}::-webkit-scrollbar-thumb:hover{background-color:#aaa}.bars,.chart,.pie,.primary-font{font-family:"Open Sans",sans-serif!important}h1{font-size:33px}h2{font-size:27px}h3{font-size:23px}h4{font-size:17px}h5{font-size:13px}h6{font-size:12px}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#444}h1.block,h2.block,h3.block,h4.block,h5.block,h6.block{padding-top:10px;padding-bottom:10px}a{text-shadow:none;color:#5b9bd1}a:active,a:focus,a:hover{outline:0}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:0}.list-unstyled li>.list-unstyled{margin-left:25px}code{border:1px solid #e1e1e1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.1);-moz-box-shadow:0 1px 4px rgba(0,0,0,.1);box-shadow:0 1px 4px rgba(0,0,0,.1)}.disabled-link .disable-target{opacity:.5!important;filter:alpha(opacity=50)!important}.disabled-link .disable-target:hover,.disabled-link:hover{cursor:not-allowed!important}a:hover{color:#3175af;cursor:pointer}.primary-link{color:#65A0D0;font-weight:600}.primary-link:hover{color:#5194ca}.rounded-2{border-radius:2px!important}.rounded-3{border-radius:3px!important}.rounded-4{border-radius:4px!important}.circle{border-radius:25px!important}.circle-right{border-radius:0 25px 25px 0!important}.circle-left{border-radius:25px 0 0 25px!important}.circle-bottom{border-radius:0 0 25px 25px!important}.circle-top{border-radius:25px 25px 0 0!important}.display-hide,.display-none{display:none}.hidden{display:none!important}.bold{font-weight:700!important}.thin{font-weight:300!important}.uppercase{text-transform:uppercase!important}.fix-margin{margin-left:0!important}.border{border:1px solid red}.font-hg{font-size:23px}.font-lg{font-size:18px}.font-md{font-size:14px}.font-sm{font-size:13px}.font-xs{font-size:11px}.inline{display:inline}.inline-block{display:inline-block}.text-align-reverse{text-align:right}.top-news a,.top-news span{text-align:left;display:block}.no-space{margin:0!important;padding:0!important}.no-margin{margin:0}.margin-bottom-5{margin-bottom:5px}.margin-bottom-10{margin-bottom:10px!important}.margin-top-10{margin-top:10px!important}.margin-top-15{margin-top:15px!important}.margin-bottom-15{margin-bottom:15px!important}.margin-bottom-20{margin-bottom:20px!important}.margin-top-20{margin-top:20px!important}.margin-bottom-25{margin-bottom:25px!important}.margin-bottom-30{margin-bottom:30px!important}.margin-right-10{margin-right:10px!important}.visible-ie8{display:none}.ie8 .visible-ie8{display:inherit!important}.visible-ie9{display:none}.ie9 .visible-ie9{display:inherit!important}.hidden-ie8{display:inherit}.ie8 .hidden-ie8{display:none!important}.hidden-ie9{display:inherit}.ie9 .hidden-ie9{display:none!important}@media (max-width:1024px){.hidden-1024{display:none}}@media (max-width:480px){.hidden-480{display:none}}@media (max-width:320px){.hidden-320{display:none}}.scrollspy-example{position:relative;height:200px;margin-top:10px;overflow:auto}.util-btn-group-margin-bottom-5 .btn-group,.util-btn-margin-bottom-5 .btn{margin-bottom:5px!important}.user-info{margin-bottom:10px!important}.user-info img{float:left;margin-right:5px}.number-stats .stat-left,.number-stats .stat-left .stat-chart{float:right}.user-info .details{display:inline-block}.user-info .label{font-weight:300;font-size:11px}.top-news{color:#fff;margin:8px 0}.top-news em{font-size:13px;margin-bottom:0;font-style:normal;display:block}.top-news em i{font-size:14px}.top-news span{font-size:18px;margin-bottom:5px}.top-news a{padding:10px;position:relative;margin-bottom:10px}.top-news a .top-news-icon{right:8px;bottom:15px;opacity:.3;font-size:35px;position:absolute;filter:alpha(opacity=30)}.blog-images{margin-bottom:0}.blog-images li{padding:0;margin:0;display:inline}.blog-images li a:hover{text-decoration:none}.blog-images li img{width:50px;height:50px;opacity:.6;margin:0 2px 8px}.blog-images li img:hover{opacity:1;box-shadow:0 0 0 4px #72c02c;transition:all .4s ease-in-out 0s;-moz-transition:all .4s ease-in-out 0s;-webkit-transition:all .4s ease-in-out 0s}.sidebar-tags li{padding:0}.sidebar-tags li a{color:#555;font-size:12px;padding:3px 5px;background:#f7f7f7;margin:0 2px 5px 0;display:inline-block}.sidebar-tags li a:hover,.sidebar-tags li a:hover i{background:#EEE;text-decoration:none;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.sidebar-tags li a i{color:#777}.ver-inline-menu{padding:0;margin:0;list-style:none}.ver-inline-menu li{position:relative;margin-bottom:1px}.ver-inline-menu li i{width:37px;height:37px;display:inline-block;color:#b9cbd5;font-size:15px;padding:12px 10px 10px 8px;margin:0 8px 0 0;text-align:center;background:#e0eaf0!important}.ver-inline-menu li a{font-size:14px;font-weight:300;color:#557386;display:block;background:#f0f6fa;border-left:solid 2px #c4d5df}.ver-inline-menu li:hover a{background:#e0eaf0;text-decoration:none}.ver-inline-menu li:hover i{color:#fff;background:#c4d5df!important}.ver-inline-menu li.active a{border-left:solid 2px #0c91e5}.ver-inline-menu li.active i{background:#0c91e5!important}.ver-inline-menu li.active a,.ver-inline-menu li.active i{color:#fff;background:#169ef4;text-decoration:none}.ver-inline-menu li.active a,.ver-inline-menu li:hover a{font-size:14px}.ver-inline-menu li.active:after{content:'';display:inline-block;border-bottom:6px solid transparent;border-top:6px solid transparent;border-left:6px solid #169ef4;position:absolute;top:12px;right:-5px}.list-separated{margin-top:10px;margin-bottom:15px}.list-separated>div{border-right1:1px solid #f5f5f5}.list-separated>div:last-child{border-right:0}@media (max-width:767px){.ver-inline-menu>li.active:after{display:none}.list-separated>div{margin-bottom:20px}}.number-stats{margin:10px 0}.number-stats .stat-number{display:inline-block;margin:0 5px}.number-stats .stat-number .title{font-size:13px;margin-bottom:3px;color:#B8C3C7}.number-stats .stat-number .number{font-size:27px;line-height:27px;color:#7D8C9D}.number-stats>div{border-right:1px solid #f5f5f5}.number-stats>div:last-child{border-right:0}.number-stats .stat-left .stat-number{float:right;text-align:right}.number-stats .stat-right{float:left!important}.number-stats .stat-right .stat-number{float:left;text-align:left}.number-stats .stat-right .stat-chart{float:left}.number-stats .stat-number{float:left;text-align:left}.number-stats .stat-chart{display:inline-block;margin:0 5px;float:left}.general-item-list>.item{padding:10px 0;border-bottom:1px solid #F1F4F7}.general-item-list>.item:last-child{border-bottom:0}.general-item-list>.item>.item-head{margin-bottom:5px}.general-item-list>.item>.item-head:after,.general-item-list>.item>.item-head:before{content:" ";display:table}.general-item-list>.item>.item-head>.item-details{display:inline-block;float:left}.general-item-list>.item>.item-head>.item-details>.item-pic{height:35px;margin-right:10px;-webkit-border-radius:100%;-moz-border-radius:100%;-ms-border-radius:100%;-o-border-radius:100%;border-radius:100%}.general-item-list>.item>.item-head>.item-details>.item-name{display:inline-block;margin-right:10px}.general-item-list>.item>.item-head>.item-details>.item-label{color:#C0C9CC}.general-item-list>.item>.item-head>.item-status{color:#C0C9CC;top:10px;position:relative;display:inline-block;float:right}.general-item-list>.item>.item-head>.item-status>.badge{margin-top:-2px}.general-item-list>.item>.item-body{color:#96a5aa}.file-drop-zone{border:2px dashed #ddd;padding:30px;text-align:center}.file-drop-zone.file-drop-zone-over{border-color:#aaa}[class*=" fa-"],[class*=" glyphicon-"],[class*=" icon-"],[class^=fa-],[class^=glyphicon-],[class^=icon-]{display:inline-block;margin-top:1px;font-size:14px;line-height:14px;-webkit-font-smoothing:antialiased}li [class*=" fa-"],li [class*=" glyphicon-"],li [class*=" icon-"],li [class^=fa-],li [class^=glyphicon-],li [class^=icon-]{display:inline-block;width:1.25em;text-align:center}li [class*=" glyphicon-"],li [class^=glyphicon-]{top:2px}li [class*=" icon-"],li [class^=icon-]{top:1px;position:relative}li [class*=" fa-"].icon-large,li [class*=" glyphicon-"].icon-large,li [class*=" icon-"].icon-large,li [class^=fa-].icon-large,li [class^=glyphicon-].icon-large,li [class^=icon-].icon-large{width:1.5625em}.fa-sm,.icon-sm{font-size:12px}.fa-lg,.icon-lg{font-size:16px!important}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.icon-state-default{color:#c6c6c6}.icon-state-success{color:#45B6AF}.icon-state-info{color:#89C4F4}.icon-state-warning{color:#dfba49}.icon-state-danger{color:#F3565D}.fa-item{font-size:14px;padding:10px 10px 10px 20px}.fa-item i{font-size:16px;display:inline-block;width:20px;color:#333}.fa-item:hover{cursor:pointer;background:#eee}.badge-danger,.badge-default,.badge-info,.badge-primary,.badge-success,.badge-warning{background-image:none}.simplelineicons-demo .item-box{display:inline-block;font-size:16px;margin:0 -.22em 1em 0;padding-left:1em;width:100%}.simplelineicons-demo .item-box .item{background-color:#fff;color:#33383e;border-radius:8px;display:inline-block;padding:10px;width:100%}.bs-glyphicons,.glyphicons-demo ul{padding-left:0;padding-bottom:1px;margin-bottom:20px;overflow:hidden;list-style:none}.simplelineicons-demo .item-box .item span{font-size:22px}@media only screen and (min-width:768px){.simplelineicons-demo .item-box{width:33.333%}}.bs-glyphicon-class{text-align:center}.glyphicons-demo ul li{float:left;width:25%;height:115px;padding:10px;margin:0 -1px -1px 0;font-size:14px;line-height:1.4;text-align:center;border:1px solid #ddd}.glyphicons-demo .glyphicon{display:block;margin:5px auto 10px;font-size:24px;color:#444}.glyphicons-demo ul li:hover{background-color:rgba(86,61,124,.1)}.badge-default,.label-default{background-color:#c6c6c6}@media (min-width:768px){.glyphicons-demo ul li{width:12.5%}}.alert.alert-borderless{border:0}.badge{font-size:11px!important;font-weight:300;height:18px;padding:3px 6px;-webkit-border-radius:12px!important;-moz-border-radius:12px!important;border-radius:12px!important;text-shadow:none!important;text-align:center}.badge.badge-roundless{-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important}.badge.badge-empty{display:inline-block;padding:0;min-width:8px;height:8px;width:8px}.badge-primary{background-color:#428bca}.badge-info{background-color:#89C4F4}.badge-success{background-color:#45B6AF}.badge-danger{background-color:#F3565D}.badge-warning{background-color:#dfba49}.nav.nav-pills>li>a>.badge,.nav.nav-stacked>li>a>.badge{margin-top:-2px}.dropdown-menu>li>a>.badge{position:absolute;margin-top:1px;right:3px;display:inline;font-size:11px;font-weight:300;text-shadow:none;height:18px;padding:3px 6px;text-align:center;vertical-align:middle;-webkit-border-radius:12px!important;-moz-border-radius:12px!important;border-radius:12px!important}.btn,.btn>i{font-size:14px}.dropdown-menu.badge-roundless{-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important}.btn{border-width:0;padding:7px 14px;outline:0!important;background-image:none!important;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;text-shadow:none}.btn-group .btn.dropdown-toggle,.btn.active,.btn.dropdown-toggle,.btn:active,.btn:disabled,.btn:focus,.btn:hover,.btn[disabled]{outline:0!important;background-image:none!important;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;text-shadow:none}.btn-default{border-width:1px;padding:6px 13px;color:#333;background-color:#fff;border-color:#ccc}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-default.active,.btn-default:active,.btn-default:focus,.btn-default:hover,.open .btn-default.dropdown-toggle{color:#333;background-color:#ededed;border-color:#b3b3b3}.btn-default.active,.btn-default:active{background-image:none;background-color:#e0e0e0}.btn-default.active:hover,.btn-default:active:hover{background-color:#e6e6e6}.open .btn-default.dropdown-toggle{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-default>i{color:#aaa}.btn-default>i[class*=icon-],.btn-default>i[class^=icon-]{color:#8c8c8c}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary.active,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .btn-primary.dropdown-toggle{color:#fff;background-color:#3379b5;border-color:#2a6496}.btn-primary.active,.btn-primary:active{background-image:none;background-color:#2d6ca2}.btn-primary.active:hover,.btn-primary:active:hover{background-color:#3071a9}.open .btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#45B6AF;border-color:#3ea49d}.btn-success.active,.btn-success:active,.btn-success:focus,.btn-success:hover,.open .btn-success.dropdown-toggle{color:#fff;background-color:#3b9c96;border-color:#307f7a}.btn-success.active,.btn-success:active{background-image:none;background-color:#348a84}.btn-success.active:hover,.btn-success:active:hover{background-color:#37918b}.open .btn-success.dropdown-toggle{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#45B6AF;border-color:#3ea49d}.btn-success .badge{color:#45B6AF;background-color:#fff}.btn-info{color:#fff;background-color:#89C4F4;border-color:#72b8f2}.btn-info.active,.btn-info:active,.btn-info:focus,.btn-info:hover,.open .btn-info.dropdown-toggle{color:#fff;background-color:#68b4f1;border-color:#43a1ed}.btn-info.active,.btn-info:active{background-image:none;background-color:#51a8ef}.btn-info.active:hover,.btn-info:active:hover{background-color:#5aadf0}.open .btn-info.dropdown-toggle{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#89C4F4;border-color:#72b8f2}.btn-info .badge{color:#89C4F4;background-color:#fff}.btn-warning{color:#fff;background-color:#dfba49;border-color:#dbb233}.btn-warning.active,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open .btn-warning.dropdown-toggle{color:#fff;background-color:#daae2b;border-color:#bb9521}.btn-warning.active,.btn-warning:active{background-image:none;background-color:#c89f23}.btn-warning.active:hover,.btn-warning:active:hover{background-color:#d0a625}.open .btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#dfba49;border-color:#dbb233}.btn-warning .badge{color:#dfba49;background-color:#fff}.btn-danger{color:#fff;background-color:#F3565D;border-color:#f13e46}.btn-danger.active,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open .btn-danger.dropdown-toggle{color:#fff;background-color:#f1353d;border-color:#ec111b}.btn-danger.active,.btn-danger:active{background-image:none;background-color:#ef1d26}.btn-danger.active:hover,.btn-danger:active:hover{background-color:#f0262f}.open .btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#F3565D;border-color:#f13e46}.btn-danger .badge{color:#F3565D;background-color:#fff}.btn-lg,.btn-lg>i{font-size:18px}.btn-lg{padding:10px 16px;line-height:1.33}.btn-sm,.btn-xs{padding:4px 10px 5px;font-size:13px;line-height:1.5}.btn-sm>i,.btn-xs>i{font-size:13px}.btn-xs{padding:1px 5px}.btn-group .input-sm .btn-default{padding-top:3px;padding-bottom:3px}.btn-arrow-link{display:inline-block;font-size:13px}.btn-arrow-link>i{font-size:14px;line-height:14px;vertical-align:top;margin:2px 3px;color:#999}.btn-arrow-link.btn-arrow-link-lg{font-size:14px}.btn-arrow-link.btn-arrow-link-lg>i{font-size:16px;line-height:16px;margin:2px 3px 1px}.btn-circle{border-radius:25px!important}.btn-circle-right{border-radius:0 25px 25px 0!important}.btn-circle-left{border-radius:25px 0 0 25px!important}.btn-circle-bottom{border-radius:0 0 25px 25px!important}.btn-circle-top{border-radius:25px 25px 0 0!important}.btn-icon-only{height:34px;width:34px;text-align:center;padding-left:0;padding-right:0}.btn-icon-only>[class^=icon-],.btn-icon-only>i{text-align:center;margin-top:2px}.btn-sm>[class*=" glyphicon-"],.btn-sm>[class^=glyphicon-],.btn-sm>i{font-size:13px}.btn-xs>[class*=" glyphicon-"],.btn-xs>[class^=glyphicon-],.btn-xs>i{font-size:11px}.btn-group.btn-group-circle>.btn:first-child{border-radius:25px 0 0 25px!important}.btn-group.btn-group-circle>.btn:last-child{border-radius:0 25px 25px 0!important}.btn-group.btn-group-devided>.btn{margin-right:5px}.btn-group.btn-group-devided>.btn:last-child{margin-right:0}.btn-group-vertical.btn-group-vertical-circle>.btn:first-child{border-radius:25px 25px 0 0!important}.btn-group-vertical.btn-group-vertical-circle>.btn:last-child{border-radius:0 0 25px 25px!important}.carousel.image-carousel .carousel-inner{padding-top:0;padding-bottom:0}.carousel.image-carousel .carousel-control i{position:absolute;top:40%}.carousel.image-carousel.image-carousel-hoverable .carousel-control i{display:none}.carousel.image-carousel.image-carousel-hoverable:hover .carousel-control i{display:inline-block}.carousel.image-carousel .carousel-control.left i{left:10px}.carousel.image-carousel .carousel-control.right i{right:10px}.carousel.image-carousel .carousel-indicators{margin-top:10px;bottom:-7px}.carousel.image-carousel .carousel-indicators li,.carousel.image-carousel .carousel-indicators li.active{background-color:#666}.carousel.image-carousel .carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px 15px 25px;background:#333;background:rgba(0,0,0,.75)}.carousel.image-carousel .carousel-caption h2,.carousel.image-carousel .carousel-caption h3,.carousel.image-carousel .carousel-caption h4,.carousel.image-carousel .carousel-caption p{text-align:left;line-height:20px;color:#fff}.carousel.image-carousel .carousel-caption h2,.carousel.image-carousel .carousel-caption h3,.carousel.image-carousel .carousel-caption h4{margin:0 0 5px}.carousel.image-carousel .carousel-caption h2 a,.carousel.image-carousel .carousel-caption h3 a,.carousel.image-carousel .carousel-caption h4 a{color:#aaa}.carousel.image-carousel .carousel-caption p{margin-bottom:0}.carousel.image-carousel .carousel-caption .item{margin:0}.bars,.chart,.pie{overflow:hidden;height:300px;width:100%;font-size:14px}.item-list.table .percent{width:30px;float:right;margin-right:10px;margin-top:3px}.chart-tooltip{z-index:100;background-color:#736e6e!important;padding:5px!important;color:#fff}.chart-tooltip .label{display:block;margin-bottom:2px}.bar-chart,.line-chart{display:none}.chats{margin:-15px 0 0;padding:0}.chats li{list-style:none;padding:5px 0;margin:10px auto;font-size:12px}.chats li .body{display:block}.chats li .avatar{height:45px;width:45px;-webkit-border-radius:50%!important;-moz-border-radius:50%!important;border-radius:50%!important}.chats li.in .avatar{float:left;margin-right:10px}.chats li.out .avatar{float:right;margin-left:10px}.chats li .name{color:#3590c1;font-size:13px;font-weight:400}.chats li .datetime{color:#333;font-size:13px;font-weight:400}.chats li .message{border-radius:5px!important;-webkit-border-readius:5px!important;-moz-border-radius:5px!important;display:block;padding:5px 20px;position:relative}.chats li.in .message{text-align:left;border:2px solid #E9E9E9;margin-left:65px;box-shadow:0 5px 10px #777}.chats li.in .message .arrow{display:block;position:absolute;top:15px;left:-8px;width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:8px solid #e9e9e9}.chats li.out .message{border:2px solid #DFEECF;margin-right:65px;margin-left:5px;box-shadow:0 5px 10px #777}.chats li.out .message .arrow{display:block;position:absolute;top:15px;right:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:8px solid #DFEECF}.chats li.out .datetime,.chats li.out .name{text-align:right}.chats li .note{color:#000;-moz-box-shadow:5px 5px 7px rgba(33,33,33,1);-webkit-box-shadow:5px 5px 7px rgba(33,33,33,.7);box-shadow:5px 5px 7px rgba(33,33,33,.7);-moz-transition:-moz-transform .15s linear;-o-transition:-o-transform .15s linear;-webkit-transition:-webkit-transform .15s linear;-webkit-transform:rotate(-1deg);-o-transform:rotate(-1deg);-moz-transform:rotate(-1deg);font-family:"Reenie Beanie",arial,sans-serif;font-size:200%;background:#ffc}.chats li.out .note{border:2px solid #DFEECF;margin-right:65px;margin-left:5px;box-shadow:0 5px 10px #777}.chats li.out .note .arrow{display:block;position:absolute;top:15px;right:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:8px solid #DFEECF}.chat-form{margin-top:15px;padding:10px;background-color:#e9eff3;overflow:hidden}.chat-form .input-cont{margin-right:40px}.chat-form .input-cont .form-control{border:1px solid #ddd;width:100%!important;margin-top:0;background-color:#fff!important}.chat-form .input-cont .form-control:focus{border:1px solid #4b8df9!important}.chat-form .btn-cont{margin-top:-42px;position:relative;float:right;width:44px}.chat-form .btn-cont .arrow{position:absolute;top:17px;right:43px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:8px solid #4d90fe;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.chat-form .btn-cont .btn{margin-top:8px}.chat-form .btn-cont:hover .arrow{border-right-color:#0362fd}.chat-form .btn-cont:hover .btn{background-color:#0362fd}.close{display:inline-block;margin-top:0;margin-right:0;width:9px;height:9px;background-repeat:no-repeat!important;text-indent:-10000px;outline:0;background-image:url(../../assets/images/remove-icon-small.png)!important}.dropdown.open>.dropdown-toggle,.dropup.open>.dropdown-toggle{border-color:#ddd}.dropdown-menu{min-width:175px;position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;list-style:none;text-shadow:none;padding:0;margin:10px 0 0;background-color:#fffff;box-shadow:5px 5px rgba(102,102,102,.1);border:1px solid #eee;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.dropdown-menu li.divider{background:#f1f3f6}.dropdown-menu li>a{padding:8px 14px;color:#555;text-decoration:none;display:block;font-weight:300;line-height:18px}.dropdown-menu li>a>[class*=" fa-"],.dropdown-menu li>a>[class^=fa-]{color:#888}.dropdown-menu li>a>[class*=" icon-"],.dropdown-menu li>a>[class^=icon-]{color:#666}.dropdown-menu li>a>[class*=" glyphicon-"],.dropdown-menu li>a>[class^=glyphicon-]{color:#888}.dropdown-menu .active>a,.dropdown-menu .active>a:hover,.dropdown-menu li>a:hover{text-decoration:none;background-image:none;background-color:#f6f6f6;color:#555;filter:none}.dropdown-menu.bottom-up{top:auto;bottom:100%;margin-bottom:2px}.btn-group>.dropdown-menu,.dropdown-toggle>.dropdown-menu,.dropdown>.dropdown-menu{margin-top:10px}.btn-group>.dropdown-menu:before,.dropdown-toggle>.dropdown-menu:before,.dropdown>.dropdown-menu:before{position:absolute;top:-8px;left:9px;right:auto;display:inline-block!important;border-right:8px solid transparent;border-bottom:8px solid #e0e0e0;border-left:8px solid transparent;content:''}.btn-group>.dropdown-menu:after,.dropdown-toggle>.dropdown-menu:after,.dropdown>.dropdown-menu:after{position:absolute;top:-7px;left:10px;right:auto;display:inline-block!important;border-right:7px solid transparent;border-bottom:7px solid #fff;border-left:7px solid transparent;content:''}.btn-group>.dropdown-menu.pull-left:before,.dropdown-toggle>.dropdown-menu.pull-left:before,.dropdown>.dropdown-menu.pull-left:before{left:auto;right:9px}.btn-group>.dropdown-menu.pull-left:after,.dropdown-toggle>.dropdown-menu.pull-left:after,.dropdown>.dropdown-menu.pull-left:after{left:auto;right:10px}.btn-group>.dropdown-menu.pull-right:before,.dropdown-toggle>.dropdown-menu.pull-right:before,.dropdown>.dropdown-menu.pull-right:before{left:auto;right:9px}.btn-group>.dropdown-menu.pull-right:after,.dropdown-toggle>.dropdown-menu.pull-right:after,.dropdown>.dropdown-menu.pull-right:after{left:auto;right:10px}.btn-group.dropup>.dropdown-menu,.dropdown-toggle.dropup>.dropdown-menu,.dropdown.dropup>.dropdown-menu{margin-top:0;margin-bottom:10px}.btn-group.dropup>.dropdown-menu:after,.btn-group.dropup>.dropdown-menu:before,.dropdown-toggle.dropup>.dropdown-menu:after,.dropdown-toggle.dropup>.dropdown-menu:before,.dropdown.dropup>.dropdown-menu:after,.dropdown.dropup>.dropdown-menu:before{display:none!important}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:5px;left:100%;margin-top:-6px;margin-left:-1px}.dropdown-submenu>a:after{position:absolute;display:inline-block;font-size:14px;right:7px;top:7px;font-family:FontAwesome;height:auto;content:"\f105";font-weight:300}.label,.table.table-light>thead>tr>th{font-family:"Open Sans",sans-serif}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px}.nav.pull-right>li>.dropdown-menu,.nav>li>.dropdown-menu.pull-right{right:0;left:auto}.nav.pull-right>li>.dropdown-menu:before,.nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.nav.pull-right>li>.dropdown-menu:after,.nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.nav.pull-right>li>.dropdown-menu .dropdown-menu,.nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:absolute;float:left;width:auto;margin-top:0;background-color:#fff;border:1px solid #efefef;box-shadow:5px 5px rgba(102,102,102,.1)}.navbar-nav .open .dropdown-menu>li>a{padding:6px 0 6px 13px;color:#333}.navbar-nav .open .dropdown-menu>li>a:active,.navbar-nav .open .dropdown-menu>li>a:hover{ackground-color:#eee}}.feeds li .col1,.feeds li .col1>.cont>.cont-col2{width:100%;float:left}.dropdown-checkboxes,.dropdown-content,.dropdown-radiobuttons{padding:5px}.dropdown-content form{margin:0}.dropdown.inline .dropdown-menu{display:inline-block;position:relative}.dropdown-checkboxes label,.dropdown-radiobuttons label{display:block;font-weight:300;color:#333;margin-bottom:4px;margin-top:4px}.dropdown-checkboxes label .radio,.dropdown-radiobuttons label .radio{margin-right:3px}.feeds{margin:0;padding:0;list-style:none}.feeds li{background-color:#fafafa;color:#82949a;margin-bottom:7px}.feeds li:after,.feeds li:before{display:table;line-height:0;content:""}.feeds li:last-child{margin-bottom:0}.feeds li .col1>.cont{float:left;margin-right:75px;overflow:hidden}.feeds li .col1>.cont>.cont-col1{float:left;margin-right:-100%}.feeds li .col1>.cont>.cont-col1>.label{display:inline-block;padding:5px 4px 6px 5px;vertical-align:middle;text-align:center}.feeds li .col1>.cont>.cont-col1>.label>i{text-align:center;font-size:14px}.feeds li .col1>.cont>.cont-col2>.desc{margin-left:35px;padding-top:4px;padding-bottom:5px;overflow:hidden}.modal,.modal-open{overflow-y:auto!important}.feeds li .col2{float:left;width:75px;margin-left:-75px}.feeds li .col2>.date{padding:4px 9px 5px 4px;text-align:right;font-style:italic;color:#c1cbd0}.static-info{margin-bottom:10px}.static-info .name{font-size:14px}.static-info .value{font-size:14px;font-weight:600}.static-info.align-reverse .name,.static-info.align-reverse .value{text-align:right}.help-block{margin-top:5px;margin-bottom:5px}.help-inline{font-size:13px;color:#737373;display:inline-block;padding:5px}.form-inline input{margin-bottom:0!important}.control-label{margin-top:1px}.control-label .required{color:#e02222;font-size:12px;padding-left:2px}.form{padding:0!important}.form .form-body{padding:10px}.portlet.light .form .form-body{padding-left:0;padding-right:0}.form .form-actions{padding:20px 10px;margin:0;background-color:#f5f5f5;border-top:1px solid #e5e5e5}.portlet.light .form .form-actions{background:0 0;padding-left:0;padding-right:0}.portlet .form .form-actions{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.form .form-actions:after,.form .form-actions:before{content:" ";display:table}.form .form-actions.right{padding-left:0;padding-right:10px;text-align:right}.portlet.light .form .form-actions.right{padding-right:0}.form .form-actions.left{padding-left:10px;padding-right:0;text-align:left}.checkbox-list>label.checkbox-inline:first-child,.checkbox>label,.form-horizontal .checkbox>label,.portlet.light .form .form-actions.left,.radio-list>label.radio-inline:first-child{padding-left:0}.form .form-actions.nobg{background-color:transparent}.form .form-actions.top{margin-top:0;margin-bottom:20px;border-top:0;border-bottom:1px solid #e5e5e5}.portlet.light .form .form-actions.top{background:0 0}.form .form-actions .btn-set{display:inline-block}@media (max-width:767px){.form .form-actions .btn-set{margin-bottom:3px;margin-top:3px;float:left!important}}.form .form-section{margin:30px 0 25px;padding-bottom:5px;border-bottom:1px solid #eee}.form .form-bordered .form-group .help-block,.form .form-row-seperated .form-group .help-block,.form-horizontal .radio-list>label{margin-bottom:0}.form .form-section:first-child{margin-top:5px}.checkbox,.form-horizontal .checkbox{padding:0}.checkbox-list>label{display:block}.checkbox-list>label.checkbox-inline{display:inline-block}.input-icon>i,.radio-list>label{display:block}.form-control-static,.icon-btn,.input-inline,.radio-list>label.radio-inline{display:inline-block}.form-horizontal .radio-list .radio{padding-top:1px}.form-horizontal .radio>span{margin-top:2px}.form .form-row-seperated .portlet-body{padding:0}.form .form-row-seperated .form-group{margin:0;border-bottom:1px solid #efefef;padding:15px 0}.form .form-row-seperated .form-group.last{border-bottom:0;margin-bottom:0;padding-bottom:13px}.form .form-row-seperated .form-body{padding:0}.form .form-row-seperated .form-actions{padding-left:15px!important;padding-right:15px!important}.form .form-bordered .form-group{margin:0;border-bottom:1px solid #efefef}.form .form-bordered .form-group>div{padding:15px;border-left:1px solid #efefef}.form .form-bordered .form-group.last{border-bottom:0}.form .form-bordered .form-group .control-label{padding-top:20px}@media (max-width:991px){.form .form-bordered .form-group>div{border-left:0}.form .form-bordered .form-group .control-label{padding-top:10px}}.form .form-bordered .form-group .form-control{margin:0}.form .form-bordered .form-body{margin:0;padding:0}.form .form-bordered .form-actions{margin-top:0;padding-left:16px!important;padding-right:16px!important}@media (max-width:991px){.form .form-bordered .form-actions{padding-left:15px!important;padding-right:15px!important}}.form .form-horizontal.form-bordered.form-row-stripped .form-group:nth-child(even){background-color:#fcfcfc}.form .form-horizontal.form-bordered.form-row-stripped .form-control{background:#fff!important}.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even)>div{background-color:#fff}.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even){background-color:#fcfcfc}.form-control::-moz-placeholder{color:#b3b3b3;opacity:1}.form-control:-ms-input-placeholder{color:#b3b3b3}.form-control::-webkit-input-placeholder{color:#b3b3b3}.form-control{font-size:14px;font-weight:400;color:#333;background-color:#fff;border:1px solid #e5e5e5;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#999;outline:0;-webkit-box-shadow:none;box-shadow:none}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}.form-control.height-auto{height:auto}.form-control.form-control-solid{background-color:#F1F3F8;border-color:#F1F3F8;color:#A6B2BA}.note .highlight,.note code,.uneditable-input{background-color:#fff}.form-control.form-control-solid:focus{border-color:#e3e7f1}.form-control.form-control-solid::-moz-placeholder{color:#acb7be;opacity:1}.form-control.form-control-solid:-ms-input-placeholder{color:#acb7be}.form-control.form-control-solid::-webkit-input-placeholder{color:#acb7be}.uneditable-input{padding:6px 12px;min-width:206px;font-size:14px;font-weight:400;height:34px;color:#333;border:1px solid #e5e5e5;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.icon-btn,.icon-btn:hover{-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease}.input-mini{width:45px!important}.input-xsmall{width:80px!important}.input-small{width:145px!important}.input-medium{width:240px!important}.input-large{width:320px!important}.input-xlarge{width:420px!important}.input-inline{width:auto;vertical-align:middle}.form-group .input-inline{margin-right:5px}.input-sm{height:28px;padding:5px 10px;font-size:13px}select.input-sm{height:28px;line-height:28px;padding:2px 10px}@media (max-width:768px){.input-large{width:250px!important}.input-xlarge{width:300px!important}}.input-group .btn-default{border-color:#e5e5e5}.input-group .input-group-addon{border-color:#e5e5e5;background:#e5e5e5;min-width:39px}.input-group .input-group-addon>i{color:#999}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .help-inline,.has-success .radio,.has-success .radio-inline{color:#3c763d}input[type=text].spinner,input[type=password].spinner,input[type=datetime].spinner,input[type=datetime-local].spinner,input[type=date].spinner,input[type=month].spinner,input[type=time].spinner,input[type=week].spinner,input[type=number].spinner,input[type=email].spinner,input[type=url].spinner,input[type=search].spinner,input[type=tel].spinner,input[type=color].spinner{background-image:url(../../assets/images/input-spinner.gif)!important;background-repeat:no-repeat;background-position:right 8px}label{font-weight:400;font-size:14px}.form-control-static{margin:2px 0}.has-success .form-control{border-color:#d6e9c6;-webkit-box-shadow:none;box-shadow:none}.has-success .form-control:focus{border-color:#bbdba1;-webkit-box-shadow:none;box-shadow:none}.has-success .input-group-addon{color:#3c763d;border-color:#d6e9c6;background-color:#dff0d8}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .help-inline,.has-warning .radio,.has-warning .radio-inline{color:#8a6d3b}.has-warning .form-control{border-color:#faebcc;-webkit-box-shadow:none;box-shadow:none}.has-warning .form-control:focus{border-color:#f5d89e;-webkit-box-shadow:none;box-shadow:none}.has-warning .input-group-addon{color:#8a6d3b;border-color:#faebcc;background-color:#fcf8e3}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .help-inline,.has-error .radio,.has-error .radio-inline{color:#a94442}.has-error .form-control{border-color:#ebccd1;-webkit-box-shadow:none;box-shadow:none}.has-error .form-control:focus{border-color:#dca7b0;-webkit-box-shadow:none;box-shadow:none}.has-error .input-group-addon{color:#a94442;border-color:#ebccd1;background-color:#f2dede}.input-circle{border-radius:25px!important}.input-circle-right{border-radius:0 25px 25px 0!important}.input-circle-left{border-radius:25px 0 0 25px!important}.input-circle-bottom{border-radius:0 0 25px 25px!important}.input-circle-top{border-radius:25px 25px 0 0!important}.icon-btn{height:60px;min-width:80px;margin:5px 5px 0 0;border:1px solid #ddd;padding:12px 0 0;background-color:#fafafa;background-image:none;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;color:#646464;text-shadow:none;text-align:center;cursor:pointer;position:relative;transition:all .3s ease}.loading-message,.page-loading{min-width:125px;vertical-align:middle}[class^=m-icon-],[class^=m-icon-big-]{background-image:url(../../assets/images/syncfusion-icons.png);background-position:0 0;background-repeat:no-repeat}.icon-btn:hover,.icon-btn:hover>.badge{-webkit-box-shadow:none;-moz-box-shadow:none}.icon-btn:hover{text-decoration:none;border-color:#999;color:#444;text-shadow:0 1px 0 #fff;transition:all .3s ease;box-shadow:none}.icon-btn:hover>.badge{-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;box-shadow:none}.icon-btn>div{margin-top:5px;margin-bottom:20px;color:#000;font-size:12px;font-weight:300}.icon-btn>.badge{position:absolute;font-size:11px;font-weight:300;top:-5px;right:-5px;padding:3px 6px;color:#fff;text-shadow:none;border-width:0;border-style:solid;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.input-group .input-icon>.form-control,.tabs-left.nav-tabs>li>a:focus,.tabs-left.nav-tabs>li>a:hover{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;-ms-border-radius:4px 0 0 4px;-o-border-radius:4px 0 0 4px}.icon-btn>i{font-size:18px}.ie8 .icon-btn:hover{filter:none}.input-icon{position:relative}.input-icon>.form-control{padding-left:33px}.input-group .input-icon>.form-control{border-radius:4px 0 0 4px}.input-icon>i{color:#ccc;position:absolute;margin:11px 2px 4px 10px;z-index:3;width:16px;height:16px;font-size:16px;text-align:center}.modal .input-icon>i{z-index:10055}.has-success .input-icon>i{color:#45B6AF}.has-warning .input-icon>i{color:#dfba49}.has-info .input-icon>i{color:#89C4F4}.has-error .input-icon>i{color:#F3565D}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.input-group .input-icon.right>.form-control{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-ms-border-radius:0 4px 4px 0;-o-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-icon.right>i{right:8px;float:right}.input-icon.input-icon-lg>i{margin-top:16px}.input-icon.input-icon-sm>i{margin-top:8px;font-size:13px}.label{text-shadow:none!important;font-size:13px;font-weight:300;padding:3px 6px;color:#fff}.label.label-sm{font-size:12px;padding:0 4px 1px}h1 .label,h2 .label,h3 .label,h4 .label,h5 .label,h6 .label{font-size:75%}.label-default[href]:focus,.label-default[href]:hover{background-color:#adadad}.label-primary{background-color:#428bca}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#3071a9}.label-success{background-color:#45B6AF}.label-success[href]:focus,.label-success[href]:hover{background-color:#37918b}.label-info{background-color:#89C4F4}.label-info[href]:focus,.label-info[href]:hover{background-color:#5aadf0}.label-warning{background-color:#dfba49}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#d0a625}.label-danger{background-color:#F3565D}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#f0262f}.label.label-icon{padding:4px 0 4px 4px;margin-right:2px;text-align:center!important}.label.label-icon>i{font-size:12px;text-align:center!important}.note p,.page-loading,.panel .panel-body{font-size:13px}.ie8 .label.label-icon,.ie9 .label.label-icon{padding:3px 0 3px 3px}.text-default{color:#c6c6c6}.text-primary{color:#428bca}.text-success{color:#45B6AF}.text-info{color:#89C4F4}.text-warning{color:#dfba49}.text-danger{color:#F3565D}.list-group .list-group-item-success{color:#3c763d;background-color:#dff0d8}.list-group a.list-group-item-success{color:#3c763d}.list-group a.list-group-item-success .list-group-item-heading{color:inherit}.list-group a.list-group-item-success:focus,.list-group a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}.list-group a.list-group-item-success.active,.list-group a.list-group-item-success.active:focus,.list-group a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group .list-group-item-info{color:#31708f;background-color:#d9edf7}.list-group a.list-group-item-info{color:#31708f}.list-group a.list-group-item-info .list-group-item-heading{color:inherit}.list-group a.list-group-item-info:focus,.list-group a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}.list-group a.list-group-item-info.active,.list-group a.list-group-item-info.active:focus,.list-group a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group .list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}.list-group a.list-group-item-warning{color:#8a6d3b}.list-group a.list-group-item-warning .list-group-item-heading{color:inherit}.list-group a.list-group-item-warning:focus,.list-group a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}.list-group a.list-group-item-warning.active,.list-group a.list-group-item-warning.active:focus,.list-group a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group .list-group-item-danger{color:#a94442;background-color:#f2dede}.list-group a.list-group-item-danger{color:#a94442}.list-group a.list-group-item-danger .list-group-item-heading{color:inherit}.list-group a.list-group-item-danger:focus,.list-group a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}.list-group a.list-group-item-danger.active,.list-group a.list-group-item-danger.active:focus,.list-group a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.loading-message{display:inline-block;padding:10px;margin:0 auto;color:#000!important;font-size:13px;font-weight:400;text-align:center}.loading-message.loading-message-boxed{border:1px solid #ddd;background-color:#eee;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 8px rgba(0,0,0,.1);-moz-box-shadow:0 1px 8px rgba(0,0,0,.1);box-shadow:0 1px 8px rgba(0,0,0,.1)}.loading-message>span{line-height:20px;vertical-align:middle}.page-loading{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;position:fixed;top:50%;left:50%;margin-left:-60px;margin-top:-30px;padding:7px;text-align:center;color:#333;border:1px solid #ddd;background-color:#eee;-webkit-box-shadow:0 1px 8px rgba(0,0,0,.1);-moz-box-shadow:0 1px 8px rgba(0,0,0,.1);box-shadow:0 1px 8px rgba(0,0,0,.1)}.block-spinner-bar>div,.page-spinner-bar>div{border-radius:100%!important;display:inline-block}.panel,.well{-webkit-box-shadow:none!important;-moz-box-shadow:none!important}.page-loading>span{line-height:20px;vertical-align:middle}.page-spinner-bar{position:fixed;z-index:10051;width:100px;top:40%;left:50%;margin-left:-55px;text-align:center}.page-spinner-bar>div{margin:0 5px;width:18px;height:18px;-webkit-animation:bounceDelay 1.4s infinite ease-in-out;animation:bounceDelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.page-spinner-bar .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.page-spinner-bar .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}.block-spinner-bar{display:inline-block;width:80px;text-align:center}.block-spinner-bar>div{margin:0 2px;width:15px;height:15px;-webkit-animation:bounceDelay 1.4s infinite ease-in-out;animation:bounceDelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.note,.tabs-right.nav-tabs>li>a:focus,.tabs-right.nav-tabs>li>a:hover{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-ms-border-radius:0 4px 4px 0;-o-border-radius:0 4px 4px 0}.block-spinner-bar .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.block-spinner-bar .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}[class^=m-icon-]{display:inline-block;width:14px;height:14px;margin-top:3px;line-height:14px;vertical-align:top}[class^=m-icon-big-]{display:inline-block;width:30px;height:30px;margin:6px;vertical-align:middle}.btn.m-icon-big{padding:9px 16px 8px}.btn.m-icon-big.m-icon-only{padding:9px 8px 8px 0}.btn.m-icon-big [class^=m-icon-big-]{margin:0 0 0 10px}.btn.m-icon-ony>i{margin-left:0}.btn.m-icon{padding:7px 14px}.btn.m-icon [class^=m-icon-]{margin:4px 0 0 5px}.btn.m-icon.m-icon-only{padding:7px 10px 7px 6px}.m-icon-white{background-image:url(../../assets/images/syncfusion-icons-white.png)}.m-icon-swapright{background-position:-27px -10px}.m-icon-swapdown{background-position:-68px -10px}.m-icon-swapleft{background-position:-8px -10px}.m-icon-swapup{background-position:-46px -10px}.m-icon-big-swapright{background-position:-42px -28px}.m-icon-big-swapdown{background-position:-115px -28px}.m-icon-big-swapleft{background-position:-6px -28px}.m-icon-big-swapup{background-position:-78px -28px}.modal{z-index:10050;outline:0}.modal .modal-header{border-bottom:1px solid #EFEFEF}.modal .modal-header h3{font-weight:300}.modal .modal-header .close{margin-top:0!important}.modal .modal-dialog{z-index:10051}.modal>.loading{position:absolute;top:50%;left:50%;margin-top:-22px;margin-left:-22px}.modal.in .page-loading{display:none}.modal-open-noscroll{overflow-y:hidden!important}.modal-full.modal-dialog{width:99%}@media (max-width:768px){.modal-full.modal-dialog{width:auto}}.note{margin:0 0 20px;padding:15px 30px 15px 15px;border-left:5px solid #eee;border-radius:0 4px 4px 0}.note h1,.note h2,.note h3,.note h4,.note h5,.note h6{margin-top:0}.note h1 .close,.note h2 .close,.note h3 .close,.note h4 .close,.note h5 .close,.note h6 .close{margin-right:-10px}.note p:last-child{margin-bottom:0}.note.note-default{background-color:#d3d3d3;border-color:#a0a0a0;color:#333,80%}.note.note-default.note-bordered{background-color:#c9c9c9;border-color:#a5a5a5}.note.note-primary{background-color:#5697d0;border-color:#2a7696;color:#D8E3F2,80%}.note.note-primary.note-bordered{background-color:#468dcb;border-color:#2c7c9e}.note.note-success{background-color:#eef7ea;border-color:#bbdba1;color:#3c763d,80%}.note.note-success.note-bordered{background-color:#e2f1dc;border-color:#c1dea8}.note.note-info{background-color:#eef7fb;border-color:#91d9e8;color:#31708f,80%}.note.note-info.note-bordered{background-color:#ddeff8;border-color:#9adcea}.note.note-warning{background-color:#fcf8e3;border-color:#f2cf87;color:#8a6d3b,80%}.note.note-warning.note-bordered{background-color:#faf3d1;border-color:#f3d390}.note.note-danger{background-color:#f9f0f0;border-color:#dca7b0;color:#a94442,80%}.note.note-danger.note-bordered{background-color:#f3e2e2;border-color:#dfaeb7}.pagination{margin:10px 0}.pagination.pagination-circle>li:first-child>a{border-radius:25px 0 0 25px!important}.pagination.pagination-circle>li:last-child>a{border-radius:0 25px 25px 0!important}.dashboard-stat,.portlet{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px}.pagination .active>a,.pagination .active>a:hover{background:#eee;border-color:#ddd;color:#333}.panel{box-shadow:none!important}.panel-group .panel{overflow:visible}.panel .panel-title>a:hover{text-decoration:none}.accordion .panel .panel-heading,.accordion .panel .panel-title{padding:0}.accordion .panel .panel-title .accordion-toggle{display:block;padding:10px 15px}.accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled{background:url(../../assets/images/accordion-plusminus.png) right -19px no-repeat;margin-right:15px}.accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled.collapsed{background-position:right 12px}.panel-default{border-color:#e0e0e0}.panel-default>.panel-heading{color:#333;background-color:#f9f9f9;border-color:#e0e0e0}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#e0e0e0}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#e0e0e0}.panel-primary{border-color:#3595bd}.panel-primary>.panel-heading{color:#D8E3F2;background-color:#428bca;border-color:#3595bd}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#3595bd}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#3595bd}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.accordion-heading{background:#eee}.accordion-heading a,.accordion-heading a:hover{text-decoration:none}.popover{box-shadow:5px 5px rgba(102,102,102,.1);padding:0}.portlet.calendar .fc-button,.progress{-webkit-box-shadow:none;-moz-box-shadow:none}.popover .popover-title{margin:0!important}.popover.name .popover-content,.popover.name .popover-title,name .popover .popover-content{color:#F3565D}.popovers.yellow+.popover,.popovers.yellow+.popover .popover-content,.popovers.yellow+.popover .popover-title{background:#ff0}.page-portlet-fullscreen{overflow:hidden}.portlet{margin-top:0;margin-bottom:25px;padding:0;border-radius:4px}.portlet.portlet-fullscreen{z-index:10060;margin:0;position:fixed;top:0;left:0;bottom:0;right:0;width:100%;height:100%;background:#fff}.portlet.portlet-fullscreen>.portlet-body{overflow-y:auto;overflow-x:hidden;padding:0 10px}.portlet.portlet-fullscreen>.portlet-title{padding:0 10px}.portlet>.portlet-title{border-bottom:1px solid #eee;padding:0;margin-bottom:10px;min-height:41px;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.portlet>.portlet-title:after,.portlet>.portlet-title:before{content:" ";display:table}.portlet>.portlet-title>.caption{float:left;display:inline-block;font-size:18px;line-height:18px;font-weight:300;padding:10px 0}.portlet>.portlet-title>.caption.bold{font-weight:400}.portlet>.portlet-title>.caption>i{float:left;margin-top:4px;display:inline-block;font-size:13px;margin-right:5px;color:#666}.portlet>.portlet-title>.caption>i.glyphicon{margin-top:2px}.portlet>.portlet-title>.caption>.caption-helper{padding:0;margin:0;line-height:13px;color:#9eacb4;font-size:13px;font-weight:400}.portlet>.portlet-title>.actions{float:right;display:inline-block;padding:6px 0}.portlet>.portlet-title>.actions>.dropdown-menu i{color:#555}.portlet>.portlet-title>.actions>.btn,.portlet>.portlet-title>.actions>.btn-group>.btn,.portlet>.portlet-title>.actions>.btn-group>.btn.btn-sm,.portlet>.portlet-title>.actions>.btn.btn-sm{padding:4px 10px;font-size:13px;line-height:1.5}.portlet>.portlet-title>.actions>.btn-group>.btn.btn-default,.portlet>.portlet-title>.actions>.btn-group>.btn.btn-sm.btn-default,.portlet>.portlet-title>.actions>.btn.btn-default,.portlet>.portlet-title>.actions>.btn.btn-sm.btn-default{padding:3px 9px}.portlet>.portlet-title>.actions>.btn-group>.btn.btn-sm>i,.portlet>.portlet-title>.actions>.btn-group>.btn>i,.portlet>.portlet-title>.actions>.btn.btn-sm>i,.portlet>.portlet-title>.actions>.btn>i{font-size:13px}.portlet>.portlet-title>.actions .btn-icon-only{padding:5px 7px 3px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default{padding:4px 6px 2px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default>i{font-size:14px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default.fullscreen{font-family:FontAwesome;color:#a0a0a0;padding-top:3px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default.fullscreen.btn-sm{padding:3px!important;height:27px;width:27px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default.fullscreen:before{content:"\f065"}.portlet>.portlet-title>.actions .btn-icon-only.btn-default.fullscreen.on:before{content:"\f066"}.portlet>.portlet-title>.tools{float:right;display:inline-block;padding:12px 0 8px}.portlet>.portlet-title>.tools>a{display:inline-block;height:16px;margin-left:5px;opacity:1;filter:alpha(opacity=100)}.portlet>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon.png);background-repeat:no-repeat;width:11px}.portlet>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon.png);background-repeat:no-repeat;width:12px}.portlet>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon.png);width:13px}.portlet>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon.png);width:14px;visibility:visible}.portlet>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon.png);width:14px;visibility:visible}.portlet>.portlet-title>.tools>a.fullscreen{display:inline-block;top:-3px;position:relative;font-size:13px;font-family:FontAwesome;color:#ACACAC}.portlet>.portlet-title>.tools>a.fullscreen:before{content:"\f065"}.portlet>.portlet-title>.tools>a.fullscreen.on:before{content:"\f066"}.portlet>.portlet-title>.tools>a:hover{text-decoration:none;-webkit-transition:all .1s ease-in-out;-moz-transition:all .1s ease-in-out;-o-transition:all .1s ease-in-out;-ms-transition:all .1s ease-in-out;transition:all .1s ease-in-out;opacity:.8;filter:alpha(opacity=80)}.portlet>.portlet-title>.pagination{float:right;display:inline-block;margin:2px 0 0;border:0;padding:4px 0}.portlet>.portlet-title>.nav-tabs{background:0 0;margin:0;float:right;display:inline-block;border:0}.portlet>.portlet-title>.nav-tabs>li{background:0 0;margin:0;border:0}.portlet>.portlet-title>.nav-tabs>li>a{background:0 0;margin:5px 0 0 1px;border:0;padding:8px 10px;color:#fff}.portlet>.portlet-title>.nav-tabs>li.active>a,.portlet>.portlet-title>.nav-tabs>li:hover>a{color:#333;background:#fff;border:0}.portlet>.portlet-body{clear:both;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.portlet>.portlet-empty{min-height:125px}.portlet.full-height-content{margin-bottom:0}.portlet.bordered{border-left:2px solid #e6e9ec!important}.portlet.bordered>.portlet-title{border-bottom:0}.portlet.solid{padding:0 10px 10px;border:0}.portlet.solid>.portlet-title{border-bottom:0;margin-bottom:10px}.portlet.solid>.portlet-title>.caption{padding:16px 0 2px}.portlet.solid>.portlet-title>.actions{padding:12px 0 6px}.portlet.solid>.portlet-title>.tools{padding:14px 0 6px}.portlet.solid.bordered>.portlet-title{margin-bottom:10px}.portlet.box{padding:0!important}.portlet.box>.portlet-title{border-bottom:0;padding:0 10px;margin-bottom:0;color:#fff}.portlet.box>.portlet-title>.caption{padding:11px 0 9px}.portlet.box>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.box>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.box>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.box>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.box>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.box>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box>.portlet-title>.actions{padding:7px 0 5px}.portlet.box>.portlet-body{background-color:#fff;padding:10px}.portlet.box.portlet-fullscreen>.portlet-body{padding:10px}.portlet.light{padding:12px 20px 15px;background-color:#fff}.portlet.light.bordered{border:1px solid #e1e1e1!important}.portlet.light.bordered>.portlet-title{border-bottom:1px solid #eee}.portlet.light.bg-inverse{background:#F7F7F7}.portlet.light>.portlet-title{padding:0;min-height:48px}.portlet.light>.portlet-title>.caption{color:#666;padding:10px 0}.portlet.light>.portlet-title>.caption>.caption-subject{font-size:16px}.portlet.light>.portlet-title>.caption>i{color:#777;font-size:15px;font-weight:300;margin-top:3px}.portlet.light>.portlet-title>.caption.caption-md>.caption-subject{font-size:15px}.portlet.light>.portlet-title>.caption.caption-md>i{font-size:14px}.portlet.light>.portlet-title>.actions{padding:6px 0 14px}.portlet.light>.portlet-title>.actions .btn-default{color:#666}.portlet.light>.portlet-title>.actions .btn-icon-only{height:27px;width:27px}.portlet.light>.portlet-title>.actions .dropdown-menu li>a{color:#555}.portlet.light>.portlet-title>.inputs{float:right;display:inline-block;padding:4px 0}.portlet.light>.portlet-title>.inputs>.portlet-input .input-icon>i{font-size:14px;margin-top:9px}.portlet.light>.portlet-title>.inputs>.portlet-input .input-icon>.form-control{height:30px;padding:2px 26px 3px 10px;font-size:13px}.portlet.light>.portlet-title>.inputs>.portlet-input>.form-control{height:30px;padding:3px 10px;font-size:13px}.portlet.light>.portlet-title>.pagination{padding:2px 0 13px}.portlet.light>.portlet-title>.tools{padding:10px 0 13px;margin-top:2px}.portlet.light>.portlet-title>.nav-tabs>li{margin:0;padding:0}.portlet.light>.portlet-title>.nav-tabs>li>a{margin:0;padding:12px 13px 13px;font-size:13px;color:#666}.portlet.light>.portlet-title>.nav-tabs>li.active>a,.portlet.light>.portlet-title>.nav-tabs>li:hover>a{margin:0;background:0 0;color:#333}.blue.btn.active,.blue.btn:active,.btn.default.active,.btn.default:active,.open .blue.btn.dropdown-toggle,.open .btn.default.dropdown-toggle,.progress,.progress-striped .progress>.progress-bar-default,.progress-striped .progress>.progress-bar-info,.progress-striped .progress>.progress-bar-success,.progress-striped .progress>.progress-bar-warning{background-image:none}.portlet.light.form-fit{padding:0}.portlet.light.form-fit>.portlet-title{padding:17px 20px 10px;margin-bottom:0}.portlet.light .portlet-body{padding-top:8px}.portlet.light.portlet-fullscreen>.portlet-body{padding:8px 0}.tab-pane>p:last-child{margin-bottom:0}.tabs-reversed>li{float:right;margin-right:0}.tabs-reversed>li>a{margin-right:0}.portlet-sortable:not(.portlet-fullscreen)>.portlet-title{cursor:move}.portlet-sortable-placeholder{border:2px dashed #eee;margin-bottom:25px}.portlet-sortable-empty{height:45px}.progress{border:0;filter:none;box-shadow:none}.progress.progress-sm{height:12px}.progress>.progress-bar-default{background-color:#c6c6c6}.progress>.progress-bar-success{background-color:#45B6AF}.progress>.progress-bar-info{background-color:#89C4F4}.progress>.progress-bar-danger{background-color:#F3565D}.progress-striped .progress>.progress-bar-danger{background-image:none}.progress>.progress-bar-warning{background-color:#dfba49}.dashboard-stat{display:block;margin-bottom:25px;overflow:hidden;border-radius:4px}.dashboard-stat:after,.dashboard-stat:before{content:" ";display:table}.portlet .dashboard-stat:last-child{margin-bottom:0}.dashboard-stat .visual{width:80px;height:80px;display:block;float:left;padding-top:10px;padding-left:15px;margin-bottom:15px;font-size:35px;line-height:35px}.dashboard-stat .visual>i{margin-left:-35px;font-size:110px;line-height:110px}.dashboard-stat .details{position:absolute;right:15px;padding-right:15px}.dashboard-stat .details .number{padding-top:25px;text-align:right;font-size:34px;line-height:36px;letter-spacing:-1px;margin-bottom:0;font-weight:300}.dashboard-stat .details .desc{text-align:right;font-size:16px;letter-spacing:0;font-weight:300}.dashboard-stat .more{display:block;padding:6px 10px;position:relative;text-transform:uppercase;font-weight:300;font-size:11px;opacity:.7;filter:alpha(opacity=70)}.dashboard-stat .more:hover{text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.dashboard-stat .more>i{display:inline-block;margin-top:1px;float:right}.dashboard-stat-light{padding-bottom:20px;margin-bottom:20px}.dashboard-stat-light .details{margin-bottom:5px}.dashboard-stat-light .details .number{font-weight:300;margin-bottom:0}.dashboard-stat2,.dashboard-stat2 .display{margin-bottom:20px}.dashboard-stat2{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;background:#fff;padding:15px 15px 30px}.dashboard-stat2 .display:after,.dashboard-stat2 .display:before{content:" ";display:table}.dashboard-stat2 .display .number{float:left;display:inline-block}.dashboard-stat2 .display .number h3{margin:0 0 2px;padding:0;font-size:30px;font-weight:400}.dashboard-stat2 .display .number h3>small{font-size:23px}.dashboard-stat2 .display .number small{font-size:14px;color:#AAB5BC;font-weight:600;text-transform:uppercase}.dashboard-stat2 .display .icon{display:inline-block;float:right;padding:7px 0 0}.dashboard-stat2 .display .icon>i{color:#cbd4e0;font-size:26px}.dashboard-stat2 .progress-info .progress{margin:0;height:4px;display:block}.dashboard-stat2 .progress-info .status{margin-top:5px;font-size:11px;color:#AAB5BC;font-weight:600;text-transform:uppercase}.dashboard-stat2 .progress-info .status .status-title{float:left;display:inline-block}.dashboard-stat2 .progress-info .status .status-number{float:right;display:inline-block}.text-stat h3{margin-top:5px;margin-bottom:0;font-size:18px}.text-stat span{font-size:13px!important}@media (max-width:767px){.text-stat{margin-top:20px}}.social-icons{padding:0;margin:0}.social-icons:after,.social-icons:before{content:" ";display:table}.social-icons li{float:left;display:inline;list-style:none;margin-right:5px;margin-bottom:5px;text-indent:-9999px}.social-icons li>a{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;width:28px;height:28px;display:block;background-position:0 0;background-repeat:no-repeat;transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;-ms-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-webkit-transition:all .3s ease-in-out}.social-icons li:hover>a{background-position:0 -38px}.social-icons li .amazon{background:url(../../assets/images/social/amazon.png) no-repeat}.social-icons li .behance{background:url(../../assets/images/social/behance.png) no-repeat}.social-icons li .blogger{background:url(../../assets/images/social/blogger.png) no-repeat}.social-icons li .deviantart{background:url(../../assets/images/social/deviantart.png) no-repeat}.social-icons li .dribbble{background:url(../../assets/images/social/dribbble.png) no-repeat}.social-icons li .dropbox{background:url(../../assets/images/social/dropbox.png) no-repeat}.social-icons li .evernote{background:url(../../assets/images/social/evernote.png) no-repeat}.social-icons li .facebook{background:url(../../assets/images/social/facebook.png) no-repeat}.social-icons li .forrst{background:url(../../assets/images/social/forrst.png) no-repeat}.social-icons li .github{background:url(../../assets/images/social/github.png) no-repeat}.social-icons li .googleplus{background:url(../../assets/images/social/googleplus.png) no-repeat}.social-icons li .jolicloud{background:url(../../assets/images/social/jolicloud.png) no-repeat}.social-icons li .last-fm{background:url(../../assets/images/social/last-fm.png) no-repeat}.social-icons li .linkedin{background:url(../../assets/images/social/linkedin.png) no-repeat}.social-icons li .picasa{background:url(../../assets/images/social/picasa.png) no-repeat}.social-icons li .pintrest{background:url(../../assets/images/social/pintrest.png) no-repeat}.social-icons li .rss{background:url(../../assets/images/social/rss.png) no-repeat}.social-icons li .skype{background:url(../../assets/images/social/skype.png) no-repeat}.social-icons li .spotify{background:url(../../assets/images/social/spotify.png) no-repeat}.social-icons li .stumbleupon{background:url(../../assets/images/social/stumbleupon.png) no-repeat}.social-icons li .tumblr{background:url(../../assets/images/social/tumblr.png) no-repeat}.social-icons li .twitter{background:url(../../assets/images/social/twitter.png) no-repeat}.social-icons li .vimeo{background:url(../../assets/images/social/vimeo.png) no-repeat}.social-icons li .wordpress{background:url(../../assets/images/social/wordpress.png) no-repeat}.social-icons li .xing{background:url(../../assets/images/social/xing.png) no-repeat}.social-icons li .yahoo{background:url(../../assets/images/social/yahoo.png) no-repeat}.social-icons li .youtube{background:url(../../assets/images/social/youtube.png) no-repeat}.social-icons li .vk{background:url(../../assets/images/social/vk.png) no-repeat}.social-icons li .instagram{background:url(../../assets/images/social/instagram.png) no-repeat}.social-icons li .reddit{background:url(../../assets/images/social/reddit.png) no-repeat}.social-icons li .aboutme{background:url(../../assets/images/social/aboutme.png) no-repeat}.social-icons li .flickr{background:url(../../assets/images/social/flickr.png) no-repeat}.social-icons li .foursquare{background:url(../../assets/images/social/foursquare.png) no-repeat}.social-icons li .gravatar{background:url(../../assets/images/social/gravatar.png) no-repeat}.social-icons li .klout{background:url(../../assets/images/social/klout.png) no-repeat}.social-icons li .myspace{background:url(../../assets/images/social/myspace.png) no-repeat}.social-icons li .quora{background:url(../../assets/images/social/quora.png) no-repeat}.social-icons.social-icons-color>li>a{opacity:.7;background-position:0 -38px!important}.social-icons.social-icons-color>li>a:hover{opacity:1}.social-icons.social-icons-circle>li>a{border-radius:25px!important}.social-icon{display:inline-block!important;width:28px;height:28px;background-position:0 0;background-repeat:no-repeat;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;-ms-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-webkit-transition:all .3s ease-in-out}.social-icon.social-icon-circle{border-radius:25px!important}.social-icon.amazon{background:url(../../assets/images/social/amazon.png) no-repeat}.social-icon.behance{background:url(../../assets/images/social/behance.png) no-repeat}.social-icon.blogger{background:url(../../assets/images/social/blogger.png) no-repeat}.social-icon.deviantart{background:url(../../assets/images/social/deviantart.png) no-repeat}.social-icon.dribbble{background:url(../../assets/images/social/dribbble.png) no-repeat}.social-icon.dropbox{background:url(../../assets/images/social/dropbox.png) no-repeat}.social-icon.evernote{background:url(../../assets/images/social/evernote.png) no-repeat}.social-icon.facebook{background:url(../../assets/images/social/facebook.png) no-repeat}.social-icon.forrst{background:url(../../assets/images/social/forrst.png) no-repeat}.social-icon.github{background:url(../../assets/images/social/github.png) no-repeat}.social-icon.googleplus{background:url(../../assets/images/social/googleplus.png) no-repeat}.social-icon.jolicloud{background:url(../../assets/images/social/jolicloud.png) no-repeat}.social-icon.last-fm{background:url(../../assets/images/social/last-fm.png) no-repeat}.social-icon.linkedin{background:url(../../assets/images/social/linkedin.png) no-repeat}.social-icon.picasa{background:url(../../assets/images/social/picasa.png) no-repeat}.social-icon.pintrest{background:url(../../assets/images/social/pintrest.png) no-repeat}.social-icon.rss{background:url(../../assets/images/social/rss.png) no-repeat}.social-icon.skype{background:url(../../assets/images/social/skype.png) no-repeat}.social-icon.spotify{background:url(../../assets/images/social/spotify.png) no-repeat}.social-icon.stumbleupon{background:url(../../assets/images/social/stumbleupon.png) no-repeat}.social-icon.tumblr{background:url(../../assets/images/social/tumblr.png) no-repeat}.social-icon.twitter{background:url(../../assets/images/social/twitter.png) no-repeat}.social-icon.vimeo{background:url(../../assets/images/social/vimeo.png) no-repeat}.social-icon.wordpress{background:url(../../assets/images/social/wordpress.png) no-repeat}.social-icon.xing{background:url(../../assets/images/social/xing.png) no-repeat}.social-icon.yahoo{background:url(../../assets/images/social/yahoo.png) no-repeat}.social-icon.youtube{background:url(../../assets/images/social/youtube.png) no-repeat}.social-icon.vk{background:url(../../assets/images/social/vk.png) no-repeat}.social-icon.instagram{background:url(../../assets/images/social/instagram.png) no-repeat}.social-icon.reddit{background:url(../../assets/images/social/reddit.png) no-repeat}.social-icon.aboutme{background:url(../../assets/images/social/aboutme.png) no-repeat}.social-icon.flickr{background:url(../../assets/images/social/flickr.png) no-repeat}.social-icon.foursquare{background:url(../../assets/images/social/foursquare.png) no-repeat}.social-icon.gravatar{background:url(../../assets/images/social/gravatar.png) no-repeat}.social-icon.klout{background:url(../../assets/images/social/klout.png) no-repeat}.social-icon.myspace{background:url(../../assets/images/social/myspace.png) no-repeat}.social-icon.quora{background:url(../../assets/images/social/quora.png) no-repeat}.social-icon:hover{background-position:0 -38px}.social-icon-color{opacity:.7;background-position:0 -38px!important}.social-icon-color:hover{opacity:1}.table.table-bordered thead>tr>th{border-bottom:0}.table tr.heading>th{background-color:#eee!important}.table td .img-responsive{width:100%}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background:#a6c8e6;color:#132339}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background:#92bce0}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background:#dff0d8;color:#3c763d}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background:#d9edf7;color:#31708f}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background:#fcf8e3;color:#8a6d3b}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background:#f2dede;color:#a94442}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background:#ebcccc}.table-scrollable{width:100%;overflow-x:auto;overflow-y:hidden;border:1px solid #ddd;margin:10px 0!important}.table-scrollable.table-scrollable-borderless,.table-scrollable>.table-bordered{border:0}.table-scrollable>.table{width:100%!important;margin:0!important;background-color:#fff}.table-scrollable>.table-bordered>tbody>tr>td:first-child,.table-scrollable>.table-bordered>tbody>tr>th:first-child,.table-scrollable>.table-bordered>tfoot>tr>td:first-child,.table-scrollable>.table-bordered>tfoot>tr>th:first-child,.table-scrollable>.table-bordered>thead>tr>td:first-child,.table-scrollable>.table-bordered>thead>tr>th:first-child{border-left:0}.table-scrollable>.table-bordered>tbody>tr>td:last-child,.table-scrollable>.table-bordered>tbody>tr>th:last-child,.table-scrollable>.table-bordered>tfoot>tr>td:last-child,.table-scrollable>.table-bordered>tfoot>tr>th:last-child,.table-scrollable>.table-bordered>thead>tr>td:last-child,.table-scrollable>.table-bordered>thead>tr>th:last-child{border-right:0}.table-scrollable>.table-bordered>tbody>tr:last-child>td,.table-scrollable>.table-bordered>tbody>tr:last-child>th,.table-scrollable>.table-bordered>tfoot>tr:last-child>td,.table-scrollable>.table-bordered>tfoot>tr:last-child>th,.table-scrollable>.table-bordered>thead>tr:last-child>td,.table-scrollable>.table-bordered>thead>tr:last-child>th{border-bottom:0}.flip-scroll table{width:100%}@media only screen and (max-width:768px){.flip-scroll .flip-content:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.flip-scroll * html .flip-content{zoom:1}.flip-scroll td,.flip-scroll th{margin:0;vertical-align:top}.flip-scroll th{border:0!important;border-bottom:1px solid #ddd!important;border-right:1px solid #ddd!important;font-size:13px!important;padding:5px;width:auto!important;display:block;text-align:right}.flip-scroll table{border-collapse:collapse;border-spacing:0;display:block;position:relative;width:100%}.flip-scroll thead{display:block;float:left}.flip-scroll tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}.flip-scroll thead tr{display:block}.flip-scroll tbody tr{display:inline-block;vertical-align:top;margin-left:-5px}.flip-scroll td{display:block;min-height:1.25em;text-align:left;border-top:0!important;border-left:0!important;border-right:0!important;border-bottom:0}.flip-scroll th{border-left:0}.flip-scroll tbody tr{border-left:1px solid #ddd}.flip-scroll td:last-child,.flip-scroll th:last-child{border-bottom:1px solid #ddd}}.centered-td,.page-404,.tiles .tile .tile-body>i,.ui-grid-vcenter div{text-align:center}.table-toolbar{margin-bottom:15px}.table-toolbar:after,.table-toolbar:before{content:" ";display:table}.table.table-full-width{width:100%!important}.table .btn{margin-top:0;margin-left:0;margin-right:5px}.table thead tr th{font-size:14px;font-weight:600}.table-advance{margin-bottom:10px!important}.table-advance thead{color:#999}.table-advance thead tr th{background-color:#DDD;font-size:14px;font-weight:400;color:#666}.table-advance div.danger,.table-advance div.important,.table-advance div.info,.table-advance div.success,.table-advance div.warning{position:absolute;margin-top:-5px;float:left;width:2px;height:30px;margin-right:20px!important}.table-advance tr td{border-left-width:0}.table-advance tr td:first-child{border-left-width:1px!important}.table-advance tr td.highlight:first-child a{margin-left:15px}.table-advance td.highlight div.primary{border-left:2px solid #428bca}.table-advance td.highlight div.success{border-left:2px solid #45B6AF}.table-advance td.highlight div.info{border-left:2px solid #89C4F4}.table-advance td.highlight div.warning{border-left:2px solid #dfba49}.table-advance td.highlight div.danger{border-left:2px solid #F3565D}@media (max-width:767px){.table-advance tr>td.highlight:first-child a{margin-left:8px}}.table.table-light{border:0!important}.table.table-light>thead>tr:hover>th{background:0 0}.table.table-light>thead>tr.uppercase{text-transform:uppercase}.table.table-light>thead>tr>th{font-weight:600;font-size:13px;color:#a7b3b9;border:0;border-bottom:1px solid #F2F5F8}.table.table-light>tbody>tr:last-child>td{border:0}.table.table-light>tbody>tr>td{border:0;border-bottom:1px solid #F2F5F8;color:#9ca8b0;vertical-align:middle}.table.table-light>tbody>tr>td.fit{width:1px;padding-right:3px}.table.table-light>tbody>tr>td .user-pic{display:inline-block;vertical-align:middle;height:30px;-webkit-border-radius:100%;-moz-border-radius:100%;-ms-border-radius:100%;-o-border-radius:100%;border-radius:100%}.table.table-light.table-hover>tbody>tr:hover>td,.table.table-light.table-hover>tbody>tr:hover>th,.table.table-light.table-hover>tbody>tr>td:hover,.table.table-light.table-hover>tbody>tr>th:hover{background:#f9fafb}.nav-pills,.nav-tabs{margin-bottom:10px}.nav-pills>li>a,.nav-tabs>li>a{font-size:14px}.nav-pills>li>a>.badge,.nav-tabs>li>a>.badge{margin-top:-3px}.nav-pills>li .dropdown-menu:after,.nav-pills>li .dropdown-menu:before,.nav-tabs>li .dropdown-menu:after,.nav-tabs>li .dropdown-menu:before{display:none}.nav-pills.nav-pills-sm>li>a,.nav-pills.nav-tabs-sm>li>a,.nav-tabs.nav-pills-sm>li>a,.nav-tabs.nav-tabs-sm>li>a{font-size:13px}.nav-pills .dropdown.open>.dropdown-toggle,.nav-tabs .dropdown.open>.dropdown-toggle{background:#eee;color:#0d638f;border-color:transparent}.tabs-left.nav-tabs,.tabs-right.nav-tabs{border-bottom:0}.tabs-left.nav-tabs>li,.tabs-right.nav-tabs>li{float:none}.tabs-left.nav-tabs>li>a,.tabs-right.nav-tabs>li>a{margin-right:0;margin-bottom:3px}.tabs-left.nav-tabs{border-right:1px solid #ddd}.tabs-left.nav-tabs>li>a{display:block;margin-right:-1px}.tabs-left.nav-tabs>li>a:focus,.tabs-left.nav-tabs>li>a:hover{border-radius:4px 0 0 4px;border-color:#eee #ddd #eee #eee}.tabs-left.nav-tabs>li.active>a,.tabs-left.nav-tabs>li.active>a:hover>li.active>a:focus{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;-ms-border-radius:4px 0 0 4px;-o-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;border-color:#ddd transparent #ddd #ddd}.tabs-right.nav-tabs{border-left:1px solid #ddd}.tabs-right.nav-tabs>li>a{display:block;margin-left:-1px}.tabbable:after,.tabbable:before,.tiles:after,.tiles:before{display:table;content:" "}.tabs-right.nav-tabs>li>a:focus,.tabs-right.nav-tabs>li>a:hover{border-radius:0 4px 4px 0;border-color:#eee #eee #eee #ddd}.tabs-right.nav-tabs>li.active>a,.tabs-right.nav-tabs>li.active>a:hover>li.active>a:focus{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-ms-border-radius:0 4px 4px 0;-o-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;border-color:#ddd #ddd #ddd transparent}.tabs-below>.nav-pills,.tabs-below>.nav-tabs{border-bottom:0;margin-bottom:0;margin-top:10px}.tabs-below>.nav-tabs{border-top:1px solid #ddd;margin-bottom:0;margin-top:10px}.tabs-below>.nav-tabs>li>a{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a:focus,.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>li>a .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.tabs-below>.nav-tabs .active a,.tabs-below>.nav-tabs .active a:hover .active a:focus{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;border-color:transparent #ddd #ddd}.tabbable-custom{margin-bottom:15px;padding:0;overflow:hidden}.tabbable-custom>.nav-tabs{border:none;margin:0}.tabbable-custom>.nav-tabs>li.active>a,.tabbable-custom>.nav-tabs>li>a{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0}.tabbable-custom>.nav-tabs>li{margin-right:2px;border-top:2px solid transparent}.tabbable-custom>.nav-tabs>li>a{margin-right:0;border-radius:0}.tabbable-custom>.nav-tabs>li>a:hover{background:0 0;border-color:transparent}.tabbable-custom>.nav-tabs>li.active{border-top:3px solid #F3565D;margin-top:0;position:relative}.tabbable-custom>.nav-tabs>li.active>a{border-top:none;font-weight:400;border-radius:0}.tabbable-custom>.nav-tabs>li.active>a:hover{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;border-top:none;background:#fff;border-color:#d4d4d4 #d4d4d4 transparent}.tabbable-custom>.tab-content{background-color:#fff;border:1px solid #ddd;padding:10px;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabbable-custom.nav-justified>.tab-content{margin-top:-1px}.tabbable-custom.boxless>.tab-content{padding:15px 0;border-left:none;border-right:none;border-bottom:none}.tabbable-custom.tabs-below.nav-justified .tab-content{margin-top:0;margin-bottom:-2px;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.tabbable-custom.tabbable-full-width>.nav-tabs>li>a{color:#424242;font-size:15px;padding:9px 15px}.tabbable-custom.tabbable-full-width>.tab-content{padding:15px 0;border-left:none;border-right:none;border-bottom:none}.tabbable-custom.tabs-below .nav-tabs>li>a{border-top:none;border-bottom:2px solid transparent;margin-top:-1px}.tabbable-custom.tabs-below .nav-tabs>li.active{border-top:none;border-bottom:3px solid #d12610;margin-bottom:0;position:relative}.tabbable-custom.tabs-below .nav-tabs>li.active>a{border-bottom:none}.tabbable-custom.tabs-below .nav-tabs>li.active>a:hover{background:#fff;border-color:#d4d4d4 #d4d4d4 transparent}.tabbable-custom.tabbable-noborder .tab-content,.tabbable-custom.tabbable-noborder>.nav-tabs>li>a{border:0}.tabbable-line>.nav-tabs{border:none;margin:0}.tabbable-line>.nav-tabs>li{margin-right:2px}.tabbable-line>.nav-tabs>li>a{border:0;margin-right:0;color:#737373}.tabbable-line>.nav-tabs>li>a>i{color:#a6a6a6}.tabbable-line>.nav-tabs>li.open,.tabbable-line>.nav-tabs>li:hover{border-bottom:4px solid #fbcdcf}.tabbable-line>.nav-tabs>li.open>a,.tabbable-line>.nav-tabs>li:hover>a{border:0;background:0 0!important;color:#333}.tabbable-line>.nav-tabs>li.open>a>i,.tabbable-line>.nav-tabs>li:hover>a>i{color:#a6a6a6}.tabbable-line>.nav-tabs>li.open .dropdown-menu,.tabbable-line>.nav-tabs>li:hover .dropdown-menu{margin-top:0}.tabbable-line>.nav-tabs>li.active{border-bottom:4px solid #F3565D;position:relative}.tabbable-line>.nav-tabs>li.active>a{border:0;color:#333}.tabbable-line>.nav-tabs>li.active>a>i{color:#404040}.tabbable-line>.tab-content{margin-top:-3px;background-color:#fff;border:0;border-top:1px solid #eee;padding:15px 0}.portlet .tabbable-line>.tab-content{padding-bottom:0}.tabbable-line.tabs-below>.nav-tabs>li{border-top:4px solid transparent}.tabbable-line.tabs-below>.nav-tabs>li>a{margin-top:0}.tabbable-line.tabs-below>.nav-tabs>li:hover{border-bottom:0;border-top:4px solid #fbcdcf}.tabbable-line.tabs-below>.nav-tabs>li.active{margin-bottom:-2px;border-bottom:0;border-top:4px solid #F3565D}.tabbable-line.tabs-below>.tab-content{margin-top:-10px;border-top:0;border-bottom:1px solid #eee;padding-bottom:15px}.tiles{margin-right:-10px}.tiles .tile{display:block;float:left;height:135px;width:135px!important;cursor:pointer;text-decoration:none;color:#fff;position:relative;font-weight:300;font-size:12px;letter-spacing:.02em;line-height:20px;overflow:hidden;border:4px solid transparent;margin:0 10px 10px 0}.tiles .tile .tile-body>.content,.tiles .tile.image .tile-body h3,.tiles .tile.selected .check:after{display:inline-block}.tiles .tile:after,.tiles .tile:before{content:"";float:left}.tiles .tile.double{width:280px!important}.tiles .tile.double-down{height:280px!important}.tiles .tile.double-down i{margin-top:95px}.tiles .tile:hover{border-color:#aaa!important}.tiles .tile.selected,.tiles .tile:active{border-color:#ccc!important}.tiles .tile.selected .corner:after{content:"";display:inline-block;border-left:40px solid transparent;border-bottom:40px solid transparent;border-right:40px solid #ccc;position:absolute;top:-3px;right:-3px}.tiles .tile.selected .check:after{font-family:FontAwesome;font-size:13px;content:"\f00c";position:absolute;top:2px;right:2px}.tiles .tile.icon{padding:0}.tiles .tile.image .tile-body{padding:0!important}.tiles .tile.image .tile-body>img{width:100%;height:auto;min-height:100%;max-width:100%}.tiles .tile .tile-body{height:100%;vertical-align:top;padding:10px;overflow:hidden;position:relative;font-weight:400;font-size:12px;color:#fff;margin-bottom:10px}.tiles .tile .tile-body p{font-weight:400;font-size:13px;color:#fff;overflow:hidden}.tiles .tile .tile-body p:active{color:rgba(0,0,0,.4)}.tiles .tile .tile-body p:hover{color:#fff}.tiles .tile .tile-body img{float:left;margin-right:10px}.tiles .tile .tile-body img.pull-right{float:right!important;margin-left:10px;margin-right:0}.tiles .tile .tile-body>i{margin-top:17px;display:block;font-size:56px;line-height:56px}.tiles .tile .tile-body h1,.tiles .tile .tile-body h2,.tiles .tile .tile-body h3,.tiles .tile .tile-body h4,.tiles .tile .tile-body h5,.tiles .tile .tile-body h6,.tiles .tile .tile-body p{padding:0;margin:0;line-height:14px}.tiles .tile .tile-body h1:hover,.tiles .tile .tile-body h2:hover,.tiles .tile .tile-body h3:hover,.tiles .tile .tile-body h4:hover,.tiles .tile .tile-body h5:hover,.tiles .tile .tile-body h6:hover,.tiles .tile .tile-body p:hover{color:#fff}.tiles .tile .tile-body h3,.tiles .tile .tile-body h4{margin-bottom:5px}.tiles .tile .tile-object{position:absolute;bottom:0;left:0;right:0;min-height:30px;background-color:transparent}.tiles .tile .tile-object:after,.tiles .tile .tile-object:before{display:table;content:""}.tiles .tile .tile-object>.name{position:absolute;bottom:0;left:0;margin-bottom:5px;margin-left:10px;margin-right:15px;font-weight:400;font-size:13px;color:#fff}.tiles .tile .tile-object>.name>i{vertical-align:middle;display:block;font-size:24px;height:18px;width:24px}.tiles .tile .tile-object>.number{position:absolute;bottom:0;right:0;color:#fff;text-align:center;font-weight:600;font-size:14px;letter-spacing:.01em;line-height:14px;margin-bottom:8px;margin-right:10px}.well{background-color:#eee;border:0;box-shadow:none!important}.blue.btn,.btn.default{border-color:""}@-webkit-keyframes fadeInUpm{0%{opacity:0;-webkit-transform:translateY(15px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-moz-keyframes fadeInUpm{0%{opacity:0;-moz-transform:translateY(15px)}100%{opacity:1;-moz-transform:translateY(0)}}@-o-keyframes fadeInUpm{0%{opacity:0;-o-transform:translateY(15px)}100%{opacity:1;-o-transform:translateY(0)}}@keyframes fadeInUpm{0%{opacity:0;transform:translateY(15px)}100%{opacity:1;transform:translateY(0)}}.fade-in-up{-webkit-animation:fadeInUpm .5s;animation:fadeInUpm .5s}@-webkit-keyframes bounceDelay{0%,100%,80%{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes bounceDelay{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.btn.default{color:#333;background-color:#E5E5E5}.btn.default.active,.btn.default:active,.btn.default:focus,.btn.default:hover,.open .btn.default.dropdown-toggle{color:#333;background-color:#d3d3d3}.btn.default.active,.btn.default:active{background-color:#c6c6c6}.btn.default.active:hover,.btn.default:active:hover{background-color:#ccc}.btn.default.disabled,.btn.default.disabled.active,.btn.default.disabled:active,.btn.default.disabled:focus,.btn.default.disabled:hover,.btn.default[disabled],.btn.default[disabled].active,.btn.default[disabled]:active,.btn.default[disabled]:focus,.btn.default[disabled]:hover,fieldset[disabled] .btn.default,fieldset[disabled] .btn.default.active,fieldset[disabled] .btn.default:active,fieldset[disabled] .btn.default:focus,fieldset[disabled] .btn.default:hover{background-color:#E5E5E5}.btn.default .badge{color:#E5E5E5;background-color:#333}.blue.btn{color:#FFF;background-color:#4B8DF8}.blue.btn.active,.blue.btn:active,.blue.btn:focus,.blue.btn:hover,.open .blue.btn.dropdown-toggle{color:#FFF;background-color:#2977f7}.blue.btn.active,.blue.btn:active{background-color:#1068f6}.blue.btn.active:hover,.blue.btn:active:hover{background-color:#1a6ef6}.blue.btn.disabled,.blue.btn.disabled.active,.blue.btn.disabled:active,.blue.btn.disabled:focus,.blue.btn.disabled:hover,.blue.btn[disabled],.blue.btn[disabled].active,.blue.btn[disabled]:active,.blue.btn[disabled]:focus,.blue.btn[disabled]:hover,fieldset[disabled] .blue.btn,fieldset[disabled] .blue.btn.active,fieldset[disabled] .blue.btn:active,fieldset[disabled] .blue.btn:focus,fieldset[disabled] .blue.btn:hover{background-color:#4B8DF8}.blue.btn .badge{color:#4B8DF8;background-color:#FFF}.portlet.blue,.portlet.box.blue>.portlet-title,.portlet>.portlet-body.blue{background-color:#4B8DF8}.btn.blue-stripe{border-left:3px solid #4B8DF8}.portlet.solid.blue>.portlet-body,.portlet.solid.blue>.portlet-title{border:0;color:#FFF}.portlet.solid.blue>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue{border:1px solid #7cacfa;border-top:0}.portlet.box.blue>.portlet-title>.caption,.portlet.box.blue>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #b7d1fc;color:#d0e1fd}.portlet.box.blue>.portlet-title>.actions .btn-default>i{color:#deeafe}.portlet.box.blue>.portlet-title>.actions .btn-default.active,.portlet.box.blue>.portlet-title>.actions .btn-default:active,.portlet.box.blue>.portlet-title>.actions .btn-default:focus,.portlet.box.blue>.portlet-title>.actions .btn-default:hover{border:1px solid #e8f0fe;color:#fff}.dashboard-stat.blue{background-color:#4B8DF8}.dashboard-stat.blue.dashboard-stat-light:hover{background-color:#3781f7}.dashboard-stat.blue .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue .details .number{color:#FFF}.dashboard-stat.blue .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue .more{color:#FFF;background-color:#3781f7}.bg-blue{border-color:#4B8DF8!important;background-image:none!important;background-color:#4B8DF8!important;color:#FFF!important}.font-blue{color:#4B8DF8!important}.progress-bar.blue{background:#4B8DF8!important;color:#FFF!important}.blue-madison.btn{color:#FFF;background-color:#578ebe;border-color:""}.blue-madison.btn.active,.blue-madison.btn:active,.blue-madison.btn:focus,.blue-madison.btn:hover,.open .blue-madison.btn.dropdown-toggle{color:#FFF;background-color:#437cae}.blue-madison.btn.active,.blue-madison.btn:active{background-image:none;background-color:#3c6f9c}.blue-madison.btn.active:hover,.blue-madison.btn:active:hover{background-color:#3f74a3}.open .blue-madison.btn.dropdown-toggle{background-image:none}.blue-madison.btn.disabled,.blue-madison.btn.disabled.active,.blue-madison.btn.disabled:active,.blue-madison.btn.disabled:focus,.blue-madison.btn.disabled:hover,.blue-madison.btn[disabled],.blue-madison.btn[disabled].active,.blue-madison.btn[disabled]:active,.blue-madison.btn[disabled]:focus,.blue-madison.btn[disabled]:hover,fieldset[disabled] .blue-madison.btn,fieldset[disabled] .blue-madison.btn.active,fieldset[disabled] .blue-madison.btn:active,fieldset[disabled] .blue-madison.btn:focus,fieldset[disabled] .blue-madison.btn:hover{background-color:#578ebe}.blue-madison.btn .badge{color:#578ebe;background-color:#FFF}.portlet.blue-madison,.portlet.box.blue-madison>.portlet-title,.portlet>.portlet-body.blue-madison{background-color:#578ebe}.btn.blue-madison-stripe{border-left:3px solid #578ebe}.portlet.solid.blue-madison>.portlet-body,.portlet.solid.blue-madison>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-madison>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-madison>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-madison{border:1px solid #7ca7cc;border-top:0}.portlet.box.blue-madison>.portlet-title>.caption,.portlet.box.blue-madison>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-madison>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #a8c4dd;color:#bad1e4}.portlet.box.blue-madison>.portlet-title>.actions .btn-default>i{color:#c5d8e9}.portlet.box.blue-madison>.portlet-title>.actions .btn-default.active,.portlet.box.blue-madison>.portlet-title>.actions .btn-default:active,.portlet.box.blue-madison>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-madison>.portlet-title>.actions .btn-default:hover{border:1px solid #cdddec;color:#dfeaf3}.dashboard-stat.blue-madison{background-color:#578ebe}.dashboard-stat.blue-madison.dashboard-stat-light:hover{background-color:#4884b8}.dashboard-stat.blue-madison .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-madison .details .number{color:#FFF}.dashboard-stat.blue-madison .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-madison .more{color:#FFF;background-color:#4884b8}.bg-blue-madison{border-color:#578ebe!important;background-image:none!important;background-color:#578ebe!important;color:#FFF!important}.font-blue-madison{color:#578ebe!important}.progress-bar.blue-madison{background:#578ebe!important;color:#FFF!important}.blue-chambray.btn{color:#FFF;background-color:#2C3E50;border-color:""}.blue-chambray.btn.active,.blue-chambray.btn:active,.blue-chambray.btn:focus,.blue-chambray.btn:hover,.open .blue-chambray.btn.dropdown-toggle{color:#FFF;background-color:#1f2c39}.blue-chambray.btn.active,.blue-chambray.btn:active{background-image:none;background-color:#161f29}.blue-chambray.btn.active:hover,.blue-chambray.btn:active:hover{background-color:#1a242f}.open .blue-chambray.btn.dropdown-toggle{background-image:none}.blue-chambray.btn.disabled,.blue-chambray.btn.disabled.active,.blue-chambray.btn.disabled:active,.blue-chambray.btn.disabled:focus,.blue-chambray.btn.disabled:hover,.blue-chambray.btn[disabled],.blue-chambray.btn[disabled].active,.blue-chambray.btn[disabled]:active,.blue-chambray.btn[disabled]:focus,.blue-chambray.btn[disabled]:hover,fieldset[disabled] .blue-chambray.btn,fieldset[disabled] .blue-chambray.btn.active,fieldset[disabled] .blue-chambray.btn:active,fieldset[disabled] .blue-chambray.btn:focus,fieldset[disabled] .blue-chambray.btn:hover{background-color:#2C3E50}.blue-chambray.btn .badge{color:#2C3E50;background-color:#FFF}.portlet.blue-chambray,.portlet.box.blue-chambray>.portlet-title,.portlet>.portlet-body.blue-chambray{background-color:#2C3E50}.btn.blue-chambray-stripe{border-left:3px solid #2C3E50}.portlet.solid.blue-chambray>.portlet-body,.portlet.solid.blue-chambray>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-chambray>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-chambray>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-chambray{border:1px solid #3e5771;border-top:0}.portlet.box.blue-chambray>.portlet-title>.caption,.portlet.box.blue-chambray>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-chambray>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #547698;color:#5f83a7}.portlet.box.blue-chambray>.portlet-title>.actions .btn-default>i{color:#698aac}.portlet.box.blue-chambray>.portlet-title>.actions .btn-default.active,.portlet.box.blue-chambray>.portlet-title>.actions .btn-default:active,.portlet.box.blue-chambray>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-chambray>.portlet-title>.actions .btn-default:hover{border:1px solid #6f90b0;color:#809cb9}.dashboard-stat.blue-chambray{background-color:#2C3E50}.dashboard-stat.blue-chambray.dashboard-stat-light:hover{background-color:#253443}.dashboard-stat.blue-chambray .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-chambray .details .number{color:#FFF}.dashboard-stat.blue-chambray .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-chambray .more{color:#FFF;background-color:#253443}.bg-blue-chambray{border-color:#2C3E50!important;background-image:none!important;background-color:#2C3E50!important;color:#FFF!important}.font-blue-chambray{color:#2C3E50!important}.progress-bar.blue-chambray{background:#2C3E50!important;color:#FFF!important}.blue-ebonyclay.btn{color:#FFF;background-color:#22313F;border-color:""}.blue-ebonyclay.btn.active,.blue-ebonyclay.btn:active,.blue-ebonyclay.btn:focus,.blue-ebonyclay.btn:hover,.open .blue-ebonyclay.btn.dropdown-toggle{color:#FFF;background-color:#151f28}.blue-ebonyclay.btn.active,.blue-ebonyclay.btn:active{background-image:none;background-color:#0d1217}.blue-ebonyclay.btn.active:hover,.blue-ebonyclay.btn:active:hover{background-color:#10171e}.open .blue-ebonyclay.btn.dropdown-toggle{background-image:none}.blue-ebonyclay.btn.disabled,.blue-ebonyclay.btn.disabled.active,.blue-ebonyclay.btn.disabled:active,.blue-ebonyclay.btn.disabled:focus,.blue-ebonyclay.btn.disabled:hover,.blue-ebonyclay.btn[disabled],.blue-ebonyclay.btn[disabled].active,.blue-ebonyclay.btn[disabled]:active,.blue-ebonyclay.btn[disabled]:focus,.blue-ebonyclay.btn[disabled]:hover,fieldset[disabled] .blue-ebonyclay.btn,fieldset[disabled] .blue-ebonyclay.btn.active,fieldset[disabled] .blue-ebonyclay.btn:active,fieldset[disabled] .blue-ebonyclay.btn:focus,fieldset[disabled] .blue-ebonyclay.btn:hover{background-color:#22313F}.blue-ebonyclay.btn .badge{color:#22313F;background-color:#FFF}.portlet.blue-ebonyclay,.portlet.box.blue-ebonyclay>.portlet-title,.portlet>.portlet-body.blue-ebonyclay{background-color:#22313F}.btn.blue-ebonyclay-stripe{border-left:3px solid #22313F}.portlet.solid.blue-ebonyclay>.portlet-body,.portlet.solid.blue-ebonyclay>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-ebonyclay>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-ebonyclay{border:1px solid #344b60;border-top:0}.portlet.box.blue-ebonyclay>.portlet-title>.caption,.portlet.box.blue-ebonyclay>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #496a88;color:#527798}.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default>i{color:#587ea2}.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default.active,.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default:active,.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default:hover{border:1px solid #5d83a7;color:#6d90b0}.dashboard-stat.blue-ebonyclay{background-color:#22313F}.dashboard-stat.blue-ebonyclay.dashboard-stat-light:hover{background-color:#1b2732}.dashboard-stat.blue-ebonyclay .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-ebonyclay .details .number{color:#FFF}.dashboard-stat.blue-ebonyclay .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-ebonyclay .more{color:#FFF;background-color:#1b2732}.bg-blue-ebonyclay{border-color:#22313F!important;background-image:none!important;background-color:#22313F!important;color:#FFF!important}.font-blue-ebonyclay{color:#22313F!important}.progress-bar.blue-ebonyclay{background:#22313F!important;color:#FFF!important}.blue-hoki.btn{color:#FFF;background-color:#67809F;border-color:""}.blue-hoki.btn.active,.blue-hoki.btn:active,.blue-hoki.btn:focus,.blue-hoki.btn:hover,.open .blue-hoki.btn.dropdown-toggle{color:#FFF;background-color:#586e8b}.blue-hoki.btn.active,.blue-hoki.btn:active{background-image:none;background-color:#4e627b}.blue-hoki.btn.active:hover,.blue-hoki.btn:active:hover{background-color:#526781}.open .blue-hoki.btn.dropdown-toggle{background-image:none}.blue-hoki.btn.disabled,.blue-hoki.btn.disabled.active,.blue-hoki.btn.disabled:active,.blue-hoki.btn.disabled:focus,.blue-hoki.btn.disabled:hover,.blue-hoki.btn[disabled],.blue-hoki.btn[disabled].active,.blue-hoki.btn[disabled]:active,.blue-hoki.btn[disabled]:focus,.blue-hoki.btn[disabled]:hover,fieldset[disabled] .blue-hoki.btn,fieldset[disabled] .blue-hoki.btn.active,fieldset[disabled] .blue-hoki.btn:active,fieldset[disabled] .blue-hoki.btn:focus,fieldset[disabled] .blue-hoki.btn:hover{background-color:#67809F}.blue-hoki.btn .badge{color:#67809F;background-color:#FFF}.portlet.blue-hoki,.portlet.box.blue-hoki>.portlet-title,.portlet>.portlet-body.blue-hoki{background-color:#67809F}.btn.blue-hoki-stripe{border-left:3px solid #67809F}.portlet.solid.blue-hoki>.portlet-body,.portlet.solid.blue-hoki>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-hoki>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-hoki>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-hoki{border:1px solid #869ab3;border-top:0}.portlet.box.blue-hoki>.portlet-title>.caption,.portlet.box.blue-hoki>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-hoki>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #acb9ca;color:#bbc7d4}.portlet.box.blue-hoki>.portlet-title>.actions .btn-default>i{color:#c5ceda}.portlet.box.blue-hoki>.portlet-title>.actions .btn-default.active,.portlet.box.blue-hoki>.portlet-title>.actions .btn-default:active,.portlet.box.blue-hoki>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-hoki>.portlet-title>.actions .btn-default:hover{border:1px solid #cbd4de;color:#dbe1e8}.dashboard-stat.blue-hoki{background-color:#67809F}.dashboard-stat.blue-hoki.dashboard-stat-light:hover{background-color:#5e7694}.dashboard-stat.blue-hoki .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-hoki .details .number{color:#FFF}.dashboard-stat.blue-hoki .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-hoki .more{color:#FFF;background-color:#5e7694}.bg-blue-hoki{border-color:#67809F!important;background-image:none!important;background-color:#67809F!important;color:#FFF!important}.font-blue-hoki{color:#67809F!important}.progress-bar.blue-hoki{background:#67809F!important;color:#FFF!important}.blue-steel.btn{color:#FFF;background-color:#4B77BE;border-color:""}.blue-steel.btn.active,.blue-steel.btn:active,.blue-steel.btn:focus,.blue-steel.btn:hover,.open .blue-steel.btn.dropdown-toggle{color:#FFF;background-color:#3d66a8}.blue-steel.btn.active,.blue-steel.btn:active{background-image:none;background-color:#365b96}.blue-steel.btn.active:hover,.blue-steel.btn:active:hover{background-color:#395f9d}.open .blue-steel.btn.dropdown-toggle{background-image:none}.blue-steel.btn.disabled,.blue-steel.btn.disabled.active,.blue-steel.btn.disabled:active,.blue-steel.btn.disabled:focus,.blue-steel.btn.disabled:hover,.blue-steel.btn[disabled],.blue-steel.btn[disabled].active,.blue-steel.btn[disabled]:active,.blue-steel.btn[disabled]:focus,.blue-steel.btn[disabled]:hover,fieldset[disabled] .blue-steel.btn,fieldset[disabled] .blue-steel.btn.active,fieldset[disabled] .blue-steel.btn:active,fieldset[disabled] .blue-steel.btn:focus,fieldset[disabled] .blue-steel.btn:hover{background-color:#4B77BE}.blue-steel.btn .badge{color:#4B77BE;background-color:#FFF}.portlet.blue-steel,.portlet.box.blue-steel>.portlet-title,.portlet>.portlet-body.blue-steel{background-color:#4B77BE}.btn.blue-steel-stripe{border-left:3px solid #4B77BE}.portlet.solid.blue-steel>.portlet-body,.portlet.solid.blue-steel>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-steel>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-steel>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.collapse{background-image:url(../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-steel{border:1px solid #7093cc;border-top:0}.portlet.box.blue-steel>.portlet-title>.caption,.portlet.box.blue-steel>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-steel>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #9db5dc;color:#b0c3e3}.portlet.box.blue-steel>.portlet-title>.actions .btn-default>i{color:#bbcce7}.portlet.box.blue-steel>.portlet-title>.actions .btn-default.active,.portlet.box.blue-steel>.portlet-title>.actions .btn-default:active,.portlet.box.blue-steel>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-steel>.portlet-title>.actions .btn-default:hover{border:1px solid #c3d2e9;color:#d6e0f0}.dashboard-stat.blue-steel{background-color:#4B77BE}.dashboard-stat.blue-steel.dashboard-stat-light:hover{background-color:#416db4}.dashboard-stat.blue-steel .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-steel .details .number{color:#FFF}.dashboard-stat.blue-steel .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-steel .more{color:#FFF;background-color:#416db4}.bg-blue-steel{border-color:#4B77BE!important;background-image:none!important;background-color:#4B77BE!important;color:#FFF!important}.font-blue-steel{color:#4B77BE!important}.progress-bar.blue-steel{background:#4B77BE!important;color:#FFF!important}.blue-soft.btn{color:#FFF;background-color:#4c87b9;border-color:""}.blue-soft.btn.active,.blue-soft.btn:active,.blue-soft.btn:focus,.blue-soft.btn:hover,.open .blue-soft.btn.dropdown-toggle{color:#FFF;background-color:#3f75a2}.blue-soft.btn.active,.blue-soft.btn:active{background-image:none;background-color:#386890}.blue-soft.btn.active:hover,.blue-soft.btn:active:hover{background-color:#3b6d97}.open .blue-soft.btn.dropdown-toggle{background-image:none}.blue-soft.btn.disabled,.blue-soft.btn.disabled.active,.blue-soft.btn.disabled:active,.blue-soft.btn.disabled:focus,.blue-soft.btn.disabled:hover,.blue-soft.btn[disabled],.blue-soft.btn[disabled].active,.blue-soft.btn[disabled]:active,.blue-soft.btn[disabled]:focus,.blue-soft.btn[disabled]:hover,fieldset[disabled] .blue-soft.btn,fieldset[disabled] .blue-soft.btn.active,fieldset[disabled] .blue-soft.btn:active,fieldset[disabled] .blue-soft.btn:focus,fieldset[disabled] .blue-soft.btn:hover{background-color:#4c87b9}.blue-soft.btn .badge{color:#4c87b9;background-color:#FFF}.portlet.blue-soft,.portlet.box.blue-soft>.portlet-title,.portlet>.portlet-body.blue-soft{background-color:#4c87b9}.btn.blue-soft-stripe{border-left:3px solid #4c87b9}.portlet.solid.blue-soft>.portlet-body,.portlet.solid.blue-soft>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-soft>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-soft>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-soft{border:1px solid #71a0c7;border-top:0}.portlet.box.blue-soft>.portlet-title>.caption,.portlet.box.blue-soft>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-soft>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #9dbdd9;color:#afc9e0}.portlet.box.blue-soft>.portlet-title>.actions .btn-default>i{color:#bad1e4}.portlet.box.blue-soft>.portlet-title>.actions .btn-default.active,.portlet.box.blue-soft>.portlet-title>.actions .btn-default:active,.portlet.box.blue-soft>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-soft>.portlet-title>.actions .btn-default:hover{border:1px solid #c1d6e7;color:#d4e2ee}.dashboard-stat.blue-soft{background-color:#4c87b9}.dashboard-stat.blue-soft.dashboard-stat-light:hover{background-color:#447dad}.dashboard-stat.blue-soft .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-soft .details .number{color:#FFF}.dashboard-stat.blue-soft .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-soft .more{color:#FFF;background-color:#447dad}.bg-blue-soft{border-color:#4c87b9!important;background-image:none!important;background-color:#4c87b9!important;color:#FFF!important}.font-blue-soft{color:#4c87b9!important}.progress-bar.blue-soft{background:#4c87b9!important;color:#FFF!important}.blue-dark.btn{color:#FFF;background-color:#5e738b;border-color:""}.blue-dark.btn.active,.blue-dark.btn:active,.blue-dark.btn:focus,.blue-dark.btn:hover,.open .blue-dark.btn.dropdown-toggle{color:#FFF;background-color:#506176}.blue-dark.btn.active,.blue-dark.btn:active{background-image:none;background-color:#455566}.blue-dark.btn.active:hover,.blue-dark.btn:active:hover{background-color:#495a6d}.open .blue-dark.btn.dropdown-toggle{background-image:none}.blue-dark.btn.disabled,.blue-dark.btn.disabled.active,.blue-dark.btn.disabled:active,.blue-dark.btn.disabled:focus,.blue-dark.btn.disabled:hover,.blue-dark.btn[disabled],.blue-dark.btn[disabled].active,.blue-dark.btn[disabled]:active,.blue-dark.btn[disabled]:focus,.blue-dark.btn[disabled]:hover,fieldset[disabled] .blue-dark.btn,fieldset[disabled] .blue-dark.btn.active,fieldset[disabled] .blue-dark.btn:active,fieldset[disabled] .blue-dark.btn:focus,fieldset[disabled] .blue-dark.btn:hover{background-color:#5e738b}.blue-dark.btn .badge{color:#5e738b;background-color:#FFF}.portlet.blue-dark,.portlet.box.blue-dark>.portlet-title,.portlet>.portlet-body.blue-dark{background-color:#5e738b}.btn.blue-dark-stripe{border-left:3px solid #5e738b}.portlet.solid.blue-dark>.portlet-body,.portlet.solid.blue-dark>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-dark>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-dark>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-dark{border:1px solid #788da4;border-top:0}.portlet.box.blue-dark>.portlet-title>.caption,.portlet.box.blue-dark>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-dark>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #9dacbd;color:#acb8c7}.portlet.box.blue-dark>.portlet-title>.actions .btn-default>i{color:#b5c0cd}.portlet.box.blue-dark>.portlet-title>.actions .btn-default.active,.portlet.box.blue-dark>.portlet-title>.actions .btn-default:active,.portlet.box.blue-dark>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-dark>.portlet-title>.actions .btn-default:hover{border:1px solid #bbc5d1;color:#cad2db}.dashboard-stat.blue-dark{background-color:#5e738b}.dashboard-stat.blue-dark.dashboard-stat-light:hover{background-color:#56697f}.dashboard-stat.blue-dark .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-dark .details .number{color:#FFF}.dashboard-stat.blue-dark .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-dark .more{color:#FFF;background-color:#56697f}.bg-blue-dark{border-color:#5e738b!important;background-image:none!important;background-color:#5e738b!important;color:#FFF!important}.font-blue-dark{color:#5e738b!important}.progress-bar.blue-dark{background:#5e738b!important;color:#FFF!important}.blue-sharp.btn{color:#FFF;background-color:#5C9BD1;border-color:""}.blue-sharp.btn.active,.blue-sharp.btn:active,.blue-sharp.btn:focus,.blue-sharp.btn:hover,.open .blue-sharp.btn.dropdown-toggle{color:#FFF;background-color:#408ac9}.blue-sharp.btn.active,.blue-sharp.btn:active{background-image:none;background-color:#357dbb}.blue-sharp.btn.active:hover,.blue-sharp.btn:active:hover{background-color:#3782c3}.open .blue-sharp.btn.dropdown-toggle{background-image:none}.blue-sharp.btn.disabled,.blue-sharp.btn.disabled.active,.blue-sharp.btn.disabled:active,.blue-sharp.btn.disabled:focus,.blue-sharp.btn.disabled:hover,.blue-sharp.btn[disabled],.blue-sharp.btn[disabled].active,.blue-sharp.btn[disabled]:active,.blue-sharp.btn[disabled]:focus,.blue-sharp.btn[disabled]:hover,fieldset[disabled] .blue-sharp.btn,fieldset[disabled] .blue-sharp.btn.active,fieldset[disabled] .blue-sharp.btn:active,fieldset[disabled] .blue-sharp.btn:focus,fieldset[disabled] .blue-sharp.btn:hover{background-color:#5C9BD1}.blue-sharp.btn .badge{color:#5C9BD1;background-color:#FFF}.portlet.blue-sharp,.portlet.box.blue-sharp>.portlet-title,.portlet>.portlet-body.blue-sharp{background-color:#5C9BD1}.btn.blue-sharp-stripe{border-left:3px solid #5C9BD1}.portlet.solid.blue-sharp>.portlet-body,.portlet.solid.blue-sharp>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-sharp>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-sharp{border:1px solid #84b3dc;border-top:0}.portlet.box.blue-sharp>.portlet-title>.caption,.portlet.box.blue-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-sharp>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #b4d1ea;color:#c7ddef}.portlet.box.blue-sharp>.portlet-title>.actions .btn-default>i{color:#d3e4f3}.portlet.box.blue-sharp>.portlet-title>.actions .btn-default.active,.portlet.box.blue-sharp>.portlet-title>.actions .btn-default:active,.portlet.box.blue-sharp>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-sharp>.portlet-title>.actions .btn-default:hover{border:1px solid #dbe9f5;color:#eff5fb}.dashboard-stat.blue-sharp{background-color:#5C9BD1}.dashboard-stat.blue-sharp.dashboard-stat-light:hover{background-color:#4c91cd}.dashboard-stat.blue-sharp .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-sharp .details .number{color:#FFF}.dashboard-stat.blue-sharp .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-sharp .more{color:#FFF;background-color:#4c91cd}.bg-blue-sharp{border-color:#5C9BD1!important;background-image:none!important;background-color:#5C9BD1!important;color:#FFF!important}.font-blue-sharp{color:#5C9BD1!important}.progress-bar.blue-sharp{background:#5C9BD1!important;color:#FFF!important}.green.btn{color:#FFF;background-color:#35aa47;border-color:""}.green.btn.active,.green.btn:active,.green.btn:focus,.green.btn:hover,.open .green.btn.dropdown-toggle{color:#FFF;background-color:#2d8f3c}.green.btn.active,.green.btn:active{background-image:none;background-color:#267b34}.green.btn.active:hover,.green.btn:active:hover{background-color:#298337}.open .green.btn.dropdown-toggle{background-image:none}.green.btn.disabled,.green.btn.disabled.active,.green.btn.disabled:active,.green.btn.disabled:focus,.green.btn.disabled:hover,.green.btn[disabled],.green.btn[disabled].active,.green.btn[disabled]:active,.green.btn[disabled]:focus,.green.btn[disabled]:hover,fieldset[disabled] .green.btn,fieldset[disabled] .green.btn.active,fieldset[disabled] .green.btn:active,fieldset[disabled] .green.btn:focus,fieldset[disabled] .green.btn:hover{background-color:#35aa47}.green.btn .badge{color:#35aa47;background-color:#FFF}.portlet.box.green>.portlet-title,.portlet.green,.portlet>.portlet-body.green{background-color:#35aa47}.btn.green-stripe{border-left:3px solid #35aa47}.portlet.solid.green>.portlet-body,.portlet.solid.green>.portlet-title{border:0;color:#FFF}.portlet.solid.green>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green{border:1px solid #4bc75e;border-top:0}.portlet.box.green>.portlet-title>.caption,.portlet.box.green>.portlet-title>.caption>i{color:#FFF}.portlet.box.green>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #7ad588;color:#8ddc99}.portlet.box.green>.portlet-title>.actions .btn-default>i{color:#99dfa4}.portlet.box.green>.portlet-title>.actions .btn-default.active,.portlet.box.green>.portlet-title>.actions .btn-default:active,.portlet.box.green>.portlet-title>.actions .btn-default:focus,.portlet.box.green>.portlet-title>.actions .btn-default:hover{border:1px solid #a1e2ab;color:#b4e8bc}.dashboard-stat.green{background-color:#35aa47}.dashboard-stat.green.dashboard-stat-light:hover{background-color:#309a41}.dashboard-stat.green .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green .details .number{color:#FFF}.dashboard-stat.green .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green .more{color:#FFF;background-color:#309a41}.bg-green{border-color:#35aa47!important;background-image:none!important;background-color:#35aa47!important;color:#FFF!important}.font-green{color:#35aa47!important}.progress-bar.green{background:#35aa47!important;color:#FFF!important}.green-meadow.btn{color:#FFF;background-color:#1BBC9B;border-color:""}.green-meadow.btn.active,.green-meadow.btn:active,.green-meadow.btn:focus,.green-meadow.btn:hover,.open .green-meadow.btn.dropdown-toggle{color:#FFF;background-color:#179d81}.green-meadow.btn.active,.green-meadow.btn:active{background-image:none;background-color:#13866f}.green-meadow.btn.active:hover,.green-meadow.btn:active:hover{background-color:#158f76}.open .green-meadow.btn.dropdown-toggle{background-image:none}.green-meadow.btn.disabled,.green-meadow.btn.disabled.active,.green-meadow.btn.disabled:active,.green-meadow.btn.disabled:focus,.green-meadow.btn.disabled:hover,.green-meadow.btn[disabled],.green-meadow.btn[disabled].active,.green-meadow.btn[disabled]:active,.green-meadow.btn[disabled]:focus,.green-meadow.btn[disabled]:hover,fieldset[disabled] .green-meadow.btn,fieldset[disabled] .green-meadow.btn.active,fieldset[disabled] .green-meadow.btn:active,fieldset[disabled] .green-meadow.btn:focus,fieldset[disabled] .green-meadow.btn:hover{background-color:#1BBC9B}.green-meadow.btn .badge{color:#1BBC9B;background-color:#FFF}.portlet.box.green-meadow>.portlet-title,.portlet.green-meadow,.portlet>.portlet-body.green-meadow{background-color:#1BBC9B}.btn.green-meadow-stripe{border-left:3px solid #1BBC9B}.portlet.solid.green-meadow>.portlet-body,.portlet.solid.green-meadow>.portlet-title{border:0;color:#FFF}.portlet.solid.green-meadow>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-meadow>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-meadow{border:1px solid #2ae0bb;border-top:0}.portlet.box.green-meadow>.portlet-title>.caption,.portlet.box.green-meadow>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-meadow>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #5fe8cc;color:#75ebd3}.portlet.box.green-meadow>.portlet-title>.actions .btn-default>i{color:#83edd7}.portlet.box.green-meadow>.portlet-title>.actions .btn-default.active,.portlet.box.green-meadow>.portlet-title>.actions .btn-default:active,.portlet.box.green-meadow>.portlet-title>.actions .btn-default:focus,.portlet.box.green-meadow>.portlet-title>.actions .btn-default:hover{border:1px solid #8ceeda;color:#a2f2e1}.dashboard-stat.green-meadow{background-color:#1BBC9B}.dashboard-stat.green-meadow.dashboard-stat-light:hover{background-color:#18aa8c}.dashboard-stat.green-meadow .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-meadow .details .number{color:#FFF}.dashboard-stat.green-meadow .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-meadow .more{color:#FFF;background-color:#18aa8c}.bg-green-meadow{border-color:#1BBC9B!important;background-image:none!important;background-color:#1BBC9B!important;color:#FFF!important}.font-green-meadow{color:#1BBC9B!important}.progress-bar.green-meadow{background:#1BBC9B!important;color:#FFF!important}.green-seagreen.btn{color:#FFF;background-color:#1BA39C;border-color:""}.green-seagreen.btn.active,.green-seagreen.btn:active,.green-seagreen.btn:focus,.green-seagreen.btn:hover,.open .green-seagreen.btn.dropdown-toggle{color:#FFF;background-color:#16847f}.green-seagreen.btn.active,.green-seagreen.btn:active{background-image:none;background-color:#126e6a}.green-seagreen.btn.active:hover,.green-seagreen.btn:active:hover{background-color:#147772}.open .green-seagreen.btn.dropdown-toggle{background-image:none}.green-seagreen.btn.disabled,.green-seagreen.btn.disabled.active,.green-seagreen.btn.disabled:active,.green-seagreen.btn.disabled:focus,.green-seagreen.btn.disabled:hover,.green-seagreen.btn[disabled],.green-seagreen.btn[disabled].active,.green-seagreen.btn[disabled]:active,.green-seagreen.btn[disabled]:focus,.green-seagreen.btn[disabled]:hover,fieldset[disabled] .green-seagreen.btn,fieldset[disabled] .green-seagreen.btn.active,fieldset[disabled] .green-seagreen.btn:active,fieldset[disabled] .green-seagreen.btn:focus,fieldset[disabled] .green-seagreen.btn:hover{background-color:#1BA39C}.green-seagreen.btn .badge{color:#1BA39C;background-color:#FFF}.portlet.box.green-seagreen>.portlet-title,.portlet.green-seagreen,.portlet>.portlet-body.green-seagreen{background-color:#1BA39C}.btn.green-seagreen-stripe{border-left:3px solid #1BA39C}.portlet.solid.green-seagreen>.portlet-body,.portlet.solid.green-seagreen>.portlet-title{border:0;color:#FFF}.portlet.solid.green-seagreen>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-seagreen>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-seagreen{border:1px solid #22cfc6;border-top:0}.portlet.box.green-seagreen>.portlet-title>.caption,.portlet.box.green-seagreen>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-seagreen>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #4de1da;color:#63e5de}.portlet.box.green-seagreen>.portlet-title>.actions .btn-default>i{color:#70e7e1}.portlet.box.green-seagreen>.portlet-title>.actions .btn-default.active,.portlet.box.green-seagreen>.portlet-title>.actions .btn-default:active,.portlet.box.green-seagreen>.portlet-title>.actions .btn-default:focus,.portlet.box.green-seagreen>.portlet-title>.actions .btn-default:hover{border:1px solid #78e9e3;color:#8eece8}.dashboard-stat.green-seagreen{background-color:#1BA39C}.dashboard-stat.green-seagreen.dashboard-stat-light:hover{background-color:#18918b}.dashboard-stat.green-seagreen .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-seagreen .details .number{color:#FFF}.dashboard-stat.green-seagreen .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-seagreen .more{color:#FFF;background-color:#18918b}.bg-green-seagreen{border-color:#1BA39C!important;background-image:none!important;background-color:#1BA39C!important;color:#FFF!important}.font-green-seagreen{color:#1BA39C!important}.progress-bar.green-seagreen{background:#1BA39C!important;color:#FFF!important}.green-turquoise.btn{color:#FFF;background-color:#36D7B7;border-color:""}.green-turquoise.btn.active,.green-turquoise.btn:active,.green-turquoise.btn:focus,.green-turquoise.btn:hover,.open .green-turquoise.btn.dropdown-toggle{color:#FFF;background-color:#27c3a4}.green-turquoise.btn.active,.green-turquoise.btn:active{background-image:none;background-color:#22ad92}.green-turquoise.btn.active:hover,.green-turquoise.btn:active:hover{background-color:#24b699}.open .green-turquoise.btn.dropdown-toggle{background-image:none}.green-turquoise.btn.disabled,.green-turquoise.btn.disabled.active,.green-turquoise.btn.disabled:active,.green-turquoise.btn.disabled:focus,.green-turquoise.btn.disabled:hover,.green-turquoise.btn[disabled],.green-turquoise.btn[disabled].active,.green-turquoise.btn[disabled]:active,.green-turquoise.btn[disabled]:focus,.green-turquoise.btn[disabled]:hover,fieldset[disabled] .green-turquoise.btn,fieldset[disabled] .green-turquoise.btn.active,fieldset[disabled] .green-turquoise.btn:active,fieldset[disabled] .green-turquoise.btn:focus,fieldset[disabled] .green-turquoise.btn:hover{background-color:#36D7B7}.green-turquoise.btn .badge{color:#36D7B7;background-color:#FFF}.portlet.box.green-turquoise>.portlet-title,.portlet.green-turquoise,.portlet>.portlet-body.green-turquoise{background-color:#36D7B7}.btn.green-turquoise-stripe{border-left:3px solid #36D7B7}.portlet.solid.green-turquoise>.portlet-body,.portlet.solid.green-turquoise>.portlet-title{border:0;color:#FFF}.portlet.solid.green-turquoise>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-turquoise>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-turquoise{border:1px solid #61dfc6;border-top:0}.portlet.box.green-turquoise>.portlet-title>.caption,.portlet.box.green-turquoise>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-turquoise>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #94ead9;color:#a9eee0}.portlet.box.green-turquoise>.portlet-title>.actions .btn-default>i{color:#b6f0e5}.portlet.box.green-turquoise>.portlet-title>.actions .btn-default.active,.portlet.box.green-turquoise>.portlet-title>.actions .btn-default:active,.portlet.box.green-turquoise>.portlet-title>.actions .btn-default:focus,.portlet.box.green-turquoise>.portlet-title>.actions .btn-default:hover{border:1px solid #bef2e8;color:#d3f6ef}.dashboard-stat.green-turquoise{background-color:#36D7B7}.dashboard-stat.green-turquoise.dashboard-stat-light:hover{background-color:#29cfae}.dashboard-stat.green-turquoise .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-turquoise .details .number{color:#FFF}.dashboard-stat.green-turquoise .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-turquoise .more{color:#FFF;background-color:#29cfae}.bg-green-turquoise{border-color:#36D7B7!important;background-image:none!important;background-color:#36D7B7!important;color:#FFF!important}.font-green-turquoise{color:#36D7B7!important}.progress-bar.green-turquoise{background:#36D7B7!important;color:#FFF!important}.green-haze.btn{color:#FFF;background-color:#44b6ae;border-color:""}.green-haze.btn.active,.green-haze.btn:active,.green-haze.btn:focus,.green-haze.btn:hover,.open .green-haze.btn.dropdown-toggle{color:#FFF;background-color:#3a9c95}.green-haze.btn.active,.green-haze.btn:active{background-image:none;background-color:#338983}.green-haze.btn.active:hover,.green-haze.btn:active:hover{background-color:#36918b}.open .green-haze.btn.dropdown-toggle{background-image:none}.green-haze.btn.disabled,.green-haze.btn.disabled.active,.green-haze.btn.disabled:active,.green-haze.btn.disabled:focus,.green-haze.btn.disabled:hover,.green-haze.btn[disabled],.green-haze.btn[disabled].active,.green-haze.btn[disabled]:active,.green-haze.btn[disabled]:focus,.green-haze.btn[disabled]:hover,fieldset[disabled] .green-haze.btn,fieldset[disabled] .green-haze.btn.active,fieldset[disabled] .green-haze.btn:active,fieldset[disabled] .green-haze.btn:focus,fieldset[disabled] .green-haze.btn:hover{background-color:#44b6ae}.green-haze.btn .badge{color:#44b6ae;background-color:#FFF}.portlet.box.green-haze>.portlet-title,.portlet.green-haze,.portlet>.portlet-body.green-haze{background-color:#44b6ae}.btn.green-haze-stripe{border-left:3px solid #44b6ae}.portlet.solid.green-haze>.portlet-body,.portlet.solid.green-haze>.portlet-title{border:0;color:#FFF}.portlet.solid.green-haze>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-haze>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-haze{border:1px solid #67c6bf;border-top:0}.portlet.box.green-haze>.portlet-title>.caption,.portlet.box.green-haze>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-haze>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #93d7d2;color:#a6deda}.portlet.box.green-haze>.portlet-title>.actions .btn-default>i{color:#b1e2de}.portlet.box.green-haze>.portlet-title>.actions .btn-default.active,.portlet.box.green-haze>.portlet-title>.actions .btn-default:active,.portlet.box.green-haze>.portlet-title>.actions .btn-default:focus,.portlet.box.green-haze>.portlet-title>.actions .btn-default:hover{border:1px solid #b9e5e2;color:#cbece9}.dashboard-stat.green-haze{background-color:#44b6ae}.dashboard-stat.green-haze.dashboard-stat-light:hover{background-color:#3ea7a0}.dashboard-stat.green-haze .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-haze .details .number{color:#FFF}.dashboard-stat.green-haze .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-haze .more{color:#FFF;background-color:#3ea7a0}.bg-green-haze{border-color:#44b6ae!important;background-image:none!important;background-color:#44b6ae!important;color:#FFF!important}.font-green-haze{color:#44b6ae!important}.progress-bar.green-haze{background:#44b6ae!important;color:#FFF!important}.green-jungle.btn{color:#FFF;background-color:#26C281;border-color:""}.green-jungle.btn.active,.green-jungle.btn:active,.green-jungle.btn:focus,.green-jungle.btn:hover,.open .green-jungle.btn.dropdown-toggle{color:#FFF;background-color:#20a46d}.green-jungle.btn.active,.green-jungle.btn:active{background-image:none;background-color:#1c8f5f}.green-jungle.btn.active:hover,.green-jungle.btn:active:hover{background-color:#1e9765}.open .green-jungle.btn.dropdown-toggle{background-image:none}.green-jungle.btn.disabled,.green-jungle.btn.disabled.active,.green-jungle.btn.disabled:active,.green-jungle.btn.disabled:focus,.green-jungle.btn.disabled:hover,.green-jungle.btn[disabled],.green-jungle.btn[disabled].active,.green-jungle.btn[disabled]:active,.green-jungle.btn[disabled]:focus,.green-jungle.btn[disabled]:hover,fieldset[disabled] .green-jungle.btn,fieldset[disabled] .green-jungle.btn.active,fieldset[disabled] .green-jungle.btn:active,fieldset[disabled] .green-jungle.btn:focus,fieldset[disabled] .green-jungle.btn:hover{background-color:#26C281}.green-jungle.btn .badge{color:#26C281;background-color:#FFF}.portlet.box.green-jungle>.portlet-title,.portlet.green-jungle,.portlet>.portlet-body.green-jungle{background-color:#26C281}.btn.green-jungle-stripe{border-left:3px solid #26C281}.portlet.solid.green-jungle>.portlet-body,.portlet.solid.green-jungle>.portlet-title{border:0;color:#FFF}.portlet.solid.green-jungle>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-jungle>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-jungle{border:1px solid #41da9a;border-top:0}.portlet.box.green-jungle>.portlet-title>.caption,.portlet.box.green-jungle>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-jungle>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #74e4b5;color:#8ae8c1}.portlet.box.green-jungle>.portlet-title>.actions .btn-default>i{color:#96ebc8}.portlet.box.green-jungle>.portlet-title>.actions .btn-default.active,.portlet.box.green-jungle>.portlet-title>.actions .btn-default:active,.portlet.box.green-jungle>.portlet-title>.actions .btn-default:focus,.portlet.box.green-jungle>.portlet-title>.actions .btn-default:hover{border:1px solid #9feccc;color:#b4f0d7}.dashboard-stat.green-jungle{background-color:#26C281}.dashboard-stat.green-jungle.dashboard-stat-light:hover{background-color:#23b176}.dashboard-stat.green-jungle .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-jungle .details .number{color:#FFF}.dashboard-stat.green-jungle .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-jungle .more{color:#FFF;background-color:#23b176}.bg-green-jungle{border-color:#26C281!important;background-image:none!important;background-color:#26C281!important;color:#FFF!important}.font-green-jungle{color:#26C281!important}.progress-bar.green-jungle{background:#26C281!important;color:#FFF!important}.green-sharp.btn{color:#FFF;background-color:#4DB3A2;border-color:""}.green-sharp.btn.active,.green-sharp.btn:active,.green-sharp.btn:focus,.green-sharp.btn:hover,.open .green-sharp.btn.dropdown-toggle{color:#FFF;background-color:#429a8c}.green-sharp.btn.active,.green-sharp.btn:active{background-image:none;background-color:#3a897b}.green-sharp.btn.active:hover,.green-sharp.btn:active:hover{background-color:#3d9082}.open .green-sharp.btn.dropdown-toggle{background-image:none}.green-sharp.btn.disabled,.green-sharp.btn.disabled.active,.green-sharp.btn.disabled:active,.green-sharp.btn.disabled:focus,.green-sharp.btn.disabled:hover,.green-sharp.btn[disabled],.green-sharp.btn[disabled].active,.green-sharp.btn[disabled]:active,.green-sharp.btn[disabled]:focus,.green-sharp.btn[disabled]:hover,fieldset[disabled] .green-sharp.btn,fieldset[disabled] .green-sharp.btn.active,fieldset[disabled] .green-sharp.btn:active,fieldset[disabled] .green-sharp.btn:focus,fieldset[disabled] .green-sharp.btn:hover{background-color:#4DB3A2}.green-sharp.btn .badge{color:#4DB3A2;background-color:#FFF}.portlet.box.green-sharp>.portlet-title,.portlet.green-sharp,.portlet>.portlet-body.green-sharp{background-color:#4DB3A2}.btn.green-sharp-stripe{border-left:3px solid #4DB3A2}.portlet.solid.green-sharp>.portlet-body,.portlet.solid.green-sharp>.portlet-title{border:0;color:#FFF}.portlet.solid.green-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-sharp>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-sharp{border:1px solid #71c2b5;border-top:0}.portlet.box.green-sharp>.portlet-title>.caption,.portlet.box.green-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-sharp>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #9cd5cb;color:#addcd4}.portlet.box.green-sharp>.portlet-title>.actions .btn-default>i{color:#b8e1da}.portlet.box.green-sharp>.portlet-title>.actions .btn-default.active,.portlet.box.green-sharp>.portlet-title>.actions .btn-default:active,.portlet.box.green-sharp>.portlet-title>.actions .btn-default:focus,.portlet.box.green-sharp>.portlet-title>.actions .btn-default:hover{border:1px solid #bfe4de;color:#d1ebe7}.dashboard-stat.green-sharp{background-color:#4DB3A2}.dashboard-stat.green-sharp.dashboard-stat-light:hover{background-color:#46a595}.dashboard-stat.green-sharp .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-sharp .details .number{color:#FFF}.dashboard-stat.green-sharp .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-sharp .more{color:#FFF;background-color:#46a595}.bg-green-sharp{border-color:#4DB3A2!important;background-image:none!important;background-color:#4DB3A2!important;color:#FFF!important}.font-green-sharp{color:#4DB3A2!important}.progress-bar.green-sharp{background:#4DB3A2!important;color:#FFF!important}.green-soft.btn{color:#FFF;background-color:#3faba4;border-color:""}.green-soft.btn.active,.green-soft.btn:active,.green-soft.btn:focus,.green-soft.btn:hover,.open .green-soft.btn.dropdown-toggle{color:#FFF;background-color:#35918b}.green-soft.btn.active,.green-soft.btn:active{background-image:none;background-color:#2f7e79}.green-soft.btn.active:hover,.green-soft.btn:active:hover{background-color:#318680}.open .green-soft.btn.dropdown-toggle{background-image:none}.green-soft.btn.disabled,.green-soft.btn.disabled.active,.green-soft.btn.disabled:active,.green-soft.btn.disabled:focus,.green-soft.btn.disabled:hover,.green-soft.btn[disabled],.green-soft.btn[disabled].active,.green-soft.btn[disabled]:active,.green-soft.btn[disabled]:focus,.green-soft.btn[disabled]:hover,fieldset[disabled] .green-soft.btn,fieldset[disabled] .green-soft.btn.active,fieldset[disabled] .green-soft.btn:active,fieldset[disabled] .green-soft.btn:focus,fieldset[disabled] .green-soft.btn:hover{background-color:#3faba4}.green-soft.btn .badge{color:#3faba4;background-color:#FFF}.portlet.box.green-soft>.portlet-title,.portlet.green-soft,.portlet>.portlet-body.green-soft{background-color:#3faba4}.btn.green-soft-stripe{border-left:3px solid #3faba4}.portlet.solid.green-soft>.portlet-body,.portlet.solid.green-soft>.portlet-title{border:0;color:#FFF}.portlet.solid.green-soft>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-soft>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-soft{border:1px solid #5bc2bc;border-top:0}.portlet.box.green-soft>.portlet-title>.caption,.portlet.box.green-soft>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-soft>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #87d3ce;color:#9adad6}.portlet.box.green-soft>.portlet-title>.actions .btn-default>i{color:#a5deda}.portlet.box.green-soft>.portlet-title>.actions .btn-default.active,.portlet.box.green-soft>.portlet-title>.actions .btn-default:active,.portlet.box.green-soft>.portlet-title>.actions .btn-default:focus,.portlet.box.green-soft>.portlet-title>.actions .btn-default:hover{border:1px solid #ade1dd;color:#bfe7e5}.dashboard-stat.green-soft{background-color:#3faba4}.dashboard-stat.green-soft.dashboard-stat-light:hover{background-color:#3a9c96}.dashboard-stat.green-soft .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-soft .details .number{color:#FFF}.dashboard-stat.green-soft .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-soft .more{color:#FFF;background-color:#3a9c96}.bg-green-soft{border-color:#3faba4!important;background-image:none!important;background-color:#3faba4!important;color:#FFF!important}.font-green-soft{color:#3faba4!important}.progress-bar.green-soft{background:#3faba4!important;color:#FFF!important}.grey.btn{color:#333;background-color:#E5E5E5;border-color:""}.grey.btn.active,.grey.btn:active,.grey.btn:focus,.grey.btn:hover,.open .grey.btn.dropdown-toggle{color:#333;background-color:#d3d3d3}.grey.btn.active,.grey.btn:active{background-image:none;background-color:#c6c6c6}.grey.btn.active:hover,.grey.btn:active:hover{background-color:#ccc}.open .grey.btn.dropdown-toggle{background-image:none}.grey.btn.disabled,.grey.btn.disabled.active,.grey.btn.disabled:active,.grey.btn.disabled:focus,.grey.btn.disabled:hover,.grey.btn[disabled],.grey.btn[disabled].active,.grey.btn[disabled]:active,.grey.btn[disabled]:focus,.grey.btn[disabled]:hover,fieldset[disabled] .grey.btn,fieldset[disabled] .grey.btn.active,fieldset[disabled] .grey.btn:active,fieldset[disabled] .grey.btn:focus,fieldset[disabled] .grey.btn:hover{background-color:#E5E5E5}.grey.btn .badge{color:#E5E5E5;background-color:#333}.portlet.box.grey>.portlet-title,.portlet.grey,.portlet>.portlet-body.grey{background-color:#E5E5E5}.btn.grey-stripe{border-left:3px solid #E5E5E5}.portlet.solid.grey>.portlet-body,.portlet.solid.grey>.portlet-title{border:0;color:#333}.portlet.solid.grey>.portlet-title>.caption>i{color:#333}.portlet.solid.grey>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey{border:1px solid #fff;border-top:0}.portlet.box.grey>.portlet-title>.caption,.portlet.box.grey>.portlet-title>.caption>i{color:#333}.portlet.box.grey>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fff;color:#fff}.portlet.box.grey>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey>.portlet-title>.actions .btn-default.active,.portlet.box.grey>.portlet-title>.actions .btn-default:active,.portlet.box.grey>.portlet-title>.actions .btn-default:focus,.portlet.box.grey>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey{background-color:#E5E5E5}.dashboard-stat.grey.dashboard-stat-light:hover{background-color:#dbdbdb}.dashboard-stat.grey .visual>i{color:#333;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey .details .number{color:#333}.dashboard-stat.grey .details .desc{color:#333;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey .more{color:#333;background-color:#dbdbdb}.bg-grey{border-color:#E5E5E5!important;background-image:none!important;background-color:#E5E5E5!important;color:#333!important}.font-grey{color:#E5E5E5!important}.progress-bar.grey{background:#E5E5E5!important;color:#333!important}.grey-steel.btn{color:#80898e;background-color:#e9edef;border-color:""}.grey-steel.btn.active,.grey-steel.btn:active,.grey-steel.btn:focus,.grey-steel.btn:hover,.open .grey-steel.btn.dropdown-toggle{color:#80898e;background-color:#d4dce0}.grey-steel.btn.active,.grey-steel.btn:active{background-image:none;background-color:#c6d0d5}.grey-steel.btn.active:hover,.grey-steel.btn:active:hover{background-color:#cbd5da}.open .grey-steel.btn.dropdown-toggle{background-image:none}.grey-steel.btn.disabled,.grey-steel.btn.disabled.active,.grey-steel.btn.disabled:active,.grey-steel.btn.disabled:focus,.grey-steel.btn.disabled:hover,.grey-steel.btn[disabled],.grey-steel.btn[disabled].active,.grey-steel.btn[disabled]:active,.grey-steel.btn[disabled]:focus,.grey-steel.btn[disabled]:hover,fieldset[disabled] .grey-steel.btn,fieldset[disabled] .grey-steel.btn.active,fieldset[disabled] .grey-steel.btn:active,fieldset[disabled] .grey-steel.btn:focus,fieldset[disabled] .grey-steel.btn:hover{background-color:#e9edef}.grey-steel.btn .badge{color:#e9edef;background-color:#80898e}.portlet.box.grey-steel>.portlet-title,.portlet.grey-steel,.portlet>.portlet-body.grey-steel{background-color:#e9edef}.btn.grey-steel-stripe{border-left:3px solid #e9edef}.portlet.solid.grey-steel>.portlet-body,.portlet.solid.grey-steel>.portlet-title{border:0;color:#80898e}.portlet.solid.grey-steel>.portlet-title>.caption>i{color:#80898e}.portlet.solid.grey-steel>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-steel{border:1px solid #fff;border-top:0}.portlet.box.grey-steel>.portlet-title>.caption,.portlet.box.grey-steel>.portlet-title>.caption>i{color:#80898e}.portlet.box.grey-steel>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fff;color:#fff}.portlet.box.grey-steel>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-steel>.portlet-title>.actions .btn-default.active,.portlet.box.grey-steel>.portlet-title>.actions .btn-default:active,.portlet.box.grey-steel>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-steel>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-steel{background-color:#e9edef}.dashboard-stat.grey-steel.dashboard-stat-light:hover{background-color:#dde3e6}.dashboard-stat.grey-steel .visual>i{color:#80898e;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-steel .details .number{color:#80898e}.dashboard-stat.grey-steel .details .desc{color:#80898e;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-steel .more{color:#80898e;background-color:#dde3e6}.bg-grey-steel{border-color:#e9edef!important;background-image:none!important;background-color:#e9edef!important;color:#80898e!important}.font-grey-steel{color:#e9edef!important}.progress-bar.grey-steel{background:#e9edef!important;color:#80898e!important}.grey-cararra.btn{color:#333;background-color:#fafafa;border-color:""}.grey-cararra.btn.active,.grey-cararra.btn:active,.grey-cararra.btn:focus,.grey-cararra.btn:hover,.open .grey-cararra.btn.dropdown-toggle{color:#333;background-color:#e8e8e8}.grey-cararra.btn.active,.grey-cararra.btn:active{background-image:none;background-color:#dbdbdb}.grey-cararra.btn.active:hover,.grey-cararra.btn:active:hover{background-color:#e1e1e1}.open .grey-cararra.btn.dropdown-toggle{background-image:none}.grey-cararra.btn.disabled,.grey-cararra.btn.disabled.active,.grey-cararra.btn.disabled:active,.grey-cararra.btn.disabled:focus,.grey-cararra.btn.disabled:hover,.grey-cararra.btn[disabled],.grey-cararra.btn[disabled].active,.grey-cararra.btn[disabled]:active,.grey-cararra.btn[disabled]:focus,.grey-cararra.btn[disabled]:hover,fieldset[disabled] .grey-cararra.btn,fieldset[disabled] .grey-cararra.btn.active,fieldset[disabled] .grey-cararra.btn:active,fieldset[disabled] .grey-cararra.btn:focus,fieldset[disabled] .grey-cararra.btn:hover{background-color:#fafafa}.grey-cararra.btn .badge{color:#fafafa;background-color:#333}.portlet.box.grey-cararra>.portlet-title,.portlet.grey-cararra,.portlet>.portlet-body.grey-cararra{background-color:#fafafa}.btn.grey-cararra-stripe{border-left:3px solid #fafafa}.portlet.solid.grey-cararra>.portlet-body,.portlet.solid.grey-cararra>.portlet-title{border:0;color:#333}.portlet.solid.grey-cararra>.portlet-title>.caption>i{color:#333}.portlet.solid.grey-cararra>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-cararra{border:1px solid #fff;border-top:0}.portlet.box.grey-cararra>.portlet-title>.caption,.portlet.box.grey-cararra>.portlet-title>.caption>i{color:#333}.portlet.box.grey-cararra>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fff;color:#fff}.portlet.box.grey-cararra>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-cararra>.portlet-title>.actions .btn-default.active,.portlet.box.grey-cararra>.portlet-title>.actions .btn-default:active,.portlet.box.grey-cararra>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-cararra>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-cararra{background-color:#fafafa}.dashboard-stat.grey-cararra.dashboard-stat-light:hover{background-color:#f0f0f0}.dashboard-stat.grey-cararra .visual>i{color:#333;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-cararra .details .number{color:#333}.dashboard-stat.grey-cararra .details .desc{color:#333;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-cararra .more{color:#333;background-color:#f0f0f0}.bg-grey-cararra{border-color:#fafafa!important;background-image:none!important;background-color:#fafafa!important;color:#333!important}.font-grey-cararra{color:#fafafa!important}.progress-bar.grey-cararra{background:#fafafa!important;color:#333!important}.grey-gallery.btn{color:#fff;background-color:#555;border-color:""}.grey-gallery.btn.active,.grey-gallery.btn:active,.grey-gallery.btn:focus,.grey-gallery.btn:hover,.open .grey-gallery.btn.dropdown-toggle{color:#fff;background-color:#434343}.grey-gallery.btn.active,.grey-gallery.btn:active{background-image:none;background-color:#363636}.grey-gallery.btn.active:hover,.grey-gallery.btn:active:hover{background-color:#3b3b3b}.open .grey-gallery.btn.dropdown-toggle{background-image:none}.grey-gallery.btn.disabled,.grey-gallery.btn.disabled.active,.grey-gallery.btn.disabled:active,.grey-gallery.btn.disabled:focus,.grey-gallery.btn.disabled:hover,.grey-gallery.btn[disabled],.grey-gallery.btn[disabled].active,.grey-gallery.btn[disabled]:active,.grey-gallery.btn[disabled]:focus,.grey-gallery.btn[disabled]:hover,fieldset[disabled] .grey-gallery.btn,fieldset[disabled] .grey-gallery.btn.active,fieldset[disabled] .grey-gallery.btn:active,fieldset[disabled] .grey-gallery.btn:focus,fieldset[disabled] .grey-gallery.btn:hover{background-color:#555}.grey-gallery.btn .badge{color:#555;background-color:#fff}.portlet.box.grey-gallery>.portlet-title,.portlet.grey-gallery,.portlet>.portlet-body.grey-gallery{background-color:#555}.btn.grey-gallery-stripe{border-left:3px solid #555}.portlet.solid.grey-gallery>.portlet-body,.portlet.solid.grey-gallery>.portlet-title{border:0;color:#fff}.portlet.solid.grey-gallery>.portlet-title>.caption>i{color:#fff}.portlet.solid.grey-gallery>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-gallery{border:1px solid #6e6e6e;border-top:0}.portlet.box.grey-gallery>.portlet-title>.caption,.portlet.box.grey-gallery>.portlet-title>.caption>i{color:#fff}.portlet.box.grey-gallery>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #8d8d8d;color:#9a9a9a}.portlet.box.grey-gallery>.portlet-title>.actions .btn-default>i{color:#a2a2a2}.portlet.box.grey-gallery>.portlet-title>.actions .btn-default.active,.portlet.box.grey-gallery>.portlet-title>.actions .btn-default:active,.portlet.box.grey-gallery>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-gallery>.portlet-title>.actions .btn-default:hover{border:1px solid #a7a7a7;color:#b3b3b3}.dashboard-stat.grey-gallery{background-color:#555}.dashboard-stat.grey-gallery.dashboard-stat-light:hover{background-color:#4b4b4b}.dashboard-stat.grey-gallery .visual>i{color:#fff;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-gallery .details .number{color:#fff}.dashboard-stat.grey-gallery .details .desc{color:#fff;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-gallery .more{color:#fff;background-color:#4b4b4b}.bg-grey-gallery{border-color:#555!important;background-image:none!important;background-color:#555!important;color:#fff!important}.font-grey-gallery{color:#555!important}.progress-bar.grey-gallery{background:#555!important;color:#fff!important}.grey-cascade.btn{color:#FFF;background-color:#95A5A6;border-color:""}.grey-cascade.btn.active,.grey-cascade.btn:active,.grey-cascade.btn:focus,.grey-cascade.btn:hover,.open .grey-cascade.btn.dropdown-toggle{color:#FFF;background-color:#829596}.grey-cascade.btn.active,.grey-cascade.btn:active{background-image:none;background-color:#74898a}.grey-cascade.btn.active:hover,.grey-cascade.btn:active:hover{background-color:#798d8f}.open .grey-cascade.btn.dropdown-toggle{background-image:none}.grey-cascade.btn.disabled,.grey-cascade.btn.disabled.active,.grey-cascade.btn.disabled:active,.grey-cascade.btn.disabled:focus,.grey-cascade.btn.disabled:hover,.grey-cascade.btn[disabled],.grey-cascade.btn[disabled].active,.grey-cascade.btn[disabled]:active,.grey-cascade.btn[disabled]:focus,.grey-cascade.btn[disabled]:hover,fieldset[disabled] .grey-cascade.btn,fieldset[disabled] .grey-cascade.btn.active,fieldset[disabled] .grey-cascade.btn:active,fieldset[disabled] .grey-cascade.btn:focus,fieldset[disabled] .grey-cascade.btn:hover{background-color:#95A5A6}.grey-cascade.btn .badge{color:#95A5A6;background-color:#FFF}.portlet.box.grey-cascade>.portlet-title,.portlet.grey-cascade,.portlet>.portlet-body.grey-cascade{background-color:#95A5A6}.btn.grey-cascade-stripe{border-left:3px solid #95A5A6}.portlet.solid.grey-cascade>.portlet-body,.portlet.solid.grey-cascade>.portlet-title{border:0;color:#FFF}.portlet.solid.grey-cascade>.portlet-title>.caption>i{color:#FFF}.portlet.solid.grey-cascade>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-cascade{border:1px solid #b1bdbd;border-top:0}.portlet.box.grey-cascade>.portlet-title>.caption,.portlet.box.grey-cascade>.portlet-title>.caption>i{color:#FFF}.portlet.box.grey-cascade>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #d2d9d9;color:#e0e5e5}.portlet.box.grey-cascade>.portlet-title>.actions .btn-default>i{color:#e8ecec}.portlet.box.grey-cascade>.portlet-title>.actions .btn-default.active,.portlet.box.grey-cascade>.portlet-title>.actions .btn-default:active,.portlet.box.grey-cascade>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-cascade>.portlet-title>.actions .btn-default:hover{border:1px solid #eef0f0;color:#fcfcfc}.dashboard-stat.grey-cascade{background-color:#95A5A6}.dashboard-stat.grey-cascade.dashboard-stat-light:hover{background-color:#8a9c9d}.dashboard-stat.grey-cascade .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-cascade .details .number{color:#FFF}.dashboard-stat.grey-cascade .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-cascade .more{color:#FFF;background-color:#8a9c9d}.bg-grey-cascade{border-color:#95A5A6!important;background-image:none!important;background-color:#95A5A6!important;color:#FFF!important}.font-grey-cascade{color:#95A5A6!important}.progress-bar.grey-cascade{background:#95A5A6!important;color:#FFF!important}.grey-silver.btn{color:#FAFCFB;background-color:#BFBFBF;border-color:""}.grey-silver.btn.active,.grey-silver.btn:active,.grey-silver.btn:focus,.grey-silver.btn:hover,.open .grey-silver.btn.dropdown-toggle{color:#FAFCFB;background-color:#adadad}.grey-silver.btn.active,.grey-silver.btn:active{background-image:none;background-color:#a0a0a0}.grey-silver.btn.active:hover,.grey-silver.btn:active:hover{background-color:#a6a6a6}.open .grey-silver.btn.dropdown-toggle{background-image:none}.grey-silver.btn.disabled,.grey-silver.btn.disabled.active,.grey-silver.btn.disabled:active,.grey-silver.btn.disabled:focus,.grey-silver.btn.disabled:hover,.grey-silver.btn[disabled],.grey-silver.btn[disabled].active,.grey-silver.btn[disabled]:active,.grey-silver.btn[disabled]:focus,.grey-silver.btn[disabled]:hover,fieldset[disabled] .grey-silver.btn,fieldset[disabled] .grey-silver.btn.active,fieldset[disabled] .grey-silver.btn:active,fieldset[disabled] .grey-silver.btn:focus,fieldset[disabled] .grey-silver.btn:hover{background-color:#BFBFBF}.grey-silver.btn .badge{color:#BFBFBF;background-color:#FAFCFB}.portlet.box.grey-silver>.portlet-title,.portlet.grey-silver,.portlet>.portlet-body.grey-silver{background-color:#BFBFBF}.btn.grey-silver-stripe{border-left:3px solid #BFBFBF}.portlet.solid.grey-silver>.portlet-body,.portlet.solid.grey-silver>.portlet-title{border:0;color:#FAFCFB}.portlet.solid.grey-silver>.portlet-title>.caption>i{color:#FAFCFB}.portlet.solid.grey-silver>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-silver{border:1px solid #d9d9d9;border-top:0}.portlet.box.grey-silver>.portlet-title>.caption,.portlet.box.grey-silver>.portlet-title>.caption>i{color:#FAFCFB}.portlet.box.grey-silver>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f7f7f7;color:#fff}.portlet.box.grey-silver>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-silver>.portlet-title>.actions .btn-default.active,.portlet.box.grey-silver>.portlet-title>.actions .btn-default:active,.portlet.box.grey-silver>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-silver>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-silver{background-color:#BFBFBF}.dashboard-stat.grey-silver.dashboard-stat-light:hover{background-color:#b5b5b5}.dashboard-stat.grey-silver .visual>i{color:#FAFCFB;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-silver .details .number{color:#FAFCFB}.dashboard-stat.grey-silver .details .desc{color:#FAFCFB;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-silver .more{color:#FAFCFB;background-color:#b5b5b5}.bg-grey-silver{border-color:#BFBFBF!important;background-image:none!important;background-color:#BFBFBF!important;color:#FAFCFB!important}.font-grey-silver{color:#BFBFBF!important}.progress-bar.grey-silver{background:#BFBFBF!important;color:#FAFCFB!important}.grey-salsa.btn{color:#FAFCFB;background-color:#ACB5C3;border-color:""}.grey-salsa.btn.active,.grey-salsa.btn:active,.grey-salsa.btn:focus,.grey-salsa.btn:hover,.open .grey-salsa.btn.dropdown-toggle{color:#FAFCFB;background-color:#97a3b4}.grey-salsa.btn.active,.grey-salsa.btn:active{background-image:none;background-color:#8895a9}.grey-salsa.btn.active:hover,.grey-salsa.btn:active:hover{background-color:#8e9bae}.open .grey-salsa.btn.dropdown-toggle{background-image:none}.grey-salsa.btn.disabled,.grey-salsa.btn.disabled.active,.grey-salsa.btn.disabled:active,.grey-salsa.btn.disabled:focus,.grey-salsa.btn.disabled:hover,.grey-salsa.btn[disabled],.grey-salsa.btn[disabled].active,.grey-salsa.btn[disabled]:active,.grey-salsa.btn[disabled]:focus,.grey-salsa.btn[disabled]:hover,fieldset[disabled] .grey-salsa.btn,fieldset[disabled] .grey-salsa.btn.active,fieldset[disabled] .grey-salsa.btn:active,fieldset[disabled] .grey-salsa.btn:focus,fieldset[disabled] .grey-salsa.btn:hover{background-color:#ACB5C3}.grey-salsa.btn .badge{color:#ACB5C3;background-color:#FAFCFB}.portlet.box.grey-salsa>.portlet-title,.portlet.grey-salsa,.portlet>.portlet-body.grey-salsa{background-color:#ACB5C3}.btn.grey-salsa-stripe{border-left:3px solid #ACB5C3}.portlet.solid.grey-salsa>.portlet-body,.portlet.solid.grey-salsa>.portlet-title{border:0;color:#FAFCFB}.portlet.solid.grey-salsa>.portlet-title>.caption>i{color:#FAFCFB}.portlet.solid.grey-salsa>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-salsa{border:1px solid #cacfd8;border-top:0}.portlet.box.grey-salsa>.portlet-title>.caption,.portlet.box.grey-salsa>.portlet-title>.caption>i{color:#FAFCFB}.portlet.box.grey-salsa>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #edeff2;color:#fcfcfd}.portlet.box.grey-salsa>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-salsa>.portlet-title>.actions .btn-default.active,.portlet.box.grey-salsa>.portlet-title>.actions .btn-default:active,.portlet.box.grey-salsa>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-salsa>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-salsa{background-color:#ACB5C3}.dashboard-stat.grey-salsa.dashboard-stat-light:hover{background-color:#a0aaba}.dashboard-stat.grey-salsa .visual>i{color:#FAFCFB;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-salsa .details .number{color:#FAFCFB}.dashboard-stat.grey-salsa .details .desc{color:#FAFCFB;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-salsa .more{color:#FAFCFB;background-color:#a0aaba}.bg-grey-salsa{border-color:#ACB5C3!important;background-image:none!important;background-color:#ACB5C3!important;color:#FAFCFB!important}.font-grey-salsa{color:#ACB5C3!important}.progress-bar.grey-salsa{background:#ACB5C3!important;color:#FAFCFB!important}.grey-salt.btn{color:#FAFCFB;background-color:#bfcad1;border-color:""}.grey-salt.btn.active,.grey-salt.btn:active,.grey-salt.btn:focus,.grey-salt.btn:hover,.open .grey-salt.btn.dropdown-toggle{color:#FAFCFB;background-color:#aab9c2}.grey-salt.btn.active,.grey-salt.btn:active{background-image:none;background-color:#9badb7}.grey-salt.btn.active:hover,.grey-salt.btn:active:hover{background-color:#a1b1bc}.open .grey-salt.btn.dropdown-toggle{background-image:none}.grey-salt.btn.disabled,.grey-salt.btn.disabled.active,.grey-salt.btn.disabled:active,.grey-salt.btn.disabled:focus,.grey-salt.btn.disabled:hover,.grey-salt.btn[disabled],.grey-salt.btn[disabled].active,.grey-salt.btn[disabled]:active,.grey-salt.btn[disabled]:focus,.grey-salt.btn[disabled]:hover,fieldset[disabled] .grey-salt.btn,fieldset[disabled] .grey-salt.btn.active,fieldset[disabled] .grey-salt.btn:active,fieldset[disabled] .grey-salt.btn:focus,fieldset[disabled] .grey-salt.btn:hover{background-color:#bfcad1}.grey-salt.btn .badge{color:#bfcad1;background-color:#FAFCFB}.portlet.box.grey-salt>.portlet-title,.portlet.grey-salt,.portlet>.portlet-body.grey-salt{background-color:#bfcad1}.btn.grey-salt-stripe{border-left:3px solid #bfcad1}.portlet.solid.grey-salt>.portlet-body,.portlet.solid.grey-salt>.portlet-title{border:0;color:#FAFCFB}.portlet.solid.grey-salt>.portlet-title>.caption>i{color:#FAFCFB}.portlet.solid.grey-salt>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-salt{border:1px solid #dde3e6;border-top:0}.portlet.box.grey-salt>.portlet-title>.caption,.portlet.box.grey-salt>.portlet-title>.caption>i{color:#FAFCFB}.portlet.box.grey-salt>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fff;color:#fff}.portlet.box.grey-salt>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-salt>.portlet-title>.actions .btn-default.active,.portlet.box.grey-salt>.portlet-title>.actions .btn-default:active,.portlet.box.grey-salt>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-salt>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-salt{background-color:#bfcad1}.dashboard-stat.grey-salt.dashboard-stat-light:hover{background-color:#b3c0c8}.dashboard-stat.grey-salt .visual>i{color:#FAFCFB;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-salt .details .number{color:#FAFCFB}.dashboard-stat.grey-salt .details .desc{color:#FAFCFB;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-salt .more{color:#FAFCFB;background-color:#b3c0c8}.bg-grey-salt{border-color:#bfcad1!important;background-image:none!important;background-color:#bfcad1!important;color:#FAFCFB!important}.font-grey-salt{color:#bfcad1!important}.progress-bar.grey-salt{background:#bfcad1!important;color:#FAFCFB!important}.grey-mint.btn{color:#FAFCFB;background-color:#9eacb4;border-color:""}.grey-mint.btn.active,.grey-mint.btn:active,.grey-mint.btn:focus,.grey-mint.btn:hover,.open .grey-mint.btn.dropdown-toggle{color:#FAFCFB;background-color:#8a9ba4}.grey-mint.btn.active,.grey-mint.btn:active{background-image:none;background-color:#7b8e99}.grey-mint.btn.active:hover,.grey-mint.btn:active:hover{background-color:#81939e}.open .grey-mint.btn.dropdown-toggle{background-image:none}.grey-mint.btn.disabled,.grey-mint.btn.disabled.active,.grey-mint.btn.disabled:active,.grey-mint.btn.disabled:focus,.grey-mint.btn.disabled:hover,.grey-mint.btn[disabled],.grey-mint.btn[disabled].active,.grey-mint.btn[disabled]:active,.grey-mint.btn[disabled]:focus,.grey-mint.btn[disabled]:hover,fieldset[disabled] .grey-mint.btn,fieldset[disabled] .grey-mint.btn.active,fieldset[disabled] .grey-mint.btn:active,fieldset[disabled] .grey-mint.btn:focus,fieldset[disabled] .grey-mint.btn:hover{background-color:#9eacb4}.grey-mint.btn .badge{color:#9eacb4;background-color:#FAFCFB}.portlet.box.grey-mint>.portlet-title,.portlet.grey-mint,.portlet>.portlet-body.grey-mint{background-color:#9eacb4}.btn.grey-mint-stripe{border-left:3px solid #9eacb4}.portlet.solid.grey-mint>.portlet-body,.portlet.solid.grey-mint>.portlet-title{border:0;color:#FAFCFB}.portlet.solid.grey-mint>.portlet-title>.caption>i{color:#FAFCFB}.portlet.solid.grey-mint>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-mint{border:1px solid #bbc5ca;border-top:0}.portlet.box.grey-mint>.portlet-title>.caption,.portlet.box.grey-mint>.portlet-title>.caption>i{color:#FAFCFB}.portlet.box.grey-mint>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #dde2e5;color:#eceef0}.portlet.box.grey-mint>.portlet-title>.actions .btn-default>i{color:#f4f6f7}.portlet.box.grey-mint>.portlet-title>.actions .btn-default.active,.portlet.box.grey-mint>.portlet-title>.actions .btn-default:active,.portlet.box.grey-mint>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-mint>.portlet-title>.actions .btn-default:hover{border:1px solid #fafbfb;color:#fff}.dashboard-stat.grey-mint{background-color:#9eacb4}.dashboard-stat.grey-mint.dashboard-stat-light:hover{background-color:#92a2ab}.dashboard-stat.grey-mint .visual>i{color:#FAFCFB;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-mint .details .number{color:#FAFCFB}.dashboard-stat.grey-mint .details .desc{color:#FAFCFB;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-mint .more{color:#FAFCFB;background-color:#92a2ab}.bg-grey-mint{border-color:#9eacb4!important;background-image:none!important;background-color:#9eacb4!important;color:#FAFCFB!important}.font-grey-mint{color:#9eacb4!important}.progress-bar.grey-mint{background:#9eacb4!important;color:#FAFCFB!important}.red.btn{color:#FFF;background-color:#d84a38;border-color:""}.open .red.btn.dropdown-toggle,.red.btn.active,.red.btn:active,.red.btn:focus,.red.btn:hover{color:#FFF;background-color:#c63927}.red.btn.active,.red.btn:active{background-image:none;background-color:#b03223}.red.btn.active:hover,.red.btn:active:hover{background-color:#b93524}.open .red.btn.dropdown-toggle{background-image:none}.red.btn.disabled,.red.btn.disabled.active,.red.btn.disabled:active,.red.btn.disabled:focus,.red.btn.disabled:hover,.red.btn[disabled],.red.btn[disabled].active,.red.btn[disabled]:active,.red.btn[disabled]:focus,.red.btn[disabled]:hover,fieldset[disabled] .red.btn,fieldset[disabled] .red.btn.active,fieldset[disabled] .red.btn:active,fieldset[disabled] .red.btn:focus,fieldset[disabled] .red.btn:hover{background-color:#d84a38}.red.btn .badge{color:#d84a38;background-color:#FFF}.portlet.box.red>.portlet-title,.portlet.red,.portlet>.portlet-body.red{background-color:#d84a38}.btn.red-stripe{border-left:3px solid #d84a38}.portlet.solid.red>.portlet-body,.portlet.solid.red>.portlet-title{border:0;color:#FFF}.portlet.solid.red>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red{border:1px solid #e07163;border-top:0}.portlet.box.red>.portlet-title>.caption,.portlet.box.red>.portlet-title>.caption>i{color:#FFF}.portlet.box.red>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #ea9f96;color:#efb3ab}.portlet.box.red>.portlet-title>.actions .btn-default>i{color:#f1beb8}.portlet.box.red>.portlet-title>.actions .btn-default.active,.portlet.box.red>.portlet-title>.actions .btn-default:active,.portlet.box.red>.portlet-title>.actions .btn-default:focus,.portlet.box.red>.portlet-title>.actions .btn-default:hover{border:1px solid #f3c6c0;color:#f7dad6}.dashboard-stat.red{background-color:#d84a38}.dashboard-stat.red.dashboard-stat-light:hover{background-color:#d23c29}.dashboard-stat.red .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red .details .number{color:#FFF}.dashboard-stat.red .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red .more{color:#FFF;background-color:#d23c29}.bg-red{border-color:#d84a38!important;background-image:none!important;background-color:#d84a38!important;color:#FFF!important}.font-red{color:#d84a38!important}.progress-bar.red{background:#d84a38!important;color:#FFF!important}.red-pink.btn{color:#FFF;background-color:#E08283;border-color:""}.open .red-pink.btn.dropdown-toggle,.red-pink.btn.active,.red-pink.btn:active,.red-pink.btn:focus,.red-pink.btn:hover{color:#FFF;background-color:#d96567}.red-pink.btn.active,.red-pink.btn:active{background-image:none;background-color:#d45152}.red-pink.btn.active:hover,.red-pink.btn:active:hover{background-color:#d6595a}.open .red-pink.btn.dropdown-toggle{background-image:none}.red-pink.btn.disabled,.red-pink.btn.disabled.active,.red-pink.btn.disabled:active,.red-pink.btn.disabled:focus,.red-pink.btn.disabled:hover,.red-pink.btn[disabled],.red-pink.btn[disabled].active,.red-pink.btn[disabled]:active,.red-pink.btn[disabled]:focus,.red-pink.btn[disabled]:hover,fieldset[disabled] .red-pink.btn,fieldset[disabled] .red-pink.btn.active,fieldset[disabled] .red-pink.btn:active,fieldset[disabled] .red-pink.btn:focus,fieldset[disabled] .red-pink.btn:hover{background-color:#E08283}.red-pink.btn .badge{color:#E08283;background-color:#FFF}.portlet.box.red-pink>.portlet-title,.portlet.red-pink,.portlet>.portlet-body.red-pink{background-color:#E08283}.btn.red-pink-stripe{border-left:3px solid #E08283}.portlet.solid.red-pink>.portlet-body,.portlet.solid.red-pink>.portlet-title{border:0;color:#FFF}.portlet.solid.red-pink>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-pink>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-pink{border:1px solid #eaabac;border-top:0}.portlet.box.red-pink>.portlet-title>.caption,.portlet.box.red-pink>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-pink>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f6dcdc;color:#fbf0f0}.portlet.box.red-pink>.portlet-title>.actions .btn-default>i{color:#fefdfd}.portlet.box.red-pink>.portlet-title>.actions .btn-default.active,.portlet.box.red-pink>.portlet-title>.actions .btn-default:active,.portlet.box.red-pink>.portlet-title>.actions .btn-default:focus,.portlet.box.red-pink>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.red-pink{background-color:#E08283}.dashboard-stat.red-pink.dashboard-stat-light:hover{background-color:#dc7273}.dashboard-stat.red-pink .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-pink .details .number{color:#FFF}.dashboard-stat.red-pink .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-pink .more{color:#FFF;background-color:#dc7273}.bg-red-pink{border-color:#E08283!important;background-image:none!important;background-color:#E08283!important;color:#FFF!important}.font-red-pink{color:#E08283!important}.progress-bar.red-pink{background:#E08283!important;color:#FFF!important}.red-sunglo.btn{color:#FFF;background-color:#E26A6A;border-color:""}.open .red-sunglo.btn.dropdown-toggle,.red-sunglo.btn.active,.red-sunglo.btn:active,.red-sunglo.btn:focus,.red-sunglo.btn:hover{color:#FFF;background-color:#dc4c4c}.red-sunglo.btn.active,.red-sunglo.btn:active{background-image:none;background-color:#d83737}.red-sunglo.btn.active:hover,.red-sunglo.btn:active:hover{background-color:#da3f3f}.open .red-sunglo.btn.dropdown-toggle{background-image:none}.red-sunglo.btn.disabled,.red-sunglo.btn.disabled.active,.red-sunglo.btn.disabled:active,.red-sunglo.btn.disabled:focus,.red-sunglo.btn.disabled:hover,.red-sunglo.btn[disabled],.red-sunglo.btn[disabled].active,.red-sunglo.btn[disabled]:active,.red-sunglo.btn[disabled]:focus,.red-sunglo.btn[disabled]:hover,fieldset[disabled] .red-sunglo.btn,fieldset[disabled] .red-sunglo.btn.active,fieldset[disabled] .red-sunglo.btn:active,fieldset[disabled] .red-sunglo.btn:focus,fieldset[disabled] .red-sunglo.btn:hover{background-color:#E26A6A}.red-sunglo.btn .badge{color:#E26A6A;background-color:#FFF}.portlet.box.red-sunglo>.portlet-title,.portlet.red-sunglo,.portlet>.portlet-body.red-sunglo{background-color:#E26A6A}.btn.red-sunglo-stripe{border-left:3px solid #E26A6A}.portlet.solid.red-sunglo>.portlet-body,.portlet.solid.red-sunglo>.portlet-title{border:0;color:#FFF}.portlet.solid.red-sunglo>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-sunglo>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-sunglo{border:1px solid #ea9595;border-top:0}.portlet.box.red-sunglo>.portlet-title>.caption,.portlet.box.red-sunglo>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-sunglo>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f4c8c8;color:#f8dddd}.portlet.box.red-sunglo>.portlet-title>.actions .btn-default>i{color:#fbeaea}.portlet.box.red-sunglo>.portlet-title>.actions .btn-default.active,.portlet.box.red-sunglo>.portlet-title>.actions .btn-default:active,.portlet.box.red-sunglo>.portlet-title>.actions .btn-default:focus,.portlet.box.red-sunglo>.portlet-title>.actions .btn-default:hover{border:1px solid #fdf3f3;color:#fff}.dashboard-stat.red-sunglo{background-color:#E26A6A}.dashboard-stat.red-sunglo.dashboard-stat-light:hover{background-color:#df5959}.dashboard-stat.red-sunglo .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-sunglo .details .number{color:#FFF}.dashboard-stat.red-sunglo .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-sunglo .more{color:#FFF;background-color:#df5959}.bg-red-sunglo{border-color:#E26A6A!important;background-image:none!important;background-color:#E26A6A!important;color:#FFF!important}.font-red-sunglo{color:#E26A6A!important}.progress-bar.red-sunglo{background:#E26A6A!important;color:#FFF!important}.red-intense.btn{color:#FFF;background-color:#e35b5a;border-color:""}.open .red-intense.btn.dropdown-toggle,.red-intense.btn.active,.red-intense.btn:active,.red-intense.btn:focus,.red-intense.btn:hover{color:#FFF;background-color:#de3d3b}.red-intense.btn.active,.red-intense.btn:active{background-image:none;background-color:#da2726}.red-intense.btn.active:hover,.red-intense.btn:active:hover{background-color:#dc302e}.open .red-intense.btn.dropdown-toggle{background-image:none}.red-intense.btn.disabled,.red-intense.btn.disabled.active,.red-intense.btn.disabled:active,.red-intense.btn.disabled:focus,.red-intense.btn.disabled:hover,.red-intense.btn[disabled],.red-intense.btn[disabled].active,.red-intense.btn[disabled]:active,.red-intense.btn[disabled]:focus,.red-intense.btn[disabled]:hover,fieldset[disabled] .red-intense.btn,fieldset[disabled] .red-intense.btn.active,fieldset[disabled] .red-intense.btn:active,fieldset[disabled] .red-intense.btn:focus,fieldset[disabled] .red-intense.btn:hover{background-color:#e35b5a}.red-intense.btn .badge{color:#e35b5a;background-color:#FFF}.portlet.box.red-intense>.portlet-title,.portlet.red-intense,.portlet>.portlet-body.red-intense{background-color:#e35b5a}.btn.red-intense-stripe{border-left:3px solid #e35b5a}.portlet.solid.red-intense>.portlet-body,.portlet.solid.red-intense>.portlet-title{border:0;color:#FFF}.portlet.solid.red-intense>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-intense>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-intense{border:1px solid #ea8686;border-top:0}.portlet.box.red-intense>.portlet-title>.caption,.portlet.box.red-intense>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-intense>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f3baba;color:#f7d0d0}.portlet.box.red-intense>.portlet-title>.actions .btn-default>i{color:#f9dddd}.portlet.box.red-intense>.portlet-title>.actions .btn-default.active,.portlet.box.red-intense>.portlet-title>.actions .btn-default:active,.portlet.box.red-intense>.portlet-title>.actions .btn-default:focus,.portlet.box.red-intense>.portlet-title>.actions .btn-default:hover{border:1px solid #fbe6e6;color:#fefbfb}.dashboard-stat.red-intense{background-color:#e35b5a}.dashboard-stat.red-intense.dashboard-stat-light:hover{background-color:#e04a49}.dashboard-stat.red-intense .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-intense .details .number{color:#FFF}.dashboard-stat.red-intense .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-intense .more{color:#FFF;background-color:#e04a49}.bg-red-intense{border-color:#e35b5a!important;background-image:none!important;background-color:#e35b5a!important;color:#FFF!important}.font-red-intense{color:#e35b5a!important}.progress-bar.red-intense{background:#e35b5a!important;color:#FFF!important}.red-thunderbird.btn{color:#FFF;background-color:#D91E18;border-color:""}.open .red-thunderbird.btn.dropdown-toggle,.red-thunderbird.btn.active,.red-thunderbird.btn:active,.red-thunderbird.btn:focus,.red-thunderbird.btn:hover{color:#FFF;background-color:#b91a14}.red-thunderbird.btn.active,.red-thunderbird.btn:active{background-image:none;background-color:#a21612}.red-thunderbird.btn.active:hover,.red-thunderbird.btn:active:hover{background-color:#ab1813}.open .red-thunderbird.btn.dropdown-toggle{background-image:none}.red-thunderbird.btn.disabled,.red-thunderbird.btn.disabled.active,.red-thunderbird.btn.disabled:active,.red-thunderbird.btn.disabled:focus,.red-thunderbird.btn.disabled:hover,.red-thunderbird.btn[disabled],.red-thunderbird.btn[disabled].active,.red-thunderbird.btn[disabled]:active,.red-thunderbird.btn[disabled]:focus,.red-thunderbird.btn[disabled]:hover,fieldset[disabled] .red-thunderbird.btn,fieldset[disabled] .red-thunderbird.btn.active,fieldset[disabled] .red-thunderbird.btn:active,fieldset[disabled] .red-thunderbird.btn:focus,fieldset[disabled] .red-thunderbird.btn:hover{background-color:#D91E18}.red-thunderbird.btn .badge{color:#D91E18;background-color:#FFF}.portlet.box.red-thunderbird>.portlet-title,.portlet.red-thunderbird,.portlet>.portlet-body.red-thunderbird{background-color:#D91E18}.btn.red-thunderbird-stripe{border-left:3px solid #D91E18}.portlet.solid.red-thunderbird>.portlet-body,.portlet.solid.red-thunderbird>.portlet-title{border:0;color:#FFF}.portlet.solid.red-thunderbird>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-thunderbird{border:1px solid #e9403b;border-top:0}.portlet.box.red-thunderbird>.portlet-title>.caption,.portlet.box.red-thunderbird>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #ef7672;color:#f28c89}.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default>i{color:#f39997}.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default.active,.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default:active,.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default:focus,.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default:hover{border:1px solid #f4a2a0;color:#f7b9b7}.dashboard-stat.red-thunderbird{background-color:#D91E18}.dashboard-stat.red-thunderbird.dashboard-stat-light:hover{background-color:#c71b16}.dashboard-stat.red-thunderbird .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-thunderbird .details .number{color:#FFF}.dashboard-stat.red-thunderbird .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-thunderbird .more{color:#FFF;background-color:#c71b16}.bg-red-thunderbird{border-color:#D91E18!important;background-image:none!important;background-color:#D91E18!important;color:#FFF!important}.font-red-thunderbird{color:#D91E18!important}.progress-bar.red-thunderbird{background:#D91E18!important;color:#FFF!important}.red-flamingo.btn{color:#FFF;background-color:#EF4836;border-color:""}.open .red-flamingo.btn.dropdown-toggle,.red-flamingo.btn.active,.red-flamingo.btn:active,.red-flamingo.btn:focus,.red-flamingo.btn:hover{color:#FFF;background-color:#ec2a15}.red-flamingo.btn.active,.red-flamingo.btn:active{background-image:none;background-color:#d72411}.red-flamingo.btn.active:hover,.red-flamingo.btn:active:hover{background-color:#e02612}.open .red-flamingo.btn.dropdown-toggle{background-image:none}.red-flamingo.btn.disabled,.red-flamingo.btn.disabled.active,.red-flamingo.btn.disabled:active,.red-flamingo.btn.disabled:focus,.red-flamingo.btn.disabled:hover,.red-flamingo.btn[disabled],.red-flamingo.btn[disabled].active,.red-flamingo.btn[disabled]:active,.red-flamingo.btn[disabled]:focus,.red-flamingo.btn[disabled]:hover,fieldset[disabled] .red-flamingo.btn,fieldset[disabled] .red-flamingo.btn.active,fieldset[disabled] .red-flamingo.btn:active,fieldset[disabled] .red-flamingo.btn:focus,fieldset[disabled] .red-flamingo.btn:hover{background-color:#EF4836}.red-flamingo.btn .badge{color:#EF4836;background-color:#FFF}.portlet.box.red-flamingo>.portlet-title,.portlet.red-flamingo,.portlet>.portlet-body.red-flamingo{background-color:#EF4836}.btn.red-flamingo-stripe{border-left:3px solid #EF4836}.portlet.solid.red-flamingo>.portlet-body,.portlet.solid.red-flamingo>.portlet-title{border:0;color:#FFF}.portlet.solid.red-flamingo>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-flamingo>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-flamingo{border:1px solid #f37365;border-top:0}.portlet.box.red-flamingo>.portlet-title>.caption,.portlet.box.red-flamingo>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-flamingo>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f7a79e;color:#f9bcb6}.portlet.box.red-flamingo>.portlet-title>.actions .btn-default>i{color:#fac9c4}.portlet.box.red-flamingo>.portlet-title>.actions .btn-default.active,.portlet.box.red-flamingo>.portlet-title>.actions .btn-default:active,.portlet.box.red-flamingo>.portlet-title>.actions .btn-default:focus,.portlet.box.red-flamingo>.portlet-title>.actions .btn-default:hover{border:1px solid #fbd2cd;color:#fde7e5}.dashboard-stat.red-flamingo{background-color:#EF4836}.dashboard-stat.red-flamingo.dashboard-stat-light:hover{background-color:#ed3723}.dashboard-stat.red-flamingo .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-flamingo .details .number{color:#FFF}.dashboard-stat.red-flamingo .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-flamingo .more{color:#FFF;background-color:#ed3723}.bg-red-flamingo{border-color:#EF4836!important;background-image:none!important;background-color:#EF4836!important;color:#FFF!important}.font-red-flamingo{color:#EF4836!important}.progress-bar.red-flamingo{background:#EF4836!important;color:#FFF!important}.red-soft.btn{color:#FFF;background-color:#d05454;border-color:""}.open .red-soft.btn.dropdown-toggle,.red-soft.btn.active,.red-soft.btn:active,.red-soft.btn:focus,.red-soft.btn:hover{color:#FFF;background-color:#c83838}.red-soft.btn.active,.red-soft.btn:active{background-image:none;background-color:#b53232}.red-soft.btn.active:hover,.red-soft.btn:active:hover{background-color:#bd3434}.open .red-soft.btn.dropdown-toggle{background-image:none}.red-soft.btn.disabled,.red-soft.btn.disabled.active,.red-soft.btn.disabled:active,.red-soft.btn.disabled:focus,.red-soft.btn.disabled:hover,.red-soft.btn[disabled],.red-soft.btn[disabled].active,.red-soft.btn[disabled]:active,.red-soft.btn[disabled]:focus,.red-soft.btn[disabled]:hover,fieldset[disabled] .red-soft.btn,fieldset[disabled] .red-soft.btn.active,fieldset[disabled] .red-soft.btn:active,fieldset[disabled] .red-soft.btn:focus,fieldset[disabled] .red-soft.btn:hover{background-color:#d05454}.red-soft.btn .badge{color:#d05454;background-color:#FFF}.portlet.box.red-soft>.portlet-title,.portlet.red-soft,.portlet>.portlet-body.red-soft{background-color:#d05454}.btn.red-soft-stripe{border-left:3px solid #d05454}.portlet.solid.red-soft>.portlet-body,.portlet.solid.red-soft>.portlet-title{border:0;color:#FFF}.portlet.solid.red-soft>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-soft>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-soft{border:1px solid #db7c7c;border-top:0}.portlet.box.red-soft>.portlet-title>.caption,.portlet.box.red-soft>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-soft>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #e8acac;color:#eec0c0}.portlet.box.red-soft>.portlet-title>.actions .btn-default>i{color:#f1cccc}.portlet.box.red-soft>.portlet-title>.actions .btn-default.active,.portlet.box.red-soft>.portlet-title>.actions .btn-default:active,.portlet.box.red-soft>.portlet-title>.actions .btn-default:focus,.portlet.box.red-soft>.portlet-title>.actions .btn-default:hover{border:1px solid #f3d4d4;color:#f9e8e8}.dashboard-stat.red-soft{background-color:#d05454}.dashboard-stat.red-soft.dashboard-stat-light:hover{background-color:#c44}.dashboard-stat.red-soft .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-soft .details .number{color:#FFF}.dashboard-stat.red-soft .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-soft .more{color:#FFF;background-color:#c44}.bg-red-soft{border-color:#d05454!important;background-image:none!important;background-color:#d05454!important;color:#FFF!important}.font-red-soft{color:#d05454!important}.progress-bar.red-soft{background:#d05454!important;color:#FFF!important}.red-haze.btn{color:#FFF;background-color:#f36a5a;border-color:""}.open .red-haze.btn.dropdown-toggle,.red-haze.btn.active,.red-haze.btn:active,.red-haze.btn:focus,.red-haze.btn:hover{color:#FFF;background-color:#f14c39}.red-haze.btn.active,.red-haze.btn:active{background-image:none;background-color:#ef3621}.red-haze.btn.active:hover,.red-haze.btn:active:hover{background-color:#f03f2a}.open .red-haze.btn.dropdown-toggle{background-image:none}.red-haze.btn.disabled,.red-haze.btn.disabled.active,.red-haze.btn.disabled:active,.red-haze.btn.disabled:focus,.red-haze.btn.disabled:hover,.red-haze.btn[disabled],.red-haze.btn[disabled].active,.red-haze.btn[disabled]:active,.red-haze.btn[disabled]:focus,.red-haze.btn[disabled]:hover,fieldset[disabled] .red-haze.btn,fieldset[disabled] .red-haze.btn.active,fieldset[disabled] .red-haze.btn:active,fieldset[disabled] .red-haze.btn:focus,fieldset[disabled] .red-haze.btn:hover{background-color:#f36a5a}.red-haze.btn .badge{color:#f36a5a;background-color:#FFF}.portlet.box.red-haze>.portlet-title,.portlet.red-haze,.portlet>.portlet-body.red-haze{background-color:#f36a5a}.btn.red-haze-stripe{border-left:3px solid #f36a5a}.portlet.solid.red-haze>.portlet-body,.portlet.solid.red-haze>.portlet-title{border:0;color:#FFF}.portlet.solid.red-haze>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-haze>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-haze{border:1px solid #f6958a;border-top:0}.portlet.box.red-haze>.portlet-title>.caption,.portlet.box.red-haze>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-haze>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fbc8c3;color:#fcdeda}.portlet.box.red-haze>.portlet-title>.actions .btn-default>i{color:#fdebe9}.portlet.box.red-haze>.portlet-title>.actions .btn-default.active,.portlet.box.red-haze>.portlet-title>.actions .btn-default:active,.portlet.box.red-haze>.portlet-title>.actions .btn-default:focus,.portlet.box.red-haze>.portlet-title>.actions .btn-default:hover{border:1px solid #fef3f2;color:#fff}.dashboard-stat.red-haze{background-color:#f36a5a}.dashboard-stat.red-haze.dashboard-stat-light:hover{background-color:#f25947}.dashboard-stat.red-haze .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-haze .details .number{color:#FFF}.dashboard-stat.red-haze .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-haze .more{color:#FFF;background-color:#f25947}.bg-red-haze{border-color:#f36a5a!important;background-image:none!important;background-color:#f36a5a!important;color:#FFF!important}.font-red-haze{color:#f36a5a!important}.progress-bar.red-haze{background:#f36a5a!important;color:#FFF!important}.yellow.btn{color:#FFF;background-color:#FFB848;border-color:""}.open .yellow.btn.dropdown-toggle,.yellow.btn.active,.yellow.btn:active,.yellow.btn:focus,.yellow.btn:hover{color:#FFF;background-color:#ffaa24}.yellow.btn.active,.yellow.btn:active{background-image:none;background-color:#ffa00b}.yellow.btn.active:hover,.yellow.btn:active:hover{background-color:#ffa415}.open .yellow.btn.dropdown-toggle{background-image:none}.yellow.btn.disabled,.yellow.btn.disabled.active,.yellow.btn.disabled:active,.yellow.btn.disabled:focus,.yellow.btn.disabled:hover,.yellow.btn[disabled],.yellow.btn[disabled].active,.yellow.btn[disabled]:active,.yellow.btn[disabled]:focus,.yellow.btn[disabled]:hover,fieldset[disabled] .yellow.btn,fieldset[disabled] .yellow.btn.active,fieldset[disabled] .yellow.btn:active,fieldset[disabled] .yellow.btn:focus,fieldset[disabled] .yellow.btn:hover{background-color:#FFB848}.yellow.btn .badge{color:#FFB848;background-color:#FFF}.portlet.box.yellow>.portlet-title,.portlet.yellow,.portlet>.portlet-body.yellow{background-color:#FFB848}.btn.yellow-stripe{border-left:3px solid #FFB848}.portlet.solid.yellow>.portlet-body,.portlet.solid.yellow>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow{border:1px solid #ffcc7b;border-top:0}.portlet.box.yellow>.portlet-title>.caption,.portlet.box.yellow>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #ffe4b8;color:#ffedd2}.portlet.box.yellow>.portlet-title>.actions .btn-default>i{color:#fff3e1}.portlet.box.yellow>.portlet-title>.actions .btn-default.active,.portlet.box.yellow>.portlet-title>.actions .btn-default:active,.portlet.box.yellow>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow>.portlet-title>.actions .btn-default:hover{border:1px solid #fff7eb;color:#fff}.dashboard-stat.yellow{background-color:#FFB848}.dashboard-stat.yellow.dashboard-stat-light:hover{background-color:#ffb034}.dashboard-stat.yellow .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow .details .number{color:#FFF}.dashboard-stat.yellow .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow .more{color:#FFF;background-color:#ffb034}.bg-yellow{border-color:#FFB848!important;background-image:none!important;background-color:#FFB848!important;color:#FFF!important}.font-yellow{color:#FFB848!important}.progress-bar.yellow{background:#FFB848!important;color:#FFF!important}.yellow-gold.btn{color:#FFF;background-color:#E87E04;border-color:""}.open .yellow-gold.btn.dropdown-toggle,.yellow-gold.btn.active,.yellow-gold.btn:active,.yellow-gold.btn:focus,.yellow-gold.btn:hover{color:#FFF;background-color:#c56b03}.yellow-gold.btn.active,.yellow-gold.btn:active{background-image:none;background-color:#ac5d03}.yellow-gold.btn.active:hover,.yellow-gold.btn:active:hover{background-color:#b66303}.open .yellow-gold.btn.dropdown-toggle{background-image:none}.yellow-gold.btn.disabled,.yellow-gold.btn.disabled.active,.yellow-gold.btn.disabled:active,.yellow-gold.btn.disabled:focus,.yellow-gold.btn.disabled:hover,.yellow-gold.btn[disabled],.yellow-gold.btn[disabled].active,.yellow-gold.btn[disabled]:active,.yellow-gold.btn[disabled]:focus,.yellow-gold.btn[disabled]:hover,fieldset[disabled] .yellow-gold.btn,fieldset[disabled] .yellow-gold.btn.active,fieldset[disabled] .yellow-gold.btn:active,fieldset[disabled] .yellow-gold.btn:focus,fieldset[disabled] .yellow-gold.btn:hover{background-color:#E87E04}.yellow-gold.btn .badge{color:#E87E04;background-color:#FFF}.portlet.box.yellow-gold>.portlet-title,.portlet.yellow-gold,.portlet>.portlet-body.yellow-gold{background-color:#E87E04}.btn.yellow-gold-stripe{border-left:3px solid #E87E04}.portlet.solid.yellow-gold>.portlet-body,.portlet.solid.yellow-gold>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-gold>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-gold>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-gold{border:1px solid #fb9724;border-top:0}.portlet.box.yellow-gold>.portlet-title>.caption,.portlet.box.yellow-gold>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-gold>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fcb460;color:#fdbf79}.portlet.box.yellow-gold>.portlet-title>.actions .btn-default>i{color:#fdc788}.portlet.box.yellow-gold>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-gold>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-gold>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-gold>.portlet-title>.actions .btn-default:hover{border:1px solid #fdcb92;color:#fed7ab}.dashboard-stat.yellow-gold{background-color:#E87E04}.dashboard-stat.yellow-gold.dashboard-stat-light:hover{background-color:#d47304}.dashboard-stat.yellow-gold .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-gold .details .number{color:#FFF}.dashboard-stat.yellow-gold .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-gold .more{color:#FFF;background-color:#d47304}.bg-yellow-gold{border-color:#E87E04!important;background-image:none!important;background-color:#E87E04!important;color:#FFF!important}.font-yellow-gold{color:#E87E04!important}.progress-bar.yellow-gold{background:#E87E04!important;color:#FFF!important}.yellow-casablanca.btn{color:#FFF;background-color:#f2784b;border-color:""}.open .yellow-casablanca.btn.dropdown-toggle,.yellow-casablanca.btn.active,.yellow-casablanca.btn:active,.yellow-casablanca.btn:focus,.yellow-casablanca.btn:hover{color:#FFF;background-color:#f05f2a}.yellow-casablanca.btn.active,.yellow-casablanca.btn:active{background-image:none;background-color:#ee4d12}.yellow-casablanca.btn.active:hover,.yellow-casablanca.btn:active:hover{background-color:#ef541b}.open .yellow-casablanca.btn.dropdown-toggle{background-image:none}.yellow-casablanca.btn.disabled,.yellow-casablanca.btn.disabled.active,.yellow-casablanca.btn.disabled:active,.yellow-casablanca.btn.disabled:focus,.yellow-casablanca.btn.disabled:hover,.yellow-casablanca.btn[disabled],.yellow-casablanca.btn[disabled].active,.yellow-casablanca.btn[disabled]:active,.yellow-casablanca.btn[disabled]:focus,.yellow-casablanca.btn[disabled]:hover,fieldset[disabled] .yellow-casablanca.btn,fieldset[disabled] .yellow-casablanca.btn.active,fieldset[disabled] .yellow-casablanca.btn:active,fieldset[disabled] .yellow-casablanca.btn:focus,fieldset[disabled] .yellow-casablanca.btn:hover{background-color:#f2784b}.yellow-casablanca.btn .badge{color:#f2784b;background-color:#FFF}.portlet.box.yellow-casablanca>.portlet-title,.portlet.yellow-casablanca,.portlet>.portlet-body.yellow-casablanca{background-color:#f2784b}.btn.yellow-casablanca-stripe{border-left:3px solid #f2784b}.portlet.solid.yellow-casablanca>.portlet-body,.portlet.solid.yellow-casablanca>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-casablanca>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-casablanca{border:1px solid #f59c7b;border-top:0}.portlet.box.yellow-casablanca>.portlet-title>.caption,.portlet.box.yellow-casablanca>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fac6b4;color:#fbd8cb}.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default>i{color:#fce3da}.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default:hover{border:1px solid #fdeae3;color:#fffcfb}.dashboard-stat.yellow-casablanca{background-color:#f2784b}.dashboard-stat.yellow-casablanca.dashboard-stat-light:hover{background-color:#f16a38}.dashboard-stat.yellow-casablanca .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-casablanca .details .number{color:#FFF}.dashboard-stat.yellow-casablanca .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-casablanca .more{color:#FFF;background-color:#f16a38}.bg-yellow-casablanca{border-color:#f2784b!important;background-image:none!important;background-color:#f2784b!important;color:#FFF!important}.font-yellow-casablanca{color:#f2784b!important}.progress-bar.yellow-casablanca{background:#f2784b!important;color:#FFF!important}.yellow-crusta.btn{color:#FFF;background-color:#f3c200;border-color:""}.open .yellow-crusta.btn.dropdown-toggle,.yellow-crusta.btn.active,.yellow-crusta.btn:active,.yellow-crusta.btn:focus,.yellow-crusta.btn:hover{color:#FFF;background-color:#cfa500}.yellow-crusta.btn.active,.yellow-crusta.btn:active{background-image:none;background-color:#b69100}.yellow-crusta.btn.active:hover,.yellow-crusta.btn:active:hover{background-color:#c09900}.open .yellow-crusta.btn.dropdown-toggle{background-image:none}.yellow-crusta.btn.disabled,.yellow-crusta.btn.disabled.active,.yellow-crusta.btn.disabled:active,.yellow-crusta.btn.disabled:focus,.yellow-crusta.btn.disabled:hover,.yellow-crusta.btn[disabled],.yellow-crusta.btn[disabled].active,.yellow-crusta.btn[disabled]:active,.yellow-crusta.btn[disabled]:focus,.yellow-crusta.btn[disabled]:hover,fieldset[disabled] .yellow-crusta.btn,fieldset[disabled] .yellow-crusta.btn.active,fieldset[disabled] .yellow-crusta.btn:active,fieldset[disabled] .yellow-crusta.btn:focus,fieldset[disabled] .yellow-crusta.btn:hover{background-color:#f3c200}.yellow-crusta.btn .badge{color:#f3c200;background-color:#FFF}.portlet.box.yellow-crusta>.portlet-title,.portlet.yellow-crusta,.portlet>.portlet-body.yellow-crusta{background-color:#f3c200}.btn.yellow-crusta-stripe{border-left:3px solid #f3c200}.portlet.solid.yellow-crusta>.portlet-body,.portlet.solid.yellow-crusta>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-crusta>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-crusta{border:1px solid #ffd327;border-top:0}.portlet.box.yellow-crusta>.portlet-title>.caption,.portlet.box.yellow-crusta>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #ffe064;color:#ffe57e}.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default>i{color:#ffe88d}.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default:hover{border:1px solid #ffea97;color:#ffefb1}.dashboard-stat.yellow-crusta{background-color:#f3c200}.dashboard-stat.yellow-crusta.dashboard-stat-light:hover{background-color:#dfb200}.dashboard-stat.yellow-crusta .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-crusta .details .number{color:#FFF}.dashboard-stat.yellow-crusta .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-crusta .more{color:#FFF;background-color:#dfb200}.bg-yellow-crusta{border-color:#f3c200!important;background-image:none!important;background-color:#f3c200!important;color:#FFF!important}.font-yellow-crusta{color:#f3c200!important}.progress-bar.yellow-crusta{background:#f3c200!important;color:#FFF!important}.yellow-lemon.btn{color:#FFF;background-color:#F7CA18;border-color:""}.open .yellow-lemon.btn.dropdown-toggle,.yellow-lemon.btn.active,.yellow-lemon.btn:active,.yellow-lemon.btn:focus,.yellow-lemon.btn:hover{color:#FFF;background-color:#e3b708}.yellow-lemon.btn.active,.yellow-lemon.btn:active{background-image:none;background-color:#cba307}.yellow-lemon.btn.active:hover,.yellow-lemon.btn:active:hover{background-color:#d5ab07}.open .yellow-lemon.btn.dropdown-toggle{background-image:none}.yellow-lemon.btn.disabled,.yellow-lemon.btn.disabled.active,.yellow-lemon.btn.disabled:active,.yellow-lemon.btn.disabled:focus,.yellow-lemon.btn.disabled:hover,.yellow-lemon.btn[disabled],.yellow-lemon.btn[disabled].active,.yellow-lemon.btn[disabled]:active,.yellow-lemon.btn[disabled]:focus,.yellow-lemon.btn[disabled]:hover,fieldset[disabled] .yellow-lemon.btn,fieldset[disabled] .yellow-lemon.btn.active,fieldset[disabled] .yellow-lemon.btn:active,fieldset[disabled] .yellow-lemon.btn:focus,fieldset[disabled] .yellow-lemon.btn:hover{background-color:#F7CA18}.yellow-lemon.btn .badge{color:#F7CA18;background-color:#FFF}.portlet.box.yellow-lemon>.portlet-title,.portlet.yellow-lemon,.portlet>.portlet-body.yellow-lemon{background-color:#F7CA18}.btn.yellow-lemon-stripe{border-left:3px solid #F7CA18}.portlet.solid.yellow-lemon>.portlet-body,.portlet.solid.yellow-lemon>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-lemon>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-lemon{border:1px solid #f9d549;border-top:0}.portlet.box.yellow-lemon>.portlet-title>.caption,.portlet.box.yellow-lemon>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fbe384;color:#fce99d}.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default>i{color:#fcecac}.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default:hover{border:1px solid #fceeb6;color:#fdf4ce}.dashboard-stat.yellow-lemon{background-color:#F7CA18}.dashboard-stat.yellow-lemon.dashboard-stat-light:hover{background-color:#f2c308}.dashboard-stat.yellow-lemon .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-lemon .details .number{color:#FFF}.dashboard-stat.yellow-lemon .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-lemon .more{color:#FFF;background-color:#f2c308}.bg-yellow-lemon{border-color:#F7CA18!important;background-image:none!important;background-color:#F7CA18!important;color:#FFF!important}.font-yellow-lemon{color:#F7CA18!important}.progress-bar.yellow-lemon{background:#F7CA18!important;color:#FFF!important}.yellow-saffron.btn{color:#FFF;background-color:#F4D03F;border-color:""}.open .yellow-saffron.btn.dropdown-toggle,.yellow-saffron.btn.active,.yellow-saffron.btn:active,.yellow-saffron.btn:focus,.yellow-saffron.btn:hover{color:#FFF;background-color:#f2c81d}.yellow-saffron.btn.active,.yellow-saffron.btn:active{background-image:none;background-color:#e8bd0d}.yellow-saffron.btn.active:hover,.yellow-saffron.btn:active:hover{background-color:#f1c40f}.open .yellow-saffron.btn.dropdown-toggle{background-image:none}.yellow-saffron.btn.disabled,.yellow-saffron.btn.disabled.active,.yellow-saffron.btn.disabled:active,.yellow-saffron.btn.disabled:focus,.yellow-saffron.btn.disabled:hover,.yellow-saffron.btn[disabled],.yellow-saffron.btn[disabled].active,.yellow-saffron.btn[disabled]:active,.yellow-saffron.btn[disabled]:focus,.yellow-saffron.btn[disabled]:hover,fieldset[disabled] .yellow-saffron.btn,fieldset[disabled] .yellow-saffron.btn.active,fieldset[disabled] .yellow-saffron.btn:active,fieldset[disabled] .yellow-saffron.btn:focus,fieldset[disabled] .yellow-saffron.btn:hover{background-color:#F4D03F}.yellow-saffron.btn .badge{color:#F4D03F;background-color:#FFF}.portlet.box.yellow-saffron>.portlet-title,.portlet.yellow-saffron,.portlet>.portlet-body.yellow-saffron{background-color:#F4D03F}.btn.yellow-saffron-stripe{border-left:3px solid #F4D03F}.portlet.solid.yellow-saffron>.portlet-body,.portlet.solid.yellow-saffron>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-saffron>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-saffron{border:1px solid #f7dc6f;border-top:0}.portlet.box.yellow-saffron>.portlet-title>.caption,.portlet.box.yellow-saffron>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #faeaa9;color:#fbf0c1}.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default>i{color:#fcf3d0}.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default:hover{border:1px solid #fdf6d9;color:#fefcf1}.dashboard-stat.yellow-saffron{background-color:#F4D03F}.dashboard-stat.yellow-saffron.dashboard-stat-light:hover{background-color:#f3cb2c}.dashboard-stat.yellow-saffron .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-saffron .details .number{color:#FFF}.dashboard-stat.yellow-saffron .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-saffron .more{color:#FFF;background-color:#f3cb2c}.bg-yellow-saffron{border-color:#F4D03F!important;background-image:none!important;background-color:#F4D03F!important;color:#FFF!important}.font-yellow-saffron{color:#F4D03F!important}.progress-bar.yellow-saffron{background:#F4D03F!important;color:#FFF!important}.purple.btn{color:#FFF;background-color:#8E44AD;border-color:""}.open .purple.btn.dropdown-toggle,.purple.btn.active,.purple.btn:active,.purple.btn:focus,.purple.btn:hover{color:#FFF;background-color:#793a93}.purple.btn.active,.purple.btn:active{background-image:none;background-color:#6a3381}.purple.btn.active:hover,.purple.btn:active:hover{background-color:#703688}.open .purple.btn.dropdown-toggle{background-image:none}.purple.btn.disabled,.purple.btn.disabled.active,.purple.btn.disabled:active,.purple.btn.disabled:focus,.purple.btn.disabled:hover,.purple.btn[disabled],.purple.btn[disabled].active,.purple.btn[disabled]:active,.purple.btn[disabled]:focus,.purple.btn[disabled]:hover,fieldset[disabled] .purple.btn,fieldset[disabled] .purple.btn.active,fieldset[disabled] .purple.btn:active,fieldset[disabled] .purple.btn:focus,fieldset[disabled] .purple.btn:hover{background-color:#8E44AD}.purple.btn .badge{color:#8E44AD;background-color:#FFF}.portlet.box.purple>.portlet-title,.portlet.purple,.portlet>.portlet-body.purple{background-color:#8E44AD}.btn.purple-stripe{border-left:3px solid #8E44AD}.portlet.solid.purple>.portlet-body,.portlet.solid.purple>.portlet-title{border:0;color:#FFF}.portlet.solid.purple>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple{border:1px solid #a563c1;border-top:0}.portlet.box.purple>.portlet-title>.caption,.portlet.box.purple>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #bf8ed3;color:#c9a1da}.portlet.box.purple>.portlet-title>.actions .btn-default>i{color:#cfacde}.portlet.box.purple>.portlet-title>.actions .btn-default.active,.portlet.box.purple>.portlet-title>.actions .btn-default:active,.portlet.box.purple>.portlet-title>.actions .btn-default:focus,.portlet.box.purple>.portlet-title>.actions .btn-default:hover{border:1px solid #d4b3e1;color:#dec5e8}.dashboard-stat.purple{background-color:#8E44AD}.dashboard-stat.purple.dashboard-stat-light:hover{background-color:#823e9e}.dashboard-stat.purple .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple .details .number{color:#FFF}.dashboard-stat.purple .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple .more{color:#FFF;background-color:#823e9e}.bg-purple{border-color:#8E44AD!important;background-image:none!important;background-color:#8E44AD!important;color:#FFF!important}.font-purple{color:#8E44AD!important}.progress-bar.purple{background:#8E44AD!important;color:#FFF!important}.purple-plum.btn{color:#FFF;background-color:#8775a7;border-color:""}.open .purple-plum.btn.dropdown-toggle,.purple-plum.btn.active,.purple-plum.btn:active,.purple-plum.btn:focus,.purple-plum.btn:hover{color:#FFF;background-color:#746198}.purple-plum.btn.active,.purple-plum.btn:active{background-image:none;background-color:#685788}.purple-plum.btn.active:hover,.purple-plum.btn:active:hover{background-color:#6d5b8e}.open .purple-plum.btn.dropdown-toggle{background-image:none}.purple-plum.btn.disabled,.purple-plum.btn.disabled.active,.purple-plum.btn.disabled:active,.purple-plum.btn.disabled:focus,.purple-plum.btn.disabled:hover,.purple-plum.btn[disabled],.purple-plum.btn[disabled].active,.purple-plum.btn[disabled]:active,.purple-plum.btn[disabled]:focus,.purple-plum.btn[disabled]:hover,fieldset[disabled] .purple-plum.btn,fieldset[disabled] .purple-plum.btn.active,fieldset[disabled] .purple-plum.btn:active,fieldset[disabled] .purple-plum.btn:focus,fieldset[disabled] .purple-plum.btn:hover{background-color:#8775a7}.purple-plum.btn .badge{color:#8775a7;background-color:#FFF}.portlet.box.purple-plum>.portlet-title,.portlet.purple-plum,.portlet>.portlet-body.purple-plum{background-color:#8775a7}.btn.purple-plum-stripe{border-left:3px solid #8775a7}.portlet.solid.purple-plum>.portlet-body,.portlet.solid.purple-plum>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-plum>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-plum>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-plum{border:1px solid #a294bb;border-top:0}.portlet.box.purple-plum>.portlet-title>.caption,.portlet.box.purple-plum>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-plum>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #c3bad3;color:#d0c9dd}.portlet.box.purple-plum>.portlet-title>.actions .btn-default>i{color:#d8d2e3}.portlet.box.purple-plum>.portlet-title>.actions .btn-default.active,.portlet.box.purple-plum>.portlet-title>.actions .btn-default:active,.portlet.box.purple-plum>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-plum>.portlet-title>.actions .btn-default:hover{border:1px solid #ded9e7;color:#ebe8f0}.dashboard-stat.purple-plum{background-color:#8775a7}.dashboard-stat.purple-plum.dashboard-stat-light:hover{background-color:#7c699f}.dashboard-stat.purple-plum .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-plum .details .number{color:#FFF}.dashboard-stat.purple-plum .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-plum .more{color:#FFF;background-color:#7c699f}.bg-purple-plum{border-color:#8775a7!important;background-image:none!important;background-color:#8775a7!important;color:#FFF!important}.font-purple-plum{color:#8775a7!important}.progress-bar.purple-plum{background:#8775a7!important;color:#FFF!important}.purple-medium.btn{color:#FFF;background-color:#BF55EC;border-color:""}.open .purple-medium.btn.dropdown-toggle,.purple-medium.btn.active,.purple-medium.btn:active,.purple-medium.btn:focus,.purple-medium.btn:hover{color:#FFF;background-color:#b335e8}.purple-medium.btn.active,.purple-medium.btn:active{background-image:none;background-color:#aa1ee6}.purple-medium.btn.active:hover,.purple-medium.btn:active:hover{background-color:#ae27e7}.open .purple-medium.btn.dropdown-toggle{background-image:none}.purple-medium.btn.disabled,.purple-medium.btn.disabled.active,.purple-medium.btn.disabled:active,.purple-medium.btn.disabled:focus,.purple-medium.btn.disabled:hover,.purple-medium.btn[disabled],.purple-medium.btn[disabled].active,.purple-medium.btn[disabled]:active,.purple-medium.btn[disabled]:focus,.purple-medium.btn[disabled]:hover,fieldset[disabled] .purple-medium.btn,fieldset[disabled] .purple-medium.btn.active,fieldset[disabled] .purple-medium.btn:active,fieldset[disabled] .purple-medium.btn:focus,fieldset[disabled] .purple-medium.btn:hover{background-color:#BF55EC}.purple-medium.btn .badge{color:#BF55EC;background-color:#FFF}.portlet.box.purple-medium>.portlet-title,.portlet.purple-medium,.portlet>.portlet-body.purple-medium{background-color:#BF55EC}.btn.purple-medium-stripe{border-left:3px solid #BF55EC}.portlet.solid.purple-medium>.portlet-body,.portlet.solid.purple-medium>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-medium>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-medium>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-medium{border:1px solid #d083f1;border-top:0}.portlet.box.purple-medium>.portlet-title>.caption,.portlet.box.purple-medium>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-medium>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #e5baf7;color:#eed1fa}.portlet.box.purple-medium>.portlet-title>.actions .btn-default>i{color:#f3dffb}.portlet.box.purple-medium>.portlet-title>.actions .btn-default.active,.portlet.box.purple-medium>.portlet-title>.actions .btn-default:active,.portlet.box.purple-medium>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-medium>.portlet-title>.actions .btn-default:hover{border:1px solid #f6e8fc;color:#fff}.dashboard-stat.purple-medium{background-color:#BF55EC}.dashboard-stat.purple-medium.dashboard-stat-light:hover{background-color:#b843ea}.dashboard-stat.purple-medium .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-medium .details .number{color:#FFF}.dashboard-stat.purple-medium .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-medium .more{color:#FFF;background-color:#b843ea}.bg-purple-medium{border-color:#BF55EC!important;background-image:none!important;background-color:#BF55EC!important;color:#FFF!important}.font-purple-medium{color:#BF55EC!important}.progress-bar.purple-medium{background:#BF55EC!important;color:#FFF!important}.purple-studio.btn{color:#FFF;background-color:#8E44AD;border-color:""}.open .purple-studio.btn.dropdown-toggle,.purple-studio.btn.active,.purple-studio.btn:active,.purple-studio.btn:focus,.purple-studio.btn:hover{color:#FFF;background-color:#793a93}.purple-studio.btn.active,.purple-studio.btn:active{background-image:none;background-color:#6a3381}.purple-studio.btn.active:hover,.purple-studio.btn:active:hover{background-color:#703688}.open .purple-studio.btn.dropdown-toggle{background-image:none}.purple-studio.btn.disabled,.purple-studio.btn.disabled.active,.purple-studio.btn.disabled:active,.purple-studio.btn.disabled:focus,.purple-studio.btn.disabled:hover,.purple-studio.btn[disabled],.purple-studio.btn[disabled].active,.purple-studio.btn[disabled]:active,.purple-studio.btn[disabled]:focus,.purple-studio.btn[disabled]:hover,fieldset[disabled] .purple-studio.btn,fieldset[disabled] .purple-studio.btn.active,fieldset[disabled] .purple-studio.btn:active,fieldset[disabled] .purple-studio.btn:focus,fieldset[disabled] .purple-studio.btn:hover{background-color:#8E44AD}.purple-studio.btn .badge{color:#8E44AD;background-color:#FFF}.portlet.box.purple-studio>.portlet-title,.portlet.purple-studio,.portlet>.portlet-body.purple-studio{background-color:#8E44AD}.btn.purple-studio-stripe{border-left:3px solid #8E44AD}.portlet.solid.purple-studio>.portlet-body,.portlet.solid.purple-studio>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-studio>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-studio>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-studio{border:1px solid #a563c1;border-top:0}.portlet.box.purple-studio>.portlet-title>.caption,.portlet.box.purple-studio>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-studio>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #bf8ed3;color:#c9a1da}.portlet.box.purple-studio>.portlet-title>.actions .btn-default>i{color:#cfacde}.portlet.box.purple-studio>.portlet-title>.actions .btn-default.active,.portlet.box.purple-studio>.portlet-title>.actions .btn-default:active,.portlet.box.purple-studio>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-studio>.portlet-title>.actions .btn-default:hover{border:1px solid #d4b3e1;color:#dec5e8}.dashboard-stat.purple-studio{background-color:#8E44AD}.dashboard-stat.purple-studio.dashboard-stat-light:hover{background-color:#823e9e}.dashboard-stat.purple-studio .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-studio .details .number{color:#FFF}.dashboard-stat.purple-studio .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-studio .more{color:#FFF;background-color:#823e9e}.bg-purple-studio{border-color:#8E44AD!important;background-image:none!important;background-color:#8E44AD!important;color:#FFF!important}.font-purple-studio{color:#8E44AD!important}.progress-bar.purple-studio{background:#8E44AD!important;color:#FFF!important}.purple-wisteria.btn{color:#FFF;background-color:#9B59B6;border-color:""}.open .purple-wisteria.btn.dropdown-toggle,.purple-wisteria.btn.active,.purple-wisteria.btn:active,.purple-wisteria.btn:focus,.purple-wisteria.btn:hover{color:#FFF;background-color:#8948a3}.purple-wisteria.btn.active,.purple-wisteria.btn:active{background-image:none;background-color:#7a4092}.purple-wisteria.btn.active:hover,.purple-wisteria.btn:active:hover{background-color:#804399}.open .purple-wisteria.btn.dropdown-toggle{background-image:none}.purple-wisteria.btn.disabled,.purple-wisteria.btn.disabled.active,.purple-wisteria.btn.disabled:active,.purple-wisteria.btn.disabled:focus,.purple-wisteria.btn.disabled:hover,.purple-wisteria.btn[disabled],.purple-wisteria.btn[disabled].active,.purple-wisteria.btn[disabled]:active,.purple-wisteria.btn[disabled]:focus,.purple-wisteria.btn[disabled]:hover,fieldset[disabled] .purple-wisteria.btn,fieldset[disabled] .purple-wisteria.btn.active,fieldset[disabled] .purple-wisteria.btn:active,fieldset[disabled] .purple-wisteria.btn:focus,fieldset[disabled] .purple-wisteria.btn:hover{background-color:#9B59B6}.purple-wisteria.btn .badge{color:#9B59B6;background-color:#FFF}.portlet.box.purple-wisteria>.portlet-title,.portlet.purple-wisteria,.portlet>.portlet-body.purple-wisteria{background-color:#9B59B6}.btn.purple-wisteria-stripe{border-left:3px solid #9B59B6}.portlet.solid.purple-wisteria>.portlet-body,.portlet.solid.purple-wisteria>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-wisteria>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-wisteria{border:1px solid #b07cc6;border-top:0}.portlet.box.purple-wisteria>.portlet-title>.caption,.portlet.box.purple-wisteria>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #caa7d8;color:#d5b9e0}.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default>i{color:#dbc3e5}.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default.active,.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default:active,.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default:hover{border:1px solid #dfcae8;color:#eadcf0}.dashboard-stat.purple-wisteria{background-color:#9B59B6}.dashboard-stat.purple-wisteria.dashboard-stat-light:hover{background-color:#924dae}.dashboard-stat.purple-wisteria .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-wisteria .details .number{color:#FFF}.dashboard-stat.purple-wisteria .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-wisteria .more{color:#FFF;background-color:#924dae}.bg-purple-wisteria{border-color:#9B59B6!important;background-image:none!important;background-color:#9B59B6!important;color:#FFF!important}.font-purple-wisteria{color:#9B59B6!important}.progress-bar.purple-wisteria{background:#9B59B6!important;color:#FFF!important}.purple-seance.btn{color:#FFF;background-color:#9A12B3;border-color:""}.open .purple-seance.btn.dropdown-toggle,.purple-seance.btn.active,.purple-seance.btn:active,.purple-seance.btn:focus,.purple-seance.btn:hover{color:#FFF;background-color:#7e0f93}.purple-seance.btn.active,.purple-seance.btn:active{background-image:none;background-color:#6a0c7b}.purple-seance.btn.active:hover,.purple-seance.btn:active:hover{background-color:#720d85}.open .purple-seance.btn.dropdown-toggle{background-image:none}.purple-seance.btn.disabled,.purple-seance.btn.disabled.active,.purple-seance.btn.disabled:active,.purple-seance.btn.disabled:focus,.purple-seance.btn.disabled:hover,.purple-seance.btn[disabled],.purple-seance.btn[disabled].active,.purple-seance.btn[disabled]:active,.purple-seance.btn[disabled]:focus,.purple-seance.btn[disabled]:hover,fieldset[disabled] .purple-seance.btn,fieldset[disabled] .purple-seance.btn.active,fieldset[disabled] .purple-seance.btn:active,fieldset[disabled] .purple-seance.btn:focus,fieldset[disabled] .purple-seance.btn:hover{background-color:#9A12B3}.purple-seance.btn .badge{color:#9A12B3;background-color:#FFF}.portlet.box.purple-seance>.portlet-title,.portlet.purple-seance,.portlet>.portlet-body.purple-seance{background-color:#9A12B3}.btn.purple-seance-stripe{border-left:3px solid #9A12B3}.portlet.solid.purple-seance>.portlet-body,.portlet.solid.purple-seance>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-seance>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-seance>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-seance{border:1px solid #c217e1;border-top:0}.portlet.box.purple-seance>.portlet-title>.caption,.portlet.box.purple-seance>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-seance>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #d349ed;color:#d960ef}.portlet.box.purple-seance>.portlet-title>.actions .btn-default>i{color:#dc6ef0}.portlet.box.purple-seance>.portlet-title>.actions .btn-default.active,.portlet.box.purple-seance>.portlet-title>.actions .btn-default:active,.portlet.box.purple-seance>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-seance>.portlet-title>.actions .btn-default:hover{border:1px solid #de77f1;color:#e48ef4}.dashboard-stat.purple-seance{background-color:#9A12B3}.dashboard-stat.purple-seance.dashboard-stat-light:hover{background-color:#8a10a0}.dashboard-stat.purple-seance .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-seance .details .number{color:#FFF}.dashboard-stat.purple-seance .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-seance .more{color:#FFF;background-color:#8a10a0}.bg-purple-seance{border-color:#9A12B3!important;background-image:none!important;background-color:#9A12B3!important;color:#FFF!important}.font-purple-seance{color:#9A12B3!important}.progress-bar.purple-seance{background:#9A12B3!important;color:#FFF!important}.purple-intense.btn{color:#FFF;background-color:#8775a7;border-color:""}.open .purple-intense.btn.dropdown-toggle,.purple-intense.btn.active,.purple-intense.btn:active,.purple-intense.btn:focus,.purple-intense.btn:hover{color:#FFF;background-color:#746198}.purple-intense.btn.active,.purple-intense.btn:active{background-image:none;background-color:#685788}.purple-intense.btn.active:hover,.purple-intense.btn:active:hover{background-color:#6d5b8e}.open .purple-intense.btn.dropdown-toggle{background-image:none}.purple-intense.btn.disabled,.purple-intense.btn.disabled.active,.purple-intense.btn.disabled:active,.purple-intense.btn.disabled:focus,.purple-intense.btn.disabled:hover,.purple-intense.btn[disabled],.purple-intense.btn[disabled].active,.purple-intense.btn[disabled]:active,.purple-intense.btn[disabled]:focus,.purple-intense.btn[disabled]:hover,fieldset[disabled] .purple-intense.btn,fieldset[disabled] .purple-intense.btn.active,fieldset[disabled] .purple-intense.btn:active,fieldset[disabled] .purple-intense.btn:focus,fieldset[disabled] .purple-intense.btn:hover{background-color:#8775a7}.purple-intense.btn .badge{color:#8775a7;background-color:#FFF}.portlet.box.purple-intense>.portlet-title,.portlet.purple-intense,.portlet>.portlet-body.purple-intense{background-color:#8775a7}.btn.purple-intense-stripe{border-left:3px solid #8775a7}.portlet.solid.purple-intense>.portlet-body,.portlet.solid.purple-intense>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-intense>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-intense>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-intense{border:1px solid #a294bb;border-top:0}.portlet.box.purple-intense>.portlet-title>.caption,.portlet.box.purple-intense>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-intense>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #c3bad3;color:#d0c9dd}.portlet.box.purple-intense>.portlet-title>.actions .btn-default>i{color:#d8d2e3}.portlet.box.purple-intense>.portlet-title>.actions .btn-default.active,.portlet.box.purple-intense>.portlet-title>.actions .btn-default:active,.portlet.box.purple-intense>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-intense>.portlet-title>.actions .btn-default:hover{border:1px solid #ded9e7;color:#ebe8f0}.dashboard-stat.purple-intense{background-color:#8775a7}.dashboard-stat.purple-intense.dashboard-stat-light:hover{background-color:#7c699f}.dashboard-stat.purple-intense .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-intense .details .number{color:#FFF}.dashboard-stat.purple-intense .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-intense .more{color:#FFF;background-color:#7c699f}.bg-purple-intense{border-color:#8775a7!important;background-image:none!important;background-color:#8775a7!important;color:#FFF!important}.font-purple-intense{color:#8775a7!important}.progress-bar.purple-intense{background:#8775a7!important;color:#FFF!important}.purple-sharp.btn{color:#FFF;background-color:#796799;border-color:""}.open .purple-sharp.btn.dropdown-toggle,.purple-sharp.btn.active,.purple-sharp.btn:active,.purple-sharp.btn:focus,.purple-sharp.btn:hover{color:#FFF;background-color:#685884}.purple-sharp.btn.active,.purple-sharp.btn:active{background-image:none;background-color:#5c4e75}.purple-sharp.btn.active:hover,.purple-sharp.btn:active:hover{background-color:#61527b}.open .purple-sharp.btn.dropdown-toggle{background-image:none}.purple-sharp.btn.disabled,.purple-sharp.btn.disabled.active,.purple-sharp.btn.disabled:active,.purple-sharp.btn.disabled:focus,.purple-sharp.btn.disabled:hover,.purple-sharp.btn[disabled],.purple-sharp.btn[disabled].active,.purple-sharp.btn[disabled]:active,.purple-sharp.btn[disabled]:focus,.purple-sharp.btn[disabled]:hover,fieldset[disabled] .purple-sharp.btn,fieldset[disabled] .purple-sharp.btn.active,fieldset[disabled] .purple-sharp.btn:active,fieldset[disabled] .purple-sharp.btn:focus,fieldset[disabled] .purple-sharp.btn:hover{background-color:#796799}.purple-sharp.btn .badge{color:#796799;background-color:#FFF}.portlet.box.purple-sharp>.portlet-title,.portlet.purple-sharp,.portlet>.portlet-body.purple-sharp{background-color:#796799}.btn.purple-sharp-stripe{border-left:3px solid #796799}.portlet.solid.purple-sharp>.portlet-body,.portlet.solid.purple-sharp>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-sharp>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-sharp{border:1px solid #9486ad;border-top:0}.portlet.box.purple-sharp>.portlet-title>.caption,.portlet.box.purple-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-sharp>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #b4aac6;color:#c2b9d0}.portlet.box.purple-sharp>.portlet-title>.actions .btn-default>i{color:#cac3d6}.portlet.box.purple-sharp>.portlet-title>.actions .btn-default.active,.portlet.box.purple-sharp>.portlet-title>.actions .btn-default:active,.portlet.box.purple-sharp>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-sharp>.portlet-title>.actions .btn-default:hover{border:1px solid #cfc9db;color:#ddd8e5}.dashboard-stat.purple-sharp{background-color:#796799}.dashboard-stat.purple-sharp.dashboard-stat-light:hover{background-color:#6f5f8d}.dashboard-stat.purple-sharp .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-sharp .details .number{color:#FFF}.dashboard-stat.purple-sharp .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-sharp .more{color:#FFF;background-color:#6f5f8d}.bg-purple-sharp{border-color:#796799!important;background-image:none!important;background-color:#796799!important;color:#FFF!important}.font-purple-sharp{color:#796799!important}.progress-bar.purple-sharp{background:#796799!important;color:#FFF!important}.purple-soft.btn{color:#FFF;background-color:#8877a9;border-color:""}.open .purple-soft.btn.dropdown-toggle,.purple-soft.btn.active,.purple-soft.btn:active,.purple-soft.btn:focus,.purple-soft.btn:hover{color:#FFF;background-color:#75629b}.purple-soft.btn.active,.purple-soft.btn:active{background-image:none;background-color:#69588b}.purple-soft.btn.active:hover,.purple-soft.btn:active:hover{background-color:#6e5c91}.open .purple-soft.btn.dropdown-toggle{background-image:none}.purple-soft.btn.disabled,.purple-soft.btn.disabled.active,.purple-soft.btn.disabled:active,.purple-soft.btn.disabled:focus,.purple-soft.btn.disabled:hover,.purple-soft.btn[disabled],.purple-soft.btn[disabled].active,.purple-soft.btn[disabled]:active,.purple-soft.btn[disabled]:focus,.purple-soft.btn[disabled]:hover,fieldset[disabled] .purple-soft.btn,fieldset[disabled] .purple-soft.btn.active,fieldset[disabled] .purple-soft.btn:active,fieldset[disabled] .purple-soft.btn:focus,fieldset[disabled] .purple-soft.btn:hover{background-color:#8877a9}.purple-soft.btn .badge{color:#8877a9;background-color:#FFF}.portlet.box.purple-soft>.portlet-title,.portlet.purple-soft,.portlet>.portlet-body.purple-soft{background-color:#8877a9}.btn.purple-soft-stripe{border-left:3px solid #8877a9}.portlet.solid.purple-soft>.portlet-body,.portlet.solid.purple-soft>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-soft>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-soft>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-soft{border:1px solid #a396bd;border-top:0}.portlet.box.purple-soft>.portlet-title>.caption,.portlet.box.purple-soft>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-soft>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #c4bcd4;color:#d2cbde}.portlet.box.purple-soft>.portlet-title>.actions .btn-default>i{color:#dad5e4}.portlet.box.purple-soft>.portlet-title>.actions .btn-default.active,.portlet.box.purple-soft>.portlet-title>.actions .btn-default:active,.portlet.box.purple-soft>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-soft>.portlet-title>.actions .btn-default:hover{border:1px solid #dfdbe8;color:#edebf2}.dashboard-stat.purple-soft{background-color:#8877a9}.dashboard-stat.purple-soft.dashboard-stat-light:hover{background-color:#7d6ba1}.dashboard-stat.purple-soft .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-soft .details .number{color:#FFF}.dashboard-stat.purple-soft .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-soft .more{color:#FFF;background-color:#7d6ba1}.bg-purple-soft{border-color:#8877a9!important;background-image:none!important;background-color:#8877a9!important;color:#FFF!important}.font-purple-soft{color:#8877a9!important}.progress-bar.purple-soft{background:#8877a9!important;color:#FFF!important}.btn-transparent.btn{background:0 0;color:#888}@-moz-keyframes whirly-loader{0%{-moz-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes whirly-loader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes whirly-loader{0%{-moz-transform:rotate(0);-ms-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.whirly-loader:not(:required){overflow:hidden;position:relative;text-indent:-9999px;display:inline-block;width:8px;height:8px;background:0 0;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%;-moz-box-shadow:#FA4C61 0 26px 0 6px,#FA4C61 .91px 26.05px 0 5.93px,#FA4C61 1.82px 26.07px 0 5.87px,#FA4C61 2.74px 26.06px 0 5.8px,#FA4C61 3.66px 26.01px 0 5.73px,#FA4C61 4.57px 25.93px 0 5.67px,#FA4C61 5.49px 25.82px 0 5.6px,#FA4C61 6.4px 25.68px 0 5.53px,#FA4C61 7.31px 25.51px 0 5.47px,#FA4C61 8.22px 25.3px 0 5.4px,#FA4C61 9.12px 25.06px 0 5.33px,#FA4C61 10.01px 24.79px 0 5.27px,#FA4C61 10.9px 24.48px 0 5.2px,#FA4C61 11.78px 24.15px 0 5.13px,#FA4C61 12.64px 23.78px 0 5.07px,#FA4C61 13.5px 23.38px 0 5px,#FA4C61 14.34px 22.95px 0 4.93px,#FA4C61 15.17px 22.49px 0 4.87px,#FA4C61 15.99px 22.01px 0 4.8px,#FA4C61 16.79px 21.49px 0 4.73px,#FA4C61 17.57px 20.94px 0 4.67px,#FA4C61 18.33px 20.36px 0 4.6px,#FA4C61 19.08px 19.76px 0 4.53px,#FA4C61 19.81px 19.13px 0 4.47px,#FA4C61 20.51px 18.47px 0 4.4px,#FA4C61 21.19px 17.78px 0 4.33px,#FA4C61 21.85px 17.07px 0 4.27px,#FA4C61 22.49px 16.34px 0 4.2px,#FA4C61 23.1px 15.58px 0 4.13px,#FA4C61 23.69px 14.8px 0 4.07px,#FA4C61 24.25px 14px 0 4px,#FA4C61 24.78px 13.18px 0 3.93px,#FA4C61 25.29px 12.33px 0 3.87px,#FA4C61 25.76px 11.47px 0 3.8px,#FA4C61 26.21px 10.59px 0 3.73px,#FA4C61 26.62px 9.69px 0 3.67px,#FA4C61 27.01px 8.78px 0 3.6px,#FA4C61 27.36px 7.85px 0 3.53px,#FA4C61 27.69px 6.9px 0 3.47px,#FA4C61 27.98px 5.95px 0 3.4px,#FA4C61 28.23px 4.98px 0 3.33px,#FA4C61 28.45px 4px 0 3.27px,#FA4C61 28.64px 3.01px 0 3.2px,#FA4C61 28.8px 2.01px 0 3.13px,#FA4C61 28.92px 1.01px 0 3.07px,#FA4C61 29px 0 0 3px,#FA4C61 29.05px -1.01px 0 2.93px,#FA4C61 29.06px -2.03px 0 2.87px,#FA4C61 29.04px -3.05px 0 2.8px,#FA4C61 28.98px -4.07px 0 2.73px,#FA4C61 28.89px -5.09px 0 2.67px,#FA4C61 28.76px -6.11px 0 2.6px,#FA4C61 28.59px -7.13px 0 2.53px,#FA4C61 28.39px -8.14px 0 2.47px,#FA4C61 28.15px -9.15px 0 2.4px,#FA4C61 27.88px -10.15px 0 2.33px,#FA4C61 27.57px -11.14px 0 2.27px,#FA4C61 27.22px -12.12px 0 2.2px,#FA4C61 26.84px -13.09px 0 2.13px,#FA4C61 26.43px -14.05px 0 2.07px,#FA4C61 25.98px -15px 0 2px,#FA4C61 25.5px -15.93px 0 1.93px,#FA4C61 24.98px -16.85px 0 1.87px,#FA4C61 24.43px -17.75px 0 1.8px,#FA4C61 23.85px -18.63px 0 1.73px,#FA4C61 23.24px -19.5px 0 1.67px,#FA4C61 22.59px -20.34px 0 1.6px,#FA4C61 21.92px -21.16px 0 1.53px,#FA4C61 21.21px -21.96px 0 1.47px,#FA4C61 20.48px -22.74px 0 1.4px,#FA4C61 19.71px -23.49px 0 1.33px,#FA4C61 18.92px -24.22px 0 1.27px,#FA4C61 18.1px -24.92px 0 1.2px,#FA4C61 17.26px -25.59px 0 1.13px,#FA4C61 16.39px -26.23px 0 1.07px,#FA4C61 15.5px -26.85px 0 1px,#FA4C61 14.58px -27.43px 0 .93px,#FA4C61 13.65px -27.98px 0 .87px,#FA4C61 12.69px -28.5px 0 .8px,#FA4C61 11.71px -28.99px 0 .73px,#FA4C61 10.72px -29.44px 0 .67px,#FA4C61 9.7px -29.86px 0 .6px,#FA4C61 8.67px -30.25px 0 .53px,#FA4C61 7.63px -30.6px 0 .47px,#FA4C61 6.57px -30.91px 0 .4px,#FA4C61 5.5px -31.19px 0 .33px,#FA4C61 4.42px -31.42px 0 .27px,#FA4C61 3.32px -31.63px 0 .2px,#FA4C61 2.22px -31.79px 0 .13px,#FA4C61 1.11px -31.91px 0 .07px,#FA4C61 0 -32px 0 0,#FA4C61 -1.12px -32.05px 0 -.07px,#FA4C61 -2.24px -32.06px 0 -.13px,#FA4C61 -3.37px -32.02px 0 -.2px,#FA4C61 -4.49px -31.95px 0 -.27px,#FA4C61 -5.61px -31.84px 0 -.33px,#FA4C61 -6.74px -31.69px 0 -.4px,#FA4C61 -7.85px -31.5px 0 -.47px,#FA4C61 -8.97px -31.27px 0 -.53px,#FA4C61 -10.07px -31px 0 -.6px,#FA4C61 -11.17px -30.7px 0 -.67px,#FA4C61 -12.26px -30.35px 0 -.73px,#FA4C61 -13.34px -29.96px 0 -.8px,#FA4C61 -14.41px -29.54px 0 -.87px,#FA4C61 -15.46px -29.08px 0 -.93px,#FA4C61 -16.5px -28.58px 0 -1px,#FA4C61 -17.52px -28.04px 0 -1.07px,#FA4C61 -18.53px -27.47px 0 -1.13px,#FA4C61 -19.51px -26.86px 0 -1.2px,#FA4C61 -20.48px -26.21px 0 -1.27px,#FA4C61 -21.43px -25.53px 0 -1.33px,#FA4C61 -22.35px -24.82px 0 -1.4px,#FA4C61 -23.25px -24.07px 0 -1.47px,#FA4C61 -24.12px -23.29px 0 -1.53px,#FA4C61 -24.97px -22.48px 0 -1.6px,#FA4C61 -25.79px -21.64px 0 -1.67px,#FA4C61 -26.58px -20.77px 0 -1.73px,#FA4C61 -27.34px -19.87px 0 -1.8px,#FA4C61 -28.08px -18.94px 0 -1.87px,#FA4C61 -28.78px -17.98px 0 -1.93px,#FA4C61 -29.44px -17px 0 -2px,#FA4C61 -30.08px -15.99px 0 -2.07px,#FA4C61 -30.68px -14.96px 0 -2.13px,#FA4C61 -31.24px -13.91px 0 -2.2px,#FA4C61 -31.77px -12.84px 0 -2.27px,#FA4C61 -32.26px -11.74px 0 -2.33px,#FA4C61 -32.72px -10.63px 0 -2.4px,#FA4C61 -33.13px -9.5px 0 -2.47px,#FA4C61 -33.51px -8.35px 0 -2.53px,#FA4C61 -33.84px -7.19px 0 -2.6px,#FA4C61 -34.14px -6.02px 0 -2.67px,#FA4C61 -34.4px -4.83px 0 -2.73px,#FA4C61 -34.61px -3.64px 0 -2.8px,#FA4C61 -34.78px -2.43px 0 -2.87px,#FA4C61 -34.91px -1.22px 0 -2.93px,#FA4C61 -35px 0 0 -3px,#FA4C61 -35.05px 1.22px 0 -3.07px,#FA4C61 -35.05px 2.45px 0 -3.13px,#FA4C61 -35.01px 3.68px 0 -3.2px,#FA4C61 -34.92px 4.91px 0 -3.27px,#FA4C61 -34.8px 6.14px 0 -3.33px,#FA4C61 -34.63px 7.36px 0 -3.4px,#FA4C61 -34.41px 8.58px 0 -3.47px,#FA4C61 -34.16px 9.79px 0 -3.53px,#FA4C61 -33.86px 11px 0 -3.6px,#FA4C61 -33.52px 12.2px 0 -3.67px,#FA4C61 -33.13px 13.39px 0 -3.73px,#FA4C61 -32.7px 14.56px 0 -3.8px,#FA4C61 -32.24px 15.72px 0 -3.87px,#FA4C61 -31.73px 16.87px 0 -3.93px,#FA4C61 -31.18px 18px 0 -4px,#FA4C61 -30.59px 19.11px 0 -4.07px,#FA4C61 -29.96px 20.21px 0 -4.13px,#FA4C61 -29.29px 21.28px 0 -4.2px,#FA4C61 -28.58px 22.33px 0 -4.27px,#FA4C61 -27.83px 23.35px 0 -4.33px,#FA4C61 -27.05px 24.36px 0 -4.4px,#FA4C61 -26.23px 25.33px 0 -4.47px,#FA4C61 -25.38px 26.28px 0 -4.53px,#FA4C61 -24.49px 27.2px 0 -4.6px,#FA4C61 -23.57px 28.09px 0 -4.67px,#FA4C61 -22.62px 28.95px 0 -4.73px,#FA4C61 -21.63px 29.77px 0 -4.8px,#FA4C61 -20.62px 30.56px 0 -4.87px,#FA4C61 -19.57px 31.32px 0 -4.93px,#FA4C61 -18.5px 32.04px 0 -5px,#FA4C61 -17.4px 32.73px 0 -5.07px,#FA4C61 -16.28px 33.38px 0 -5.13px,#FA4C61 -15.13px 33.98px 0 -5.2px,#FA4C61 -13.96px 34.55px 0 -5.27px,#FA4C61 -12.77px 35.08px 0 -5.33px,#FA4C61 -11.56px 35.57px 0 -5.4px,#FA4C61 -10.33px 36.02px 0 -5.47px,#FA4C61 -9.08px 36.42px 0 -5.53px,#FA4C61 -7.82px 36.78px 0 -5.6px,#FA4C61 -6.54px 37.09px 0 -5.67px,#FA4C61 -5.25px 37.37px 0 -5.73px,#FA4C61 -3.95px 37.59px 0 -5.8px,#FA4C61 -2.64px 37.77px 0 -5.87px,#FA4C61 -1.32px 37.91px 0 -5.93px;-webkit-box-shadow:#FA4C61 0 26px 0 6px,#FA4C61 .91px 26.05px 0 5.93px,#FA4C61 1.82px 26.07px 0 5.87px,#FA4C61 2.74px 26.06px 0 5.8px,#FA4C61 3.66px 26.01px 0 5.73px,#FA4C61 4.57px 25.93px 0 5.67px,#FA4C61 5.49px 25.82px 0 5.6px,#FA4C61 6.4px 25.68px 0 5.53px,#FA4C61 7.31px 25.51px 0 5.47px,#FA4C61 8.22px 25.3px 0 5.4px,#FA4C61 9.12px 25.06px 0 5.33px,#FA4C61 10.01px 24.79px 0 5.27px,#FA4C61 10.9px 24.48px 0 5.2px,#FA4C61 11.78px 24.15px 0 5.13px,#FA4C61 12.64px 23.78px 0 5.07px,#FA4C61 13.5px 23.38px 0 5px,#FA4C61 14.34px 22.95px 0 4.93px,#FA4C61 15.17px 22.49px 0 4.87px,#FA4C61 15.99px 22.01px 0 4.8px,#FA4C61 16.79px 21.49px 0 4.73px,#FA4C61 17.57px 20.94px 0 4.67px,#FA4C61 18.33px 20.36px 0 4.6px,#FA4C61 19.08px 19.76px 0 4.53px,#FA4C61 19.81px 19.13px 0 4.47px,#FA4C61 20.51px 18.47px 0 4.4px,#FA4C61 21.19px 17.78px 0 4.33px,#FA4C61 21.85px 17.07px 0 4.27px,#FA4C61 22.49px 16.34px 0 4.2px,#FA4C61 23.1px 15.58px 0 4.13px,#FA4C61 23.69px 14.8px 0 4.07px,#FA4C61 24.25px 14px 0 4px,#FA4C61 24.78px 13.18px 0 3.93px,#FA4C61 25.29px 12.33px 0 3.87px,#FA4C61 25.76px 11.47px 0 3.8px,#FA4C61 26.21px 10.59px 0 3.73px,#FA4C61 26.62px 9.69px 0 3.67px,#FA4C61 27.01px 8.78px 0 3.6px,#FA4C61 27.36px 7.85px 0 3.53px,#FA4C61 27.69px 6.9px 0 3.47px,#FA4C61 27.98px 5.95px 0 3.4px,#FA4C61 28.23px 4.98px 0 3.33px,#FA4C61 28.45px 4px 0 3.27px,#FA4C61 28.64px 3.01px 0 3.2px,#FA4C61 28.8px 2.01px 0 3.13px,#FA4C61 28.92px 1.01px 0 3.07px,#FA4C61 29px 0 0 3px,#FA4C61 29.05px -1.01px 0 2.93px,#FA4C61 29.06px -2.03px 0 2.87px,#FA4C61 29.04px -3.05px 0 2.8px,#FA4C61 28.98px -4.07px 0 2.73px,#FA4C61 28.89px -5.09px 0 2.67px,#FA4C61 28.76px -6.11px 0 2.6px,#FA4C61 28.59px -7.13px 0 2.53px,#FA4C61 28.39px -8.14px 0 2.47px,#FA4C61 28.15px -9.15px 0 2.4px,#FA4C61 27.88px -10.15px 0 2.33px,#FA4C61 27.57px -11.14px 0 2.27px,#FA4C61 27.22px -12.12px 0 2.2px,#FA4C61 26.84px -13.09px 0 2.13px,#FA4C61 26.43px -14.05px 0 2.07px,#FA4C61 25.98px -15px 0 2px,#FA4C61 25.5px -15.93px 0 1.93px,#FA4C61 24.98px -16.85px 0 1.87px,#FA4C61 24.43px -17.75px 0 1.8px,#FA4C61 23.85px -18.63px 0 1.73px,#FA4C61 23.24px -19.5px 0 1.67px,#FA4C61 22.59px -20.34px 0 1.6px,#FA4C61 21.92px -21.16px 0 1.53px,#FA4C61 21.21px -21.96px 0 1.47px,#FA4C61 20.48px -22.74px 0 1.4px,#FA4C61 19.71px -23.49px 0 1.33px,#FA4C61 18.92px -24.22px 0 1.27px,#FA4C61 18.1px -24.92px 0 1.2px,#FA4C61 17.26px -25.59px 0 1.13px,#FA4C61 16.39px -26.23px 0 1.07px,#FA4C61 15.5px -26.85px 0 1px,#FA4C61 14.58px -27.43px 0 .93px,#FA4C61 13.65px -27.98px 0 .87px,#FA4C61 12.69px -28.5px 0 .8px,#FA4C61 11.71px -28.99px 0 .73px,#FA4C61 10.72px -29.44px 0 .67px,#FA4C61 9.7px -29.86px 0 .6px,#FA4C61 8.67px -30.25px 0 .53px,#FA4C61 7.63px -30.6px 0 .47px,#FA4C61 6.57px -30.91px 0 .4px,#FA4C61 5.5px -31.19px 0 .33px,#FA4C61 4.42px -31.42px 0 .27px,#FA4C61 3.32px -31.63px 0 .2px,#FA4C61 2.22px -31.79px 0 .13px,#FA4C61 1.11px -31.91px 0 .07px,#FA4C61 0 -32px 0 0,#FA4C61 -1.12px -32.05px 0 -.07px,#FA4C61 -2.24px -32.06px 0 -.13px,#FA4C61 -3.37px -32.02px 0 -.2px,#FA4C61 -4.49px -31.95px 0 -.27px,#FA4C61 -5.61px -31.84px 0 -.33px,#FA4C61 -6.74px -31.69px 0 -.4px,#FA4C61 -7.85px -31.5px 0 -.47px,#FA4C61 -8.97px -31.27px 0 -.53px,#FA4C61 -10.07px -31px 0 -.6px,#FA4C61 -11.17px -30.7px 0 -.67px,#FA4C61 -12.26px -30.35px 0 -.73px,#FA4C61 -13.34px -29.96px 0 -.8px,#FA4C61 -14.41px -29.54px 0 -.87px,#FA4C61 -15.46px -29.08px 0 -.93px,#FA4C61 -16.5px -28.58px 0 -1px,#FA4C61 -17.52px -28.04px 0 -1.07px,#FA4C61 -18.53px -27.47px 0 -1.13px,#FA4C61 -19.51px -26.86px 0 -1.2px,#FA4C61 -20.48px -26.21px 0 -1.27px,#FA4C61 -21.43px -25.53px 0 -1.33px,#FA4C61 -22.35px -24.82px 0 -1.4px,#FA4C61 -23.25px -24.07px 0 -1.47px,#FA4C61 -24.12px -23.29px 0 -1.53px,#FA4C61 -24.97px -22.48px 0 -1.6px,#FA4C61 -25.79px -21.64px 0 -1.67px,#FA4C61 -26.58px -20.77px 0 -1.73px,#FA4C61 -27.34px -19.87px 0 -1.8px,#FA4C61 -28.08px -18.94px 0 -1.87px,#FA4C61 -28.78px -17.98px 0 -1.93px,#FA4C61 -29.44px -17px 0 -2px,#FA4C61 -30.08px -15.99px 0 -2.07px,#FA4C61 -30.68px -14.96px 0 -2.13px,#FA4C61 -31.24px -13.91px 0 -2.2px,#FA4C61 -31.77px -12.84px 0 -2.27px,#FA4C61 -32.26px -11.74px 0 -2.33px,#FA4C61 -32.72px -10.63px 0 -2.4px,#FA4C61 -33.13px -9.5px 0 -2.47px,#FA4C61 -33.51px -8.35px 0 -2.53px,#FA4C61 -33.84px -7.19px 0 -2.6px,#FA4C61 -34.14px -6.02px 0 -2.67px,#FA4C61 -34.4px -4.83px 0 -2.73px,#FA4C61 -34.61px -3.64px 0 -2.8px,#FA4C61 -34.78px -2.43px 0 -2.87px,#FA4C61 -34.91px -1.22px 0 -2.93px,#FA4C61 -35px 0 0 -3px,#FA4C61 -35.05px 1.22px 0 -3.07px,#FA4C61 -35.05px 2.45px 0 -3.13px,#FA4C61 -35.01px 3.68px 0 -3.2px,#FA4C61 -34.92px 4.91px 0 -3.27px,#FA4C61 -34.8px 6.14px 0 -3.33px,#FA4C61 -34.63px 7.36px 0 -3.4px,#FA4C61 -34.41px 8.58px 0 -3.47px,#FA4C61 -34.16px 9.79px 0 -3.53px,#FA4C61 -33.86px 11px 0 -3.6px,#FA4C61 -33.52px 12.2px 0 -3.67px,#FA4C61 -33.13px 13.39px 0 -3.73px,#FA4C61 -32.7px 14.56px 0 -3.8px,#FA4C61 -32.24px 15.72px 0 -3.87px,#FA4C61 -31.73px 16.87px 0 -3.93px,#FA4C61 -31.18px 18px 0 -4px,#FA4C61 -30.59px 19.11px 0 -4.07px,#FA4C61 -29.96px 20.21px 0 -4.13px,#FA4C61 -29.29px 21.28px 0 -4.2px,#FA4C61 -28.58px 22.33px 0 -4.27px,#FA4C61 -27.83px 23.35px 0 -4.33px,#FA4C61 -27.05px 24.36px 0 -4.4px,#FA4C61 -26.23px 25.33px 0 -4.47px,#FA4C61 -25.38px 26.28px 0 -4.53px,#FA4C61 -24.49px 27.2px 0 -4.6px,#FA4C61 -23.57px 28.09px 0 -4.67px,#FA4C61 -22.62px 28.95px 0 -4.73px,#FA4C61 -21.63px 29.77px 0 -4.8px,#FA4C61 -20.62px 30.56px 0 -4.87px,#FA4C61 -19.57px 31.32px 0 -4.93px,#FA4C61 -18.5px 32.04px 0 -5px,#FA4C61 -17.4px 32.73px 0 -5.07px,#FA4C61 -16.28px 33.38px 0 -5.13px,#FA4C61 -15.13px 33.98px 0 -5.2px,#FA4C61 -13.96px 34.55px 0 -5.27px,#FA4C61 -12.77px 35.08px 0 -5.33px,#FA4C61 -11.56px 35.57px 0 -5.4px,#FA4C61 -10.33px 36.02px 0 -5.47px,#FA4C61 -9.08px 36.42px 0 -5.53px,#FA4C61 -7.82px 36.78px 0 -5.6px,#FA4C61 -6.54px 37.09px 0 -5.67px,#FA4C61 -5.25px 37.37px 0 -5.73px,#FA4C61 -3.95px 37.59px 0 -5.8px,#FA4C61 -2.64px 37.77px 0 -5.87px,#FA4C61 -1.32px 37.91px 0 -5.93px;box-shadow:#FA4C61 0 26px 0 6px,#FA4C61 .91px 26.05px 0 5.93px,#FA4C61 1.82px 26.07px 0 5.87px,#FA4C61 2.74px 26.06px 0 5.8px,#FA4C61 3.66px 26.01px 0 5.73px,#FA4C61 4.57px 25.93px 0 5.67px,#FA4C61 5.49px 25.82px 0 5.6px,#FA4C61 6.4px 25.68px 0 5.53px,#FA4C61 7.31px 25.51px 0 5.47px,#FA4C61 8.22px 25.3px 0 5.4px,#FA4C61 9.12px 25.06px 0 5.33px,#FA4C61 10.01px 24.79px 0 5.27px,#FA4C61 10.9px 24.48px 0 5.2px,#FA4C61 11.78px 24.15px 0 5.13px,#FA4C61 12.64px 23.78px 0 5.07px,#FA4C61 13.5px 23.38px 0 5px,#FA4C61 14.34px 22.95px 0 4.93px,#FA4C61 15.17px 22.49px 0 4.87px,#FA4C61 15.99px 22.01px 0 4.8px,#FA4C61 16.79px 21.49px 0 4.73px,#FA4C61 17.57px 20.94px 0 4.67px,#FA4C61 18.33px 20.36px 0 4.6px,#FA4C61 19.08px 19.76px 0 4.53px,#FA4C61 19.81px 19.13px 0 4.47px,#FA4C61 20.51px 18.47px 0 4.4px,#FA4C61 21.19px 17.78px 0 4.33px,#FA4C61 21.85px 17.07px 0 4.27px,#FA4C61 22.49px 16.34px 0 4.2px,#FA4C61 23.1px 15.58px 0 4.13px,#FA4C61 23.69px 14.8px 0 4.07px,#FA4C61 24.25px 14px 0 4px,#FA4C61 24.78px 13.18px 0 3.93px,#FA4C61 25.29px 12.33px 0 3.87px,#FA4C61 25.76px 11.47px 0 3.8px,#FA4C61 26.21px 10.59px 0 3.73px,#FA4C61 26.62px 9.69px 0 3.67px,#FA4C61 27.01px 8.78px 0 3.6px,#FA4C61 27.36px 7.85px 0 3.53px,#FA4C61 27.69px 6.9px 0 3.47px,#FA4C61 27.98px 5.95px 0 3.4px,#FA4C61 28.23px 4.98px 0 3.33px,#FA4C61 28.45px 4px 0 3.27px,#FA4C61 28.64px 3.01px 0 3.2px,#FA4C61 28.8px 2.01px 0 3.13px,#FA4C61 28.92px 1.01px 0 3.07px,#FA4C61 29px 0 0 3px,#FA4C61 29.05px -1.01px 0 2.93px,#FA4C61 29.06px -2.03px 0 2.87px,#FA4C61 29.04px -3.05px 0 2.8px,#FA4C61 28.98px -4.07px 0 2.73px,#FA4C61 28.89px -5.09px 0 2.67px,#FA4C61 28.76px -6.11px 0 2.6px,#FA4C61 28.59px -7.13px 0 2.53px,#FA4C61 28.39px -8.14px 0 2.47px,#FA4C61 28.15px -9.15px 0 2.4px,#FA4C61 27.88px -10.15px 0 2.33px,#FA4C61 27.57px -11.14px 0 2.27px,#FA4C61 27.22px -12.12px 0 2.2px,#FA4C61 26.84px -13.09px 0 2.13px,#FA4C61 26.43px -14.05px 0 2.07px,#FA4C61 25.98px -15px 0 2px,#FA4C61 25.5px -15.93px 0 1.93px,#FA4C61 24.98px -16.85px 0 1.87px,#FA4C61 24.43px -17.75px 0 1.8px,#FA4C61 23.85px -18.63px 0 1.73px,#FA4C61 23.24px -19.5px 0 1.67px,#FA4C61 22.59px -20.34px 0 1.6px,#FA4C61 21.92px -21.16px 0 1.53px,#FA4C61 21.21px -21.96px 0 1.47px,#FA4C61 20.48px -22.74px 0 1.4px,#FA4C61 19.71px -23.49px 0 1.33px,#FA4C61 18.92px -24.22px 0 1.27px,#FA4C61 18.1px -24.92px 0 1.2px,#FA4C61 17.26px -25.59px 0 1.13px,#FA4C61 16.39px -26.23px 0 1.07px,#FA4C61 15.5px -26.85px 0 1px,#FA4C61 14.58px -27.43px 0 .93px,#FA4C61 13.65px -27.98px 0 .87px,#FA4C61 12.69px -28.5px 0 .8px,#FA4C61 11.71px -28.99px 0 .73px,#FA4C61 10.72px -29.44px 0 .67px,#FA4C61 9.7px -29.86px 0 .6px,#FA4C61 8.67px -30.25px 0 .53px,#FA4C61 7.63px -30.6px 0 .47px,#FA4C61 6.57px -30.91px 0 .4px,#FA4C61 5.5px -31.19px 0 .33px,#FA4C61 4.42px -31.42px 0 .27px,#FA4C61 3.32px -31.63px 0 .2px,#FA4C61 2.22px -31.79px 0 .13px,#FA4C61 1.11px -31.91px 0 .07px,#FA4C61 0 -32px 0 0,#FA4C61 -1.12px -32.05px 0 -.07px,#FA4C61 -2.24px -32.06px 0 -.13px,#FA4C61 -3.37px -32.02px 0 -.2px,#FA4C61 -4.49px -31.95px 0 -.27px,#FA4C61 -5.61px -31.84px 0 -.33px,#FA4C61 -6.74px -31.69px 0 -.4px,#FA4C61 -7.85px -31.5px 0 -.47px,#FA4C61 -8.97px -31.27px 0 -.53px,#FA4C61 -10.07px -31px 0 -.6px,#FA4C61 -11.17px -30.7px 0 -.67px,#FA4C61 -12.26px -30.35px 0 -.73px,#FA4C61 -13.34px -29.96px 0 -.8px,#FA4C61 -14.41px -29.54px 0 -.87px,#FA4C61 -15.46px -29.08px 0 -.93px,#FA4C61 -16.5px -28.58px 0 -1px,#FA4C61 -17.52px -28.04px 0 -1.07px,#FA4C61 -18.53px -27.47px 0 -1.13px,#FA4C61 -19.51px -26.86px 0 -1.2px,#FA4C61 -20.48px -26.21px 0 -1.27px,#FA4C61 -21.43px -25.53px 0 -1.33px,#FA4C61 -22.35px -24.82px 0 -1.4px,#FA4C61 -23.25px -24.07px 0 -1.47px,#FA4C61 -24.12px -23.29px 0 -1.53px,#FA4C61 -24.97px -22.48px 0 -1.6px,#FA4C61 -25.79px -21.64px 0 -1.67px,#FA4C61 -26.58px -20.77px 0 -1.73px,#FA4C61 -27.34px -19.87px 0 -1.8px,#FA4C61 -28.08px -18.94px 0 -1.87px,#FA4C61 -28.78px -17.98px 0 -1.93px,#FA4C61 -29.44px -17px 0 -2px,#FA4C61 -30.08px -15.99px 0 -2.07px,#FA4C61 -30.68px -14.96px 0 -2.13px,#FA4C61 -31.24px -13.91px 0 -2.2px,#FA4C61 -31.77px -12.84px 0 -2.27px,#FA4C61 -32.26px -11.74px 0 -2.33px,#FA4C61 -32.72px -10.63px 0 -2.4px,#FA4C61 -33.13px -9.5px 0 -2.47px,#FA4C61 -33.51px -8.35px 0 -2.53px,#FA4C61 -33.84px -7.19px 0 -2.6px,#FA4C61 -34.14px -6.02px 0 -2.67px,#FA4C61 -34.4px -4.83px 0 -2.73px,#FA4C61 -34.61px -3.64px 0 -2.8px,#FA4C61 -34.78px -2.43px 0 -2.87px,#FA4C61 -34.91px -1.22px 0 -2.93px,#FA4C61 -35px 0 0 -3px,#FA4C61 -35.05px 1.22px 0 -3.07px,#FA4C61 -35.05px 2.45px 0 -3.13px,#FA4C61 -35.01px 3.68px 0 -3.2px,#FA4C61 -34.92px 4.91px 0 -3.27px,#FA4C61 -34.8px 6.14px 0 -3.33px,#FA4C61 -34.63px 7.36px 0 -3.4px,#FA4C61 -34.41px 8.58px 0 -3.47px,#FA4C61 -34.16px 9.79px 0 -3.53px,#FA4C61 -33.86px 11px 0 -3.6px,#FA4C61 -33.52px 12.2px 0 -3.67px,#FA4C61 -33.13px 13.39px 0 -3.73px,#FA4C61 -32.7px 14.56px 0 -3.8px,#FA4C61 -32.24px 15.72px 0 -3.87px,#FA4C61 -31.73px 16.87px 0 -3.93px,#FA4C61 -31.18px 18px 0 -4px,#FA4C61 -30.59px 19.11px 0 -4.07px,#FA4C61 -29.96px 20.21px 0 -4.13px,#FA4C61 -29.29px 21.28px 0 -4.2px,#FA4C61 -28.58px 22.33px 0 -4.27px,#FA4C61 -27.83px 23.35px 0 -4.33px,#FA4C61 -27.05px 24.36px 0 -4.4px,#FA4C61 -26.23px 25.33px 0 -4.47px,#FA4C61 -25.38px 26.28px 0 -4.53px,#FA4C61 -24.49px 27.2px 0 -4.6px,#FA4C61 -23.57px 28.09px 0 -4.67px,#FA4C61 -22.62px 28.95px 0 -4.73px,#FA4C61 -21.63px 29.77px 0 -4.8px,#FA4C61 -20.62px 30.56px 0 -4.87px,#FA4C61 -19.57px 31.32px 0 -4.93px,#FA4C61 -18.5px 32.04px 0 -5px,#FA4C61 -17.4px 32.73px 0 -5.07px,#FA4C61 -16.28px 33.38px 0 -5.13px,#FA4C61 -15.13px 33.98px 0 -5.2px,#FA4C61 -13.96px 34.55px 0 -5.27px,#FA4C61 -12.77px 35.08px 0 -5.33px,#FA4C61 -11.56px 35.57px 0 -5.4px,#FA4C61 -10.33px 36.02px 0 -5.47px,#FA4C61 -9.08px 36.42px 0 -5.53px,#FA4C61 -7.82px 36.78px 0 -5.6px,#FA4C61 -6.54px 37.09px 0 -5.67px,#FA4C61 -5.25px 37.37px 0 -5.73px,#FA4C61 -3.95px 37.59px 0 -5.8px,#FA4C61 -2.64px 37.77px 0 -5.87px,#FA4C61 -1.32px 37.91px 0 -5.93px;-moz-animation:whirly-loader 1.25s infinite linear;-webkit-animation:whirly-loader 1.25s infinite linear;animation:whirly-loader 1.25s infinite linear;-moz-transform-origin:50% 50%;-ms-transform-origin:50% 50%;-webkit-transform-origin:50% 50%;transform-origin:50% 50%}.inactive-link{cursor:default}.ui-grid-vcenter div{position:relative;top:50%;vertical-align:middle;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);white-space:nowrap;text-overflow:ellipsis;overflow:hidden!important}.demo{background-image:url(../../assets/images/demo.png)}.float-right{float:right}.float-left{float:left}.checker{width:19px;height:19px}.collapse.am-collapse{animation-duration:.3s;animation-timing-function:ease;animation-fill-mode:backwards;overflow:hidden}.message-info{float:right;color:#d3d3d3;margin-right:5px}[ui-view].ng-enter{-webkit-animation:fadeInUpm .5s;animation:fadeInUpm .5s}.steps,.steps-indicator{padding-bottom:20px!important}.ui-sortable,.ui-sortable-handle{cursor:move}.step .btn:not(.ui-select-toggle,.remove-condition){margin-bottom:10px}.mbottom20{margin-bottom:20px}.pbottom20{padding-bottom:20px}.break-overflow{overflow-wrap:break-word}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.alert{padding:15px!important;margin-bottom:20px!important;border:1px solid transparent!important;border-radius:4px!important}.alert h4{margin-top:0!important;color:inherit!important}.alert .alert-link{font-weight:700!important}.alert>p,.alert>ul{margin-bottom:0!important}.alert>p+p{margin-top:5px!important}.alert-dismissable,.alert-dismissible{padding-right:35px!important}.alert-dismissable .close,.alert-dismissible .close{position:relative!important;top:-2px!important;right:-21px!important;color:inherit!important}.alert-success{background-color:#dff0d8!important;border-color:#d6e9c6!important;color:#3c763d!important}.alert-success hr{border-top-color:#c9e2b3!important}.alert-success .alert-link{color:#2b542c!important}.alert-info{background-color:#d9edf7!important;border-color:#bce8f1!important;color:#31708f!important}.alert-info hr{border-top-color:#a6e1ec!important}.alert-info .alert-link{color:#245269!important}.alert-warning{background-color:#fcf8e3!important;border-color:#faebcc!important;color:#8a6d3b!important}.alert-warning hr{border-top-color:#f7e1b5!important}.alert-warning .alert-link{color:#66512c!important}.alert-danger{background-color:#f2dede!important;border-color:#ebccd1!important;color:#a94442!important}.alert-danger hr{border-top-color:#e4b9c0!important}.alert-danger .alert-link{color:#843534!important}.alert .close{text-indent:inherit!important;background-image:none!important;width:auto!important}.page-404 .number{position:relative;top:35px;display:inline-block;letter-spacing:-10px;margin-top:0;margin-bottom:10px;line-height:128px;font-size:128px;font-weight:300;color:#7bbbd6;text-align:right}.page-404 .details{margin-left:40px;display:inline-block;padding-top:0;text-align:left}.sounds-title-icon{font-size:17px}.ui-select-multiple input.ui-select-search{width:100%!important}.modal.fade,.over-topbar{z-index:9996!important}.list-group-item-custom{border:none}.pointer-cursor{cursor:pointer!important}.select-group-father{font-weight:700!important}.select-group-son{font-style:italic!important}@media (max-height:908px){.modal-body-scroll{max-height:325px;overflow-y:scroll}}.widget .dashboard-stat{margin-bottom:0!important}.widget .panel-body{padding:0}.left-margin{margin-left:20px}.contact-portlet{overflow-x:hidden;overflow-y:auto}.contact-tab{background:#F1F3FA;padding-top:20px}.contact-tab-container{padding-left:20px;padding-right:20px}.col-fixed,.tree-row{float:left}.col-fixed{width:277px;margin-right:15px}.tree-row{width:calc(100% - 277px + 15px)}.tree-search{float:left;display:inline-block;line-height:18px;font-weight:300;padding:10px 0}.report-field-handle{width:66px;height:66px;background-image:url(../../assets/images/move.png);background-repeat:no-repeat;background-size:66px 66px}.ui-sortable-helper{display:table}.report-field-remove{width:66px;height:66px;text-align:center}.portlet.light .portlet-title{padding:0;min-height:48px}.portlet .portlet-title{border-bottom:1px solid #eee;padding:0;margin-bottom:10px;min-height:41px;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.ui-select-match-text{width:100%;overflow:hidden;text-overflow:ellipsis;padding-right:20px}.ui-select-choices-row-inner div{width:100%;overflow:hidden;text-overflow:ellipsis}.ui-select-toggle>.btn.btn-link{margin-right:10px;top:6px;position:absolute;right:10px}.extract-grid{min-height:600px}body>[uib-modal-window]:not([modal-render]){display:none}.watermark{position:absolute;top:50%;transform:translateY(-50%);opacity:.7;width:100%;text-align:center;z-index:1000;font-size:25px}.centered-uigrid-td{text-align:center;margin:4px}.condition{margin-top:8px;margin-bottom:8px}.ms-container .ms-list{height:430px!important}.ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection{padding:7px 12px!important}.ms-container{width:100%!important}.ms-optgroup-label{text-align:center;font-weight:700;background-color:#F0F0F0}.pause-select{width:20px;color:#A29999;border:none}@keyframes blink{0%{border-color:transparent}25%{border-color:#EACD9E}50%{border-color:#ECC077}75%{border-color:#ECB861}100%{border-color:#FFB848}}.paused-agent{border:2px solid transparent;animation:blink .5s step-end infinite alternate}.otherfields-col{min-height:400px!important;max-width:100%}.profile-content{min-height:800px}.page-header.navbar{background-color:#2b3643}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle>i{color:#79869a}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle .badge.badge-default{background-color:#EA4C61;color:#fff}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle:hover,.page-header.navbar .top-menu .navbar-nav>li.dropdown.open .dropdown-toggle{background-color:#3f4f62}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle:hover>i,.page-header.navbar .top-menu .navbar-nav>li.dropdown.open .dropdown-toggle>i{color:#a4aebb}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu{border-color:#e7eaf0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu:after{border-bottom-color:#eaedf2}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external{background:#eaedf2}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>h3{color:#62878f}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>a{color:#5b9bd1}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>a:hover{color:#3175af;text-decoration:underline}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li>a{border-bottom:1px solid #EFF2F6!important;color:#888}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li>a:hover{background:#f8f9fa}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li>a .time{background:#f1f1f1}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li>a:hover .time{background:#e4e4e4}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-toggle>.circle{background-color:#EA4C61;color:#fff}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-toggle>.corner{border-color:transparent transparent transparent #EA4C61}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox .dropdown-menu .dropdown-menu-list .subject .from{color:#5b9bd1}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-toggle>.langname,.page-header.navbar .top-menu .navbar-nav>li.dropdown-user>.dropdown-toggle>.username,.page-header.navbar .top-menu .navbar-nav>li.dropdown-user>.dropdown-toggle>i{color:#c6cfda}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list .progress{background-color:#dfe2e9}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user>.dropdown-menu{width:195px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu{background:#3f4f62;border:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu:after{border-bottom-color:#3f4f62}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu>li.external{background:#2f3b49}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu>li.external>h3{color:#adbaca}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu>li.external>a:hover{color:#87b6dd}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu .dropdown-menu-list>li a,.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li a{color:#bcc7d4;border-bottom:1px solid #4b5e75!important}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu .dropdown-menu-list>li a>i,.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li a>i{color:#9dadc0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu .dropdown-menu-list>li a:hover,.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li a:hover{background:#47596e}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li a{border-bottom:0!important}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li.divider{background:#4b5e75}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification.dropdown-dark .dropdown-menu .dropdown-menu-list>li>a .time{background:#354353}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification.dropdown-dark .dropdown-menu .dropdown-menu-list>li>a:hover .time{background:#2b3643}.page-header.navbar .search-form{background:#232c37}.page-header.navbar .search-form.open,.page-header.navbar .search-form:hover{background:#3f4f62}.page-header.navbar .search-form .input-group .form-control{color:#959fad}.page-header.navbar .search-form .input-group .form-control::-moz-placeholder{color:#929cab;opacity:1}.page-header.navbar .search-form .input-group .form-control:-ms-input-placeholder{color:#929cab}.page-header.navbar .search-form .input-group .form-control::-webkit-input-placeholder{color:#929cab}.page-header.navbar .search-form .input-group .input-group-btn .btn.submit>i{color:#959fad}.page-header.navbar .menu-toggler{background-image:url(../../assets/images/sidebar_toggler_icon_darkblue.png)}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu{box-shadow:5px 5px rgba(63,79,98,.2)}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>h3,.page-header.navbar .hor-menu .navbar-nav>li>a{color:#c6cfda}.page-header.navbar .hor-menu .navbar-nav>li>a>i{color:#788ea8}.page-header.navbar .hor-menu .navbar-nav>li.open>a,.page-header.navbar .hor-menu .navbar-nav>li>a:hover{color:#d5dce4;background:#3f4f62!important}.page-header.navbar .hor-menu .navbar-nav>li.open>a>i,.page-header.navbar .hor-menu .navbar-nav>li>a:hover>i{color:#889bb2}.page-header.navbar .hor-menu .navbar-nav>li.active>a,.page-header.navbar .hor-menu .navbar-nav>li.current>a{color:#fff;background:#EA4C61!important}.page-header.navbar .hor-menu .navbar-nav>li.active>a>i,.page-header.navbar .hor-menu .navbar-nav>li.current>a>i{color:#788ea8}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu{box-shadow:5px 5px rgba(63,79,98,.2);background:#3f4f62}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a>i{color:#c6cfda}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li:hover>a{color:#f1f3f6;background:#47596e}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li:hover>a>i{color:#f1f3f6}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.active>a,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.active>a:hover,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.current>a,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.current>a:hover{color:#f1f3f6;background:#47596e}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.active>a:hover>i,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.active>a>i,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.current>a:hover>i,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.current>a>i{color:#f1f3f6}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.divider{background-color:#495c72}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-submenu>a:after{color:#c6cfda}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.mega-menu-dropdown>.dropdown-menu{box-shadow:5px 5px rgba(102,102,102,.1)}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>h3{color:#666}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>a{color:#c6cfda}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>a>i{color:#788ea8}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>a:hover{color:#d5dce4;background:#3f4f62}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>a:hover>i{color:#889bb2}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.open>a{color:#333!important;background:#fff!important}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.open>a>i{color:#333!important}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.active>a,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.active>a:hover,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.current>a,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.current>a:hover{color:#fff;background:#EA4C61}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.active>a:hover>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.active>a>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.current>a:hover>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.current>a>i{color:#788ea8}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu{box-shadow:5px 5px rgba(102,102,102,.1);background:#fff;border:1px solid #efeff5}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li>a{color:#000}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li>a>i{color:#888}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li:hover>a{color:#000;background:#f2f2f7}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li:hover>a>i{color:#666}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.active>a,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.active>a:hover,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.current>a,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.current>a:hover{color:#000;background:#f2f2f7}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.active>a:hover>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.active>a>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.current>a:hover>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.current>a>i{color:#666}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.divider{background-color:#f2f2f7}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>.dropdown-menu{border-top:0}.page-sidebar,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover{background-color:#364150}.page-sidebar .page-sidebar-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a{color:#b4bcc8}.page-sidebar .page-sidebar-menu>li>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i{color:#606C7D}.page-sidebar .page-sidebar-menu>li>a>i[class*=icon-],.page-sidebar .page-sidebar-menu>li>a>i[class^=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i[class*=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i[class^=icon-]{color:#6b788b}.page-sidebar .page-sidebar-menu>li>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>.arrow:before{color:#606C7D}.page-sidebar .page-sidebar-menu>li.heading>h3,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.heading>h3{color:#708096}.page-sidebar .page-sidebar-menu>li.open>a,.page-sidebar .page-sidebar-menu>li:hover>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:hover>a{background:#2C3542;color:#b4bcc8}.page-sidebar .page-sidebar-menu>li.open>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li.open>a>.arrow:before,.page-sidebar .page-sidebar-menu>li.open>a>i,.page-sidebar .page-sidebar-menu>li:hover>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li:hover>a>.arrow:before,.page-sidebar .page-sidebar-menu>li:hover>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:hover>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:hover>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:hover>a>i{color:#606C7D}.page-sidebar .page-sidebar-menu>li.active.open>a,.page-sidebar .page-sidebar-menu>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a{background:#EA4C61;border-top-color:transparent;color:#fff}.page-sidebar .page-sidebar-menu>li.active.open>a:hover,.page-sidebar .page-sidebar-menu>li.active>a:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a:hover{background:#EA4C61}.page-sidebar .page-sidebar-menu>li.active.open>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li.active.open>a>.arrow:before,.page-sidebar .page-sidebar-menu>li.active.open>a>i,.page-sidebar .page-sidebar-menu>li.active>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li.active>a>.arrow:before,.page-sidebar .page-sidebar-menu>li.active>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>i{color:#fff}.page-sidebar .page-sidebar-menu>li.active+li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active+li>a{border-top-color:transparent}.page-sidebar .page-sidebar-menu>li.active.open+li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open+li>a{border-top-color:#3d4957}.page-sidebar .page-sidebar-menu>li:last-child>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:last-child>a{border-bottom:1px solid transparent!important}.page-sidebar .page-sidebar-menu li:hover>a>.arrow.open:before,.page-sidebar .page-sidebar-menu li:hover>a>.arrow:before,.page-sidebar .page-sidebar-menu li>a>.arrow.open:before,.page-sidebar .page-sidebar-menu li>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.arrow:before{color:#606C7D}.page-sidebar .page-sidebar-menu li.active>a>.arrow.open:before,.page-sidebar .page-sidebar-menu li.active>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active>a>.arrow:before{color:#fff}.page-sidebar-closed .page-sidebar .page-sidebar-menu:hover .sub-menu,.page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu:hover .sub-menu{background-color:#364150}.page-sidebar .page-sidebar-menu .sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a{color:#b4bcc8}.page-sidebar .page-sidebar-menu .sub-menu>li>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>i{color:#606C7D}.page-sidebar .page-sidebar-menu .sub-menu>li>a>i[class*=icon-],.page-sidebar .page-sidebar-menu .sub-menu>li>a>i[class^=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>i[class*=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>i[class^=icon-]{color:#6b788b}.page-sidebar .page-sidebar-menu .sub-menu>li>a>.arrow.open:before,.page-sidebar .page-sidebar-menu .sub-menu>li>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>.arrow:before{color:#606C7D}.page-sidebar .page-sidebar-menu .sub-menu>li.active>a,.page-sidebar .page-sidebar-menu .sub-menu>li.open>a,.page-sidebar .page-sidebar-menu .sub-menu>li:hover>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li:hover>a{background:#3e4b5c!important}.page-sidebar .page-sidebar-menu .sub-menu>li.active>a>i,.page-sidebar .page-sidebar-menu .sub-menu>li.open>a>i,.page-sidebar .page-sidebar-menu .sub-menu>li:hover>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.active>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.open>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li:hover>a>i{color:#959fae}.page-sidebar .page-sidebar-menu .sub-menu>li.active>a>.arrow.open:before,.page-sidebar .page-sidebar-menu .sub-menu>li.active>a>.arrow:before,.page-sidebar .page-sidebar-menu .sub-menu>li.open>a>.arrow.open:before,.page-sidebar .page-sidebar-menu .sub-menu>li.open>a>.arrow:before,.page-sidebar .page-sidebar-menu .sub-menu>li:hover>a>.arrow.open:before,.page-sidebar .page-sidebar-menu .sub-menu>li:hover>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.active>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.active>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.open>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.open>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li:hover>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li:hover>a>.arrow:before{color:#606C7D}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li:hover>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li:hover>a{background:#3a4656}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a{background:#3e4b5c;border-left:4px solid #EA4C61;color:#f1f1f1}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a:hover,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a:hover{border-left:4px solid #EA4C61;background:#3a4656}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>.arrow.open:before,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>.arrow:before,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>i,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a>.arrow.open:before,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a>.arrow:before,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a>i{color:#eee}.page-sidebar .sidebar-search .input-group .input-group-btn .btn>i,.page-sidebar-closed .page-sidebar .sidebar-search.open .remove>i,.page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.open .remove>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn>i{color:#4e5c6f}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu{background:#3a4656}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.active>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li:hover>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li:hover>a{background:#3e4b5c!important}.page-sidebar .sidebar-toggler,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler{background:url(../assets/images/sidebar_inline_toggler_icon_darkblue.jpg)}.page-sidebar .sidebar-search .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group{border-bottom:1px solid #435060}.page-sidebar .sidebar-search .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control{background-color:#364150;color:#4e5c6f}.page-sidebar .sidebar-search .input-group .form-control::-moz-placeholder,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control::-moz-placeholder{color:#4e5c6f;opacity:1}.page-sidebar .sidebar-search .input-group .form-control:-ms-input-placeholder,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control:-ms-input-placeholder{color:#4e5c6f}.page-sidebar .sidebar-search .input-group .form-control::-webkit-input-placeholder,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control::-webkit-input-placeholder{color:#4e5c6f}.page-sidebar .sidebar-search.sidebar-search-bordered .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group{border:1px solid #435060}.page-sidebar-closed .page-sidebar .sidebar-search.open .input-group,.page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.open .input-group{background-color:#364150}.page-sidebar-closed .page-sidebar .sidebar-search.sidebar-search-solid .input-group,.page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group{background:0 0}.page-sidebar .sidebar-search.sidebar-search-solid .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group{border:1px solid #2c3541;background:#2c3541}.page-sidebar .sidebar-search.sidebar-search-solid .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group .form-control{background:#2c3541}.page-sidebar .sidebar-search.sidebar-search-solid.open .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid.open .input-group{border:1px solid #364150;background:#364150}.page-sidebar .sidebar-search.sidebar-search-solid.open .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid.open .input-group .form-control{background:#364150}.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a,.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a:hover,.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light>li.active>a,.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light>li.active>a:hover{border-left:0;border-right:4px solid #EA4C61}.page-quick-sidebar-wrapper,.page-quick-sidebar-wrapper .page-quick-sidebar{background:#435468}.page-quick-sidebar-toggler{background:#576d87}.page-quick-sidebar-toggler:hover{background:#51667e}.page-quick-sidebar-toggler>i,.page-quick-sidebar-wrapper{color:#d1d6de}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a{color:#c9ced7;background:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a:hover{background:#4d6178}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li.open>a{color:#c9ced7;background:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li.active>a{border:0;background:#435468}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu{border:0;background:#576d87;box-shadow:5px 5px rgba(142,160,182,.1)}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu:after,.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu:before{border-bottom:7px solid #576d87}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li>a{color:#d1d6de}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li>a>i{color:#ccd1d9}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li>a:hover{background:#5d7591;color:#d1d6de}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li>a:hover>i{color:#d4d9e0}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li.active>a{background:#59708a;color:#d1d6de}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li.divider{background-color:#5d7591}.page-quick-sidebar-wrapper .page-quick-sidebar .list-heading{color:#a5afbd}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items>li{border-bottom-color:#495c72}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items>li:hover{background:#495c72}.page-quick-sidebar-wrapper .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list{color:#c9ced7}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search .input-group{border-bottom:1px solid #435060}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search .input-group .form-control{background-color:#435468;color:#c9ced7}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-sub{color:#9ca7b7}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-small{color:#919cae}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .datetime,.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .name{color:#bdc4ce}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .message{color:#c9ced7;background:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message .arrow{border-right-color:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message .arrow{border-left-color:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a{color:#b7bfca}.page-quick-sidebar-wrapper .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a .desc{text-decoration:underline}.page-quick-sidebar-wrapper .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li .desc{color:#b1b9c6}.page-quick-sidebar-wrapper .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li .date{color:#919cae}.page-footer .page-footer-inner{color:#98a6ba}.page-footer-fixed .page-footer{background-color:#28303b}@media (min-width:992px){.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu{box-shadow:5px 5px rgba(44,53,66,.2)}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu.sidebar-search-wrapper,.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu.sidebar-toggler-wrapper{box-shadow:none}.page-sidebar-menu.page-sidebar-menu-closed>li:hover{box-shadow:5px 5px rgba(44,53,66,.2)}.page-sidebar-menu.page-sidebar-menu-closed>li:hover.sidebar-search-wrapper,.page-sidebar-menu.page-sidebar-menu-closed>li:hover.sidebar-toggler-wrapper{box-shadow:none}.page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu{box-shadow:5px 5px rgba(44,53,66,.2)}.page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu.sidebar-search-wrapper,.page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu.sidebar-toggler-wrapper{box-shadow:none}.page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed>li.heading{padding:0;margin-top:15px;margin-bottom:15px;border-top:1px solid #3d4957!important}.page-sidebar-fixed:not(.page-footer-fixed) .page-content{border-bottom:0}.page-sidebar-fixed:not(.page-footer-fixed) .page-footer{background-color:#fff}.page-sidebar-fixed:not(.page-footer-fixed) .page-footer .page-footer-inner{color:#333}.page-boxed{background-color:#303a47!important}.page-boxed .page-container{background-color:#364150;border-left:1px solid #3d4957;border-bottom:1px solid #3d4957}.page-boxed.page-sidebar-reversed .page-container{border-left:0;border-right:1px solid #3d4957}.page-boxed.page-sidebar-fixed .page-container{border-left:0;border-bottom:0}.page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container{border-left:0;border-right:0;border-bottom:0}.page-boxed.page-sidebar-fixed .page-sidebar{border-left:1px solid #3d4957}.page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar{border-right:1px solid #3d4957;border-left:0}.page-boxed.page-sidebar-fixed.page-footer-fixed .page-footer{background-color:#303a47!important}.page-boxed.page-sidebar-fixed.page-footer-fixed .page-footer .page-footer-inner{color:#98a6ba}.page-sidebar-menu-hover-submenu li:hover a>.arrow{border-right:8px solid #323c4b}.page-sidebar-reversed .page-sidebar-menu-hover-submenu li:hover a>.arrow{border-left:8px solid #323c4b}.page-sidebar-menu-hover-submenu li:hover>.sub-menu{background:#323c4b!important}}.pace .pace-progress-inner,.page-header.navbar,.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .progress .progress-bar{box-shadow:none}@media (max-width:991px){.page-sidebar{background-color:#28303b}.page-sidebar .page-sidebar-menu>li>a{border-top:1px solid #364150}.page-sidebar .page-sidebar-menu>li.open>a,.page-sidebar .page-sidebar-menu>li:hover>a{background:#2e3744}.page-sidebar .page-sidebar-menu>li:last-child>a{border-bottom:0!important}.page-sidebar .page-sidebar-menu .sidebar-search input,.page-sidebar .page-sidebar-menu>li .sub-menu{background-color:#28303b!important}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a:hover,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a:hover,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li:hover>a{background:#2e3744}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu{background:#28303b!important}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.active>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li:hover>a{background:#2e3744!important}}@media (max-width:480px){.page-header.navbar .top-menu{background-color:#364150}.page-header-fixed-mobile .page-header.navbar .top-menu{background-color:#2b3643}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle{background-color:#415265}.page-header-fixed-mobile .page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle{background:0 0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle:hover{background-color:#3f4f62}}body{background-color:#364150}.block-spinner-bar>div,.page-spinner-bar>div{background:#20c5ad}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTQzyDMXhdD8sAj6OAJTFsBI.woff2) format('woff2')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTQ7aC6SjiAOpAWOKfJDfVRY.woff2) format('woff2');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTRdwxCXfZpKo5kWAx_74bHs.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTSGUML8f7tzeB6gGvgki0bE.woff2) format('woff2');unicode-range:U+02BC,U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200B-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTZ6vnaPZw6nYDxM4SVEMFKg.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTfy1_HTwRwgtl1cPga3Fy3Y.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTfgrLsWo7Jk1KvZser0olKY.woff2) format('woff2');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTYjoYw3YTyktCCer_ilOlhE.woff2) format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTRampu5_7CjHW5spxoeN3Vs.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/TCmDhmS1RRL7aqhqZW19hwLUuEpTyoUstqEm5AMlJo4.woff2) format('woff2')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/K88pR3goAWT7BTt32Z01m4X0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/RjgO7rYTmqiVp7vzi-Q5UYX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/ttwNtsRpgsxVmgGGmiUOEoX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+02BC,U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200B-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/LWCjsQkB6EMdfHrEVqA1KYX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/xozscpT2726on7jbcb_pAoX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/59ZRklaO5bWGqF5A9baEEYX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/u-WUoqrET9fUeobQW7jkRYX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/cJZKeOuBrn4kERxqtaUH3ZBw1xU1rKptJj_0jans920.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSgzyDMXhdD8sAj6OAJTFsBI.woff2) format('woff2')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSg7aC6SjiAOpAWOKfJDfVRY.woff2) format('woff2');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNShdwxCXfZpKo5kWAx_74bHs.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSiGUML8f7tzeB6gGvgki0bE.woff2) format('woff2');unicode-range:U+02BC,U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200B-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSp6vnaPZw6nYDxM4SVEMFKg.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSvy1_HTwRwgtl1cPga3Fy3Y.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSvgrLsWo7Jk1KvZser0olKY.woff2) format('woff2');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSojoYw3YTyktCCer_ilOlhE.woff2) format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNShampu5_7CjHW5spxoeN3Vs.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzAzyDMXhdD8sAj6OAJTFsBI.woff2) format('woff2')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzA7aC6SjiAOpAWOKfJDfVRY.woff2) format('woff2');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzBdwxCXfZpKo5kWAx_74bHs.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzCGUML8f7tzeB6gGvgki0bE.woff2) format('woff2');unicode-range:U+02BC,U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200B-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzJ6vnaPZw6nYDxM4SVEMFKg.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzPy1_HTwRwgtl1cPga3Fy3Y.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzPgrLsWo7Jk1KvZser0olKY.woff2) format('woff2');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzIjoYw3YTyktCCer_ilOlhE.woff2) format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzBampu5_7CjHW5spxoeN3Vs.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@media print{body{background-color:#fff!important}.hidden-print,.page-bar,.page-footer,.page-quick-sidebar-wrapper,.page-sidebar-wrapper,.theme-panel{display:none}.no-page-break{page-break-after:avoid}.page-container{margin:0!important;padding:0!important}.page-content{min-height:300px!important;padding:0 20px 20px!important;margin:0!important}}.page-header.navbar{width:100%;margin:0;border:0;padding:0;height:46px;min-height:46px;filter:none;background-image:none}.page-header.navbar.navbar-fixed-top,.page-header.navbar.navbar-static-top{z-index:9995}.page-header.navbar .page-logo{float:left;display:block;width:235px;height:46px;padding-left:20px;padding-right:20px}.page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo{padding:0}.page-header.navbar .page-logo>.logo-image,.page-header.navbar .page-logo>a{display:inline-block;float:left}.page-header.navbar .page-logo .logo-default{margin:16px 0 0}.page-header.navbar .page-logo .logo-mini{display:none;margin-left:5px}.page-header.navbar .page-logo .text-logo{padding-left:20px;padding-top:12px}.page-header.navbar .search-form{display:inline-block;width:46px;position:relative;float:left;transition:all .6s}.page-header.navbar .search-form .input-group .form-control{height:46px;border:0;background:0 0!important;font-size:13px;padding-left:0;margin-left:12px;text-indent:-150000px}.page-header.navbar .search-form .input-group .form-control:hover{cursor:pointer}.page-header.navbar .search-form .input-group .input-group-btn{height:46px}.page-header.navbar .search-form .input-group .input-group-btn .btn.submit{margin-left:-24px;padding:0;width:46px;background:0 0;margin-top:4px;display:block}.page-header.navbar .search-form .input-group .input-group-btn .btn.submit>i{font-size:15px}.page-header.navbar .search-form.open{transition:all .6s;width:300px!important}.page-header.navbar .search-form.open .input-group .form-control{text-indent:0}.page-header.navbar .search-form.open .input-group .form-control:hover{cursor:text}.page-header.navbar .search-form.open .input-group .input-group-btn .btn.submit{margin-left:0}.page-header.navbar .menu-toggler{display:block;cursor:pointer;opacity:.7;filter:alpha(opacity=70);width:24px;height:24px;background-repeat:no-repeat;background-position:center center}.page-header.navbar .menu-toggler:hover,.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li>a:hover{opacity:1;filter:alpha(opacity=100)}.page-header.navbar .menu-toggler.sidebar-toggler{float:right;margin:11px 0 0}.page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .menu-toggler.sidebar-toggler{margin-right:10.5px}.page-header.navbar .menu-toggler.responsive-toggler{display:none;float:right;margin:11px 6px 0}.page-header.navbar .top-menu{margin:0;padding:0;float:right}.page-header.navbar .top-menu .navbar-nav{padding:0;margin-right:20px;display:block}.page-header.navbar .top-menu .navbar-nav>li.dropdown{margin:0;padding:0 4px;height:46px;display:inline-block}.page-header.navbar .top-menu .navbar-nav>li.dropdown:last-child{padding-right:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle{margin:0;padding:17px 10px 9px}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle:last-child{padding-right:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle>i{font-size:17px}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle>i.glyphicon{font-size:16px}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle>.badge{font-family:"Open Sans",sans-serif;position:absolute;top:10px;right:20px;font-weight:300px;padding:3px 6px}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle:focus{background:0 0}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-menu{margin-top:3px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-menu:before{position:absolute;top:-7px;right:9px;display:inline-block!important;border-right:7px solid transparent;border-bottom:7px solid #eee;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,.2);content:''}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-menu:after{position:absolute;top:-6px;right:10px;display:inline-block!important;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-menu>li>a{color:#555}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu{min-width:160px;max-width:275px;width:275px;z-index:9995}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external{display:block;overflow:hidden;padding:15px;letter-spacing:.5px;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>h3{margin:0;padding:0;float:left;font-size:13px;display:inline-block}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>a{display:inline-block;padding:0;background:0 0;clear:inherit;font-size:13px;font-weight:300;position:absolute;right:10px;border:0;margin-top:-1px}.page-bar:after,.page-container:after,.page-footer:after,.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:after,.page-sidebar .page-sidebar-menu>li.sidebar-search-wrapper:after,.page-sidebar .page-sidebar-menu>li.sidebar-toggler-wrapper:after,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-search-wrapper:after,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-toggler-wrapper:after{clear:both}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list{padding-right:0!important;padding-left:0;list-style:none}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li>a{display:block;clear:both;font-weight:300;line-height:20px;white-space:normal;font-size:13px;padding:16px 15px 18px;text-shadow:none}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li:first-child a{border-top:none}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .details{overflow:hidden}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .details .label-icon{margin-right:10px;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;border-radius:50%}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .details .label-icon i{margin-right:2px;margin-left:1px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .details .label-icon .badge{right:15px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .time{float:right;max-width:75px;font-size:11px;font-weight:400;opacity:.7;filter:alpha(opacity=70);text-align:right;padding:1px 5px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .photo{float:left;margin:0 6px 6px 0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .photo img{height:40px;width:40px;-webkit-border-radius:50%!important;-moz-border-radius:50%!important;-ms-border-radius:50%!important;-o-border-radius:50%!important;border-radius:50%!important}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .subject{display:block;margin-left:46px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .subject .from{font-size:13px;font-weight:600}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .subject .time{font-size:12px;font-weight:400;opacity:.5;filter:alpha(opacity=50);float:right}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .message{display:block!important;font-size:12px;line-height:1.3;margin-left:46px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .task{margin-bottom:5px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .task .desc{font-size:13px;font-weight:300}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .task .percent{float:right;font-weight:600;display:inline-block}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .progress{display:block;height:8px;margin:8px 0 2px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle{padding:14px 6px 12px 8px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle>.username{display:inline-block;font-size:13px;font-weight:300}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle>img{float:left;margin-top:-5px;margin-right:5px;height:29px;display:inline-block}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle>i{display:inline-block;margin:0;font-size:13px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-menu{width:175px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-menu>li>a{font-size:14px;font-weight:300}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-menu>li>a i{width:15px;display:inline-block;margin-right:9px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-menu>li>a .badge{margin-right:10px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language{padding-left:0;padding-right:0;margin:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-toggle{padding:14px 3px 12px 7px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-toggle>img{margin-bottom:2px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-toggle>i{font-size:14px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-menu>li>a{font-size:13px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-menu>li>a>img{margin-bottom:2px;margin-right:5px}.page-header.navbar .top-menu .navbar-nav li.dropdown-dark .dropdown-menu:before{border-left:none;border-right:none}.page-header.navbar .top-menu .navbar-nav li.dropdown-dark .dropdown-menu .dropdown-menu-list>li.external a{background:0 0!important;border:none!important}@media (min-width:768px){.page-header.navbar .search-form.search-form-expanded{width:200px}.page-header.navbar .search-form.search-form-expanded .input-group .form-control{text-indent:0}.page-header.navbar .search-form.search-form-expanded .input-group .form-control:hover{cursor:text}.page-header.navbar .search-form.search-form-expanded .input-group .input-group-btn .btn.submit{margin-left:0}}.page-header.navbar .container{position:relative}.page-header.navbar .hor-menu .navbar-nav,.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown{position:static}.page-header.navbar .hor-menu{margin:0;float:left}.page-header.navbar .hor-menu .navbar-nav.navbar-right .dropdown-menu{left:auto;right:0}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu{left:auto;width:auto}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content{font-family:"Open Sans",sans-serif;padding:15px;margin:0}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content.mega-menu-responsive-content{padding:10px 18px 10px 45px}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu{padding:0;margin:0}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu:last-child{border-right:0}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li{padding:1px!important;margin:0!important;list-style:none}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>h3{margin-top:5px;padding-left:6px;font-size:15px;font-weight:400}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a{white-space:normal;font-family:"Open Sans",sans-serif;padding:7px;margin:0;font-size:14px;font-weight:300}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a.iconify{padding:7px 7px 7px 30px}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a.iconify>i{position:absolute;top:auto!important;margin-left:-24px;font-size:15px;margin-top:3px!important}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a .badge,.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a .label{margin-left:5px}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown.mega-menu-full .dropdown-menu{left:20px;right:20px}.page-header.navbar .hor-menu .navbar-nav>li.menu-dropdown .dropdown-menu:after,.page-header.navbar .hor-menu .navbar-nav>li.menu-dropdown .dropdown-menu:before{display:none!important}.page-header.navbar .hor-menu .navbar-nav>li>a{font-size:14px;font-weight:400;padding:13px}.page-header.navbar .hor-menu .navbar-nav>li>a:focus{background:0 0!important}.page-header.navbar .hor-menu .navbar-nav>li.active .selected,.page-header.navbar .hor-menu .navbar-nav>li.current .selected{left:50%;bottom:0;position:absolute;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid transparent;display:inline-block;margin:0 0 -6px -7px;width:0;height:0}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu{margin-top:0;border:none}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a{font-family:"Open Sans",sans-serif;font-size:14px;font-weight:300;padding:9px 10px;white-space:normal}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a .badge,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a .label{font-weight:300}.page-header.navbar .hor-menu .navbar-nav>li.classic-menu-dropdown .dropdown-menu{min-width:195px;max-width:235px}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-submenu>.dropdown-menu{top:0}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-submenu>a:after{top:9px;right:10px}@media (min-width:992px) and (max-width:1200px){.page-boxed .page-header.navbar .top-menu .navbar-nav>li.dropdown-language .dropdown-toggle .langname,.page-boxed .page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle .username.username-hide-on-mobile{display:none}}@media (min-width:992px){.page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo{padding:0;width:45px}.page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo .logo-default{display:none}.page-boxed .page-header.navbar .page-logo{width:236px}.page-boxed .page-header.navbar .top-menu .navbar-nav{margin-right:0}.page-sidebar-closed.page-sidebar-closed-hide-logo.page-boxed .page-header.navbar .page-logo{width:46px}.page-boxed.page-sidebar-fixed .page-header.navbar .page-logo{width:235px}}@media (max-width:991px){.page-header.navbar{padding:0 20px;position:relative;clear:both}.page-header.navbar .page-logo{width:auto;padding:0;margin-right:10px;margin-left:0!important;padding-left:0!important}.page-header.navbar .page-logo img{margin-left:4px!important}.page-header.navbar .menu-toggler.sidebar-toggler{display:none!important}.page-header.navbar .menu-toggler.responsive-toggler{display:inline-block}.page-header.navbar .top-menu .navbar-nav{display:inline-block;margin:0 10px 0 0}.page-header.navbar .top-menu .navbar-nav>li{float:left}.page-header.navbar .top-menu .navbar-nav .nav li.dropdown i{display:inline-block;position:relative;top:1px;right:0}.page-header.navbar .top-menu .navbar-nav .open .dropdown-menu{position:absolute}.page-header-fixed.page-header-fixed-mobile .navbar-fixed-top{position:fixed}.page-boxed .page-header.navbar>.container{max-width:none!important;margin:0!important;padding:0!important}}@media (min-width:768px) and (max-width:991px){.page-boxed .page-header.navbar{margin:auto!important;padding:0}.page-boxed .page-header.navbar>.container{margin:auto!important}}@media (max-width:767px){.page-header.navbar{padding:0 10px}.page-header.navbar .page-logo{width:auto}.page-header.navbar .search-form.open{z-index:3;left:10px;right:10px;position:absolute;width:auto!important}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended>.dropdown-menu{max-width:255px;width:255px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu{margin-right:-190px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu:after,.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu:before{margin-right:190px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox .dropdown-menu{margin-right:-150px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox .dropdown-menu:after,.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox .dropdown-menu:before{margin-right:150px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu{margin-right:-110px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu:after,.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu:before{margin-right:110px}}@media (max-width:580px){.page-header.navbar .top-menu .navbar-nav>li.dropdown-language .dropdown-toggle .langname,.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle .username.username-hide-on-mobile{display:none}}@media (max-width:480px){.page-header-fixed.page-header-fixed-mobile .page-header.navbar{height:92px}.page-header.navbar .top-menu{display:block;clear:both}.page-header.navbar .top-menu .navbar-nav{margin-right:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle{padding:17px 6px 9px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language .dropdown-toggle{padding:14px 4px 12px 2px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle{padding:14px 0 12px 2px}}.pace .pace-progress{z-index:10000;top:44px;height:2px}.pace .pace-activity{top:48px;right:22px;border-radius:10px!important}.page-container{margin:0;padding:0;position:relative}.page-container:after,.page-container:before{content:" ";display:table}.page-header-fixed .page-container{margin-top:46px}.page-footer-fixed.page-footer-fixed-mobile .page-container{margin-bottom:20px!important}@media (min-width:992px){.page-footer-fixed .page-container{margin-bottom:20px!important}}@media (max-width:991px){.page-container{margin:0!important;padding:0!important}.page-header-fixed.page-header-fixed-mobile .page-container{margin-top:46px!important}}@media (max-width:480px){.page-header-fixed .pace .pace-progress{top:92px}.page-header-fixed .pace .pace-activity{top:188px;right:15px}.page-header-fixed.page-header-fixed-mobile .page-container{margin-top:92px!important}}.ie8 .page-sidebar{width:235px;float:left;position:relative;margin-right:-100%}.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover.navbar-collapse,.page-sidebar.navbar-collapse{padding:0;box-shadow:none}.page-sidebar .page-sidebar-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu{list-style:none;margin:0;padding:0}.page-sidebar .page-sidebar-menu>li,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li{display:block;margin:0;padding:0;border:0}.page-sidebar .page-sidebar-menu>li.sidebar-search-wrapper,.page-sidebar .page-sidebar-menu>li.sidebar-toggler-wrapper,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-search-wrapper,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-toggler-wrapper{border:0!important}.page-sidebar .page-sidebar-menu>li.sidebar-search-wrapper:after,.page-sidebar .page-sidebar-menu>li.sidebar-search-wrapper:before,.page-sidebar .page-sidebar-menu>li.sidebar-toggler-wrapper:after,.page-sidebar .page-sidebar-menu>li.sidebar-toggler-wrapper:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-search-wrapper:after,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-search-wrapper:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-toggler-wrapper:after,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-toggler-wrapper:before{content:" ";display:table}.page-sidebar .page-sidebar-menu>li.start>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.start>a{border-top-color:transparent!important}.page-sidebar .page-sidebar-menu>li.last>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.last>a{border-bottom-color:transparent!important}.page-sidebar .page-sidebar-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a{display:block;position:relative;margin:0;border:0;padding:10px 15px;text-decoration:none;font-size:14px;font-weight:300}.page-sidebar .page-sidebar-menu>li>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i{font-size:16px;margin-right:5px;text-shadow:none}.page-sidebar .page-sidebar-menu>li>a>i.glyphicon,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i.glyphicon{top:3px;margin-left:1px;margin-right:4px}.page-sidebar .page-sidebar-menu>li>a>[class^=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>[class^=icon-]{top:2px;margin-left:1px;margin-right:4px}.page-sidebar-fixed .page-sidebar .page-sidebar-menu>li>a,.page-sidebar-fixed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a{transition:all .2s ease}.page-sidebar-reversed.page-sidebar-fixed .page-sidebar .page-sidebar-menu>li>a,.page-sidebar-reversed.page-sidebar-fixed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a{transition:none}.page-sidebar .page-sidebar-menu>li.heading,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.heading{padding:15px}.page-sidebar .page-sidebar-menu>li.heading>h3,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.heading>h3{margin:0;padding:0;font-size:14px;font-weight:300}.page-sidebar .page-sidebar-menu>li.heading+li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.heading+li>a{border-top:0}.page-sidebar .page-sidebar-menu>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a{font-size:14px}.page-sidebar .page-sidebar-menu>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a{border:none;text-shadow:none;font-size:14px}.page-sidebar .page-sidebar-menu>li.active>a>.selected,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.selected{display:block;float:right;position:absolute;right:0;top:8px;background:0 0;width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-right:12px solid #fff}.page-sidebar-reversed .page-sidebar .page-sidebar-menu>li.active>a>.selected,.page-sidebar-reversed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.selected{right:auto;left:0;border-right:0;border-left:8px solid #fff}.page-container-bg-solid .page-sidebar .page-sidebar-menu>li.active>a>.selected,.page-container-bg-solid .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.selected{border-color:transparent #F1F3FA transparent transparent}.page-container-bg-solid.page-sidebar-reversed .page-sidebar .page-sidebar-menu>li.active>a>.selected,.page-container-bg-solid.page-sidebar-reversed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.selected{border-color:transparent transparent transparent #F1F3FA}.page-sidebar .page-sidebar-menu li>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.arrow:before{float:right;width:10px;text-align:center;margin-top:-1px;margin-right:5px;margin-left:5px;display:inline;font-size:16px;font-family:FontAwesome;height:auto;content:"\f104";font-weight:300;text-shadow:none}.page-sidebar .page-sidebar-menu li>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.arrow.open:before{content:"\f107"}.page-sidebar .page-sidebar-menu li>a>.badge,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.badge{float:right;margin-top:1px;margin-right:0}.page-sidebar .page-sidebar-menu .sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu{list-style:none;display:none;padding:0;margin:8px 0}.page-sidebar .page-sidebar-menu .sub-menu li,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li{background:0 0;margin:0;padding:0;margin-top:1px!important}.page-sidebar .page-sidebar-menu .sub-menu li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>a{display:block;margin:0;padding:6px 15px 6px 43px;text-decoration:none;font-size:14px;font-weight:300;background:0 0}.page-sidebar .page-sidebar-menu .sub-menu li>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>a>i{font-size:14px}.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu{margin:0}.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>a{padding-left:60px}.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu{margin:0}.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a{padding-left:80px}.page-sidebar .page-sidebar-menu li.active>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active>.sub-menu{display:block}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li>a{border:0;margin:0;padding-left:11px;border-left:4px solid transparent}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu{margin:0;padding:1px 0}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li>a{padding-top:8px;padding-bottom:8px}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li:first-child,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li:first-child{margin-top:0!important}.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li>a,.page-sidebar-reversed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li>a{padding-left:15px;padding-right:11px;border-left:0;border-right:4px solid transparent}.page-sidebar .sidebar-toggler,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler{display:block;cursor:pointer;opacity:.7;filter:alpha(opacity=70);width:30px;height:27px;margin-top:15px;margin-right:19px;float:right;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-sidebar .sidebar-toggler:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler:hover{filter:alpha(opacity=100);opacity:1}.page-sidebar .sidebar-search,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search{padding:0;margin:22px 18px}.page-sidebar .sidebar-search .remove,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .remove{display:none}.page-sidebar .sidebar-search .remove>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .remove>i{font-size:16px}.page-sidebar .sidebar-search .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-sidebar .sidebar-search .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control{border:0;font-size:14px;padding:0;height:auto;line-height:auto;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-sidebar .sidebar-search .input-group .input-group-btn .btn,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn{padding:2px 0 0;background-color:transparent;background-repeat:no-repeat;background-position:100% 3px}.page-sidebar .sidebar-search .input-group .input-group-btn .btn>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn>i{font-size:15px}.page-sidebar .sidebar-search.sidebar-search-bordered,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered{margin:25px 18px}.page-sidebar .sidebar-search.sidebar-search-bordered .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group .form-control{font-size:13px;padding:6px 8px}.page-sidebar .sidebar-search.sidebar-search-bordered .input-group .input-group-btn .btn,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group .input-group-btn .btn{margin-right:6px}@media (min-width:992px){.page-full-width .page-sidebar,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.open>.sub-menu,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>.sub-menu{display:none!important}.page-sidebar{width:235px;float:left;position:relative;margin-right:-100%}.page-sidebar.navbar-collapse{max-height:none!important}.page-sidebar-reversed .page-sidebar{float:right;margin-right:0;margin-left:-100%}.page-sidebar-reversed.page-sidebar-fixed .page-sidebar{margin-left:-235px}.page-sidebar-reversed.page-sidebar-fixed .page-sidebar-wrapper{position:relative;float:right}.page-sidebar-fixed .page-sidebar{position:fixed!important;margin-left:0;top:46px}.page-sidebar-fixed .page-sidebar-menu>li.last{margin-bottom:15px!important}.page-sidebar-closed .page-sidebar,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed{width:45px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover{width:256px!important;position:relative!important;z-index:10000;display:block!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;-ms-border-radius:0 4px 0 0;-o-border-radius:0 4px 0 0;border-radius:0 4px 0 0}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>i{margin-right:10px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>.title{display:inline!important;padding-left:15px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>.badge{display:block!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>.selected{display:none}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover.heading{width:45px!important;box-shadow:none}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu{width:210px;position:absolute;z-index:2000;left:46px;margin-top:0;top:100%;display:block!important;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu>li>a{padding-left:15px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu>li>.sub-menu>li>a{padding-left:30px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu>li>.sub-menu>li>.sub-menu>li>a{padding-left:45px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.heading>h3{display:none}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-toggler-wrapper .sidebar-toggler{margin-right:8px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-search-wrapper:hover,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-toggler-wrapper:hover{width:45px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a{padding-left:11px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a .selected{right:-3px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a>.arrow,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a>.badge,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a>.title{display:none!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-toggler{margin-left:3px;margin-right:3px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group{border-color:transparent;margin-left:-4px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group .form-control{display:none}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group .input-group-btn .btn{display:block}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.sidebar-search-bordered .input-group{padding:5px 0 3px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open{height:39px;margin-top:14px;margin-bottom:14px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group{width:210px;position:relative;z-index:1;margin-left:24px;padding:0}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .form-control{background:0 0;border:0;display:block;padding:8px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .input-group-btn .btn{display:block;margin-right:8px;margin-top:1px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .remove{background-repeat:no-repeat;width:11px;height:11px;margin:9px -5px 9px -7px;display:block;float:left}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open.sidebar-search-bordered{height:36px;margin-top:23px;margin-bottom:23px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open.sidebar-search-bordered .input-group{padding:0}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed>li>a{padding-right:11px;padding-left:7px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar{margin-left:-45px;width:45px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>.sub-menu{left:auto;right:46px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover{margin-left:-211px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a{-webkit-border-radius:4px 0 0;-moz-border-radius:4px 0 0;-ms-border-radius:4px 0 0 0;-o-border-radius:4px 0 0;border-radius:4px 0 0}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>.title{padding-left:0;padding-right:15px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>i{margin-right:0;margin-left:2px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-search-wrapper:hover,.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-toggler-wrapper:hover{margin-left:0}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group{margin-left:-227px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .input-group-btn .btn{margin-right:10px!important}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .remove{margin:9px 4px 12px -16px!important;float:right!important}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed>li>a{padding-right:7px;padding-left:11px}.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover{width:235px!important;display:absolute;z-index:10000}.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu{width:235px!important}.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .selected{display:none!important}.page-sidebar-closed.page-sidebar-fixed.page-sidebar-reversed .page-sidebar:hover{width:235px!important;display:absolute;z-index:10000;margin-left:-235px!important}.page-sidebar-closed.page-sidebar-fixed.page-sidebar-reversed .page-sidebar:hover .page-sidebar-menu{width:235px!important}.page-sidebar-closed.page-sidebar-hide .page-sidebar{display:none!important}.page-sidebar-menu.page-sidebar-menu-hover-submenu li .sub-menu{display:none;width:210px;z-index:2000;position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-sidebar-menu.page-sidebar-menu-hover-submenu li .sub-menu>li>a{margin:3px}.page-sidebar-menu.page-sidebar-menu-hover-submenu li.active .sub-menu,.page-sidebar-menu.page-sidebar-menu-hover-submenu li.open .sub-menu{display:none!important}.page-sidebar-menu.page-sidebar-menu-hover-submenu li a>.arrow{display:none}.page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>a>.arrow{display:block;float:right;position:absolute;right:0;margin-top:-20px;background:0 0;width:0;height:0;border-style:solid;border-top:12px double transparent;border-bottom:12px double transparent;border-left:0}.page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>a>.arrow:after,.page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>a>.arrow:before{display:none}.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>a>.arrow{right:auto;left:0;border-right:0}.page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>.sub-menu{display:inline-block!important}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>a>.arrow{z-index:1;right:0;margin-top:-23px}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>a>.selected{display:none}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu{margin-left:235px;margin-top:-40px}.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu{margin-left:-210px!important}.page-sidebar-closed .page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu{margin-left:0}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu>li>a{padding-left:15px}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu>li .sub-menu{margin-left:210px;margin-top:-38px!important}.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu>li .sub-menu{margin-left:-210px!important}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu>li .sub-menu>li>a{padding-left:10px;padding-right:10px}.page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-hover-submenu li:hover>.sub-menu,.page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-hover-submenu li:hover>.sub-menu>li>.sub-menu{margin-top:-41px}}@media (max-width:991px){.page-sidebar,.page-sidebar.navbar-collapse.in{border-top:0!important;margin:20px}.page-sidebar .sidebar-toggler{display:none}.page-sidebar .selected,.page-sidebar.navbar-collapse.collapse{display:none!important}.page-sidebar.navbar-collapse{max-height:none}.page-sidebar.navbar-collapse.in{position:relative;overflow:hidden!important;overflow-y:auto!important;display:block!important}.page-sidebar.navbar-collapse.navbar-no-scroll{max-height:none!important}.page-sidebar .mega-menu-responsive-content{padding:10px 18px 10px 45px}.page-full-width .page-sidebar-menu{display:block}}@media (min-width:768px) and (max-width:991px){.page-sidebar .btn-navbar.collapsed .arrow{display:none}.page-sidebar .btn-navbar .arrow{position:absolute;right:25px;width:0;height:0;top:50px;border-bottom:15px solid #5f646b;border-left:15px solid transparent;border-right:15px solid transparent}}.page-header .top-menu .dropdown-quick-sidebar-toggler>.dropdown-toggle{padding:17px 10px 9px!important}.page-header .top-menu .dropdown-quick-sidebar-toggler>.dropdown-toggle i{top:0}.page-quick-sidebar-open .page-header .top-menu .dropdown-quick-sidebar-toggler>.dropdown-toggle i:before{content:"\e066"}.page-quick-sidebar-wrapper{transition:right .3s;z-index:9994;position:fixed;top:46px;bottom:0;right:-270px;width:270px;overflow:hidden}.page-quick-sidebar-wrapper.phonebar{top:0}.page-footer-fixed .page-quick-sidebar-wrapper{bottom:33px}.page-quick-sidebar-full-height .page-quick-sidebar-wrapper{top:0;bottom:0}.page-quick-sidebar-open .page-quick-sidebar-wrapper{transition:right .3s;right:0}.page-quick-sidebar-toggler{overflow:hidden;z-index:9994;display:none;width:28px;height:27px;position:fixed;top:19px;right:15px;text-align:center;padding-top:6px}.page-quick-sidebar-open .page-quick-sidebar-toggler{display:inline-block}.page-quick-sidebar-toggler>i{font-size:17px}@media (max-width:480px){.page-sidebar,.page-sidebar.in{margin:0 10px 10px!important}.page-header-fixed.page-header-fixed-mobile .page-sidebar,.page-header-fixed.page-header-fixed-mobile .page-sidebar.in{margin-top:10px!important}.page-quick-sidebar-wrapper{top:92px}.page-quick-sidebar-toggler{top:65px}}.page-content-wrapper,.page-footer,.page-header,.page-sidebar-wrapper{transition:margin .3s}.page-quick-sidebar-open.page-quick-sidebar-push-content .page-content-wrapper,.page-quick-sidebar-open.page-quick-sidebar-push-content .page-sidebar-wrapper{transition:margin-left .3s;margin-left:-270px}.page-quick-sidebar-open.page-quick-sidebar-push-content .page-footer{transition:margin-right .3s;margin-right:270px;margin-left:-270px}.page-sidebar-reversed.page-quick-sidebar-open.page-quick-sidebar-push-content .page-sidebar-wrapper{transition:margin-right .3s;margin-right:270px}.page-quick-sidebar-open.page-quick-sidebar-push-content.page-quick-sidebar-full-height .page-header{transition:margin-left .3s;margin-left:-270px}.page-quick-sidebar-open.page-quick-sidebar-push-content.page-footer-fixed:not(.page-quick-sidebar-full-height) .page-footer{margin-left:0;margin-right:0}.page-quick-sidebar-open.page-quick-sidebar-over-content-transparent .page-quick-sidebar-wrapper{opacity:.9;filter:alpha(opacity=90)}@media (max-width:991px){.page-quick-sidebar-open.page-quick-sidebar-push-content .page-sidebar-wrapper{display:none}}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified{margin:0;padding:0}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li{display:table-cell!important;width:1%!important}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a{padding:15px;border:0;height:46px;font-size:13px;text-transform:uppercase;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a>.badge{position:absolute;top:12px;right:3px}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a:hover{border:0}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu{margin-top:8px;margin-right:20px}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu:before{position:absolute;top:-7px;right:19px;display:inline-block!important;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,.2);content:''}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu:after{position:absolute;top:-6px;right:20px;display:inline-block!important;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>.tab-content{margin:0;padding:0}.page-quick-sidebar-wrapper .page-quick-sidebar .list-heading{font-size:16px;margin:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items{margin:0;padding:0;list-style:none}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items>li{margin:0;padding:10px;background:0 0;border-bottom-width:1px;border-bottom-style:solid}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items>li:last-child{border-bottom:0}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items.borderless li{border:0}.page-quick-sidebar-wrapper .page-quick-sidebar .inner-content{margin:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-list{position:absolute!important;width:270px!important;transition:margin .3s}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item{position:absolute!important;width:270px!important;transition:margin .3s;margin-left:270px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav{padding:0 10px 5px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list{vertical-align:middle;display:inline-block;font-size:14px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list>i{font-size:17px;line-height:17px;vertical-align:top;margin-right:3px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list{transition:margin .3s;margin-left:-270px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list .slimScrollBar,.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list .slimScrollRail{display:none!important}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-item{transition:margin .3s;margin-left:0}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users{padding:10px 0;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media{padding:12px 10px 11px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object{border-radius:50%!important;width:38.57px;opacity:.8;filter:alpha(opacity=80);float:left;margin-right:10px}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search{padding:0;margin:10px 22px}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search .input-group .form-control{border:0;font-size:14px;padding:0;height:auto}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search .input-group .input-group-btn .btn{padding:2px 0 0;background-color:transparent;background-repeat:no-repeat;background-position:100% 3px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:after,.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:before{content:" ";display:table}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media:hover{cursor:pointer}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media:hover .media-object{opacity:1;filter:alpha(opacity=100)}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading{margin:5px 0 0;font-size:14px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-sub{font-size:11px;text-transform:uppercase}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-small{font-size:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-status{margin-top:10px;right:10px;position:absolute;display:inline-block}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages{padding:0 10px;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post{transition:display .3s;padding:5px 0;margin:10px auto;font-size:12px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .body{display:block;word-wrap:break-word}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .avatar{width:38.57px;border-radius:50%!important}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .avatar{float:left;margin-right:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .avatar{float:right;margin-left:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .name{font-size:12px;font-weight:300}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .datetime{font-size:12px;font-weight:300;text-style:italic}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .message{display:block;padding:5px;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message{text-align:left;margin-left:55px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message .arrow{display:block;position:absolute;top:9px;left:-6px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right-width:6px;border-right-style:solid}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message{margin-right:55px;text-align:right}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message .arrow{display:block;position:absolute;top:9px;right:-6px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left-width:6px;border-left-style:solid}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .datetime,.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .name{text-align:right}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-form{padding:20px 10px 15px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-form .input-group .form-control{font-size:13px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list{padding:10px 0;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li .label{margin-top:5px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li .desc{padding:0}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list{padding:10px 0;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li .bootstrap-switch{margin-top:-3px;float:right;border:0;min-width:59px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li .form-control{width:75px!important;padding:4px!important;float:right;border:0;margin-top:-4px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li select.form-control{padding:4px 0!important}.page-title{padding:0;font-size:28px;letter-spacing:-1px;display:block;color:#666;margin:0 0 15px;font-weight:300;font-family:"Open Sans",sans-serif}.page-title small{font-size:14px;letter-spacing:0;font-weight:300;color:#888}.page-container-bg-solid .page-title{color:#666;margin-bottom:20px;margin-top:20px}.page-container-bg-solid .page-title small{color:#666}.page-bar{padding:0;background-color:#f7f7f7;margin-bottom:25px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-bar:after,.page-bar:before{content:" ";display:table}.page-bar .page-breadcrumb{display:inline-block;float:left;padding:8px;margin:0;list-style:none}.page-bar .page-breadcrumb>li{display:inline-block}.ie8 .page-bar .page-breadcrumb>li{margin-right:1px}.page-bar .page-breadcrumb>li>a,.page-bar .page-breadcrumb>li>span{color:#888;font-size:14px;text-shadow:none}.page-bar .page-breadcrumb>li>i{color:#aaa;font-size:14px;text-shadow:none}.page-bar .page-breadcrumb>li>i[class*=icon-],.page-bar .page-breadcrumb>li>i[class^=icon-]{color:gray}.page-bar .page-toolbar{display:inline-block;float:right;padding:0}.page-bar .page-toolbar .btn-fit-height{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-ms-border-radius:0 4px 4px 0;-o-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;padding-top:8px;padding-bottom:8px}.page-container-bg-solid .page-bar{position:relative;padding:0 20px;background-color:#fff;margin:-25px -20px 0}.page-container-bg-solid .page-bar .page-breadcrumb{padding:11px 0}.page-container-bg-solid .page-bar .page-breadcrumb>li>a,.page-container-bg-solid .page-bar .page-breadcrumb>li>span{color:#888}.page-container-bg-solid .page-bar .page-breadcrumb>li>i{color:#aaa}.page-container-bg-solid .page-bar .page-breadcrumb>li>i[class*=icon-],.page-container-bg-solid .page-bar .page-breadcrumb>li>i[class^=icon-]{color:#8c8c8c}.page-container-bg-solid .page-bar .page-toolbar{padding:6px 0}.page-container-bg-solid .page-bar .page-toolbar .btn{margin-top:-2px}.page-container-bg-solid .page-bar .page-toolbar .btn.btn-sm{margin-top:0}.page-content{margin-top:0;padding:0;background-color:#fff}.page-container-bg-solid .page-content{background:#F1F3FA}.page-full-width .page-content{margin-left:0!important}@media (min-width:992px){.page-content-wrapper{float:left;width:100%}.page-content-wrapper .page-content{margin-left:235px;margin-top:0;min-height:600px;padding:25px 20px 10px}.page-content-wrapper .page-content.no-min-height{min-height:auto}.page-sidebar-fixed.page-sidebar-hover-on .page-content-wrapper .page-content{margin-left:45px}.page-sidebar-reversed .page-content-wrapper .page-content{margin-left:0!important;margin-right:235px!important}.page-sidebar-reversed.page-sidebar-fixed.page-sidebar-hover-on .page-content-wrapper .page-content{margin-left:0;margin-right:45px}.page-sidebar-reversed.page-sidebar-closed .page-content-wrapper .page-content{margin-left:0!important;margin-right:45px!important}.page-sidebar-closed .page-content-wrapper .page-content{margin-left:45px!important}.page-full-width .page-content-wrapper .page-content,.page-sidebar-closed.page-sidebar-hide .page-content-wrapper .page-content{margin-left:0!important}.page-sidebar-closed.page-sidebar-reversed.page-sidebar-hide .page-content-wrapper .page-content{margin-right:0!important}}@media (max-width:991px){.page-container-bg-solid .page-bar{margin-top:-20px}.page-boxed>.container{max-width:none!important;margin:0!important;padding:0!important}.page-content-wrapper .page-content{margin:0!important;padding:20px!important;min-height:280px}}@media (min-width:768px) and (max-width:991px){.page-boxed>.container{margin:auto!important}}@media (max-width:767px){.page-content-wrapper .page-content{padding:20px 10px 10px!important;overflow:hidden}.page-content-wrapper .page-content .page-title{margin-bottom:20px;font-size:18px}.page-content-wrapper .page-content .page-title small{font-size:13px;padding-top:3px}}@media (max-width:480px){.page-content-wrapper .page-content .page-title small{display:block;clear:both}}.page-footer{padding:8px 20px 5px;font-size:12px;height:33px}.page-footer:after,.page-footer:before{content:" ";display:table}.page-footer .page-footer-inner{float:left;display:inline-block}.page-footer-fixed.page-footer-fixed-mobile .page-footer{position:fixed;left:0;right:0;z-index:10000;bottom:0}.page-footer-fixed.page-footer-fixed-mobile.page-sidebar-fixed .page-footer{margin-left:0!important}@media (min-width:992px){.page-footer{clear:left}.page-footer-fixed .page-footer{position:fixed;left:0;right:0;z-index:10000;bottom:0}.page-sidebar-fixed.page-sidebar-closed .page-footer{margin-left:45px}.page-sidebar-fixed.page-footer-fixed .page-footer{margin-left:0!important}.page-sidebar-fixed .page-footer{margin-left:235px;padding:8px 20px 5px}.page-boxed .page-footer{padding:8px 0 5px}.page-boxed.page-sidebar-fixed .page-footer{padding-right:20px;padding-left:20px}.page-sidebar-reversed.page-sidebar-fixed .page-footer{margin-left:0;margin-right:235px;padding:8px 20px 5px}.page-sidebar-reversed.page-sidebar-fixed.page-footer-fixed .page-footer{margin-left:0;margin-right:0}.page-sidebar-reversed.page-sidebar-fixed.page-sidebar-closed .page-footer{margin-right:45px}}#ui-grid-twbs #ui-grid-twbs .btn-group-vertical>.btn-group:after,#ui-grid-twbs #ui-grid-twbs .btn-toolbar:after,#ui-grid-twbs #ui-grid-twbs .form-horizontal .form-group:after,.aside .aside-dialog .aside-footer:after,.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.container-fluid:after,.container:after,.dataTable,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after,.scroller-footer:after,.ui-grid-clearfix:after,.ui-grid-footer-canvas:after,.ui-grid-header-canvas:after{clear:both}@media (max-width:991px){.page-boxed .page-footer{padding-left:0;padding-right:0}}@media (max-width:767px){.page-boxed .page-footer,.page-footer{padding-left:10px;padding-right:10px}.page-footer-fixed .page-footer .container{padding-left:0;padding-right:0}}.scroll-to-top{padding:1px;text-align:center;position:fixed;bottom:10px;z-index:10001;display:none;right:10px}.theme-panel>.toggler,.theme-panel>.toggler-close{padding:20px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;top:4px;cursor:pointer}.scroll-to-top>i{display:inline-block;color:#687991;font-size:30px;opacity:.6;filter:alpha(opacity=60)}.scroll-to-top:hover{cursor:pointer}.scroll-to-top:hover>i{opacity:1;filter:alpha(opacity=100)}@media (min-width:992px){.scroll-to-top{right:20px}}@media (max-width:991px){.scroll-to-top{bottom:10px;right:10px}.scroll-to-top>i{font-size:28px}}.theme-panel{width:420px;margin-top:-13px;margin-right:0;z-index:100;float:right;position:relative}.theme-panel>.toggler{right:0;position:absolute;background:url(../img/icon-color.png) center no-repeat #d5dade;border-radius:4px}.theme-panel>.toggler:hover{background-color:#3d3d3d!important}.theme-panel>.toggler-close{display:none;right:0;z-index:101;position:absolute;background:url(../img/icon-color-close.png) center no-repeat #3d3d3d!important;border-radius:4px}.theme-panel>.toggler-close:hover{background-color:#222!important}.theme-panel>.theme-options{top:4px;right:0;display:none;position:absolute;z-index:100;background:#3d3d3d;box-shadow:5px 5px rgba(61,61,61,.1);-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.modal-open .colorpicker,.modal-open .datepicker,.modal-open .daterangepicker,.modal-open .datetimepicker{z-index:10055!important}.theme-panel>.theme-options>.theme-option{color:#cfcfcf;padding:10px;border-top:1px solid #444;margin-top:0;margin-bottom:0}.theme-panel>.theme-options>.theme-option>span{text-transform:uppercase;display:inline-block;width:145px;font-size:13px;font-weight:300}.theme-panel>.theme-options>.theme-option>select.form-control{display:inline;width:135px;padding:2px;text-transform:lowercase}.theme-panel>.theme-options>.theme-option.theme-colors{border-top:0}.theme-panel>.theme-options>.theme-option.theme-colors>span{display:block;width:auto}.theme-panel>.theme-options>.theme-option.theme-colors>ul{list-style:none;padding:0;display:block;margin-bottom:10px!important;margin-top:15px}.colorpicker.dropdown-menu,.daterangepicker.dropdown-menu,.datetimepicker.dropdown-menu{padding:5px}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li{width:40px;height:40px;margin:0 4px;cursor:pointer;list-style:none;float:left;border:1px solid #707070}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li:first-child{margin-left:0}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.current,.theme-panel>.theme-options>.theme-option.theme-colors>ul>li:hover{border:2px solid #d64635}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-default{background:#333438}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-darkblue{background:#2b3643}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-blue{background:#2D5F8B}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-grey{background:#697380}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-light{background:#F9FAFD}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-light2{background:#F1F1F1}.page-container-bg-solid .theme-panel{position:absolute;margin-top:30px;margin-right:20px;right:0}.page-container-bg-solid .theme-panel>.toggler{background:url(../img/icon-color.png) center no-repeat #BFCAD1}.page-container-bg-solid.page-sidebar-reversed .theme-panel{margin-right:255px}.page-on-load{background:#fefefe}.datepicker .active,.datepicker .active:hover,.datepicker .selected,.datepicker .today{background-image:none!important;filter:none!important}.page-on-load .page-container,.page-on-load .page-footer,.page-on-load .page-header,.page-on-load>.clearfix{display:none;transition:all 2s}.input-group.color .input-group-btn i{position:absolute;display:block;cursor:pointer;width:20px;height:20px;right:6px}.datepaginator a{font-family:'Open Sans';font-size:13px;font-weight:300}.datepicker table td,.datepicker table th,.datetimepicker table td,.datetimepicker table th{font-family:'Open Sans'!important}#dp-calendar{right:4px!important}.datepaginator .fa-angle-right:before{content:"\f105"}.datepaginator .fa-angle-left:before{content:"\f104"}.datepicker.dropdown-menu{padding:5px;box-shadow:5px 5px rgba(102,102,102,.1);border:1px solid #efefef}.datepicker .selected{background-color:#909090!important}.datepicker .active{background-color:#4b8df8!important}.datepicker .active:hover{background-color:#2678FC!important}.datepicker .input-daterange input{text-align:left}.datepicker table td{color:#000;font-weight:300!important}.datepicker table th{color:#333;font-weight:400!important}.daterangepicker{margin-top:4px}.daterangepicker td{text-shadow:none}.daterangepicker td.active{background-color:#4b8df8;background-image:none;filter:none}.datetimepicker .active,.datetimepicker .active:hover{filter:none!important;background-image:none!important}.daterangepicker th{font-weight:400;font-size:14px}.daterangepicker .ranges input[type=text]{width:70px!important;font-size:11px;vertical-align:middle}.daterangepicker .ranges label{font-weight:300;display:block}.daterangepicker .ranges .btn{margin-top:10px}.daterangepicker .ranges li{color:#333}.daterangepicker .ranges li.active,.daterangepicker .ranges li:hover{background:#4b8df8!important;border:1px solid #4b8df8!important;color:#fff}.daterangepicker .range_inputs input{margin-bottom:0!important}.daterangepicker .fa-angle-right:before{content:"\f105"}.daterangepicker .fa-angle-left:before,.datetimepicker .fa-angle-left:before{content:"\f104"}.datetimepicker table td{color:#000;font-weight:300!important}.datetimepicker table th{font-weight:400!important}.datetimepicker .active{background-color:#4b8df8!important}.datetimepicker .active:hover{background-color:#2678FC!important}.datetimepicker .fa-angle-right:before{content:"\f105"}.editable-input table,.editable-input table td,.editable-input table th,.editable-input table tr{border:0!important}.editable-input .combodate select{margin-bottom:5px}.fileinput{margin-bottom:0}.fileinput .close{float:none}.fileinput .input-group{white-space:nowrap;overflow:hidden}.md-input{padding:5px!important;border-bottom:0!important;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.md-editor{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.md-editor .btn-toolbar{margin-left:0;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.md-editor .btn-toolbar .btn-group .btn-sm.btn{padding-bottom:3px}.md-editor .btn-toolbar .btn-group .btn-primary{padding-top:5px;padding-bottom:7px}.md-editor.active{border:1px solid #999;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important}.has-error .md-editor{border:1px solid #ebccd1!important}.has-success .md-editor{border:1px solid #d6e9c6!important}.has-warning .md-editor{border:1px solid #faebcc!important}.modal-open.page-overflow .modal-scrollable,.modal-open.page-overflow .page-container,.modal-open.page-overflow .page-container .navbar-fixed-bottom,.modal-open.page-overflow .page-container .navbar-fixed-top{overflow-y:auto!important}.modal-scrollable{overflow:hidden!important}.modal-backdrop{position:fixed}.bootstrap-select .btn{border-color:#e5e5e5}.has-error .bootstrap-select .btn{border-color:#ebccd1}.has-success .bootstrap-select .btn{border-color:#d6e9c6}.has-warning .bootstrap-select .btn{border-color:#faebcc}.bootstrap-select.open .btn,.bootstrap-select.open.dropup .btn{border-color:#999}.bootstrap-select .btn:focus{outline:0!important;outline-offset:0}.bootstrap-select.btn-group .dropdown-menu{margin-top:1px}.bootstrap-select.btn-group .dropdown-menu>li>dt>.text{font-weight:600;font-family:'Open Sans';font-size:14px}.bootstrap-select.btn-group .dropdown-menu .text-muted{color:#999!important}.bootstrap-select .caret{border:0;width:auto;height:auto;margin-top:-10px!important}.bootstrap-select .caret:before{content:"\f107";display:inline-block;border:0;font-family:FontAwesome;font-style:normal;font-weight:400}.form-wizard .steps>li>a.step>.desc,.form-wizard .steps>li>a.step>.number{display:inline-block;font-size:16px;font-weight:300}.bootstrap-select .selected i{color:#aaa}.bootstrap-select .dropdown-menu{z-index:9999!important}.bootstrap-switch{border-color:#e5e5e5}.bootstrap-switch.bootstrap-switch-focused{box-shadow:none;border-color:#e5e5e5}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{color:#fff;background:#428bca}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info{color:#fff;background:#89C4F4}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success{color:#fff;background:#45B6AF}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning{color:#fff;background:#dfba49}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger{color:#fff;background:#F3565D}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default{color:#444;background:#ececec}.portlet>.portlet-title>.actions>.bootstrap-switch{border-color:transparent;margin-top:0}.bootstrap-timepicker-widget table td a{padding:4px 0}.bootstrap-timepicker-widget input,.bootstrap-timepicker-widget input:focus{outline:0!important;border:0}.modal-open .bootstrap-timepicker-widget{z-index:10055!important}.bootstrap-timepicker-widget.timepicker-orient-bottom:after,.bootstrap-timepicker-widget.timepicker-orient-bottom:before{top:auto}.toast{-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important;background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast .toast-close-button{display:inline-block;margin-top:0;margin-right:0;text-indent:-100000px;width:11px;height:16px;background-repeat:no-repeat!important;background-image:url(../../assets/images/portlet-remove-icon-white.png)!important}.form-wizard .steps,.form-wizard .steps>li>a.step{background-color:#fff;background-image:none;border:0;box-shadow:none;filter:none}.toast-top-center{top:12px;margin:0 auto 0 -150px;left:50%}.toast-bottom-center{bottom:12px;margin:0 auto 0 -150px;left:50%}.form-wizard .progress{margin-bottom:30px}.form-wizard .steps{padding:10px 0;margin-bottom:15px}.form-wizard .steps>li>a.step:hover{background:0 0}.form-wizard .steps>li>a.step>.number{background-color:#eee;text-align:center!important;padding:11px 15px 13px;margin-right:10px;height:45px;width:45px;-webkit-border-radius:50%!important;-moz-border-radius:50%!important;border-radius:50%!important}.form-wizard .steps>li>a.step>.desc>i{display:none}.form-wizard .steps>li.active>a.step .number{background-color:#45B6AF;color:#fff}.form-wizard .steps>li.active>a.step .desc{color:#333}.form-wizard .steps>li.done>a.step .number{background-color:#dfba49;color:#fff}.form-wizard .steps>li.done>a.step .desc{color:#333}.form-wizard .steps>li.done>a.step .desc i{font-size:12px;font-weight:400;color:#999;display:inline-block}@media (min-width:768px) and (max-width:1200px){.form-wizard .step .desc{margin-top:10px;display:block}}.wysihtml5-sandbox{width:100%!important}.wysihtml5-toolbar li{margin:0;height:29px}.wysihtml5-toolbar li .dropdown-menu{margin-top:5px}.has-error .wysihtml5-sandbox{border:1px solid #ebccd1!important}.has-success .wysihtml5-sandbox{border:1px solid #d6e9c6!important}.has-warning .wysihtml5-sandbox{border:1px solid #faebcc!important}.note-editor{border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.note-editor .note-toolbar{border-bottom:1px solid #e5e5e5;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.note-editor .note-statusbar{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.note-editor .note-statusbar .note-resizebar{border-top:1px solid #e5e5e5}.note-editor.fullscreen{z-index:11000;width:100%!important}.note-editor .dropdown-menu:before{left:9px;right:auto}.note-editor .dropdown-menu:after{left:10px;right:auto}.note-link-dialog .checkbox{margin-left:20px}.has-error .note-editor{border:1px solid #ebccd1!important}.has-success .note-editor{border:1px solid #d6e9c6!important}.has-warning .note-editor{border:1px solid #faebcc!important}.bootbox .bootbox-close-button{margin-top:0!important}.cke{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.cke .cke-top{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.cke .cke-bottom{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.cke_bottom,.cke_dialog,.cke_dialog_footer,.cke_dialog_title,.cke_inner,.cke_reset,.cke_top{background-image:none!important;filter:none;border-top:0;border-bottom:0;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important;text-shadow:none}.cke_dialog_tab,.cke_dialog_ui_button,.cke_dialog_ui_input_text{filter:none;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;background-image:none!important}.cke_dialog_tab,.cke_dialog_ui_button{box-shadow:none!important;text-shadow:none!important}.cke_dialog_tab:hover,.cke_dialog_ui_button:hover{text-decoration:none;text-shadow:none}.cke_dialog_ui_input_text{box-shadow:none!important}.cke_button,.cke_combo_button,.cke_toolbar,.cke_toolgroup{background-image:none!important;filter:none!important;border:0;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important}.cke_button,.cke_combo_button,.cke_hc.cke_panel_listItem a,.cke_panel_grouptitle{background-image:none!important;filter:none;text-shadow:none}.cke_button:hover,.cke_combo_button:hover{background-color:#ddd}.cke_toolbar_break{background-image:none!important;filter:none!important;border:0;box-shadow:none!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;-ms-box-shadow:none!important;-o-box-shadow:none!important}.has-error .cke{border:1px solid #ebccd1!important}.has-success .cke{border:1px solid #d6e9c6!important}.has-warning .cke{border:1px solid #faebcc!important}.modal-open .clockface{z-index:10055!important}.clockface .cell .inner.active,.clockface .cell .outer.active{background-color:#4b8df8!important;background-image:none;filter:none}.dataTable{width:100%;margin-top:5px}.dataTables_filter .form-control{margin-left:4px}.dataTables_filter label{line-height:32px}.dataTable .row-details{margin-top:3px;display:inline-block;cursor:pointer;width:14px;height:14px}.dataTable .row-details.row-details-close{background:url(../img/datatable-row-openclose.png) no-repeat}.dataTable .row-details.row-details-open{background:url(../img/datatable-row-openclose.png) 0 -23px no-repeat}.dataTable .details{background-color:#eee}.dataTable .details td,.dataTable .details th{padding:4px;background:0 0;border:0}.dataTable .details tr:hover td,.dataTable .details tr:hover th{background:0 0}.dataTable .details tr:nth-child(even) td,.dataTable .details tr:nth-child(even) th,.dataTable .details tr:nth-child(odd) td,.dataTable .details tr:nth-child(odd) th{background-color:#eee}.dataTable>thead>tr>th.sorting,.dataTable>thead>tr>th.sorting_asc,.dataTable>thead>tr>th.sorting_desc{padding-right:18px}.dataTable .table-checkbox{width:8px!important}@media (max-width:768px){.form-wizard .steps>li>a{text-align:left}.dataTables_wrapper .dataTables_filter .form-control,.dataTables_wrapper .dataTables_length .form-control{display:inline-block}.dataTables_wrapper .dataTables_info{top:17px}.dataTables_wrapper .dataTables_paginate{margin-top:-15px}}@media (max-width:480px){.dataTables_wrapper .dataTables_filter .form-control{width:175px!important}.dataTables_wrapper .dataTables_paginate{float:left;margin-top:20px}}.dataTables_processing{position:fixed;top:50%;left:50%;min-width:125px;margin-left:0;padding:7px;text-align:center;color:#333;font-size:13px;border:1px solid #ddd;background-color:#eee;vertical-align:middle;-webkit-box-shadow:0 1px 8px rgba(0,0,0,.1);-moz-box-shadow:0 1px 8px rgba(0,0,0,.1);box-shadow:0 1px 8px rgba(0,0,0,.1)}.dataTables_processing span{line-height:15px;vertical-align:middle}.dataTables_empty{text-align:center}.tabletools-btn-group{margin:0 0 10px}.tabletools-btn-group>.btn{margin-right:5px}.tabletools-btn-group>.btn:last-child{margin-right:0}.tabletools-dropdown-on-portlet{margin-top:-55px;float:right}.tabletools-dropdown-on-portlet>.btn{margin-right:5px}.tabletools-dropdown-on-portlet>.btn:last-child{margin-right:0}.DTTT_Print{background-color:#fff}.DTTT_Print .DTTT_PrintMessage{display:none}@media print{.DTTT_Print .DTTT_PrintMessage{display:inline-block}}.DTTT_Print .DTTT_Print_Info{display:block;position:fixed;top:35px;font-size:18px;width:700px;left:50%;margin-left:-350px;text-align:center}.DTTT_Print .page-footer,.DTTT_Print .page-header,.DTTT_Print .page-sidebar{display:none}.DTTT_Print .page-content-wrapper{float:none}.DTTT_Print .row,.DTTT_Print [class*=col-]{padding:0;margin:0}.DTTT_Print .page-content{margin:50px auto!important;border:0!important;width:800px!important;padding:0!important}.DTTT_Print .page-content .portlet{border:0;padding:0}.DTTT_Print .page-content .portlet .portlet-body{padding:0}.DTTT_Print .page-content .dataTables_wrapper{padding:0;margin:0;box-shadow:5px 5px rgba(102,102,102,.1)}@media print{.DTTT_Print .page-content .dataTables_wrapper{box-shadow:none}}.paging_bootstrap_extended{margin:0!important;padding:0!important;float:none!important;font-size:13px}.dataTables_extended_wrapper .seperator{padding:0 2px}.dataTables_extended_wrapper div.dataTables_info,.dataTables_extended_wrapper div.dataTables_length,.dataTables_extended_wrapper div.dataTables_paginate{display:inline-block;float:none!important;padding:0!important;margin:0!important;position:static!important}@media (max-width:480px){.dataTables_extended_wrapper div.dataTables_info,.dataTables_extended_wrapper div.dataTables_length,.dataTables_extended_wrapper div.dataTables_paginate{display:block;margin-bottom:10px!important}.dataTables_extended_wrapper .seperator{display:none!important}}.dataTables_extended_wrapper div.dataTables_length label{margin:0!important;padding:0!important;font-size:13px;float:none!important;display:inline-block!important}.table-container .table-actions-wrapper{display:none}.dataTables_scroll{margin-bottom:10px}.dataTables_scrollHead{border-bottom:2px solid #ddd!important}.dataTables_scrollHead thead th{border-bottom:0!important}.dataTables_scrollBody{border-bottom:1px solid #ddd!important}.dropzone{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.fancybox-overlay{z-index:100000}.fancybox-opened{z-index:100001}.spinner-buttons.btn-group-vertical .btn{text-align:center;margin:0;height:17px;width:22px;padding-left:6px;padding-right:6px;padding-top:0}.page-style-rounded .spinner-buttons.btn-group-vertical .btn.spinner-up{border-radius:0;border-top-right-radius:4px!important}.page-style-rounded .spinner-buttons.btn-group-vertical .btn.spinner-down{border-radius:0 0 4px}.external-event{display:inline-block;cursor:move;margin-bottom:5px;margin-left:5px}.fc-scroller{overflow-y:auto;overflow-x:hidden}.fc-month-view .fc-scroller{height:auto!important}.portlet .event-form-title{font-size:14px;margin-top:4px;font-weight:400;margin-bottom:10px}.portlet.calendar .fc-button{box-shadow:none;text-shadow:none;border:0 #ddd;height:35px;padding:6px 8px 7px;margin-left:2px;background:0 0;color:#fff;top:-45px;outline:0!important;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;border-style:none solid}.portlet.calendar .fc-toolbar{margin-bottom:0}.portlet.calendar .fc-toolbar h2{margin-top:3px;font-size:17px}.portlet.calendar .fc-button .fc-icon-left-single-arrow,.portlet.calendar .fc-button .fc-icon-right-single-arrow{font-family:FontAwesome;font-size:16px}.portlet.calendar .fc-header{margin-bottom:-21px}.portlet.calendar .fc-button-prev{padding-right:10px;padding-left:8px}.portlet.calendar .fc-button-next{padding-right:8px;padding-left:10px}.portlet.calendar .fc-button.fc-state-active,.portlet.calendar .fc-button.fc-state-hover{color:#666;background-color:#fff}.portlet.calendar .fc-button.fc-state-disabled{color:#ddd}.portlet.calendar .fc-button .fc-icon-left-single-arrow:after{content:""}.portlet.calendar .fc-button .fc-icon-left-single-arrow:before{content:"\f104"}.portlet.calendar .fc-button .fc-icon-right-single-arrow:after{content:""}.portlet.calendar .fc-button .fc-icon-right-single-arrow:before{content:"\f105"}.portlet.calendar .fc-text-arrow{font-size:22px;font-family:"Courier New",Courier,monospace;vertical-align:baseline}.portlet.calendar .fc-event .fc-time,.portlet.calendar .fc-event .fc-title{text-align:left;color:#fff;font-size:13px;font-weight:300;float:left}.portlet.calendar .fc-event{border:0;background-color:#69a4e0;color:#fff}.portlet.calendar .fc-event .fc-content{border:0}.portlet.calendar .fc-header-title h2{font-size:14px;line-height:20px;font-weight:400;color:#111}.portlet.calendar .fc-widget-header{background-image:none;filter:none;background-color:#eee;text-transform:uppercase;font-weight:300}.portlet.calendar.light .fc-button{top:-60px;color:#666;text-transform:uppercase;font-size:12px;padding-bottom:35px}.portlet.calendar.light .fc-button .fc-text-arrow{margin-top:-6px;display:inline-block}.portlet.calendar.light .fc-button.fc-state-active,.portlet.calendar.light .fc-button.fc-state-hover{color:#333;border-bottom:2px solid #45B6AF}.portlet.calendar.light .fc-button.fc-state-disabled{color:#aaa}.portlet.calendar .mobile .fc-button{padding:0 6px 20px;margin-left:2px;border:0;background-color:#ddd;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;color:#000;text-shadow:none;text-align:center}.portlet.calendar .mobile .fc-button.fc-state-active,.portlet.calendar .mobile .fc-button.fc-state-hover{background-color:#eee}.portlet.calendar .mobile .fc-button.fc-state-disabled{color:#bbb}.portlet.calendar .mobile .fc-button-prev{margin-right:5px;margin-top:-2px}.portlet.calendar .mobile .fc-button-next{margin-right:0;margin-top:-2px}.portlet.calendar .mobile .fc-header-space{margin:0;padding:0;width:0}.portlet.calendar .mobile .fc-header-left{position:absolute;z-index:10}.portlet.calendar .mobile .fc-header-left .fc-button{top:-2px}.portlet.calendar .mobile .fc-header-right{position:relative;right:0}.portlet.calendar .mobile .fc-header-right .fc-button{top:35px}.portlet.calendar .mobile .fc-content{margin-top:53px}.gmaps{height:300px;width:100%}.gmaps img{max-width:none}#gmap_static div{background-repeat:no-repeat;background-position:50% 50%;display:block;height:300px}#gmap_routes_instructions{margin-top:10px;margin-bottom:0}#gritter-notice-wrapper{right:1px!important}.gritter-close{left:auto!important;right:3px!important}.gritter-title{font-family:"Open Sans";font-size:18px;font-weight:300}.easy-pie-chart .number{font-size:14px!important;position:relative;text-align:center;height:75px;line-height:75px}.easy-pie-chart .number canvas{position:absolute;top:0;left:0}.profile,.profile-classic .profile-image,.sparkline-chart,.vmaps{position:relative}.blueimp-gallery .close{background-image:url(../../assets/images/portlet-remove-icon-white.png)!important;margin-top:-2px}.blueimp-gallery .next,.blueimp-gallery .prev{border-radius:23px!important}.ms-container .ms-list{border:1px solid #e5e5e5;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.ms-container .ms-optgroup-label{font-size:14px}.jquery-notific8-message,.ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection{font-size:13px}.ms-container .ms-list.ms-focus{border-color:#999;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.ms-container .ms-selectable li.ms-hover,.ms-container .ms-selection li.ms-hover{color:#333;background-color:#eee}.ms-container .form-control{margin-bottom:5px}[class*=jquery-notific8],[class*=jquery-notific8]:after,[class*=jquery-notific8]:before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.left .jquery-notific8-close-sticky span,.right .jquery-notific8-close-sticky span{font-size:10px}.jquery-notific8-heading{font-weight:300;font-size:16px}.password-strength .password-verdict{display:inline-block;margin-top:6px;margin-left:5px}.password-strength .progress{margin-top:5px;margin-bottom:0}.password-strength .progress-bar{padding:2px}.scroller{padding:0 12px 0 0;margin:0;overflow:hidden}.scroller-footer{margin-top:10px}.scroller-footer:after,.scroller-footer:before{content:" ";display:table}.portlet-body .slimScrollBar{margin-right:0}.jqstooltip{width:auto!important;height:auto!important}.easy-pie-chart,.sparkline-chart{text-align:center}.sparkline-chart{margin-top:15px}.easy-pie-chart .number{font-weight:300;width:85px;margin:0 auto}.sparkline-chart .number{width:100px;margin:0 auto 10px}.easy-pie-chart .title,.sparkline-chart .title{display:block;text-align:center;color:#333;font-weight:300;font-size:16px;margin-top:5px;margin-bottom:10px}.easy-pie-chart .title:hover,.sparkline-chart .title:hover{color:#666;text-decoration:none}.easy-pie-chart .title>i,.sparkline-chart .title>i{margin-top:5px}div.tagsinput{min-height:35px;height:auto!important;margin:0;padding:5px 5px 0;overflow:auto}.add-portfolio,.portfolio-block,.portfolio-stat,.portfolio-text,.portfolio-text .portfolio-text-info,.vmaps{overflow:hidden}div.tagsinput span.tag{background:#aaa;color:#fff;border:0;padding:3px 6px;margin-top:0;margin-bottom:5px}div.tagsinput input{padding:3px 6px;width:75px!important}div.tagsinput span.tag a{color:#fff}div.tagsinput .not_valid{color:#fff;padding:3px 6px;background-color:#e02222}.slider{border:0;padding:0;display:block;margin:12px 5px;min-height:11px}.vakata-context li a .vakata-contextmenu-sep,.vakata-context li a i,iframe[src="about:blank"]{display:none}.ui-slider-vertical{width:11px}.ui-slider-horizontal .ui-slider-handle{top:-3px}.ui-slider-vertical .ui-slider-handle{left:-3px}.bs-example+.highlight:after,.bs-example:after{left:15px;text-transform:uppercase;letter-spacing:1px}.ui-slider-handle,.ui-slider-vertical{filter:none!important;background-image:none!important}.jqvmap-zoomin,.jqvmap-zoomout{height:16px;width:16px;background-color:#666}.vmaps{height:300px}.jstree-default .jstree-clicked{border:0;background-color:#e1e1e1;box-shadow:none}.jstree-default .jstree-hovered{border:0;background-color:#eee;box-shadow:none}.jstree-default .jstree-wholerow-clicked,.jstree-wholerow .jstree-wholerow-clicked{background:#e1e1e1;border:0;box-shadow:none}.jstree-default .jstree-wholerow-hovered,.jstree-wholerow .jstree-wholerow-hovered{border:0;background-color:#eee;box-shadow:none}.jstree-icon.icon-lg{margin-top:1px}.jstree-open>.jstree-anchor>.fa-folder:before{margin-left:2px;content:"\f07c"}.jstree-default.jstree-rtl .jstree-last{background:no-repeat}.vakata-context,.vakata-context ul{padding:0;min-width:125px;background-color:#fff;font-size:14px;font-family:"Segoe UI",Helvetica,Arial,sans-serif;box-shadow:5px 5px rgba(102,102,102,.1);border:1px solid #efefef}.vakata-context li{border:0}.vakata-context li a{padding:0 10px;border:0}.vakata-context .vakata-context-hover>a,.vakata-context li a:hover{background-color:#eee;color:#333;box-shadow:none;margin:0}.vakata-context .vakata-context-hover>a .ins,.vakata-context .vakata-context-hover>a .span,.vakata-context li a:hover .ins,.vakata-context li a:hover .span{border:0!important}.vakata-context li a ins,.vakata-context li a span{display:none;border:0!important}.vakata-context .vakata-context-separator a,.vakata-context-rtl .vakata-context-separator a{margin:0;border:0}.jstree-rename-input{background-color:#fff!important;border:1px solid #e5e5e5!important;outline:0!important;padding:2px 6px!important;margin-right:-4px!important}.noUi-control{margin:9px 0}.noUi-primary .noUi-connect,.noUi-primary.noUi-connect{background:#428bca}.noUi-info .noUi-connect,.noUi-info.noUi-connect{background:#89C4F4}.noUi-success .noUi-connect,.noUi-success.noUi-connect{background:#45B6AF}.noUi-warning .noUi-connect,.noUi-warning.noUi-connect{background:#dfba49}.noUi-danger .noUi-connect,.noUi-danger.noUi-connect{background:#F3565D}.noUi-default .noUi-connect,.noUi-default.noUi-connect{background:#c6c6c6}.form-recaptcha-img{margin-bottom:10px;clear:both;border:1px solid #e5e5e5;padding:5px}.form-control .select2-choice{border:1px solid #e5e5e5;background-color:#fff;background-image:none;filter:none;height:34px;padding:3px 0 0 12px}.select2-container.select2-drop-above .select2-choice{border-bottom-color:#e5e5e5;background-color:#fff;background-image:none;filter:none}.select2-drop{border:1px solid #e5e5e5;background-color:#fff;background-image:none;-webkit-box-shadow:none;box-shadow:none;filter:none;border-top:0}.select2-drop-auto-width{border-top:1px solid #e5e5e5}.select2-drop.select2-drop-above{border-top:1px solid #e5e5e5;-webkit-box-shadow:none;box-shadow:none}.select2-drop-active{border:1px solid #999;border-top:0}.select2-container .select2-choice .select2-arrow{background-image:none;background-color:#fff;filter:none;border-left:1px solid #e5e5e5}.select2-container.select2-container-active .select2-arrow,.select2-container.select2-dropdown-open .select2-arrow{border-left:0!important}.select2-container .select2-choice .select2-arrow b{background-position:0 1px}.select2-search input{background-color:#fff!important;filter:none;margin:5px 0 0;border:1px solid #e5e5e5;webkit-appearance:none!important;color:#333;outline:0;height:auto!important;min-height:26px;padding:6px!important;line-height:20px;font-size:14px;font-weight:400;vertical-align:top;-webkit-box-shadow:none;box-shadow:none}.form-control.select2-container{border:0;height:auto!important;padding:0}.select2-container-active .select2-choice,.select2-container-active .select2-choices{border:1px solid #999!important;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-dropdown-open .select2-choice{border-bottom:0!important;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-dropdown-open.select2-drop-above .select2-choice,.select2-dropdown-open.select2-drop-above .select2-choices{border:1px solid #999!important;border-top:0!important;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-drop.select2-drop-above.select2-drop-active{border:1px solid #999!important;border-bottom:0!important}.select2-dropdown-open .select2-choice .select2-arrow b{background-position:-18px 1px}.select2-results{margin:5px 0}.select2-results .select2-highlighted{background:#eee;color:#333}.select2-results li em{background:#feffde;font-style:normal}.select2-results .select2-highlighted em{background:0 0}.select2-results .select2-highlighted ul{background:#fff;color:#000}.select2-results .select2-no-results,.select2-results .select2-searching,.select2-results .select2-selection-limit{padding:3px 7px 4px;background:#f4f4f4;display:list-item}.select2-container-multi,.select2-container-multi .select2-choices{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.select2-container-multi.select2-dropdown-open,.select2-container-multi.select2-dropdown-open .select2-choices{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.select2-container-multi.select2-dropdown-open.select2-drop-above,.select2-container-multi.select2-dropdown-open.select2-drop-above .select2-choices{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.select2-container-multi .select2-choices{padding-left:6px;min-height:34px;border:1px solid #e5e5e5;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-container-multi.select2-container-active .select2-choices{border:1px solid #999!important;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-container-multi .select2-choices .select2-search-choice{padding:3px 5px 3px 18px;margin:5px 0 3px 5px;border:1px solid #e5e5e5;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.has-warning .select2-container .select2-choice,.has-warning .select2-container .select2-choices,.has-warning .select2-container.select2-dropdown-open .select2-choice,.has-warning .select2-container.select2-dropdown-open .select2-choices{border-color:#faebcc}.has-warning .select2-container.select2-dropdown-open .select2-choice>span{color:#faebcc}.has-error .select2-container .select2-choice,.has-error .select2-container .select2-choices,.has-error .select2-container.select2-dropdown-open .select2-choice,.has-error .select2-container.select2-dropdown-open .select2-choices{border-color:#ebccd1}.has-error .select2-container.select2-dropdown-open .select2-choice>span{color:#ebccd1}.has-success .select2-container .select2-choice,.has-success .select2-container .select2-choices,.has-success .select2-container.select2-dropdown-open .select2-choice,.has-success .select2-container.select2-dropdown-open .select2-choices{border-color:#d6e9c6}.has-success .select2-container.select2-dropdown-open .select2-choice>span{color:#d6e9c6}.modal-open .select2-drop-mask{z-index:10051}.modal-open .select2-drop{z-index:10052}.modal-open .select2-search{z-index:10053}.form-control.input-lg .select2-choice{height:46px;padding:10px 16px}.select2-container.input-lg .select2-choice .select2-arrow b{background-position:0 7px}.form-control.input-sm .select2-choice{height:30px;padding:1px 10px 5px}.select2-container.input-sm .select2-choice .select2-arrow b{background-position:0 0}.checker{margin-top:-2px!important;margin-right:2px!important}.checker input,.radio input{outline:0!important}.alert,.aside:focus,.btn[bs-select],.timepicker.dropdown-menu button,.ui-grid-render-container:focus,[tabindex="-1"]{outline:0}div.checker.disabled span,div.checker.disabled.active span{background-position:-152px -260px}div.checker.disabled:hover,div.radio.disabled:hover{cursor:not-allowed}.edit-plunkr,.panel-heading[role=tab] .panel-title a,.ui-grid-header-cell .sortable,a[ng-click],input[type=checkbox]{cursor:pointer}div.checker,div.radio{margin-right:0;margin-left:3px}.portlet-body-morris-fit{margin-right:-20px;margin-left:-20px;margin-bottom:-15px}.portlet-body-morris-fit>svg{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.morris-hover.morris-default-style .morris-hover-row-label{text-align:left;font-weight:400;font-size:15px;color:#7D8C9D;font-family:"Open Sans",sans-serif}.morris-hover.morris-default-style .morris-hover-point{text-align:left;font-size:14px;font-weight:400;font-family:"Open Sans",sans-serif}.icheck-list>label{display:block;margin-bottom:8px}.icheck-list>label:last-child{margin-bottom:0}.form-horizontal .icheck-inline{margin-top:8px}.icheck-inline>label{display:inline-block;margin-left:15px}.icheck-inline>label:first-child{margin-left:0}div[class*=icheckbox_],div[class*=iradio_]{margin-right:5px;top:-1px!important}.icheck-colors{padding:0;margin:0;list-style:none}.icheck-colors>li{padding:0;margin:4px;float:left;display:inline-block;height:20px;width:20px;background:#000;opacity:.6;filter:alpha(opacity=60)}.icheck-colors>li:first-child{margin-left:0}.icheck-colors>li:hover{opacity:1;filter:alpha(opacity=100);cursor:pointer}.icheck-colors>li.active{height:26px;margin-top:0;opacity:.6;filter:alpha(opacity=60)}.icheck-colors>li.red{background:#d54e21}.icheck-colors>li.green{background:#78a300}.icheck-colors>li.blue{background:#0e76a8}.icheck-colors>li.aero{background:#9cc2cb}.icheck-colors>li.grey{background:#73716e}.icheck-colors>li.orange{background:#f70}.icheck-colors>li.yellow{background:#fc0}.icheck-colors>li.pink{background:#ff66b5}.icheck-colors>li.purple{background:#6a5a8c}.ui-select-match-close{margin-top:5px!important;margin-left:5px!important}.profile p{color:#636363;font-size:13px}.profile p a{color:#169ef4}.profile label{margin-top:10px}.profile label:first-child{margin-top:0}.profile-classic .profile-edit{top:0;right:0;margin:0;color:#fff;opacity:.6;padding:0 9px;font-size:11px;background:#000;position:absolute;filter:alpha(opacity=60)}.profile-classic .profile-image img{margin-bottom:15px}.profile-classic li{padding:8px 0;font-size:13px;border-top:solid 1px #f5f5f5}.profile-classic li:first-child{border-top:none}.profile-classic li span{color:#666;font-size:13px;margin-right:7px}.profile .tabbable-custom-profile .nav-tabs>li>a{padding:6px 12px}.profile ul.profile-nav{margin-bottom:30px}.profile ul.profile-nav li{position:relative}.profile ul.profile-nav li a{color:#557386;display:block;font-size:14px;padding:8px 10px;margin-bottom:1px;background:#f0f6fa;border-left:solid 2px #c4d5df}.profile ul.profile-nav li a:hover{color:#169ef4;background:#ecf5fb;text-decoration:none;border-left:solid 2px #169ef4}.profile ul.profile-nav li a.profile-edit{top:0;right:0;margin:0;color:#fff;opacity:.6;border:none;padding:3px 9px;font-size:12px;background:#000;position:absolute;filter:alpha(opacity=60)}.profile ul.profile-nav li a.profile-edit:hover{text-decoration:underline}.profile ul.profile-nav a span{top:0;right:0;color:#fff;font-size:16px;padding:7px 13px;position:absolute;background:#169ef4}.profile ul.profile-nav a:hover span{background:#0b94ea}.profile-info h1{color:#383839;font-size:24px;font-weight:400;margin:0 0 10px}.profile-info ul{margin-bottom:15px}.profile-info li{color:#6b6b6b;font-size:13px;margin-right:15px;margin-bottom:5px;padding:0!important}.profile-info li i{color:#b5c1c9;font-size:15px}.profile-info li:hover i{color:#169ef4}.sale-summary ul{margin-top:-10px}.sale-summary li{padding:10px 0;overflow:hidden;border-top:solid 1px #eee}.sale-summary li:first-child{border-top:none}.sale-summary li .sale-info{margin-top:4px;float:left;color:#646464;font-size:14px;text-transform:uppercase}.sale-summary li .sale-num{float:right;color:#169ef4;font-size:20px;font-weight:300}.sale-summary li span i{top:1px;width:13px;height:14px;margin-left:3px;position:relative;display:inline-block}.sale-summary li i.icon-img-up{background:url(../../img/icon-img-up.png) no-repeat!important}.sale-summary li i.icon-img-down{background:url(../../img/icon-img-down.png) no-repeat!important}.sale-summary .caption h4{color:#383839;font-size:18px}.sale-summary .caption{border-color:#c9c9c9}.profile .table-advance thead tr th{background:#f0f6fa}.profile .table-bordered,.profile .table-bordered td,.profile .table-bordered th{border-color:#e5eff6}.profile .table-striped tbody>tr:nth-child(2n+1)>td,.profile .table-striped tbody>tr:nth-child(2n+1)>th{background:#fcfcfc}.profile .table-hover tbody tr:hover td,.profile .table-hover tbody tr:hover th{background:#f5fafd}.add-portfolio{margin-bottom:30px;background:#f0f6fa;padding:12px 14px}.add-portfolio span{float:left;display:inline-block;font-weight:300;font-size:22px;margin-top:0}.add-portfolio .btn{margin-left:20px}.portfolio-block{background:#fff;margin-bottom:15px}.portfolio-text img{float:left;margin-right:15px}.portfolio-btn a{display:block;padding:25px 0;background:#ddd!important}.portfolio-btn a:hover{background:#1d943b!important}.portfolio-btn span{color:#fff;font-size:22px;font-weight:200}.portfolio-info{float:left;color:#616161;font-size:12px;padding:10px 25px;margin-bottom:5px;text-transform:uppercase}.portfolio-info span{color:#16a1f2;display:block;font-size:28px;line-height:28px;margin-top:0;font-weight:200;text-transform:uppercase}.profile-settings{background:#fafafa;padding:15px 8px 0;margin-bottom:5px}.profile-settings p{padding-left:5px;margin-bottom:3px}.profile-settings .controls>.checkbox,.profile-settings .controls>.radio{font-size:12px;margin-top:2px!important}.modal.disabled{-webkit-animation:noop!important;animation:noop!important}.modal.disabled.am-fade-and-slide-top .modal-dialog{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop}.modal.disabled.am-fade-and-scale .modal-dialog,.tab-pane.am-fade{-webkit-animation-duration:.3s;-webkit-animation-fill-mode:backwards}.modal.disabled.am-fade-and-slide-top.ng-enter .modal-dialog{visibility:hidden;-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop}.modal.disabled.am-fade-and-slide-top.ng-enter-active .modal-dialog,.modal.disabled.am-fade-and-slide-top.ng-leave-active .modal-dialog{visibility:visible}.modal.disabled.am-fade-and-slide-top.ng-leave .modal-dialog{-webkit-animation-name:fadeAndSlideToTop;animation-name:fadeAndSlideToTop}.modal.disabled.am-fade-and-scale .modal-dialog{animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;animation-fill-mode:backwards;-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn}.modal.disabled.am-fade-and-scale.ng-enter .modal-dialog{visibility:hidden;-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn}.modal.disabled.am-fade-and-scale.ng-enter-active .modal-dialog,.modal.disabled.am-fade-and-scale.ng-leave-active .modal-dialog{visibility:visible}.modal.disabled.am-fade-and-scale.ng-leave .modal-dialog{-webkit-animation-name:fadeAndScaleOut;animation-name:fadeAndScaleOut}@-webkit-keyframes noop{from,to{opacity:1}}@keyframes noop{from,to{opacity:1}}.bs-example{position:relative;padding:45px 15px 15px;margin:0 -15px 15px;background-color:#fafafa;box-shadow:inset 0 3px 6px rgba(0,0,0,.05);border-color:#e5e5e5 #eee #eee;border-style:solid;border-width:1px 0}.bs-example:after{content:"Example";position:absolute;top:15px;font-size:12px;font-weight:700;color:#bbb}.bs-example+.highlight{margin:-15px -15px 15px;border-radius:0;border-width:0 0 1px}@media (min-width:768px){.bs-example,.bs-example+.highlight{margin-left:0;margin-right:0;border-width:1px}.bs-example{background-color:#fff;border-color:#ddd;border-radius:4px 4px 0 0;box-shadow:none}.bs-example+.highlight{margin-top:-16px;border-bottom-left-radius:4px;border-bottom-right-radius:4px}}.bs-example .container{width:auto}.bs-example>.alert:last-child,.bs-example>.form-control:last-child,.bs-example>.jumbotron:last-child,.bs-example>.list-group:last-child,.bs-example>.navbar:last-child,.bs-example>.panel:last-child,.bs-example>.progress:last-child,.bs-example>.table-responsive:last-child>.table,.bs-example>.table:last-child,.bs-example>.well:last-child,.bs-example>blockquote:last-child,.bs-example>ol:last-child,.bs-example>p:last-child,.bs-example>ul:last-child{margin-bottom:0}.bs-example>p>.close{float:none}.bs-example .nav-tabs{margin-bottom:15px}.bs-footer{padding-top:40px;padding-bottom:30px;margin-top:100px;color:#787878;text-align:center;border-top:1px solid #e6e6e6}.bs-docs-nav .navbar-brand,.bs-masthead-links a{color:#fff}.bs-docs-nav,.bs-docs-nav .navbar-collapse{border-color:#a33f3e}.footer-links{margin:10px 0;padding-left:0}.footer-links li{display:inline;padding:0 2px}.footer-links li:first-child{padding-left:0}@media (min-width:768px){.bs-footer{text-align:left}.bs-footer p{margin-bottom:0}}.bs-masthead{position:relative;padding:30px 15px;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,.15)}.bs-masthead h1{font-size:50px;line-height:1;color:#fff}.bs-masthead .btn-outline-inverse{margin:10px}.bs-masthead-links{margin-top:20px;margin-bottom:40px;padding:0 15px;list-style:none;text-align:center}.bs-masthead-links li{display:inline}.bs-masthead-links li+li{margin-left:20px}@media (min-width:768px){.bs-masthead{text-align:left;padding-top:140px;padding-bottom:140px}.bs-masthead h1{font-size:100px}.bs-masthead .lead{margin-right:25%;font-size:30px}.bs-masthead .btn-outline-inverse{width:auto;margin:20px 5px 20px 0;padding:18px 24px;font-size:21px}.bs-masthead-links{padding:0;text-align:left}}.bs-docs-nav{background-color:#b94846;box-shadow:0 1px 0 rgba(255,255,255,.1);text-shadow:0 -1px 0 rgba(0,0,0,.15)}.bs-docs-nav .navbar-nav>li>a{-webkit-transition:color .15s linear;transition:color .15s linear;color:#f9f1f1}.bs-docs-nav .navbar-nav>li>a:hover{color:#fff}.bs-docs-nav .navbar-nav>.active>a,.bs-docs-nav .navbar-nav>.active>a:hover{background-color:#a33f3e;color:#fff}.bs-docs-nav .navbar-toggle{border-color:#b94846}.bs-docs-nav .navbar-toggle:hover{border-color:#a33f3e;background-color:#a33f3e}.bs-old-docs{padding:15px 20px;color:#787878;background-color:#fafafa;border-top:1px solid #fff;border-bottom:1px solid #e6e6e6}.bs-old-docs strong{color:#545454}@media (max-width:991px){.navbar-toggle{margin-left:15px;display:block!important;float:left}.bs-sidebar.affix{position:static!important}}.bs-header .container,.select.dropdown-menu.select-multiple li{position:relative}.bs-sidenav{margin-top:40px;margin-bottom:20px;width:124px}.bs-sidebar .nav>li>a{display:block;font-size:13px;font-weight:500;color:#999;padding:4px 15px;text-align:right}.bs-sidebar .nav>li>a:focus,.bs-sidebar .nav>li>a:hover{padding-right:14px;color:#b94846;text-decoration:none;background-color:transparent;border-right:1px solid #b94846}.bs-sidebar .nav>.active:focus>a,.bs-sidebar .nav>.active:hover>a,.bs-sidebar .nav>.active>a{padding-right:13px;font-weight:700;color:#b94846;background-color:transparent;border-right:2px solid #b94846}.bs-sidebar .nav .nav{display:none;padding-bottom:10px}.bs-sidebar .nav .nav>li>a{padding-top:2px;padding-bottom:2px;padding-right:30px;font-size:12px;font-weight:400}.bs-sidebar .nav .nav>li>a:focus,.bs-sidebar .nav .nav>li>a:hover{padding-right:29px}.bs-sidebar .nav .nav>.active:focus>a,.bs-sidebar .nav .nav>.active:hover>a,.bs-sidebar .nav .nav>.active>a{font-weight:500;padding-right:28px}@media (min-width:992px){.bs-sidebar .nav>.active>ul{display:block}.bs-sidebar.affix .bs-sidenav,.bs-sidebar.affix-bottom .bs-sidenav{margin-top:0;margin-bottom:0}}h1[id],h2[id]{margin-top:-45px}@media (min-width:1200px){.bs-sidebar{margin-right:30px}}.am-fade.aside-backdrop,.am-fade.modal-backdrop{background-color:rgba(0,0,0,.5)}.bs-docs-aside{min-width:200px}h1[id]{padding-top:80px}h2[id]{padding-top:60px}.bs-header{padding:30px 15px 40px;font-size:16px;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,.15)}.bs-header h1{color:#fff}.bs-header p{font-weight:300;line-height:1.5}@media (min-width:768px){.bs-header{font-size:21px;text-align:left}.bs-header h1{font-size:60px;line-height:1}}@media (min-width:992px){.bs-header h1,.bs-header p{margin-right:300px}}.highlight{display:none;padding:9px 14px;margin-bottom:14px;background-color:#f6f6f8;border:1px solid #e2e2e9;border-radius:4px}.highlight pre{padding:0;margin-top:0;margin-bottom:0;background-color:transparent;border:0;white-space:nowrap}.highlight pre code{font-size:inherit;color:#333}.highlight pre .lineno{display:inline-block;width:22px;padding-right:5px;margin-right:10px;text-align:right;color:#bebec5}@media (min-width:481px){.highlight{display:block}}input.ng-dirty.ng-invalid,select.ng-dirty.ng-invalid,textarea.ng-dirty.ng-invalid{color:#b94a48;border-color:#ee5f5b}input.ng-dirty.ng-invalid:focus,select.ng-dirty.ng-invalid:focus,textarea.ng-dirty.ng-invalid:focus{border-color:#e9322d;box-shadow:0 0 6px #f8b9b7}input:focus.ng-pristine.ng-invalid,select:focus.ng-pristine.ng-invalid,textarea:focus.ng-pristine.ng-invalid{color:#555;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}input:focus.ng-pristine.ng-invalid:focus,select:focus.ng-pristine.ng-invalid:focus,textarea:focus.ng-pristine.ng-invalid:focus{border-color:rgba(82,168,236,.8);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}body .modal{overflow-y:hidden}body.modal-open{overflow-y:visible!important}.lt-ie9 .bs-sidebar{display:none!important}.modal-backdrop{z-index:1040;bottom:0}.select.dropdown-menu.select-multiple li>i{color:#fff;display:none;position:absolute;top:5px;right:10px}.bs-example+.highlight,body{position:relative}.alert.bottom-right,.alert.top,.alert.top-right{right:0}.select.dropdown-menu.select-multiple li.active>i{display:block}body{padding-top:50px}.bs-example-scope{font-size:85%}.bs-example-scope+.bs-example{margin:-15px -15px 15px}.bs-example-scope+.bs-example+.highlight>pre{border-radius:0 0 4px 4px}.aside.bs-docs-aside .aside-header{background:#b94846}.aside.bs-docs-aside .nav{margin:0}.bs-docs-social{max-height:200px}.bs-docs-social ul{list-style:none;padding:1em 0 0}.bs-docs-social ul li{height:30px}@media (max-width:991px){.bs-docs-social ul li{display:inline-block}}.bs-docs-home,.bs-header{color:#fff;background:url(../assets/images/triangular-red.png) #b94846;padding-bottom:20px}pre>code{background:0 0}.bs-example+.highlight code{padding:2.5em .5em 1em}.alert.bottom-right .close,.alert.top-right .close{padding-left:10px}.alert.bottom-left .close,.alert.top-left .close{padding-right:10px}.bs-example+.highlight:after{content:"Source";position:absolute;top:15px;font-size:12px;font-weight:700;color:#bbb}.twitter-follow-button{position:relative;top:5px;margin-left:10px}.tab-pane.am-fade{animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;animation-fill-mode:backwards;opacity:1}.am-collapse,.panel-collapse.am-collapse{-webkit-animation-duration:.3s;-webkit-animation-fill-mode:backwards;overflow:hidden}.panel-collapse.am-collapse{animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;animation-fill-mode:backwards}.am-collapse,.am-flip-x{-webkit-animation-timing-function:ease}.panel-collapse.am-collapse2{-webkit-transition:.3s ease max-height;transition:.3s ease max-height;max-height:100px;overflow:hidden}.panel-collapse.am-collapse2.in-remove{max-height:100px;display:block}.panel-collapse.am-collapse2.in-add{max-height:0}@-webkit-keyframes expand{from{max-height:0}to{max-height:100px}}@keyframes expand{from{max-height:0}to{max-height:100px}}@-webkit-keyframes collapse{from{max-height:100px}to{max-height:0}}@keyframes collapse{from{max-height:100px}to{max-height:0}}.am-collapse{animation-duration:.3s;animation-timing-function:ease;animation-fill-mode:backwards;opacity:1}.am-fade,.am-flip-x{-webkit-animation-fill-mode:backwards}.am-collapse.am-collapse-add,.am-collapse.ng-hide-remove,.am-collapse.ng-move{-webkit-animation-name:expand;animation-name:expand}.am-collapse.am-collapse-remove,.am-collapse.ng-hide{-webkit-animation-name:collapse;animation-name:collapse}.am-collapse.ng-enter{visibility:hidden;-webkit-animation-name:expand;animation-name:expand;-webkit-animation-play-state:paused;animation-play-state:paused}.am-collapse.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-collapse.ng-leave{-webkit-animation-name:collapse;animation-name:collapse;-webkit-animation-play-state:paused;animation-play-state:paused}.am-collapse.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes expand{from{max-height:0}to{max-height:500px}}@keyframes expand{from{max-height:0}to{max-height:500px}}@-webkit-keyframes collapse{from{max-height:500px}to{max-height:0}}@keyframes collapse{from{max-height:500px}to{max-height:0}}.panel-collapse.am-collapse.in-remove{-webkit-animation-name:collapse;animation-name:collapse;display:block}.panel-collapse.am-collapse.in-add{-webkit-animation-name:expand;animation-name:expand}.am-fade{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:linear;animation-timing-function:linear;animation-fill-mode:backwards;opacity:1}.am-fade.am-fade-add,.am-fade.ng-hide-remove,.am-fade.ng-move{-webkit-animation-name:fadeIn;animation-name:fadeIn}.am-fade.am-fade-remove,.am-fade.ng-hide{-webkit-animation-name:fadeOut;animation-name:fadeOut}.am-fade.ng-enter{visibility:hidden;-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade.ng-leave{-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}.tab-pane.am-fade.active-remove{display:none!important}.tab-pane.am-fade.active-add{-webkit-animation-name:fadeIn;animation-name:fadeIn}.aside-backdrop.am-fade,.modal-backdrop.am-fade{background:rgba(0,0,0,.5);-webkit-animation-duration:.15s;animation-duration:.15s}.aside-backdrop.am-fade.ng-leave,.modal-backdrop.am-fade.ng-leave{-webkit-animation-delay:.3s;animation-delay:.3s}.am-flip-x{-webkit-animation-duration:.4s;animation-duration:.4s;animation-timing-function:ease;animation-fill-mode:backwards}.am-flip-x-linear,.am-slide-top{-webkit-animation-fill-mode:backwards}.am-flip-x.am-flip-x-add,.am-flip-x.ng-hide-remove,.am-flip-x.ng-move{-webkit-animation-name:flipInXBounce;animation-name:flipInXBounce}.am-flip-x.am-flip-x-remove,.am-flip-x.ng-hide{-webkit-animation-name:flipOutX;animation-name:flipOutX}.am-flip-x.ng-enter{visibility:hidden;-webkit-animation-name:flipInXBounce;animation-name:flipInXBounce;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-flip-x.ng-leave{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-flip-x-linear{-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:ease;animation-timing-function:ease;animation-fill-mode:backwards}.am-slide-right,.am-slide-top{-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out}.am-flip-x-linear.am-flip-x-add,.am-flip-x-linear.ng-hide-remove,.am-flip-x-linear.ng-move{-webkit-animation-name:flipInX;animation-name:flipInX}.am-flip-x-linear.am-flip-x-remove,.am-flip-x-linear.ng-hide{-webkit-animation-name:flipOutX;animation-name:flipOutX}.am-flip-x-linear.ng-enter{visibility:hidden;-webkit-animation-name:flipInX;animation-name:flipInX;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x-linear.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-flip-x-linear.ng-leave{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x-linear.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes flipInX{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}}@keyframes flipInX{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}}@-webkit-keyframes flipInXBounce{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}40%{-webkit-transform:perspective(400px) rotateX(-10deg);transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}}@keyframes flipInXBounce{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}40%{-webkit-transform:perspective(400px) rotateX(-10deg);transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}}@-webkit-keyframes flipOutX{from{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}to{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}}@keyframes flipOutX{from{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}to{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}}.am-slide-top{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-slide-bottom,.am-slide-right{-webkit-animation-fill-mode:backwards}.am-slide-top.am-slide-top-add,.am-slide-top.ng-hide-remove,.am-slide-top.ng-move{-webkit-animation-name:slideFromTop;animation-name:slideFromTop}.am-slide-top.am-slide-top-remove,.am-slide-top.ng-hide{-webkit-animation-name:slideToTop;animation-name:slideToTop}.am-slide-top.ng-enter{visibility:hidden;-webkit-animation-name:slideFromTop;animation-name:slideFromTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-top.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-top.ng-leave{-webkit-animation-name:slideToTop;animation-name:slideToTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-top.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-slide-right{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-slide-bottom,.am-slide-left{-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out}.am-slide-right.am-slide-right-add,.am-slide-right.ng-hide-remove,.am-slide-right.ng-move{-webkit-animation-name:slideFromRight;animation-name:slideFromRight}.am-slide-right.am-slide-right-remove,.am-slide-right.ng-hide{-webkit-animation-name:slideToRight;animation-name:slideToRight}.am-slide-right.ng-enter{visibility:hidden;-webkit-animation-name:slideFromRight;animation-name:slideFromRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-right.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-right.ng-leave{-webkit-animation-name:slideToRight;animation-name:slideToRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-right.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-slide-bottom{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-fade-and-slide-top,.am-slide-left{-webkit-animation-fill-mode:backwards}.am-slide-bottom.am-slide-bottom-add,.am-slide-bottom.ng-hide-remove,.am-slide-bottom.ng-move{-webkit-animation-name:slideFromBottom;animation-name:slideFromBottom}.am-slide-bottom.am-slide-bottom-remove,.am-slide-bottom.ng-hide{-webkit-animation-name:slideToBottom;animation-name:slideToBottom}.am-slide-bottom.ng-enter{visibility:hidden;-webkit-animation-name:slideFromBottom;animation-name:slideFromBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-bottom.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-bottom.ng-leave{-webkit-animation-name:slideToBottom;animation-name:slideToBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-bottom.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-slide-left{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-fade-and-slide-right,.am-fade-and-slide-top{-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out}.am-slide-left.am-slide-left-add,.am-slide-left.ng-hide-remove,.am-slide-left.ng-move{-webkit-animation-name:slideFromLeft;animation-name:slideFromLeft}.am-slide-left.am-slide-left-remove,.am-slide-left.ng-hide{-webkit-animation-name:slideToLeft;animation-name:slideToLeft}.am-slide-left.ng-enter{visibility:hidden;-webkit-animation-name:slideFromLeft;animation-name:slideFromLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-left.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-left.ng-leave{-webkit-animation-name:slideToLeft;animation-name:slideToLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-left.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes slideFromTop{from{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes slideFromTop{from{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@-webkit-keyframes slideToTop{to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes slideToTop{to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@-webkit-keyframes slideFromRight{from{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slideFromRight{from{-webkit-transform:translateX(100%);transform:translateX(100%)}}@-webkit-keyframes slideToRight{to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slideToRight{to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@-webkit-keyframes slideFromBottom{from{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes slideFromBottom{from{-webkit-transform:translateY(100%);transform:translateY(100%)}}@-webkit-keyframes slideToBottom{to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes slideToBottom{to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@-webkit-keyframes slideFromLeft{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slideFromLeft{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@-webkit-keyframes slideToLeft{to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slideToLeft{to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.am-fade-and-slide-top{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-fade-and-slide-top.am-fade-and-slide-top-add,.am-fade-and-slide-top.ng-hide-remove,.am-fade-and-slide-top.ng-move{-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop}.am-fade-and-slide-top.am-fade-and-slide-top-remove,.am-fade-and-slide-top.ng-hide{-webkit-animation-name:fadeAndSlideToTop;animation-name:fadeAndSlideToTop}.am-fade-and-slide-top.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-top.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-top.ng-leave{-webkit-animation-name:fadeAndSlideToTop;animation-name:fadeAndSlideToTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-top.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-right{animation-duration:.3s;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-slide-bottom,.am-fade-and-slide-left{-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out}.am-fade-and-slide-right.am-fade-and-slide-right-add,.am-fade-and-slide-right.ng-hide-remove,.am-fade-and-slide-right.ng-move{-webkit-animation-name:fadeAndSlideFromRight;animation-name:fadeAndSlideFromRight}.am-fade-and-slide-right.am-fade-and-slide-right-remove,.am-fade-and-slide-right.ng-hide{-webkit-animation-name:fadeAndSlideToRight;animation-name:fadeAndSlideToRight}.am-fade-and-slide-right.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromRight;animation-name:fadeAndSlideFromRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-right.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-right.ng-leave{-webkit-animation-name:fadeAndSlideToRight;animation-name:fadeAndSlideToRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-right.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-bottom{animation-duration:.3s;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-slide-bottom.am-fade-and-slide-bottom-add,.am-fade-and-slide-bottom.ng-hide-remove,.am-fade-and-slide-bottom.ng-move{-webkit-animation-name:fadeAndSlideFromBottom;animation-name:fadeAndSlideFromBottom}.am-fade-and-slide-bottom.am-fade-and-slide-bottom-remove,.am-fade-and-slide-bottom.ng-hide{-webkit-animation-name:fadeAndSlideToBottom;animation-name:fadeAndSlideToBottom}.am-fade-and-slide-bottom.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromBottom;animation-name:fadeAndSlideFromBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-bottom.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-bottom.ng-leave{-webkit-animation-name:fadeAndSlideToBottom;animation-name:fadeAndSlideToBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-bottom.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-left{animation-duration:.3s;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-slide-left.am-fade-and-slide-left-add,.am-fade-and-slide-left.ng-hide-remove,.am-fade-and-slide-left.ng-move{-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;-webkit-animation-name:fadeAndSlideFromLeft;animation-name:fadeAndSlideFromLeft}.am-fade-and-slide-left.am-fade-and-slide-left-remove,.am-fade-and-slide-left.ng-hide{-webkit-animation-name:fadeAndSlideToLeft;animation-name:fadeAndSlideToLeft}.am-fade-and-slide-left.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromLeft;animation-name:fadeAndSlideFromLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-left.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-left.ng-leave{-webkit-animation-name:fadeAndSlideToLeft;animation-name:fadeAndSlideToLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-left.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes fadeAndSlideFromTop{from{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}to{opacity:1}}@keyframes fadeAndSlideFromTop{from{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToTop{from{opacity:1}to{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}}@keyframes fadeAndSlideToTop{from{opacity:1}to{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}}@-webkit-keyframes fadeAndSlideFromRight{from{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}to{opacity:1}}@keyframes fadeAndSlideFromRight{from{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToRight{from{opacity:1}to{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}}@keyframes fadeAndSlideToRight{from{opacity:1}to{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}}@-webkit-keyframes fadeAndSlideFromBottom{from{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1}}@keyframes fadeAndSlideFromBottom{from{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToBottom{from{opacity:1}to{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}}@keyframes fadeAndSlideToBottom{from{opacity:1}to{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}}@-webkit-keyframes fadeAndSlideFromLeft{from{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}to{opacity:1}}@keyframes fadeAndSlideFromLeft{from{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToLeft{from{opacity:1}to{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}}@keyframes fadeAndSlideToLeft{from{opacity:1}to{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}}.am-fade-and-scale{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-scale.am-fade-and-scale-add,.am-fade-and-scale.ng-enter,.am-fade-and-scale.ng-hide-remove,.am-fade-and-scale.ng-move{-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn}.am-fade-and-scale.am-fade-and-scale-remove,.am-fade-and-scale.ng-hide,.am-fade-and-scale.ng-leave{-webkit-animation-name:fadeAndScaleOut;animation-name:fadeAndScaleOut}.am-fade-and-scale.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-scale.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-scale.ng-leave{-webkit-animation-name:fadeAndScaleOut;animation-name:fadeAndScaleOut;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-scale.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes fadeAndScaleIn{from{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:1}}@keyframes fadeAndScaleIn{from{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:1}}@-webkit-keyframes fadeAndScaleOut{from{opacity:1}to{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}}@keyframes fadeAndScaleOut{from{opacity:1}to{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}}.alert.bottom,.alert.bottom-left,.alert.bottom-right,.alert.top,.alert.top-left,.alert.top-right{position:fixed;z-index:1050;margin:20px}.alert.top,.alert.top-left,.alert.top-right{top:50px}.alert.top{left:0}.alert.top-left{left:0}.alert.bottom,.alert.bottom-left,.alert.bottom-right{bottom:0}.alert.bottom{right:0;left:0}.alert.bottom-left{left:0}.aside .aside-dialog .aside-footer:after,.aside .aside-dialog .aside-footer:before,.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.aside{position:fixed;top:0;bottom:0;z-index:1049;overflow:auto;min-width:320px;background:#fff}@media (max-width:991px){.aside{min-width:240px}}.aside.left{right:auto;left:0}.aside.right{right:0;left:auto}.aside .aside-dialog .aside-header{border-bottom:1px solid #e5e5e5;min-height:16.43px;padding:6px 15px;background:#337ab7;color:#fff}.aside .aside-dialog .aside-header .close{margin-right:-8px;padding:4px 8px;color:#fff;font-size:25px;opacity:.8}.aside .aside-dialog .aside-body{position:relative;padding:15px}.aside .aside-dialog .aside-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.aside .aside-dialog .aside-footer .btn+.btn{margin-left:5px;margin-bottom:0}.aside .aside-dialog .aside-footer .btn-group .btn+.btn{margin-left:-1px}.aside .aside-dialog .aside-footer .btn-block+.btn-block{margin-left:0}.aside-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.aside-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.aside-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.ui-grid-top-panel,.ui-grid-top-panel-background{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='white', endColorstr='white', GradientType=0)}.datepicker.dropdown-menu{width:250px;height:270px}.datepicker.dropdown-menu button{outline:0;border:0}.datepicker.dropdown-menu tbody{height:180px}.datepicker.dropdown-menu tbody button{padding:6px}.datepicker.dropdown-menu.datepicker-mode-1 tbody button,.datepicker.dropdown-menu.datepicker-mode-2 tbody button{height:65px}.callout{margin:20px 0;padding:20px;border-left:3px solid #eee}.callout h4{margin-top:0;margin-bottom:5px}.popover.top-left,.popover.top-right{margin-top:-10px}.callout p:last-child{margin-bottom:0}.callout-danger{border-color:#eed3d7;background-color:#fdf7f7}.callout-danger h4{color:#b94a48}.callout-warning{border-color:#faebcc;background-color:#faf8f0}.callout-warning h4{color:#8a6d3b}.callout-info{border-color:#bce8f1;background-color:#f4f8fa}.callout-info h4{color:#34789a}.modal.center .modal-dialog{position:fixed;top:40%;left:50%;min-width:320px;max-width:630px;width:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.popover.top-left .arrow{margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px;left:10%}.popover.top-left .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.bottom-left,.popover.bottom-right{margin-top:10px}.popover.top-right .arrow{margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px;left:90%}.popover.top-right .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.bottom-left .arrow{margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px;left:10%}.popover.bottom-left .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.bottom-right .arrow{margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px;left:90%}.popover.bottom-right .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.timepicker.dropdown-menu{padding:0 4px}.timepicker.dropdown-menu button{border:0}.timepicker.dropdown-menu tbody button{padding:6px}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-group-xs>.btn{font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px}.btn-group-xs>.btn{padding:1px 5px}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.tooltip.tooltip-info.top .tooltip-arrow,.tooltip.tooltip-info.top-left .tooltip-arrow,.tooltip.tooltip-info.top-right .tooltip-arrow{border-top-color:#d9edf7}.tooltip.tooltip-info.right .tooltip-arrow{border-right-color:#d9edf7}.tooltip.tooltip-info.bottom .tooltip-arrow,.tooltip.tooltip-info.bottom-left .tooltip-arrow,.tooltip.tooltip-info.bottom-right .tooltip-arrow{border-bottom-color:#d9edf7}.tooltip.tooltip-info.left .tooltip-arrow{border-left-color:#d9edf7}.tooltip.tooltip-info .tooltip-inner{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.tooltip.tooltip-info .tooltip-inner hr{border-top-color:#a6e1ec}.tooltip.tooltip-info .tooltip-inner .alert-link{color:#245269}.tooltip.tooltip-success.top .tooltip-arrow,.tooltip.tooltip-success.top-left .tooltip-arrow,.tooltip.tooltip-success.top-right .tooltip-arrow{border-top-color:#dff0d8}.tooltip.tooltip-success.right .tooltip-arrow{border-right-color:#dff0d8}.tooltip.tooltip-success.bottom .tooltip-arrow,.tooltip.tooltip-success.bottom-left .tooltip-arrow,.tooltip.tooltip-success.bottom-right .tooltip-arrow{border-bottom-color:#dff0d8}.tooltip.tooltip-success.left .tooltip-arrow{border-left-color:#dff0d8}.tooltip.tooltip-success .tooltip-inner{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.tooltip.tooltip-success .tooltip-inner hr{border-top-color:#c9e2b3}.tooltip.tooltip-success .tooltip-inner .alert-link{color:#2b542c}.tooltip.tooltip-danger.top .tooltip-arrow,.tooltip.tooltip-danger.top-left .tooltip-arrow,.tooltip.tooltip-danger.top-right .tooltip-arrow{border-top-color:#f2dede}.tooltip.tooltip-danger.right .tooltip-arrow{border-right-color:#f2dede}.tooltip.tooltip-danger.bottom .tooltip-arrow,.tooltip.tooltip-danger.bottom-left .tooltip-arrow,.tooltip.tooltip-danger.bottom-right .tooltip-arrow{border-bottom-color:#f2dede}.tooltip.tooltip-danger.left .tooltip-arrow{border-left-color:#f2dede}.tooltip.tooltip-danger .tooltip-inner{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.tooltip.tooltip-danger .tooltip-inner hr{border-top-color:#e4b9c0}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{border-width:5px 5px 0;border-top-color:#000;margin-left:-5px;bottom:0}.tooltip.tooltip-danger .tooltip-inner .alert-link{color:#843534}.tooltip.top-left{margin-top:-3px;padding:5px 0}.tooltip.top-left .tooltip-arrow{left:10%}.tooltip.top-right{margin-top:-3px;padding:5px 0}.tooltip.bottom-left,.tooltip.bottom-right{margin-top:3px;padding:5px 0}.tooltip.top-right .tooltip-arrow{left:90%}.tooltip.bottom-left .tooltip-arrow{top:0;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000;left:10%}.tooltip.bottom-right .tooltip-arrow{top:0;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000;left:90%}#ui-grid-twbs #ui-grid-twbs .btn-group-vertical>.btn-group:after,#ui-grid-twbs #ui-grid-twbs .btn-group-vertical>.btn-group:before,#ui-grid-twbs #ui-grid-twbs .btn-toolbar:after,#ui-grid-twbs #ui-grid-twbs .btn-toolbar:before,#ui-grid-twbs #ui-grid-twbs .form-horizontal .form-group:after,#ui-grid-twbs #ui-grid-twbs .form-horizontal .form-group:before{content:" ";display:table}.ui-grid{border:1px solid #ddd;box-sizing:content-box;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0)}.ui-grid-vertical-bar{position:absolute;right:0;width:0}.ui-grid-scrollbar-placeholder{background-color:transparent}.ui-grid-cell:not(:last-child) .ui-grid-vertical-bar,.ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar{width:1px;background-color:#ddd}.ui-grid-header-cell:last-child .ui-grid-vertical-bar{right:-1px;width:1px;background-color:#ddd}.ui-grid-clearfix:after,.ui-grid-clearfix:before{content:"";display:table}.ui-grid-invisible{visibility:hidden}.ui-grid-contents-wrapper{position:relative;height:100%;width:100%}.ui-grid-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.ui-grid-top-panel-background{background:#fff;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#fff),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#fff,#fff);background:-moz-linear-gradient(center bottom,#fff 0,#fff 100%);background:-o-linear-gradient(white,#fff)}.ui-grid-header{border-bottom:1px solid #ddd;box-sizing:border-box}.ui-grid-top-panel{position:relative;overflow:hidden;font-weight:700;background:#fff;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#fff),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#fff,#fff);background:-moz-linear-gradient(center bottom,#fff 0,#fff 100%);background:-o-linear-gradient(white,#fff);-moz-border-radius-topright:-1px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:-1px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:-1px -1px 0 0;border-radius:-1px -1px 0 0}.ui-grid-header-viewport{overflow:hidden}.ui-grid-header-canvas:after,.ui-grid-header-canvas:before{content:"";display:table;line-height:0}.ui-grid-header-cell-wrapper{position:relative;display:table;box-sizing:border-box;height:100%}.ui-grid-header-cell-row{display:table-row;position:relative}.ui-grid-header-cell{position:relative;box-sizing:border-box;background-color:inherit;border-right:1px solid;border-color:#ddd;display:table-cell;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:0}.ui-grid-header-cell:last-child{border-right:0}.ui-grid-header-cell .ui-grid-sort-priority-number{margin-left:-8px}.ui-grid-header .ui-grid-vertical-bar{top:0;bottom:0}.ui-grid-column-menu-button{position:absolute;right:1px;top:0}.ui-grid-column-menu-button .ui-grid-icon-angle-down{vertical-align:sub}.ui-grid-column-menu-button-last-col{margin-right:25px}.ui-grid-column-menu{position:absolute}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transition:all 50ms linear;-moz-transition:all 50ms linear;-o-transition:all 50ms linear;transition:all 50ms linear;display:block!important}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add.ng-hide-add-active,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-o-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove.ng-hide-remove-active{-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transition:all 50ms linear;-moz-transition:all 50ms linear;-o-transition:all 50ms linear;transition:all 50ms linear;display:block!important}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add.ng-hide-add-active,.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-o-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove.ng-hide-remove-active{-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.ui-grid-filter-container{padding:4px 10px;position:relative}.ui-grid-filter-container .ui-grid-filter-button{position:absolute;top:0;bottom:0;right:0}.ui-grid-filter-container .ui-grid-filter-button [class^=ui-grid-icon]{position:absolute;top:50%;line-height:32px;margin-top:-16px;right:10px;opacity:.66}.ui-grid-filter-container .ui-grid-filter-button [class^=ui-grid-icon]:hover{opacity:1}.ui-grid-filter-container .ui-grid-filter-button-select{position:absolute;top:0;bottom:0;right:0}.ui-grid-filter-container .ui-grid-filter-button-select [class^=ui-grid-icon]{position:absolute;top:50%;line-height:32px;margin-top:-16px;right:0;opacity:.66}.ui-grid-filter-container .ui-grid-filter-button-select [class^=ui-grid-icon]:hover{opacity:1}select.ui-grid-filter-select{padding:0;margin:0;width:90%;border:1px solid #ddd;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:0;border-radius:0}select.ui-grid-filter-select:hover{border:1px solid #ddd}.ui-grid-no-row-overlay,.ui-grid-render-container{-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0}.ui-grid-filter-cancel-button-hidden select.ui-grid-filter-select{width:100%}.ui-grid-render-container{position:inherit;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:0;border-radius:0}.ui-grid-viewport{min-height:20px;position:relative;overflow-y:scroll;-webkit-overflow-scrolling:touch}.ui-grid-viewport:focus{outline:0!important}.ui-grid-canvas{position:relative;padding-top:1px}.ui-grid-row:nth-child(odd) .ui-grid-cell{background-color:#fff}.ui-grid-row:nth-child(even) .ui-grid-cell{background-color:#f8f8f8}.ui-grid-footer-panel-background,.ui-grid-no-row-overlay{background:#fff;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='white', endColorstr='white', GradientType=0)}.ui-grid-row:last-child .ui-grid-cell{border-bottom-color:#ddd;border-bottom-style:solid}.ui-grid-no-row-overlay{position:absolute;top:0;bottom:0;left:0;right:0;margin:10%;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#fff),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#fff,#fff);background:-moz-linear-gradient(center bottom,#fff 0,#fff 100%);background:-o-linear-gradient(white,#fff);-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ddd;font-size:2em;text-align:center;-webkit-border-radius:0;border-radius:0}.ui-grid-no-row-overlay>*{position:absolute;display:table;margin:auto 0;width:100%;top:0;bottom:0;left:0;right:0;opacity:.66}.ui-grid-cell{overflow:hidden;float:left;background-color:inherit;border-right:1px solid;border-color:#ddd;box-sizing:border-box}.ui-grid-cell:last-child{border-right:0}.ui-grid-cell-contents{padding:5px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden;height:100%}.ui-grid-cell-contents-hidden{visibility:hidden;width:0;height:0;display:none}.ui-grid-row .ui-grid-cell.ui-grid-row-header-cell{border-bottom:solid 1px #ddd}.ui-grid-footer-panel-background{background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#fff),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#fff,#fff);background:-moz-linear-gradient(center bottom,#fff 0,#fff 100%);background:-o-linear-gradient(white,#fff)}.ui-grid-footer-panel{position:relative;border-bottom:1px solid #ddd;border-top:1px solid #ddd;overflow:hidden;font-weight:700;background:#fff;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#fff),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#fff,#fff);background:-moz-linear-gradient(center bottom,#fff 0,#fff 100%);background:-o-linear-gradient(white,#fff);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='white', endColorstr='white', GradientType=0);-moz-border-radius-topright:-1px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:-1px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:-1px -1px 0 0;border-radius:-1px -1px 0 0}.ui-grid-grid-footer{float:left;width:100%;padding:10px;border-top:1px solid #ddd;box-sizing:border-box}.ui-grid-footer-viewport{overflow:hidden}.ui-grid-footer-canvas{position:relative}.ui-grid-footer-canvas:after,.ui-grid-footer-canvas:before{content:"";display:table;line-height:0}.ui-grid-footer-cell-wrapper{position:relative;display:table;box-sizing:border-box;height:100%}.ui-grid-menu,.ui-grid-menu-button{position:absolute;cursor:pointer;z-index:2}.ui-grid-footer-cell-row{display:table-row}.ui-grid-footer-cell{overflow:hidden;background-color:inherit;border-right:1px solid;border-color:#ddd;box-sizing:border-box;display:table-cell}.ui-grid-footer-cell:last-child{border-right:0}input[type=text].ui-grid-filter-input{padding:0;margin:0;width:100%;border:1px solid #ddd;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:0;border-radius:0}input[type=text].ui-grid-filter-input:hover{border:1px solid #ddd}.ui-grid-menu-button{right:0;top:0;background:#fff;border:none;height:31px;font-weight:400}.ui-grid-menu-button .ui-grid-icon-container{margin-top:3px}.ui-grid-menu-button .ui-grid-menu{right:0}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid{overflow:hidden;border:1px solid #ddd}.ui-grid-menu{padding:0 10px 20px;box-sizing:border-box}.ui-grid-menu .ui-grid-menu-inner{background:#fff;border:1px solid #ddd;position:relative;white-space:nowrap;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 10px 20px rgba(0,0,0,.2),inset 0 12px 12px -14px rgba(0,0,0,.2);-moz-box-shadow:0 10px 20px rgba(0,0,0,.2),inset 0 12px 12px -14px rgba(0,0,0,.2);box-shadow:0 10px 20px rgba(0,0,0,.2),inset 0 12px 12px -14px rgba(0,0,0,.2)}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button{position:absolute;right:0;top:0;display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:1px;font-size:10px;line-height:1;border-radius:2px;color:transparent;background-color:transparent}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover{text-decoration:none}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active{outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled],fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button,.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active:hover,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active:hover,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover{color:transparent;background-color:rgba(0,0,0,0);border-color:transparent}.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active{background-image:none}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled:hover,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled].focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled]:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled]:hover,fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover{background-color:transparent;border-color:transparent}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button .badge{color:transparent;background-color:transparent}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button>i{opacity:.75;color:#000}.ui-grid-menu .ui-grid-menu-inner ul{margin:0;padding:0;list-style-type:none}.ui-grid-menu .ui-grid-menu-inner ul li{padding:0}.ui-grid-menu .ui-grid-menu-inner ul li button{min-width:100%;padding:8px;text-align:left;background:0 0;border:none}.ui-grid-menu .ui-grid-menu-inner ul li button:focus,.ui-grid-menu .ui-grid-menu-inner ul li button:hover{-webkit-box-shadow:inset 0 0 14px rgba(0,0,0,.2);-moz-box-shadow:inset 0 0 14px rgba(0,0,0,.2);box-shadow:inset 0 0 14px rgba(0,0,0,.2)}.ui-grid-menu .ui-grid-menu-inner ul li button.ui-grid-menu-item-active{-webkit-box-shadow:inset 0 0 14px rgba(0,0,0,.2);-moz-box-shadow:inset 0 0 14px rgba(0,0,0,.2);box-shadow:inset 0 0 14px rgba(0,0,0,.2);background-color:#cecece}.ui-grid-menu .ui-grid-menu-inner ul li:not(:last-child)>button{border-bottom:1px solid #ddd}.ui-grid-sortarrow{right:5px;position:absolute;width:20px;top:0;bottom:0;background-position:center}.ui-grid-sortarrow.down{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}@font-face{font-family:ui-grid;src:url(ui-grid.eot);src:url(ui-grid.eot#iefix) format('embedded-opentype'),url(../../assets/css/global/ui-grid.woff) format('woff'),url(../../assets/css/global/ui-grid.ttf) format('truetype'),url(ui-grid.svg?#ui-grid) format('svg');font-weight:400;font-style:normal}[class*=" ui-grid-icon"]:before,[class^=ui-grid-icon]:before{font-family:ui-grid;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.ui-grid-icon-blank::before{width:1em;content:' '}.ui-grid[dir=rtl] .ui-grid-cell,.ui-grid[dir=rtl] .ui-grid-footer-cell,.ui-grid[dir=rtl] .ui-grid-header-cell{float:right!important}.ui-grid[dir=rtl] .ui-grid-column-menu-button{position:absolute;left:1px;top:0;right:inherit}.ui-grid[dir=rtl] .ui-grid-cell:first-child,.ui-grid[dir=rtl] .ui-grid-footer-cell:first-child,.ui-grid[dir=rtl] .ui-grid-header-cell:first-child{border-right:0}.ui-grid[dir=rtl] .ui-grid-cell:last-child,.ui-grid[dir=rtl] .ui-grid-header-cell:last-child{border-right:1px solid #ddd;border-left:0}.ui-grid[dir=rtl] .ui-grid-cell:first-child .ui-grid-vertical-bar,.ui-grid[dir=rtl] .ui-grid-footer-cell:first-child .ui-grid-vertical-bar,.ui-grid[dir=rtl] .ui-grid-header-cell:first-child .ui-grid-vertical-bar{width:0}.ui-grid[dir=rtl] .ui-grid-menu-button{z-index:2;position:absolute;left:0;right:auto;background:#fff;border:1px solid #ddd;cursor:pointer;min-height:27px;font-weight:400}.ui-grid[dir=rtl] .ui-grid-menu-button .ui-grid-menu{left:0;right:auto}.ui-grid[dir=rtl] .ui-grid-filter-container .ui-grid-filter-button{right:initial;left:0}.ui-grid[dir=rtl] .ui-grid-filter-container .ui-grid-filter-button [class^=ui-grid-icon]{right:initial;left:10px}.ui-grid-animate-spin{-moz-animation:ui-grid-spin 2s infinite linear;-o-animation:ui-grid-spin 2s infinite linear;-webkit-animation:ui-grid-spin 2s infinite linear;animation:ui-grid-spin 2s infinite linear;display:inline-block}@-moz-keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.ui-grid-draggable-row{height:30px}.ui-grid-draggable-row-over{position:relative;color:#AAA}.ui-grid-draggable-row-over:before{content:"";display:block;position:absolute;left:0;width:100%;border-bottom:1px dashed #AAA}.ui-grid-draggable-row-over--above:before{top:0}.ui-grid-draggable-row-over--below:before{bottom:0}
\ No newline at end of file
+.audio-portlet .audio-portlet-title,.audio-portlet .audio-portlet-title a{white-space:nowrap;overflow:hidden;word-wrap:break-word;text-overflow:ellipsis}.audio-portlet .audio-portlet-title,h1,h2,h3,h4,h5,h6{font-family:"Open Sans",sans-serif;font-weight:300}.badge,.btn-arrow-link,.btn-lg{vertical-align:middle}.chart-tooltip,.chart-tooltip .label,.chat-form,.dashboard-stat .more,.dashboard-stat2 .display:after,.dashboard-stat2 .progress-info,.dashboard-stat2 .progress-info .progress,.dashboard-stat:after,.dropdown-menu li>a,.feeds li .col1,.feeds li:after,.form .form-actions:after,.general-item-list>.item>.item-head:after,.portlet>.portlet-title:after,.social-icons:after,.tabbable:after,.table-toolbar:after,.tiles .tile .tile-object:after,.tiles:after{clear:both}.inactive-link,a.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled,fieldset[disabled] a.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button{pointer-events:none}#faxMessages::-webkit-scrollbar-track{background-color:#fff!important}#faxMessages::-webkit-scrollbar{width:5px}.our-integrations h3{margin-bottom:0;padding:10px;background:#f9f9f9}.our-integrations small{display:block;font-size:12px;color:#999;margin-top:5px}.our-integrations .integration-info{padding:10px;overflow:hidden;background:#f5f5f5}.interval-to{min-height:34px;padding:9px 12px}.audio-portlet .audio-portlet-title{margin-bottom:0;padding:10px;background:#f9f9f9;font-size:17px;margin-top:20px;line-height:1.1;color:inherit}.audio-portlet .audio-portlet-title a{display:block}.audio-portlet .file-info{padding:10px;overflow:hidden;background:#f5f5f5;height:105px}.audio-portlet-wrapper{float:left;margin:0 0 0 20px;-webkit-animation:fadeInUpm .5s;animation:fadeInUpm .5s;-moz-transition:all .5s linear;-webkit-transition:all .5s linear;transition:all .5s linear}.animate-repeat{list-style:none;box-sizing:border-box}.animate-repeat.ng-enter,.animate-repeat.ng-leave,.animate-repeat.ng-move{-webkit-transition:all linear .5s;transition:all linear .5s}.animate-repeat.ng-enter,.animate-repeat.ng-leave.ng-leave-active,.animate-repeat.ng-move{opacity:0;max-height:0}.animate-repeat.ng-enter.ng-enter-active,.animate-repeat.ng-leave,.animate-repeat.ng-move.ng-move-active{opacity:1;max-height:600px}audio{-moz-transition:all .5s linear;-webkit-transition:all .5s linear;transition:all .5s linear;border-radius:0}@media (min-width:502px){.audio-portlet-wrapper{width:240px}.editable-error,audio{width:220px}}@media (max-width:501px){.audio-portlet-wrapper{width:320px}.editable-error,audio{width:300px}}.editable-error{white-space:pre-line}#description_div,.dropdown-menu li>a,.table-scrollable>.table>tbody>tr>th,.table-scrollable>.table>tfoot>tr>td,.table-scrollable>.table>tfoot>tr>th,.table-scrollable>.table>thead>tr>th{white-space:nowrap}#description_div{text-overflow:ellipsis;overflow:hidden;word-wrap:break-word}.portlet-title.collapsible{cursor:pointer}.ui-padding{padding-bottom:200px}div[contenteditable]{max-height:100px;overflow:auto;display:block;width:100%;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}a,button,code,div,img,input,label,li,p,pre,select,span,table,td,textarea,th,ul{-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important}.img-circle{border-radius:50%!important}.img-rounded{border-radius:6px!important}body{color:#333;font-family:"Open Sans",sans-serif;padding:0!important;margin:0!important;font-size:13px;direction:ltr}@-ms-viewport{width:device-width}@-o-viewport{width:device-width}@viewport{width:device-width}@-ms-viewport{width:auto!important}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background-color:#eaeaea;border-radius:0;box-shadow:none;border:0}::-webkit-scrollbar-thumb{background-color:#cecece;border-radius:0;box-shadow:none;border:0}::-webkit-scrollbar-thumb:hover{background-color:#aaa}.bars,.chart,.pie,.primary-font{font-family:"Open Sans",sans-serif!important}h1{font-size:33px}h2{font-size:27px}h3{font-size:23px}h4{font-size:17px}h5{font-size:13px}h6{font-size:12px}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#444}h1.block,h2.block,h3.block,h4.block,h5.block,h6.block{padding-top:10px;padding-bottom:10px}a{text-shadow:none;color:#5b9bd1}a:active,a:focus,a:hover{outline:0}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:0}.list-unstyled li>.list-unstyled{margin-left:25px}code{border:1px solid #e1e1e1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.1);-moz-box-shadow:0 1px 4px rgba(0,0,0,.1);box-shadow:0 1px 4px rgba(0,0,0,.1)}.disabled-link .disable-target{opacity:.5!important;filter:alpha(opacity=50)!important}.disabled-link .disable-target:hover,.disabled-link:hover{cursor:not-allowed!important}a:hover{color:#3175af;cursor:pointer}.primary-link{color:#65A0D0;font-weight:600}.primary-link:hover{color:#5194ca}.rounded-2{border-radius:2px!important}.rounded-3{border-radius:3px!important}.rounded-4{border-radius:4px!important}.circle{border-radius:25px!important}.circle-right{border-radius:0 25px 25px 0!important}.circle-left{border-radius:25px 0 0 25px!important}.circle-bottom{border-radius:0 0 25px 25px!important}.circle-top{border-radius:25px 25px 0 0!important}.display-hide,.display-none{display:none}.hidden{display:none!important}.bold{font-weight:700!important}.thin{font-weight:300!important}.uppercase{text-transform:uppercase!important}.fix-margin{margin-left:0!important}.border{border:1px solid red}.font-hg{font-size:23px}.font-lg{font-size:18px}.font-md{font-size:14px}.font-sm{font-size:13px}.font-xs{font-size:11px}.inline{display:inline}.inline-block{display:inline-block}.text-align-reverse{text-align:right}.top-news a,.top-news span{text-align:left;display:block}.no-space{margin:0!important;padding:0!important}.no-margin{margin:0}.margin-bottom-5{margin-bottom:5px}.margin-bottom-10{margin-bottom:10px!important}.margin-top-10{margin-top:10px!important}.margin-top-15{margin-top:15px!important}.margin-bottom-15{margin-bottom:15px!important}.margin-bottom-20{margin-bottom:20px!important}.margin-top-20{margin-top:20px!important}.margin-bottom-25{margin-bottom:25px!important}.margin-bottom-30{margin-bottom:30px!important}.margin-right-10{margin-right:10px!important}.visible-ie8{display:none}.ie8 .visible-ie8{display:inherit!important}.visible-ie9{display:none}.ie9 .visible-ie9{display:inherit!important}.hidden-ie8{display:inherit}.ie8 .hidden-ie8{display:none!important}.hidden-ie9{display:inherit}.ie9 .hidden-ie9{display:none!important}@media (max-width:1024px){.hidden-1024{display:none}}@media (max-width:480px){.hidden-480{display:none}}@media (max-width:320px){.hidden-320{display:none}}.scrollspy-example{position:relative;height:200px;margin-top:10px;overflow:auto}.util-btn-group-margin-bottom-5 .btn-group,.util-btn-margin-bottom-5 .btn{margin-bottom:5px!important}.user-info{margin-bottom:10px!important}.user-info img{float:left;margin-right:5px}.number-stats .stat-left,.number-stats .stat-left .stat-chart{float:right}.user-info .details{display:inline-block}.user-info .label{font-weight:300;font-size:11px}.top-news{color:#fff;margin:8px 0}.top-news em{font-size:13px;margin-bottom:0;font-style:normal;display:block}.top-news em i{font-size:14px}.top-news span{font-size:18px;margin-bottom:5px}.top-news a{padding:10px;position:relative;margin-bottom:10px}.top-news a .top-news-icon{right:8px;bottom:15px;opacity:.3;font-size:35px;position:absolute;filter:alpha(opacity=30)}.blog-images{margin-bottom:0}.blog-images li{padding:0;margin:0;display:inline}.blog-images li a:hover{text-decoration:none}.blog-images li img{width:50px;height:50px;opacity:.6;margin:0 2px 8px}.blog-images li img:hover{opacity:1;box-shadow:0 0 0 4px #72c02c;transition:all .4s ease-in-out 0s;-moz-transition:all .4s ease-in-out 0s;-webkit-transition:all .4s ease-in-out 0s}.sidebar-tags li{padding:0}.sidebar-tags li a{color:#555;font-size:12px;padding:3px 5px;background:#f7f7f7;margin:0 2px 5px 0;display:inline-block}.sidebar-tags li a:hover,.sidebar-tags li a:hover i{background:#EEE;text-decoration:none;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.sidebar-tags li a i{color:#777}.ver-inline-menu{padding:0;margin:0;list-style:none}.ver-inline-menu li{position:relative;margin-bottom:1px}.ver-inline-menu li i{width:37px;height:37px;display:inline-block;color:#b9cbd5;font-size:15px;padding:12px 10px 10px 8px;margin:0 8px 0 0;text-align:center;background:#e0eaf0!important}.ver-inline-menu li a{font-size:14px;font-weight:300;color:#557386;display:block;background:#f0f6fa;border-left:solid 2px #c4d5df}.ver-inline-menu li:hover a{background:#e0eaf0;text-decoration:none}.ver-inline-menu li:hover i{color:#fff;background:#c4d5df!important}.ver-inline-menu li.active a{border-left:solid 2px #0c91e5}.ver-inline-menu li.active i{background:#0c91e5!important}.ver-inline-menu li.active a,.ver-inline-menu li.active i{color:#fff;background:#169ef4;text-decoration:none}.ver-inline-menu li.active a,.ver-inline-menu li:hover a{font-size:14px}.ver-inline-menu li.active:after{content:'';display:inline-block;border-bottom:6px solid transparent;border-top:6px solid transparent;border-left:6px solid #169ef4;position:absolute;top:12px;right:-5px}.list-separated{margin-top:10px;margin-bottom:15px}.list-separated>div{border-right1:1px solid #f5f5f5}.list-separated>div:last-child{border-right:0}@media (max-width:767px){.ver-inline-menu>li.active:after{display:none}.list-separated>div{margin-bottom:20px}}.number-stats{margin:10px 0}.number-stats .stat-number{display:inline-block;margin:0 5px}.number-stats .stat-number .title{font-size:13px;margin-bottom:3px;color:#B8C3C7}.number-stats .stat-number .number{font-size:27px;line-height:27px;color:#7D8C9D}.number-stats>div{border-right:1px solid #f5f5f5}.number-stats>div:last-child{border-right:0}.number-stats .stat-left .stat-number{float:right;text-align:right}.number-stats .stat-right{float:left!important}.number-stats .stat-right .stat-number{float:left;text-align:left}.number-stats .stat-right .stat-chart{float:left}.number-stats .stat-number{float:left;text-align:left}.number-stats .stat-chart{display:inline-block;margin:0 5px;float:left}.general-item-list>.item{padding:10px 0;border-bottom:1px solid #F1F4F7}.general-item-list>.item:last-child{border-bottom:0}.general-item-list>.item>.item-head{margin-bottom:5px}.general-item-list>.item>.item-head:after,.general-item-list>.item>.item-head:before{content:" ";display:table}.general-item-list>.item>.item-head>.item-details{display:inline-block;float:left}.general-item-list>.item>.item-head>.item-details>.item-pic{height:35px;margin-right:10px;-webkit-border-radius:100%;-moz-border-radius:100%;-ms-border-radius:100%;-o-border-radius:100%;border-radius:100%}.general-item-list>.item>.item-head>.item-details>.item-name{display:inline-block;margin-right:10px}.general-item-list>.item>.item-head>.item-details>.item-label{color:#C0C9CC}.general-item-list>.item>.item-head>.item-status{color:#C0C9CC;top:10px;position:relative;display:inline-block;float:right}.general-item-list>.item>.item-head>.item-status>.badge{margin-top:-2px}.general-item-list>.item>.item-body{color:#96a5aa}.file-drop-zone{border:2px dashed #ddd;padding:30px;text-align:center}.file-drop-zone.file-drop-zone-over{border-color:#aaa}[class*=" fa-"],[class*=" glyphicon-"],[class*=" icon-"],[class^=fa-],[class^=glyphicon-],[class^=icon-]{display:inline-block;margin-top:1px;font-size:14px;line-height:14px;-webkit-font-smoothing:antialiased}li [class*=" fa-"],li [class*=" glyphicon-"],li [class*=" icon-"],li [class^=fa-],li [class^=glyphicon-],li [class^=icon-]{display:inline-block;width:1.25em;text-align:center}li [class*=" glyphicon-"],li [class^=glyphicon-]{top:2px}li [class*=" icon-"],li [class^=icon-]{top:1px;position:relative}li [class*=" fa-"].icon-large,li [class*=" glyphicon-"].icon-large,li [class*=" icon-"].icon-large,li [class^=fa-].icon-large,li [class^=glyphicon-].icon-large,li [class^=icon-].icon-large{width:1.5625em}.fa-sm,.icon-sm{font-size:12px}.fa-lg,.icon-lg{font-size:16px!important}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.icon-state-default{color:#c6c6c6}.icon-state-success{color:#45B6AF}.icon-state-info{color:#89C4F4}.icon-state-warning{color:#dfba49}.icon-state-danger{color:#F3565D}.fa-item{font-size:14px;padding:10px 10px 10px 20px}.fa-item i{font-size:16px;display:inline-block;width:20px;color:#333}.fa-item:hover{cursor:pointer;background:#eee}.badge-danger,.badge-default,.badge-info,.badge-primary,.badge-success,.badge-warning{background-image:none}.simplelineicons-demo .item-box{display:inline-block;font-size:16px;margin:0 -.22em 1em 0;padding-left:1em;width:100%}.simplelineicons-demo .item-box .item{background-color:#fff;color:#33383e;border-radius:8px;display:inline-block;padding:10px;width:100%}.bs-glyphicons,.glyphicons-demo ul{padding-left:0;padding-bottom:1px;margin-bottom:20px;overflow:hidden;list-style:none}.simplelineicons-demo .item-box .item span{font-size:22px}@media only screen and (min-width:768px){.simplelineicons-demo .item-box{width:33.333%}}.bs-glyphicon-class{text-align:center}.glyphicons-demo ul li{float:left;width:25%;height:115px;padding:10px;margin:0 -1px -1px 0;font-size:14px;line-height:1.4;text-align:center;border:1px solid #ddd}.glyphicons-demo .glyphicon{display:block;margin:5px auto 10px;font-size:24px;color:#444}.glyphicons-demo ul li:hover{background-color:rgba(86,61,124,.1)}.badge-default,.label-default{background-color:#c6c6c6}@media (min-width:768px){.glyphicons-demo ul li{width:12.5%}}.alert.alert-borderless{border:0}.badge{font-size:11px!important;font-weight:300;height:18px;padding:3px 6px;-webkit-border-radius:12px!important;-moz-border-radius:12px!important;border-radius:12px!important;text-shadow:none!important;text-align:center}.badge.badge-roundless{-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important}.badge.badge-empty{display:inline-block;padding:0;min-width:8px;height:8px;width:8px}.badge-primary{background-color:#428bca}.badge-info{background-color:#89C4F4}.badge-success{background-color:#45B6AF}.badge-danger{background-color:#F3565D}.badge-warning{background-color:#dfba49}.nav.nav-pills>li>a>.badge,.nav.nav-stacked>li>a>.badge{margin-top:-2px}.dropdown-menu>li>a>.badge{position:absolute;margin-top:1px;right:3px;display:inline;font-size:11px;font-weight:300;text-shadow:none;height:18px;padding:3px 6px;text-align:center;vertical-align:middle;-webkit-border-radius:12px!important;-moz-border-radius:12px!important;border-radius:12px!important}.btn,.btn>i{font-size:14px}.dropdown-menu.badge-roundless{-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important}.btn{border-width:0;padding:7px 14px;outline:0!important;background-image:none!important;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;text-shadow:none}.btn-group .btn.dropdown-toggle,.btn.active,.btn.dropdown-toggle,.btn:active,.btn:disabled,.btn:focus,.btn:hover,.btn[disabled]{outline:0!important;background-image:none!important;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;text-shadow:none}.btn-default{border-width:1px;padding:6px 13px;color:#333;background-color:#fff;border-color:#ccc}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-default.active,.btn-default:active,.btn-default:focus,.btn-default:hover,.open .btn-default.dropdown-toggle{color:#333;background-color:#ededed;border-color:#b3b3b3}.btn-default.active,.btn-default:active{background-image:none;background-color:#e0e0e0}.btn-default.active:hover,.btn-default:active:hover{background-color:#e6e6e6}.open .btn-default.dropdown-toggle{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-default>i{color:#aaa}.btn-default>i[class*=icon-],.btn-default>i[class^=icon-]{color:#8c8c8c}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary.active,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .btn-primary.dropdown-toggle{color:#fff;background-color:#3379b5;border-color:#2a6496}.btn-primary.active,.btn-primary:active{background-image:none;background-color:#2d6ca2}.btn-primary.active:hover,.btn-primary:active:hover{background-color:#3071a9}.open .btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#45B6AF;border-color:#3ea49d}.btn-success.active,.btn-success:active,.btn-success:focus,.btn-success:hover,.open .btn-success.dropdown-toggle{color:#fff;background-color:#3b9c96;border-color:#307f7a}.btn-success.active,.btn-success:active{background-image:none;background-color:#348a84}.btn-success.active:hover,.btn-success:active:hover{background-color:#37918b}.open .btn-success.dropdown-toggle{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#45B6AF;border-color:#3ea49d}.btn-success .badge{color:#45B6AF;background-color:#fff}.btn-info{color:#fff;background-color:#89C4F4;border-color:#72b8f2}.btn-info.active,.btn-info:active,.btn-info:focus,.btn-info:hover,.open .btn-info.dropdown-toggle{color:#fff;background-color:#68b4f1;border-color:#43a1ed}.btn-info.active,.btn-info:active{background-image:none;background-color:#51a8ef}.btn-info.active:hover,.btn-info:active:hover{background-color:#5aadf0}.open .btn-info.dropdown-toggle{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#89C4F4;border-color:#72b8f2}.btn-info .badge{color:#89C4F4;background-color:#fff}.btn-warning{color:#fff;background-color:#dfba49;border-color:#dbb233}.btn-warning.active,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open .btn-warning.dropdown-toggle{color:#fff;background-color:#daae2b;border-color:#bb9521}.btn-warning.active,.btn-warning:active{background-image:none;background-color:#c89f23}.btn-warning.active:hover,.btn-warning:active:hover{background-color:#d0a625}.open .btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#dfba49;border-color:#dbb233}.btn-warning .badge{color:#dfba49;background-color:#fff}.btn-danger{color:#fff;background-color:#F3565D;border-color:#f13e46}.btn-danger.active,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open .btn-danger.dropdown-toggle{color:#fff;background-color:#f1353d;border-color:#ec111b}.btn-danger.active,.btn-danger:active{background-image:none;background-color:#ef1d26}.btn-danger.active:hover,.btn-danger:active:hover{background-color:#f0262f}.open .btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#F3565D;border-color:#f13e46}.btn-danger .badge{color:#F3565D;background-color:#fff}.btn-lg,.btn-lg>i{font-size:18px}.btn-lg{padding:10px 16px;line-height:1.33}.btn-sm,.btn-xs{padding:4px 10px 5px;font-size:13px;line-height:1.5}.btn-sm>i,.btn-xs>i{font-size:13px}.btn-xs{padding:1px 5px}.btn-group .input-sm .btn-default{padding-top:3px;padding-bottom:3px}.btn-arrow-link{display:inline-block;font-size:13px}.btn-arrow-link>i{font-size:14px;line-height:14px;vertical-align:top;margin:2px 3px;color:#999}.btn-arrow-link.btn-arrow-link-lg{font-size:14px}.btn-arrow-link.btn-arrow-link-lg>i{font-size:16px;line-height:16px;margin:2px 3px 1px}.btn-circle{border-radius:25px!important}.btn-circle-right{border-radius:0 25px 25px 0!important}.btn-circle-left{border-radius:25px 0 0 25px!important}.btn-circle-bottom{border-radius:0 0 25px 25px!important}.btn-circle-top{border-radius:25px 25px 0 0!important}.btn-icon-only{height:34px;width:34px;text-align:center;padding-left:0;padding-right:0}.btn-icon-only>[class^=icon-],.btn-icon-only>i{text-align:center;margin-top:2px}.btn-sm>[class*=" glyphicon-"],.btn-sm>[class^=glyphicon-],.btn-sm>i{font-size:13px}.btn-xs>[class*=" glyphicon-"],.btn-xs>[class^=glyphicon-],.btn-xs>i{font-size:11px}.btn-group.btn-group-circle>.btn:first-child{border-radius:25px 0 0 25px!important}.btn-group.btn-group-circle>.btn:last-child{border-radius:0 25px 25px 0!important}.btn-group.btn-group-devided>.btn{margin-right:5px}.btn-group.btn-group-devided>.btn:last-child{margin-right:0}.btn-group-vertical.btn-group-vertical-circle>.btn:first-child{border-radius:25px 25px 0 0!important}.btn-group-vertical.btn-group-vertical-circle>.btn:last-child{border-radius:0 0 25px 25px!important}.carousel.image-carousel .carousel-inner{padding-top:0;padding-bottom:0}.carousel.image-carousel .carousel-control i{position:absolute;top:40%}.carousel.image-carousel.image-carousel-hoverable .carousel-control i{display:none}.carousel.image-carousel.image-carousel-hoverable:hover .carousel-control i{display:inline-block}.carousel.image-carousel .carousel-control.left i{left:10px}.carousel.image-carousel .carousel-control.right i{right:10px}.carousel.image-carousel .carousel-indicators{margin-top:10px;bottom:-7px}.carousel.image-carousel .carousel-indicators li,.carousel.image-carousel .carousel-indicators li.active{background-color:#666}.carousel.image-carousel .carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px 15px 25px;background:#333;background:rgba(0,0,0,.75)}.carousel.image-carousel .carousel-caption h2,.carousel.image-carousel .carousel-caption h3,.carousel.image-carousel .carousel-caption h4,.carousel.image-carousel .carousel-caption p{text-align:left;line-height:20px;color:#fff}.carousel.image-carousel .carousel-caption h2,.carousel.image-carousel .carousel-caption h3,.carousel.image-carousel .carousel-caption h4{margin:0 0 5px}.carousel.image-carousel .carousel-caption h2 a,.carousel.image-carousel .carousel-caption h3 a,.carousel.image-carousel .carousel-caption h4 a{color:#aaa}.carousel.image-carousel .carousel-caption p{margin-bottom:0}.carousel.image-carousel .carousel-caption .item{margin:0}.bars,.chart,.pie{overflow:hidden;height:300px;width:100%;font-size:14px}.item-list.table .percent{width:30px;float:right;margin-right:10px;margin-top:3px}.chart-tooltip{z-index:100;background-color:#736e6e!important;padding:5px!important;color:#fff}.chart-tooltip .label{display:block;margin-bottom:2px}.bar-chart,.line-chart{display:none}.chats{margin:-15px 0 0;padding:0}.chats li{list-style:none;padding:5px 0;margin:10px auto;font-size:12px}.chats li .body{display:block}.chats li .avatar{height:45px;width:45px;-webkit-border-radius:50%!important;-moz-border-radius:50%!important;border-radius:50%!important}.chats li.in .avatar{float:left;margin-right:10px}.chats li.out .avatar{float:right;margin-left:10px}.chats li .name{color:#3590c1;font-size:13px;font-weight:400}.chats li .datetime{color:#333;font-size:13px;font-weight:400}.chats li .message{border-radius:5px!important;-webkit-border-readius:5px!important;-moz-border-radius:5px!important;display:block;padding:5px 20px;position:relative}.chats li.in .message{text-align:left;border:2px solid #E9E9E9;margin-left:65px;box-shadow:0 5px 10px #777}.chats li.in .message .arrow{display:block;position:absolute;top:15px;left:-8px;width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:8px solid #e9e9e9}.chats li.out .message{border:2px solid #DFEECF;margin-right:65px;margin-left:5px;box-shadow:0 5px 10px #777}.chats li.out .message .arrow{display:block;position:absolute;top:15px;right:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:8px solid #DFEECF}.chats li.out .datetime,.chats li.out .name{text-align:right}.chats li .note{color:#000;-moz-box-shadow:5px 5px 7px rgba(33,33,33,1);-webkit-box-shadow:5px 5px 7px rgba(33,33,33,.7);box-shadow:5px 5px 7px rgba(33,33,33,.7);-moz-transition:-moz-transform .15s linear;-o-transition:-o-transform .15s linear;-webkit-transition:-webkit-transform .15s linear;-webkit-transform:rotate(-1deg);-o-transform:rotate(-1deg);-moz-transform:rotate(-1deg);font-family:"Reenie Beanie",arial,sans-serif;font-size:200%;background:#ffc}.chats li.out .note{border:2px solid #DFEECF;margin-right:65px;margin-left:5px;box-shadow:0 5px 10px #777}.chats li.out .note .arrow{display:block;position:absolute;top:15px;right:-8px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:8px solid #DFEECF}.chat-form{margin-top:15px;padding:10px;background-color:#e9eff3;overflow:hidden}.chat-form .input-cont{margin-right:40px}.chat-form .input-cont .form-control{border:1px solid #ddd;width:100%!important;margin-top:0;background-color:#fff!important}.chat-form .input-cont .form-control:focus{border:1px solid #4b8df9!important}.chat-form .btn-cont{margin-top:-42px;position:relative;float:right;width:44px}.chat-form .btn-cont .arrow{position:absolute;top:17px;right:43px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:8px solid #4d90fe;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.chat-form .btn-cont .btn{margin-top:8px}.chat-form .btn-cont:hover .arrow{border-right-color:#0362fd}.chat-form .btn-cont:hover .btn{background-color:#0362fd}.close{display:inline-block;margin-top:0;margin-right:0;width:9px;height:9px;background-repeat:no-repeat!important;text-indent:-10000px;outline:0;background-image:url(../../assets/images/remove-icon-small.png)!important}.dropdown.open>.dropdown-toggle,.dropup.open>.dropdown-toggle{border-color:#ddd}.dropdown-menu{min-width:175px;position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;list-style:none;text-shadow:none;padding:0;margin:10px 0 0;background-color:#fffff;box-shadow:5px 5px rgba(102,102,102,.1);border:1px solid #eee;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.dropdown-menu li.divider{background:#f1f3f6}.dropdown-menu li>a{padding:8px 14px;color:#555;text-decoration:none;display:block;font-weight:300;line-height:18px}.dropdown-menu li>a>[class*=" fa-"],.dropdown-menu li>a>[class^=fa-]{color:#888}.dropdown-menu li>a>[class*=" icon-"],.dropdown-menu li>a>[class^=icon-]{color:#666}.dropdown-menu li>a>[class*=" glyphicon-"],.dropdown-menu li>a>[class^=glyphicon-]{color:#888}.dropdown-menu .active>a,.dropdown-menu .active>a:hover,.dropdown-menu li>a:hover{text-decoration:none;background-image:none;background-color:#f6f6f6;color:#555;filter:none}.dropdown-menu.bottom-up{top:auto;bottom:100%;margin-bottom:2px}.btn-group>.dropdown-menu,.dropdown-toggle>.dropdown-menu,.dropdown>.dropdown-menu{margin-top:10px}.btn-group>.dropdown-menu:before,.dropdown-toggle>.dropdown-menu:before,.dropdown>.dropdown-menu:before{position:absolute;top:-8px;left:9px;right:auto;display:inline-block!important;border-right:8px solid transparent;border-bottom:8px solid #e0e0e0;border-left:8px solid transparent;content:''}.btn-group>.dropdown-menu:after,.dropdown-toggle>.dropdown-menu:after,.dropdown>.dropdown-menu:after{position:absolute;top:-7px;left:10px;right:auto;display:inline-block!important;border-right:7px solid transparent;border-bottom:7px solid #fff;border-left:7px solid transparent;content:''}.btn-group>.dropdown-menu.pull-left:before,.dropdown-toggle>.dropdown-menu.pull-left:before,.dropdown>.dropdown-menu.pull-left:before{left:auto;right:9px}.btn-group>.dropdown-menu.pull-left:after,.dropdown-toggle>.dropdown-menu.pull-left:after,.dropdown>.dropdown-menu.pull-left:after{left:auto;right:10px}.btn-group>.dropdown-menu.pull-right:before,.dropdown-toggle>.dropdown-menu.pull-right:before,.dropdown>.dropdown-menu.pull-right:before{left:auto;right:9px}.btn-group>.dropdown-menu.pull-right:after,.dropdown-toggle>.dropdown-menu.pull-right:after,.dropdown>.dropdown-menu.pull-right:after{left:auto;right:10px}.btn-group.dropup>.dropdown-menu,.dropdown-toggle.dropup>.dropdown-menu,.dropdown.dropup>.dropdown-menu{margin-top:0;margin-bottom:10px}.btn-group.dropup>.dropdown-menu:after,.btn-group.dropup>.dropdown-menu:before,.dropdown-toggle.dropup>.dropdown-menu:after,.dropdown-toggle.dropup>.dropdown-menu:before,.dropdown.dropup>.dropdown-menu:after,.dropdown.dropup>.dropdown-menu:before{display:none!important}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:5px;left:100%;margin-top:-6px;margin-left:-1px}.dropdown-submenu>a:after{position:absolute;display:inline-block;font-size:14px;right:7px;top:7px;font-family:FontAwesome;height:auto;content:"\f105";font-weight:300}.label,.table.table-light>thead>tr>th{font-family:"Open Sans",sans-serif}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px}.nav.pull-right>li>.dropdown-menu,.nav>li>.dropdown-menu.pull-right{right:0;left:auto}.nav.pull-right>li>.dropdown-menu:before,.nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.nav.pull-right>li>.dropdown-menu:after,.nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.nav.pull-right>li>.dropdown-menu .dropdown-menu,.nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:absolute;float:left;width:auto;margin-top:0;background-color:#fff;border:1px solid #efefef;box-shadow:5px 5px rgba(102,102,102,.1)}.navbar-nav .open .dropdown-menu>li>a{padding:6px 0 6px 13px;color:#333}.navbar-nav .open .dropdown-menu>li>a:active,.navbar-nav .open .dropdown-menu>li>a:hover{ackground-color:#eee}}.feeds li .col1,.feeds li .col1>.cont>.cont-col2{width:100%;float:left}.dropdown-checkboxes,.dropdown-content,.dropdown-radiobuttons{padding:5px}.dropdown-content form{margin:0}.dropdown.inline .dropdown-menu{display:inline-block;position:relative}.dropdown-checkboxes label,.dropdown-radiobuttons label{display:block;font-weight:300;color:#333;margin-bottom:4px;margin-top:4px}.dropdown-checkboxes label .radio,.dropdown-radiobuttons label .radio{margin-right:3px}.feeds{margin:0;padding:0;list-style:none}.feeds li{background-color:#fafafa;color:#82949a;margin-bottom:7px}.feeds li:after,.feeds li:before{display:table;line-height:0;content:""}.feeds li:last-child{margin-bottom:0}.feeds li .col1>.cont{float:left;margin-right:75px;overflow:hidden}.feeds li .col1>.cont>.cont-col1{float:left;margin-right:-100%}.feeds li .col1>.cont>.cont-col1>.label{display:inline-block;padding:5px 4px 6px 5px;vertical-align:middle;text-align:center}.feeds li .col1>.cont>.cont-col1>.label>i{text-align:center;font-size:14px}.feeds li .col1>.cont>.cont-col2>.desc{margin-left:35px;padding-top:4px;padding-bottom:5px;overflow:hidden}.modal,.modal-open{overflow-y:auto!important}.feeds li .col2{float:left;width:75px;margin-left:-75px}.feeds li .col2>.date{padding:4px 9px 5px 4px;text-align:right;font-style:italic;color:#c1cbd0}.static-info{margin-bottom:10px}.static-info .name{font-size:14px}.static-info .value{font-size:14px;font-weight:600}.static-info.align-reverse .name,.static-info.align-reverse .value{text-align:right}.help-block{margin-top:5px;margin-bottom:5px}.help-inline{font-size:13px;color:#737373;display:inline-block;padding:5px}.form-inline input{margin-bottom:0!important}.control-label{margin-top:1px}.control-label .required{color:#e02222;font-size:12px;padding-left:2px}.form{padding:0!important}.form .form-body{padding:10px}.portlet.light .form .form-body{padding-left:0;padding-right:0}.form .form-actions{padding:20px 10px;margin:0;background-color:#f5f5f5;border-top:1px solid #e5e5e5}.portlet.light .form .form-actions{background:0 0;padding-left:0;padding-right:0}.portlet .form .form-actions{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.form .form-actions:after,.form .form-actions:before{content:" ";display:table}.form .form-actions.right{padding-left:0;padding-right:10px;text-align:right}.portlet.light .form .form-actions.right{padding-right:0}.form .form-actions.left{padding-left:10px;padding-right:0;text-align:left}.checkbox-list>label.checkbox-inline:first-child,.checkbox>label,.form-horizontal .checkbox>label,.portlet.light .form .form-actions.left,.radio-list>label.radio-inline:first-child{padding-left:0}.form .form-actions.nobg{background-color:transparent}.form .form-actions.top{margin-top:0;margin-bottom:20px;border-top:0;border-bottom:1px solid #e5e5e5}.portlet.light .form .form-actions.top{background:0 0}.form .form-actions .btn-set{display:inline-block}@media (max-width:767px){.form .form-actions .btn-set{margin-bottom:3px;margin-top:3px;float:left!important}}.form .form-section{margin:30px 0 25px;padding-bottom:5px;border-bottom:1px solid #eee}.form .form-bordered .form-group .help-block,.form .form-row-seperated .form-group .help-block,.form-horizontal .radio-list>label{margin-bottom:0}.form .form-section:first-child{margin-top:5px}.checkbox,.form-horizontal .checkbox{padding:0}.checkbox-list>label{display:block}.checkbox-list>label.checkbox-inline{display:inline-block}.input-icon>i,.radio-list>label{display:block}.form-control-static,.icon-btn,.input-inline,.radio-list>label.radio-inline{display:inline-block}.form-horizontal .radio-list .radio{padding-top:1px}.form-horizontal .radio>span{margin-top:2px}.form .form-row-seperated .portlet-body{padding:0}.form .form-row-seperated .form-group{margin:0;border-bottom:1px solid #efefef;padding:15px 0}.form .form-row-seperated .form-group.last{border-bottom:0;margin-bottom:0;padding-bottom:13px}.form .form-row-seperated .form-body{padding:0}.form .form-row-seperated .form-actions{padding-left:15px!important;padding-right:15px!important}.form .form-bordered .form-group{margin:0;border-bottom:1px solid #efefef}.form .form-bordered .form-group>div{padding:15px;border-left:1px solid #efefef}.form .form-bordered .form-group.last{border-bottom:0}.form .form-bordered .form-group .control-label{padding-top:20px}@media (max-width:991px){.form .form-bordered .form-group>div{border-left:0}.form .form-bordered .form-group .control-label{padding-top:10px}}.form .form-bordered .form-group .form-control{margin:0}.form .form-bordered .form-body{margin:0;padding:0}.form .form-bordered .form-actions{margin-top:0;padding-left:16px!important;padding-right:16px!important}@media (max-width:991px){.form .form-bordered .form-actions{padding-left:15px!important;padding-right:15px!important}}.form .form-horizontal.form-bordered.form-row-stripped .form-group:nth-child(even){background-color:#fcfcfc}.form .form-horizontal.form-bordered.form-row-stripped .form-control{background:#fff!important}.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even)>div{background-color:#fff}.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even){background-color:#fcfcfc}.form-control::-moz-placeholder{color:#b3b3b3;opacity:1}.form-control:-ms-input-placeholder{color:#b3b3b3}.form-control::-webkit-input-placeholder{color:#b3b3b3}.form-control{font-size:14px;font-weight:400;color:#333;background-color:#fff;border:1px solid #e5e5e5;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#999;outline:0;-webkit-box-shadow:none;box-shadow:none}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}.form-control.height-auto{height:auto}.form-control.form-control-solid{background-color:#F1F3F8;border-color:#F1F3F8;color:#A6B2BA}.note .highlight,.note code,.uneditable-input{background-color:#fff}.form-control.form-control-solid:focus{border-color:#e3e7f1}.form-control.form-control-solid::-moz-placeholder{color:#acb7be;opacity:1}.form-control.form-control-solid:-ms-input-placeholder{color:#acb7be}.form-control.form-control-solid::-webkit-input-placeholder{color:#acb7be}.uneditable-input{padding:6px 12px;min-width:206px;font-size:14px;font-weight:400;height:34px;color:#333;border:1px solid #e5e5e5;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.icon-btn,.icon-btn:hover{-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease}.input-mini{width:45px!important}.input-xsmall{width:80px!important}.input-small{width:145px!important}.input-medium{width:240px!important}.input-large{width:320px!important}.input-xlarge{width:420px!important}.input-inline{width:auto;vertical-align:middle}.form-group .input-inline{margin-right:5px}.input-sm{height:28px;padding:5px 10px;font-size:13px}select.input-sm{height:28px;line-height:28px;padding:2px 10px}@media (max-width:768px){.input-large{width:250px!important}.input-xlarge{width:300px!important}}.input-group .btn-default{border-color:#e5e5e5}.input-group .input-group-addon{border-color:#e5e5e5;background:#e5e5e5;min-width:39px}.input-group .input-group-addon>i{color:#999}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .help-inline,.has-success .radio,.has-success .radio-inline{color:#3c763d}input[type=text].spinner,input[type=password].spinner,input[type=datetime].spinner,input[type=datetime-local].spinner,input[type=date].spinner,input[type=month].spinner,input[type=time].spinner,input[type=week].spinner,input[type=number].spinner,input[type=email].spinner,input[type=url].spinner,input[type=search].spinner,input[type=tel].spinner,input[type=color].spinner{background-image:url(../../assets/images/input-spinner.gif)!important;background-repeat:no-repeat;background-position:right 8px}label{font-weight:400;font-size:14px}.form-control-static{margin:2px 0}.has-success .form-control{border-color:#d6e9c6;-webkit-box-shadow:none;box-shadow:none}.has-success .form-control:focus{border-color:#bbdba1;-webkit-box-shadow:none;box-shadow:none}.has-success .input-group-addon{color:#3c763d;border-color:#d6e9c6;background-color:#dff0d8}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .help-inline,.has-warning .radio,.has-warning .radio-inline{color:#8a6d3b}.has-warning .form-control{border-color:#faebcc;-webkit-box-shadow:none;box-shadow:none}.has-warning .form-control:focus{border-color:#f5d89e;-webkit-box-shadow:none;box-shadow:none}.has-warning .input-group-addon{color:#8a6d3b;border-color:#faebcc;background-color:#fcf8e3}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .help-inline,.has-error .radio,.has-error .radio-inline{color:#a94442}.has-error .form-control{border-color:#ebccd1;-webkit-box-shadow:none;box-shadow:none}.has-error .form-control:focus{border-color:#dca7b0;-webkit-box-shadow:none;box-shadow:none}.has-error .input-group-addon{color:#a94442;border-color:#ebccd1;background-color:#f2dede}.input-circle{border-radius:25px!important}.input-circle-right{border-radius:0 25px 25px 0!important}.input-circle-left{border-radius:25px 0 0 25px!important}.input-circle-bottom{border-radius:0 0 25px 25px!important}.input-circle-top{border-radius:25px 25px 0 0!important}.icon-btn{height:60px;min-width:80px;margin:5px 5px 0 0;border:1px solid #ddd;padding:12px 0 0;background-color:#fafafa;background-image:none;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;color:#646464;text-shadow:none;text-align:center;cursor:pointer;position:relative;transition:all .3s ease}.loading-message,.page-loading{min-width:125px;vertical-align:middle}[class^=m-icon-],[class^=m-icon-big-]{background-image:url(../../assets/images/syncfusion-icons.png);background-position:0 0;background-repeat:no-repeat}.icon-btn:hover,.icon-btn:hover>.badge{-webkit-box-shadow:none;-moz-box-shadow:none}.icon-btn:hover{text-decoration:none;border-color:#999;color:#444;text-shadow:0 1px 0 #fff;transition:all .3s ease;box-shadow:none}.icon-btn:hover>.badge{-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;box-shadow:none}.icon-btn>div{margin-top:5px;margin-bottom:20px;color:#000;font-size:12px;font-weight:300}.icon-btn>.badge{position:absolute;font-size:11px;font-weight:300;top:-5px;right:-5px;padding:3px 6px;color:#fff;text-shadow:none;border-width:0;border-style:solid;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.input-group .input-icon>.form-control,.tabs-left.nav-tabs>li>a:focus,.tabs-left.nav-tabs>li>a:hover{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;-ms-border-radius:4px 0 0 4px;-o-border-radius:4px 0 0 4px}.icon-btn>i{font-size:18px}.ie8 .icon-btn:hover{filter:none}.input-icon{position:relative}.input-icon>.form-control{padding-left:33px}.input-group .input-icon>.form-control{border-radius:4px 0 0 4px}.input-icon>i{color:#ccc;position:absolute;margin:11px 2px 4px 10px;z-index:3;width:16px;height:16px;font-size:16px;text-align:center}.modal .input-icon>i{z-index:10055}.has-success .input-icon>i{color:#45B6AF}.has-warning .input-icon>i{color:#dfba49}.has-info .input-icon>i{color:#89C4F4}.has-error .input-icon>i{color:#F3565D}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.input-group .input-icon.right>.form-control{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-ms-border-radius:0 4px 4px 0;-o-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-icon.right>i{right:8px;float:right}.input-icon.input-icon-lg>i{margin-top:16px}.input-icon.input-icon-sm>i{margin-top:8px;font-size:13px}.label{text-shadow:none!important;font-size:13px;font-weight:300;padding:3px 6px;color:#fff}.label.label-sm{font-size:12px;padding:0 4px 1px}h1 .label,h2 .label,h3 .label,h4 .label,h5 .label,h6 .label{font-size:75%}.label-default[href]:focus,.label-default[href]:hover{background-color:#adadad}.label-primary{background-color:#428bca}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#3071a9}.label-success{background-color:#45B6AF}.label-success[href]:focus,.label-success[href]:hover{background-color:#37918b}.label-info{background-color:#89C4F4}.label-info[href]:focus,.label-info[href]:hover{background-color:#5aadf0}.label-warning{background-color:#dfba49}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#d0a625}.label-danger{background-color:#F3565D}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#f0262f}.label.label-icon{padding:4px 0 4px 4px;margin-right:2px;text-align:center!important}.label.label-icon>i{font-size:12px;text-align:center!important}.note p,.page-loading,.panel .panel-body{font-size:13px}.ie8 .label.label-icon,.ie9 .label.label-icon{padding:3px 0 3px 3px}.text-default{color:#c6c6c6}.text-primary{color:#428bca}.text-success{color:#45B6AF}.text-info{color:#89C4F4}.text-warning{color:#dfba49}.text-danger{color:#F3565D}.list-group .list-group-item-success{color:#3c763d;background-color:#dff0d8}.list-group a.list-group-item-success{color:#3c763d}.list-group a.list-group-item-success .list-group-item-heading{color:inherit}.list-group a.list-group-item-success:focus,.list-group a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}.list-group a.list-group-item-success.active,.list-group a.list-group-item-success.active:focus,.list-group a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group .list-group-item-info{color:#31708f;background-color:#d9edf7}.list-group a.list-group-item-info{color:#31708f}.list-group a.list-group-item-info .list-group-item-heading{color:inherit}.list-group a.list-group-item-info:focus,.list-group a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}.list-group a.list-group-item-info.active,.list-group a.list-group-item-info.active:focus,.list-group a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group .list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}.list-group a.list-group-item-warning{color:#8a6d3b}.list-group a.list-group-item-warning .list-group-item-heading{color:inherit}.list-group a.list-group-item-warning:focus,.list-group a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}.list-group a.list-group-item-warning.active,.list-group a.list-group-item-warning.active:focus,.list-group a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group .list-group-item-danger{color:#a94442;background-color:#f2dede}.list-group a.list-group-item-danger{color:#a94442}.list-group a.list-group-item-danger .list-group-item-heading{color:inherit}.list-group a.list-group-item-danger:focus,.list-group a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}.list-group a.list-group-item-danger.active,.list-group a.list-group-item-danger.active:focus,.list-group a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.loading-message{display:inline-block;padding:10px;margin:0 auto;color:#000!important;font-size:13px;font-weight:400;text-align:center}.loading-message.loading-message-boxed{border:1px solid #ddd;background-color:#eee;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 8px rgba(0,0,0,.1);-moz-box-shadow:0 1px 8px rgba(0,0,0,.1);box-shadow:0 1px 8px rgba(0,0,0,.1)}.loading-message>span{line-height:20px;vertical-align:middle}.page-loading{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;position:fixed;top:50%;left:50%;margin-left:-60px;margin-top:-30px;padding:7px;text-align:center;color:#333;border:1px solid #ddd;background-color:#eee;-webkit-box-shadow:0 1px 8px rgba(0,0,0,.1);-moz-box-shadow:0 1px 8px rgba(0,0,0,.1);box-shadow:0 1px 8px rgba(0,0,0,.1)}.block-spinner-bar>div,.page-spinner-bar>div{border-radius:100%!important;display:inline-block}.panel,.well{-webkit-box-shadow:none!important;-moz-box-shadow:none!important}.page-loading>span{line-height:20px;vertical-align:middle}.page-spinner-bar{position:fixed;z-index:10051;width:100px;top:40%;left:50%;margin-left:-55px;text-align:center}.page-spinner-bar>div{margin:0 5px;width:18px;height:18px;-webkit-animation:bounceDelay 1.4s infinite ease-in-out;animation:bounceDelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.page-spinner-bar .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.page-spinner-bar .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}.block-spinner-bar{display:inline-block;width:80px;text-align:center}.block-spinner-bar>div{margin:0 2px;width:15px;height:15px;-webkit-animation:bounceDelay 1.4s infinite ease-in-out;animation:bounceDelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.note,.tabs-right.nav-tabs>li>a:focus,.tabs-right.nav-tabs>li>a:hover{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-ms-border-radius:0 4px 4px 0;-o-border-radius:0 4px 4px 0}.block-spinner-bar .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.block-spinner-bar .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}[class^=m-icon-]{display:inline-block;width:14px;height:14px;margin-top:3px;line-height:14px;vertical-align:top}[class^=m-icon-big-]{display:inline-block;width:30px;height:30px;margin:6px;vertical-align:middle}.btn.m-icon-big{padding:9px 16px 8px}.btn.m-icon-big.m-icon-only{padding:9px 8px 8px 0}.btn.m-icon-big [class^=m-icon-big-]{margin:0 0 0 10px}.btn.m-icon-ony>i{margin-left:0}.btn.m-icon{padding:7px 14px}.btn.m-icon [class^=m-icon-]{margin:4px 0 0 5px}.btn.m-icon.m-icon-only{padding:7px 10px 7px 6px}.m-icon-white{background-image:url(../../assets/images/syncfusion-icons-white.png)}.m-icon-swapright{background-position:-27px -10px}.m-icon-swapdown{background-position:-68px -10px}.m-icon-swapleft{background-position:-8px -10px}.m-icon-swapup{background-position:-46px -10px}.m-icon-big-swapright{background-position:-42px -28px}.m-icon-big-swapdown{background-position:-115px -28px}.m-icon-big-swapleft{background-position:-6px -28px}.m-icon-big-swapup{background-position:-78px -28px}.modal{z-index:10050;outline:0}.modal .modal-header{border-bottom:1px solid #EFEFEF}.modal .modal-header h3{font-weight:300}.modal .modal-header .close{margin-top:0!important}.modal .modal-dialog{z-index:10051}.modal>.loading{position:absolute;top:50%;left:50%;margin-top:-22px;margin-left:-22px}.modal.in .page-loading{display:none}.modal-open-noscroll{overflow-y:hidden!important}.modal-full.modal-dialog{width:99%}@media (max-width:768px){.modal-full.modal-dialog{width:auto}}.note{margin:0 0 20px;padding:15px 30px 15px 15px;border-left:5px solid #eee;border-radius:0 4px 4px 0}.note h1,.note h2,.note h3,.note h4,.note h5,.note h6{margin-top:0}.note h1 .close,.note h2 .close,.note h3 .close,.note h4 .close,.note h5 .close,.note h6 .close{margin-right:-10px}.note p:last-child{margin-bottom:0}.note.note-default{background-color:#d3d3d3;border-color:#a0a0a0;color:#333,80%}.note.note-default.note-bordered{background-color:#c9c9c9;border-color:#a5a5a5}.note.note-primary{background-color:#5697d0;border-color:#2a7696;color:#D8E3F2,80%}.note.note-primary.note-bordered{background-color:#468dcb;border-color:#2c7c9e}.note.note-success{background-color:#eef7ea;border-color:#bbdba1;color:#3c763d,80%}.note.note-success.note-bordered{background-color:#e2f1dc;border-color:#c1dea8}.note.note-info{background-color:#eef7fb;border-color:#91d9e8;color:#31708f,80%}.note.note-info.note-bordered{background-color:#ddeff8;border-color:#9adcea}.note.note-warning{background-color:#fcf8e3;border-color:#f2cf87;color:#8a6d3b,80%}.note.note-warning.note-bordered{background-color:#faf3d1;border-color:#f3d390}.note.note-danger{background-color:#f9f0f0;border-color:#dca7b0;color:#a94442,80%}.note.note-danger.note-bordered{background-color:#f3e2e2;border-color:#dfaeb7}.pagination{margin:10px 0}.pagination.pagination-circle>li:first-child>a{border-radius:25px 0 0 25px!important}.pagination.pagination-circle>li:last-child>a{border-radius:0 25px 25px 0!important}.dashboard-stat,.portlet{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px}.pagination .active>a,.pagination .active>a:hover{background:#eee;border-color:#ddd;color:#333}.panel{box-shadow:none!important}.panel-group .panel{overflow:visible}.panel .panel-title>a:hover{text-decoration:none}.accordion .panel .panel-heading,.accordion .panel .panel-title{padding:0}.accordion .panel .panel-title .accordion-toggle{display:block;padding:10px 15px}.accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled{background:url(../../assets/images/accordion-plusminus.png) right -19px no-repeat;margin-right:15px}.accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled.collapsed{background-position:right 12px}.panel-default{border-color:#e0e0e0}.panel-default>.panel-heading{color:#333;background-color:#f9f9f9;border-color:#e0e0e0}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#e0e0e0}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#e0e0e0}.panel-primary{border-color:#3595bd}.panel-primary>.panel-heading{color:#D8E3F2;background-color:#428bca;border-color:#3595bd}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#3595bd}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#3595bd}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.accordion-heading{background:#eee}.accordion-heading a,.accordion-heading a:hover{text-decoration:none}.popover{box-shadow:5px 5px rgba(102,102,102,.1);padding:0}.portlet.calendar .fc-button,.progress{-webkit-box-shadow:none;-moz-box-shadow:none}.popover .popover-title{margin:0!important}.popover.name .popover-content,.popover.name .popover-title,name .popover .popover-content{color:#F3565D}.popovers.yellow+.popover,.popovers.yellow+.popover .popover-content,.popovers.yellow+.popover .popover-title{background:#ff0}.page-portlet-fullscreen{overflow:hidden}.portlet{margin-top:0;margin-bottom:25px;padding:0;border-radius:4px}.portlet.portlet-fullscreen{z-index:10060;margin:0;position:fixed;top:0;left:0;bottom:0;right:0;width:100%;height:100%;background:#fff}.portlet.portlet-fullscreen>.portlet-body{overflow-y:auto;overflow-x:hidden;padding:0 10px}.portlet.portlet-fullscreen>.portlet-title{padding:0 10px}.portlet>.portlet-title{border-bottom:1px solid #eee;padding:0;margin-bottom:10px;min-height:41px;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.portlet>.portlet-title:after,.portlet>.portlet-title:before{content:" ";display:table}.portlet>.portlet-title>.caption{float:left;display:inline-block;font-size:18px;line-height:18px;font-weight:300;padding:10px 0}.portlet>.portlet-title>.caption.bold{font-weight:400}.portlet>.portlet-title>.caption>i{float:left;margin-top:4px;display:inline-block;font-size:13px;margin-right:5px;color:#666}.portlet>.portlet-title>.caption>i.glyphicon{margin-top:2px}.portlet>.portlet-title>.caption>.caption-helper{padding:0;margin:0;line-height:13px;color:#9eacb4;font-size:13px;font-weight:400}.portlet>.portlet-title>.actions{float:right;display:inline-block;padding:6px 0}.portlet>.portlet-title>.actions>.dropdown-menu i{color:#555}.portlet>.portlet-title>.actions>.btn,.portlet>.portlet-title>.actions>.btn-group>.btn,.portlet>.portlet-title>.actions>.btn-group>.btn.btn-sm,.portlet>.portlet-title>.actions>.btn.btn-sm{padding:4px 10px;font-size:13px;line-height:1.5}.portlet>.portlet-title>.actions>.btn-group>.btn.btn-default,.portlet>.portlet-title>.actions>.btn-group>.btn.btn-sm.btn-default,.portlet>.portlet-title>.actions>.btn.btn-default,.portlet>.portlet-title>.actions>.btn.btn-sm.btn-default{padding:3px 9px}.portlet>.portlet-title>.actions>.btn-group>.btn.btn-sm>i,.portlet>.portlet-title>.actions>.btn-group>.btn>i,.portlet>.portlet-title>.actions>.btn.btn-sm>i,.portlet>.portlet-title>.actions>.btn>i{font-size:13px}.portlet>.portlet-title>.actions .btn-icon-only{padding:5px 7px 3px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default{padding:4px 6px 2px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default>i{font-size:14px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default.fullscreen{font-family:FontAwesome;color:#a0a0a0;padding-top:3px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default.fullscreen.btn-sm{padding:3px!important;height:27px;width:27px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default.fullscreen:before{content:"\f065"}.portlet>.portlet-title>.actions .btn-icon-only.btn-default.fullscreen.on:before{content:"\f066"}.portlet>.portlet-title>.tools{float:right;display:inline-block;padding:12px 0 8px}.portlet>.portlet-title>.tools>a{display:inline-block;height:16px;margin-left:5px;opacity:1;filter:alpha(opacity=100)}.portlet>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon.png);background-repeat:no-repeat;width:11px}.portlet>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon.png);background-repeat:no-repeat;width:12px}.portlet>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon.png);width:13px}.portlet>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon.png);width:14px;visibility:visible}.portlet>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon.png);width:14px;visibility:visible}.portlet>.portlet-title>.tools>a.fullscreen{display:inline-block;top:-3px;position:relative;font-size:13px;font-family:FontAwesome;color:#ACACAC}.portlet>.portlet-title>.tools>a.fullscreen:before{content:"\f065"}.portlet>.portlet-title>.tools>a.fullscreen.on:before{content:"\f066"}.portlet>.portlet-title>.tools>a:hover{text-decoration:none;-webkit-transition:all .1s ease-in-out;-moz-transition:all .1s ease-in-out;-o-transition:all .1s ease-in-out;-ms-transition:all .1s ease-in-out;transition:all .1s ease-in-out;opacity:.8;filter:alpha(opacity=80)}.portlet>.portlet-title>.pagination{float:right;display:inline-block;margin:2px 0 0;border:0;padding:4px 0}.portlet>.portlet-title>.nav-tabs{background:0 0;margin:0;float:right;display:inline-block;border:0}.portlet>.portlet-title>.nav-tabs>li{background:0 0;margin:0;border:0}.portlet>.portlet-title>.nav-tabs>li>a{background:0 0;margin:5px 0 0 1px;border:0;padding:8px 10px;color:#fff}.portlet>.portlet-title>.nav-tabs>li.active>a,.portlet>.portlet-title>.nav-tabs>li:hover>a{color:#333;background:#fff;border:0}.portlet>.portlet-body{clear:both;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.portlet>.portlet-empty{min-height:125px}.portlet.full-height-content{margin-bottom:0}.portlet.bordered{border-left:2px solid #e6e9ec!important}.portlet.bordered>.portlet-title{border-bottom:0}.portlet.solid{padding:0 10px 10px;border:0}.portlet.solid>.portlet-title{border-bottom:0;margin-bottom:10px}.portlet.solid>.portlet-title>.caption{padding:16px 0 2px}.portlet.solid>.portlet-title>.actions{padding:12px 0 6px}.portlet.solid>.portlet-title>.tools{padding:14px 0 6px}.portlet.solid.bordered>.portlet-title{margin-bottom:10px}.portlet.box{padding:0!important}.portlet.box>.portlet-title{border-bottom:0;padding:0 10px;margin-bottom:0;color:#fff}.portlet.box>.portlet-title>.caption{padding:11px 0 9px}.portlet.box>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.box>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.box>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.box>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.box>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.box>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box>.portlet-title>.actions{padding:7px 0 5px}.portlet.box>.portlet-body{background-color:#fff;padding:10px}.portlet.box.portlet-fullscreen>.portlet-body{padding:10px}.portlet.light{padding:12px 20px 15px;background-color:#fff}.portlet.light.bordered{border:1px solid #e1e1e1!important}.portlet.light.bordered>.portlet-title{border-bottom:1px solid #eee}.portlet.light.bg-inverse{background:#F7F7F7}.portlet.light>.portlet-title{padding:0;min-height:48px}.portlet.light>.portlet-title>.caption{color:#666;padding:10px 0}.portlet.light>.portlet-title>.caption>.caption-subject{font-size:16px}.portlet.light>.portlet-title>.caption>i{color:#777;font-size:15px;font-weight:300;margin-top:3px}.portlet.light>.portlet-title>.caption.caption-md>.caption-subject{font-size:15px}.portlet.light>.portlet-title>.caption.caption-md>i{font-size:14px}.portlet.light>.portlet-title>.actions{padding:6px 0 14px}.portlet.light>.portlet-title>.actions .btn-default{color:#666}.portlet.light>.portlet-title>.actions .btn-icon-only{height:27px;width:27px}.portlet.light>.portlet-title>.actions .dropdown-menu li>a{color:#555}.portlet.light>.portlet-title>.inputs{float:right;display:inline-block;padding:4px 0}.portlet.light>.portlet-title>.inputs>.portlet-input .input-icon>i{font-size:14px;margin-top:9px}.portlet.light>.portlet-title>.inputs>.portlet-input .input-icon>.form-control{height:30px;padding:2px 26px 3px 10px;font-size:13px}.portlet.light>.portlet-title>.inputs>.portlet-input>.form-control{height:30px;padding:3px 10px;font-size:13px}.portlet.light>.portlet-title>.pagination{padding:2px 0 13px}.portlet.light>.portlet-title>.tools{padding:10px 0 13px;margin-top:2px}.portlet.light>.portlet-title>.nav-tabs>li{margin:0;padding:0}.portlet.light>.portlet-title>.nav-tabs>li>a{margin:0;padding:12px 13px 13px;font-size:13px;color:#666}.portlet.light>.portlet-title>.nav-tabs>li.active>a,.portlet.light>.portlet-title>.nav-tabs>li:hover>a{margin:0;background:0 0;color:#333}.blue.btn.active,.blue.btn:active,.btn.default.active,.btn.default:active,.open .blue.btn.dropdown-toggle,.open .btn.default.dropdown-toggle,.progress,.progress-striped .progress>.progress-bar-default,.progress-striped .progress>.progress-bar-info,.progress-striped .progress>.progress-bar-success,.progress-striped .progress>.progress-bar-warning{background-image:none}.portlet.light.form-fit{padding:0}.portlet.light.form-fit>.portlet-title{padding:17px 20px 10px;margin-bottom:0}.portlet.light .portlet-body{padding-top:8px}.portlet.light.portlet-fullscreen>.portlet-body{padding:8px 0}.tab-pane>p:last-child{margin-bottom:0}.tabs-reversed>li{float:right;margin-right:0}.tabs-reversed>li>a{margin-right:0}.portlet-sortable:not(.portlet-fullscreen)>.portlet-title{cursor:move}.portlet-sortable-placeholder{border:2px dashed #eee;margin-bottom:25px}.portlet-sortable-empty{height:45px}.progress{border:0;filter:none;box-shadow:none}.progress.progress-sm{height:12px}.progress>.progress-bar-default{background-color:#c6c6c6}.progress>.progress-bar-success{background-color:#45B6AF}.progress>.progress-bar-info{background-color:#89C4F4}.progress>.progress-bar-danger{background-color:#F3565D}.progress-striped .progress>.progress-bar-danger{background-image:none}.progress>.progress-bar-warning{background-color:#dfba49}.dashboard-stat{display:block;margin-bottom:25px;overflow:hidden;border-radius:4px}.dashboard-stat:after,.dashboard-stat:before{content:" ";display:table}.portlet .dashboard-stat:last-child{margin-bottom:0}.dashboard-stat .visual{width:80px;height:80px;display:block;float:left;padding-top:10px;padding-left:15px;margin-bottom:15px;font-size:35px;line-height:35px}.dashboard-stat .visual>i{margin-left:-35px;font-size:110px;line-height:110px}.dashboard-stat .details{position:absolute;right:15px;padding-right:15px}.dashboard-stat .details .number{padding-top:25px;text-align:right;font-size:34px;line-height:36px;letter-spacing:-1px;margin-bottom:0;font-weight:300}.dashboard-stat .details .desc{text-align:right;font-size:16px;letter-spacing:0;font-weight:300}.dashboard-stat .more{display:block;padding:6px 10px;position:relative;text-transform:uppercase;font-weight:300;font-size:11px;opacity:.7;filter:alpha(opacity=70)}.dashboard-stat .more:hover{text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.dashboard-stat .more>i{display:inline-block;margin-top:1px;float:right}.dashboard-stat-light{padding-bottom:20px;margin-bottom:20px}.dashboard-stat-light .details{margin-bottom:5px}.dashboard-stat-light .details .number{font-weight:300;margin-bottom:0}.dashboard-stat2,.dashboard-stat2 .display{margin-bottom:20px}.dashboard-stat2{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;background:#fff;padding:15px 15px 30px}.dashboard-stat2 .display:after,.dashboard-stat2 .display:before{content:" ";display:table}.dashboard-stat2 .display .number{float:left;display:inline-block}.dashboard-stat2 .display .number h3{margin:0 0 2px;padding:0;font-size:30px;font-weight:400}.dashboard-stat2 .display .number h3>small{font-size:23px}.dashboard-stat2 .display .number small{font-size:14px;color:#AAB5BC;font-weight:600;text-transform:uppercase}.dashboard-stat2 .display .icon{display:inline-block;float:right;padding:7px 0 0}.dashboard-stat2 .display .icon>i{color:#cbd4e0;font-size:26px}.dashboard-stat2 .progress-info .progress{margin:0;height:4px;display:block}.dashboard-stat2 .progress-info .status{margin-top:5px;font-size:11px;color:#AAB5BC;font-weight:600;text-transform:uppercase}.dashboard-stat2 .progress-info .status .status-title{float:left;display:inline-block}.dashboard-stat2 .progress-info .status .status-number{float:right;display:inline-block}.text-stat h3{margin-top:5px;margin-bottom:0;font-size:18px}.text-stat span{font-size:13px!important}@media (max-width:767px){.text-stat{margin-top:20px}}.social-icons{padding:0;margin:0}.social-icons:after,.social-icons:before{content:" ";display:table}.social-icons li{float:left;display:inline;list-style:none;margin-right:5px;margin-bottom:5px;text-indent:-9999px}.social-icons li>a{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;width:28px;height:28px;display:block;background-position:0 0;background-repeat:no-repeat;transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;-ms-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-webkit-transition:all .3s ease-in-out}.social-icons li:hover>a{background-position:0 -38px}.social-icons li .amazon{background:url(../../assets/images/social/amazon.png) no-repeat}.social-icons li .behance{background:url(../../assets/images/social/behance.png) no-repeat}.social-icons li .blogger{background:url(../../assets/images/social/blogger.png) no-repeat}.social-icons li .deviantart{background:url(../../assets/images/social/deviantart.png) no-repeat}.social-icons li .dribbble{background:url(../../assets/images/social/dribbble.png) no-repeat}.social-icons li .dropbox{background:url(../../assets/images/social/dropbox.png) no-repeat}.social-icons li .evernote{background:url(../../assets/images/social/evernote.png) no-repeat}.social-icons li .facebook{background:url(../../assets/images/social/facebook.png) no-repeat}.social-icons li .forrst{background:url(../../assets/images/social/forrst.png) no-repeat}.social-icons li .github{background:url(../../assets/images/social/github.png) no-repeat}.social-icons li .googleplus{background:url(../../assets/images/social/googleplus.png) no-repeat}.social-icons li .jolicloud{background:url(../../assets/images/social/jolicloud.png) no-repeat}.social-icons li .last-fm{background:url(../../assets/images/social/last-fm.png) no-repeat}.social-icons li .linkedin{background:url(../../assets/images/social/linkedin.png) no-repeat}.social-icons li .picasa{background:url(../../assets/images/social/picasa.png) no-repeat}.social-icons li .pintrest{background:url(../../assets/images/social/pintrest.png) no-repeat}.social-icons li .rss{background:url(../../assets/images/social/rss.png) no-repeat}.social-icons li .skype{background:url(../../assets/images/social/skype.png) no-repeat}.social-icons li .spotify{background:url(../../assets/images/social/spotify.png) no-repeat}.social-icons li .stumbleupon{background:url(../../assets/images/social/stumbleupon.png) no-repeat}.social-icons li .tumblr{background:url(../../assets/images/social/tumblr.png) no-repeat}.social-icons li .twitter{background:url(../../assets/images/social/twitter.png) no-repeat}.social-icons li .vimeo{background:url(../../assets/images/social/vimeo.png) no-repeat}.social-icons li .wordpress{background:url(../../assets/images/social/wordpress.png) no-repeat}.social-icons li .xing{background:url(../../assets/images/social/xing.png) no-repeat}.social-icons li .yahoo{background:url(../../assets/images/social/yahoo.png) no-repeat}.social-icons li .youtube{background:url(../../assets/images/social/youtube.png) no-repeat}.social-icons li .vk{background:url(../../assets/images/social/vk.png) no-repeat}.social-icons li .instagram{background:url(../../assets/images/social/instagram.png) no-repeat}.social-icons li .reddit{background:url(../../assets/images/social/reddit.png) no-repeat}.social-icons li .aboutme{background:url(../../assets/images/social/aboutme.png) no-repeat}.social-icons li .flickr{background:url(../../assets/images/social/flickr.png) no-repeat}.social-icons li .foursquare{background:url(../../assets/images/social/foursquare.png) no-repeat}.social-icons li .gravatar{background:url(../../assets/images/social/gravatar.png) no-repeat}.social-icons li .klout{background:url(../../assets/images/social/klout.png) no-repeat}.social-icons li .myspace{background:url(../../assets/images/social/myspace.png) no-repeat}.social-icons li .quora{background:url(../../assets/images/social/quora.png) no-repeat}.social-icons.social-icons-color>li>a{opacity:.7;background-position:0 -38px!important}.social-icons.social-icons-color>li>a:hover{opacity:1}.social-icons.social-icons-circle>li>a{border-radius:25px!important}.social-icon{display:inline-block!important;width:28px;height:28px;background-position:0 0;background-repeat:no-repeat;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;-ms-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-webkit-transition:all .3s ease-in-out}.social-icon.social-icon-circle{border-radius:25px!important}.social-icon.amazon{background:url(../../assets/images/social/amazon.png) no-repeat}.social-icon.behance{background:url(../../assets/images/social/behance.png) no-repeat}.social-icon.blogger{background:url(../../assets/images/social/blogger.png) no-repeat}.social-icon.deviantart{background:url(../../assets/images/social/deviantart.png) no-repeat}.social-icon.dribbble{background:url(../../assets/images/social/dribbble.png) no-repeat}.social-icon.dropbox{background:url(../../assets/images/social/dropbox.png) no-repeat}.social-icon.evernote{background:url(../../assets/images/social/evernote.png) no-repeat}.social-icon.facebook{background:url(../../assets/images/social/facebook.png) no-repeat}.social-icon.forrst{background:url(../../assets/images/social/forrst.png) no-repeat}.social-icon.github{background:url(../../assets/images/social/github.png) no-repeat}.social-icon.googleplus{background:url(../../assets/images/social/googleplus.png) no-repeat}.social-icon.jolicloud{background:url(../../assets/images/social/jolicloud.png) no-repeat}.social-icon.last-fm{background:url(../../assets/images/social/last-fm.png) no-repeat}.social-icon.linkedin{background:url(../../assets/images/social/linkedin.png) no-repeat}.social-icon.picasa{background:url(../../assets/images/social/picasa.png) no-repeat}.social-icon.pintrest{background:url(../../assets/images/social/pintrest.png) no-repeat}.social-icon.rss{background:url(../../assets/images/social/rss.png) no-repeat}.social-icon.skype{background:url(../../assets/images/social/skype.png) no-repeat}.social-icon.spotify{background:url(../../assets/images/social/spotify.png) no-repeat}.social-icon.stumbleupon{background:url(../../assets/images/social/stumbleupon.png) no-repeat}.social-icon.tumblr{background:url(../../assets/images/social/tumblr.png) no-repeat}.social-icon.twitter{background:url(../../assets/images/social/twitter.png) no-repeat}.social-icon.vimeo{background:url(../../assets/images/social/vimeo.png) no-repeat}.social-icon.wordpress{background:url(../../assets/images/social/wordpress.png) no-repeat}.social-icon.xing{background:url(../../assets/images/social/xing.png) no-repeat}.social-icon.yahoo{background:url(../../assets/images/social/yahoo.png) no-repeat}.social-icon.youtube{background:url(../../assets/images/social/youtube.png) no-repeat}.social-icon.vk{background:url(../../assets/images/social/vk.png) no-repeat}.social-icon.instagram{background:url(../../assets/images/social/instagram.png) no-repeat}.social-icon.reddit{background:url(../../assets/images/social/reddit.png) no-repeat}.social-icon.aboutme{background:url(../../assets/images/social/aboutme.png) no-repeat}.social-icon.flickr{background:url(../../assets/images/social/flickr.png) no-repeat}.social-icon.foursquare{background:url(../../assets/images/social/foursquare.png) no-repeat}.social-icon.gravatar{background:url(../../assets/images/social/gravatar.png) no-repeat}.social-icon.klout{background:url(../../assets/images/social/klout.png) no-repeat}.social-icon.myspace{background:url(../../assets/images/social/myspace.png) no-repeat}.social-icon.quora{background:url(../../assets/images/social/quora.png) no-repeat}.social-icon:hover{background-position:0 -38px}.social-icon-color{opacity:.7;background-position:0 -38px!important}.social-icon-color:hover{opacity:1}.table.table-bordered thead>tr>th{border-bottom:0}.table tr.heading>th{background-color:#eee!important}.table td .img-responsive{width:100%}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background:#a6c8e6;color:#132339}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background:#92bce0}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background:#dff0d8;color:#3c763d}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background:#d9edf7;color:#31708f}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background:#fcf8e3;color:#8a6d3b}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background:#f2dede;color:#a94442}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background:#ebcccc}.table-scrollable{width:100%;overflow-x:auto;overflow-y:hidden;border:1px solid #ddd;margin:10px 0!important}.table-scrollable.table-scrollable-borderless,.table-scrollable>.table-bordered{border:0}.table-scrollable>.table{width:100%!important;margin:0!important;background-color:#fff}.table-scrollable>.table-bordered>tbody>tr>td:first-child,.table-scrollable>.table-bordered>tbody>tr>th:first-child,.table-scrollable>.table-bordered>tfoot>tr>td:first-child,.table-scrollable>.table-bordered>tfoot>tr>th:first-child,.table-scrollable>.table-bordered>thead>tr>td:first-child,.table-scrollable>.table-bordered>thead>tr>th:first-child{border-left:0}.table-scrollable>.table-bordered>tbody>tr>td:last-child,.table-scrollable>.table-bordered>tbody>tr>th:last-child,.table-scrollable>.table-bordered>tfoot>tr>td:last-child,.table-scrollable>.table-bordered>tfoot>tr>th:last-child,.table-scrollable>.table-bordered>thead>tr>td:last-child,.table-scrollable>.table-bordered>thead>tr>th:last-child{border-right:0}.table-scrollable>.table-bordered>tbody>tr:last-child>td,.table-scrollable>.table-bordered>tbody>tr:last-child>th,.table-scrollable>.table-bordered>tfoot>tr:last-child>td,.table-scrollable>.table-bordered>tfoot>tr:last-child>th,.table-scrollable>.table-bordered>thead>tr:last-child>td,.table-scrollable>.table-bordered>thead>tr:last-child>th{border-bottom:0}.flip-scroll table{width:100%}@media only screen and (max-width:768px){.flip-scroll .flip-content:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.flip-scroll * html .flip-content{zoom:1}.flip-scroll td,.flip-scroll th{margin:0;vertical-align:top}.flip-scroll th{border:0!important;border-bottom:1px solid #ddd!important;border-right:1px solid #ddd!important;font-size:13px!important;padding:5px;width:auto!important;display:block;text-align:right}.flip-scroll table{border-collapse:collapse;border-spacing:0;display:block;position:relative;width:100%}.flip-scroll thead{display:block;float:left}.flip-scroll tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}.flip-scroll thead tr{display:block}.flip-scroll tbody tr{display:inline-block;vertical-align:top;margin-left:-5px}.flip-scroll td{display:block;min-height:1.25em;text-align:left;border-top:0!important;border-left:0!important;border-right:0!important;border-bottom:0}.flip-scroll th{border-left:0}.flip-scroll tbody tr{border-left:1px solid #ddd}.flip-scroll td:last-child,.flip-scroll th:last-child{border-bottom:1px solid #ddd}}.centered-td,.page-404,.tiles .tile .tile-body>i,.ui-grid-vcenter div{text-align:center}.table-toolbar{margin-bottom:15px}.table-toolbar:after,.table-toolbar:before{content:" ";display:table}.table.table-full-width{width:100%!important}.table .btn{margin-top:0;margin-left:0;margin-right:5px}.table thead tr th{font-size:14px;font-weight:600}.table-advance{margin-bottom:10px!important}.table-advance thead{color:#999}.table-advance thead tr th{background-color:#DDD;font-size:14px;font-weight:400;color:#666}.table-advance div.danger,.table-advance div.important,.table-advance div.info,.table-advance div.success,.table-advance div.warning{position:absolute;margin-top:-5px;float:left;width:2px;height:30px;margin-right:20px!important}.table-advance tr td{border-left-width:0}.table-advance tr td:first-child{border-left-width:1px!important}.table-advance tr td.highlight:first-child a{margin-left:15px}.table-advance td.highlight div.primary{border-left:2px solid #428bca}.table-advance td.highlight div.success{border-left:2px solid #45B6AF}.table-advance td.highlight div.info{border-left:2px solid #89C4F4}.table-advance td.highlight div.warning{border-left:2px solid #dfba49}.table-advance td.highlight div.danger{border-left:2px solid #F3565D}@media (max-width:767px){.table-advance tr>td.highlight:first-child a{margin-left:8px}}.table.table-light{border:0!important}.table.table-light>thead>tr:hover>th{background:0 0}.table.table-light>thead>tr.uppercase{text-transform:uppercase}.table.table-light>thead>tr>th{font-weight:600;font-size:13px;color:#a7b3b9;border:0;border-bottom:1px solid #F2F5F8}.table.table-light>tbody>tr:last-child>td{border:0}.table.table-light>tbody>tr>td{border:0;border-bottom:1px solid #F2F5F8;color:#9ca8b0;vertical-align:middle}.table.table-light>tbody>tr>td.fit{width:1px;padding-right:3px}.table.table-light>tbody>tr>td .user-pic{display:inline-block;vertical-align:middle;height:30px;-webkit-border-radius:100%;-moz-border-radius:100%;-ms-border-radius:100%;-o-border-radius:100%;border-radius:100%}.table.table-light.table-hover>tbody>tr:hover>td,.table.table-light.table-hover>tbody>tr:hover>th,.table.table-light.table-hover>tbody>tr>td:hover,.table.table-light.table-hover>tbody>tr>th:hover{background:#f9fafb}.nav-pills,.nav-tabs{margin-bottom:10px}.nav-pills>li>a,.nav-tabs>li>a{font-size:14px}.nav-pills>li>a>.badge,.nav-tabs>li>a>.badge{margin-top:-3px}.nav-pills>li .dropdown-menu:after,.nav-pills>li .dropdown-menu:before,.nav-tabs>li .dropdown-menu:after,.nav-tabs>li .dropdown-menu:before{display:none}.nav-pills.nav-pills-sm>li>a,.nav-pills.nav-tabs-sm>li>a,.nav-tabs.nav-pills-sm>li>a,.nav-tabs.nav-tabs-sm>li>a{font-size:13px}.nav-pills .dropdown.open>.dropdown-toggle,.nav-tabs .dropdown.open>.dropdown-toggle{background:#eee;color:#0d638f;border-color:transparent}.tabs-left.nav-tabs,.tabs-right.nav-tabs{border-bottom:0}.tabs-left.nav-tabs>li,.tabs-right.nav-tabs>li{float:none}.tabs-left.nav-tabs>li>a,.tabs-right.nav-tabs>li>a{margin-right:0;margin-bottom:3px}.tabs-left.nav-tabs{border-right:1px solid #ddd}.tabs-left.nav-tabs>li>a{display:block;margin-right:-1px}.tabs-left.nav-tabs>li>a:focus,.tabs-left.nav-tabs>li>a:hover{border-radius:4px 0 0 4px;border-color:#eee #ddd #eee #eee}.tabs-left.nav-tabs>li.active>a,.tabs-left.nav-tabs>li.active>a:hover>li.active>a:focus{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;-ms-border-radius:4px 0 0 4px;-o-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;border-color:#ddd transparent #ddd #ddd}.tabs-right.nav-tabs{border-left:1px solid #ddd}.tabs-right.nav-tabs>li>a{display:block;margin-left:-1px}.tabbable:after,.tabbable:before,.tiles:after,.tiles:before{display:table;content:" "}.tabs-right.nav-tabs>li>a:focus,.tabs-right.nav-tabs>li>a:hover{border-radius:0 4px 4px 0;border-color:#eee #eee #eee #ddd}.tabs-right.nav-tabs>li.active>a,.tabs-right.nav-tabs>li.active>a:hover>li.active>a:focus{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-ms-border-radius:0 4px 4px 0;-o-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;border-color:#ddd #ddd #ddd transparent}.tabs-below>.nav-pills,.tabs-below>.nav-tabs{border-bottom:0;margin-bottom:0;margin-top:10px}.tabs-below>.nav-tabs{border-top:1px solid #ddd;margin-bottom:0;margin-top:10px}.tabs-below>.nav-tabs>li>a{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a:focus,.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>li>a .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.tabs-below>.nav-tabs .active a,.tabs-below>.nav-tabs .active a:hover .active a:focus{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;border-color:transparent #ddd #ddd}.tabbable-custom{margin-bottom:15px;padding:0;overflow:hidden}.tabbable-custom>.nav-tabs{border:none;margin:0}.tabbable-custom>.nav-tabs>li.active>a,.tabbable-custom>.nav-tabs>li>a{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0}.tabbable-custom>.nav-tabs>li{margin-right:2px;border-top:2px solid transparent}.tabbable-custom>.nav-tabs>li>a{margin-right:0;border-radius:0}.tabbable-custom>.nav-tabs>li>a:hover{background:0 0;border-color:transparent}.tabbable-custom>.nav-tabs>li.active{border-top:3px solid #F3565D;margin-top:0;position:relative}.tabbable-custom>.nav-tabs>li.active>a{border-top:none;font-weight:400;border-radius:0}.tabbable-custom>.nav-tabs>li.active>a:hover{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;border-top:none;background:#fff;border-color:#d4d4d4 #d4d4d4 transparent}.tabbable-custom>.tab-content{background-color:#fff;border:1px solid #ddd;padding:10px;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabbable-custom.nav-justified>.tab-content{margin-top:-1px}.tabbable-custom.boxless>.tab-content{padding:15px 0;border-left:none;border-right:none;border-bottom:none}.tabbable-custom.tabs-below.nav-justified .tab-content{margin-top:0;margin-bottom:-2px;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.tabbable-custom.tabbable-full-width>.nav-tabs>li>a{color:#424242;font-size:15px;padding:9px 15px}.tabbable-custom.tabbable-full-width>.tab-content{padding:15px 0;border-left:none;border-right:none;border-bottom:none}.tabbable-custom.tabs-below .nav-tabs>li>a{border-top:none;border-bottom:2px solid transparent;margin-top:-1px}.tabbable-custom.tabs-below .nav-tabs>li.active{border-top:none;border-bottom:3px solid #d12610;margin-bottom:0;position:relative}.tabbable-custom.tabs-below .nav-tabs>li.active>a{border-bottom:none}.tabbable-custom.tabs-below .nav-tabs>li.active>a:hover{background:#fff;border-color:#d4d4d4 #d4d4d4 transparent}.tabbable-custom.tabbable-noborder .tab-content,.tabbable-custom.tabbable-noborder>.nav-tabs>li>a{border:0}.tabbable-line>.nav-tabs{border:none;margin:0}.tabbable-line>.nav-tabs>li{margin-right:2px}.tabbable-line>.nav-tabs>li>a{border:0;margin-right:0;color:#737373}.tabbable-line>.nav-tabs>li>a>i{color:#a6a6a6}.tabbable-line>.nav-tabs>li.open,.tabbable-line>.nav-tabs>li:hover{border-bottom:4px solid #fbcdcf}.tabbable-line>.nav-tabs>li.open>a,.tabbable-line>.nav-tabs>li:hover>a{border:0;background:0 0!important;color:#333}.tabbable-line>.nav-tabs>li.open>a>i,.tabbable-line>.nav-tabs>li:hover>a>i{color:#a6a6a6}.tabbable-line>.nav-tabs>li.open .dropdown-menu,.tabbable-line>.nav-tabs>li:hover .dropdown-menu{margin-top:0}.tabbable-line>.nav-tabs>li.active{border-bottom:4px solid #F3565D;position:relative}.tabbable-line>.nav-tabs>li.active>a{border:0;color:#333}.tabbable-line>.nav-tabs>li.active>a>i{color:#404040}.tabbable-line>.tab-content{margin-top:-3px;background-color:#fff;border:0;border-top:1px solid #eee;padding:15px 0}.portlet .tabbable-line>.tab-content{padding-bottom:0}.tabbable-line.tabs-below>.nav-tabs>li{border-top:4px solid transparent}.tabbable-line.tabs-below>.nav-tabs>li>a{margin-top:0}.tabbable-line.tabs-below>.nav-tabs>li:hover{border-bottom:0;border-top:4px solid #fbcdcf}.tabbable-line.tabs-below>.nav-tabs>li.active{margin-bottom:-2px;border-bottom:0;border-top:4px solid #F3565D}.tabbable-line.tabs-below>.tab-content{margin-top:-10px;border-top:0;border-bottom:1px solid #eee;padding-bottom:15px}.tiles{margin-right:-10px}.tiles .tile{display:block;float:left;height:135px;width:135px!important;cursor:pointer;text-decoration:none;color:#fff;position:relative;font-weight:300;font-size:12px;letter-spacing:.02em;line-height:20px;overflow:hidden;border:4px solid transparent;margin:0 10px 10px 0}.tiles .tile .tile-body>.content,.tiles .tile.image .tile-body h3,.tiles .tile.selected .check:after{display:inline-block}.tiles .tile:after,.tiles .tile:before{content:"";float:left}.tiles .tile.double{width:280px!important}.tiles .tile.double-down{height:280px!important}.tiles .tile.double-down i{margin-top:95px}.tiles .tile:hover{border-color:#aaa!important}.tiles .tile.selected,.tiles .tile:active{border-color:#ccc!important}.tiles .tile.selected .corner:after{content:"";display:inline-block;border-left:40px solid transparent;border-bottom:40px solid transparent;border-right:40px solid #ccc;position:absolute;top:-3px;right:-3px}.tiles .tile.selected .check:after{font-family:FontAwesome;font-size:13px;content:"\f00c";position:absolute;top:2px;right:2px}.tiles .tile.icon{padding:0}.tiles .tile.image .tile-body{padding:0!important}.tiles .tile.image .tile-body>img{width:100%;height:auto;min-height:100%;max-width:100%}.tiles .tile .tile-body{height:100%;vertical-align:top;padding:10px;overflow:hidden;position:relative;font-weight:400;font-size:12px;color:#fff;margin-bottom:10px}.tiles .tile .tile-body p{font-weight:400;font-size:13px;color:#fff;overflow:hidden}.tiles .tile .tile-body p:active{color:rgba(0,0,0,.4)}.tiles .tile .tile-body p:hover{color:#fff}.tiles .tile .tile-body img{float:left;margin-right:10px}.tiles .tile .tile-body img.pull-right{float:right!important;margin-left:10px;margin-right:0}.tiles .tile .tile-body>i{margin-top:17px;display:block;font-size:56px;line-height:56px}.tiles .tile .tile-body h1,.tiles .tile .tile-body h2,.tiles .tile .tile-body h3,.tiles .tile .tile-body h4,.tiles .tile .tile-body h5,.tiles .tile .tile-body h6,.tiles .tile .tile-body p{padding:0;margin:0;line-height:14px}.tiles .tile .tile-body h1:hover,.tiles .tile .tile-body h2:hover,.tiles .tile .tile-body h3:hover,.tiles .tile .tile-body h4:hover,.tiles .tile .tile-body h5:hover,.tiles .tile .tile-body h6:hover,.tiles .tile .tile-body p:hover{color:#fff}.tiles .tile .tile-body h3,.tiles .tile .tile-body h4{margin-bottom:5px}.tiles .tile .tile-object{position:absolute;bottom:0;left:0;right:0;min-height:30px;background-color:transparent}.tiles .tile .tile-object:after,.tiles .tile .tile-object:before{display:table;content:""}.tiles .tile .tile-object>.name{position:absolute;bottom:0;left:0;margin-bottom:5px;margin-left:10px;margin-right:15px;font-weight:400;font-size:13px;color:#fff}.tiles .tile .tile-object>.name>i{vertical-align:middle;display:block;font-size:24px;height:18px;width:24px}.tiles .tile .tile-object>.number{position:absolute;bottom:0;right:0;color:#fff;text-align:center;font-weight:600;font-size:14px;letter-spacing:.01em;line-height:14px;margin-bottom:8px;margin-right:10px}.well{background-color:#eee;border:0;box-shadow:none!important}.blue.btn,.btn.default{border-color:""}@-webkit-keyframes fadeInUpm{0%{opacity:0;-webkit-transform:translateY(15px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-moz-keyframes fadeInUpm{0%{opacity:0;-moz-transform:translateY(15px)}100%{opacity:1;-moz-transform:translateY(0)}}@-o-keyframes fadeInUpm{0%{opacity:0;-o-transform:translateY(15px)}100%{opacity:1;-o-transform:translateY(0)}}@keyframes fadeInUpm{0%{opacity:0;transform:translateY(15px)}100%{opacity:1;transform:translateY(0)}}.fade-in-up{-webkit-animation:fadeInUpm .5s;animation:fadeInUpm .5s}@-webkit-keyframes bounceDelay{0%,100%,80%{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes bounceDelay{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.btn.default{color:#333;background-color:#E5E5E5}.btn.default.active,.btn.default:active,.btn.default:focus,.btn.default:hover,.open .btn.default.dropdown-toggle{color:#333;background-color:#d3d3d3}.btn.default.active,.btn.default:active{background-color:#c6c6c6}.btn.default.active:hover,.btn.default:active:hover{background-color:#ccc}.btn.default.disabled,.btn.default.disabled.active,.btn.default.disabled:active,.btn.default.disabled:focus,.btn.default.disabled:hover,.btn.default[disabled],.btn.default[disabled].active,.btn.default[disabled]:active,.btn.default[disabled]:focus,.btn.default[disabled]:hover,fieldset[disabled] .btn.default,fieldset[disabled] .btn.default.active,fieldset[disabled] .btn.default:active,fieldset[disabled] .btn.default:focus,fieldset[disabled] .btn.default:hover{background-color:#E5E5E5}.btn.default .badge{color:#E5E5E5;background-color:#333}.blue.btn{color:#FFF;background-color:#4B8DF8}.blue.btn.active,.blue.btn:active,.blue.btn:focus,.blue.btn:hover,.open .blue.btn.dropdown-toggle{color:#FFF;background-color:#2977f7}.blue.btn.active,.blue.btn:active{background-color:#1068f6}.blue.btn.active:hover,.blue.btn:active:hover{background-color:#1a6ef6}.blue.btn.disabled,.blue.btn.disabled.active,.blue.btn.disabled:active,.blue.btn.disabled:focus,.blue.btn.disabled:hover,.blue.btn[disabled],.blue.btn[disabled].active,.blue.btn[disabled]:active,.blue.btn[disabled]:focus,.blue.btn[disabled]:hover,fieldset[disabled] .blue.btn,fieldset[disabled] .blue.btn.active,fieldset[disabled] .blue.btn:active,fieldset[disabled] .blue.btn:focus,fieldset[disabled] .blue.btn:hover{background-color:#4B8DF8}.blue.btn .badge{color:#4B8DF8;background-color:#FFF}.portlet.blue,.portlet.box.blue>.portlet-title,.portlet>.portlet-body.blue{background-color:#4B8DF8}.btn.blue-stripe{border-left:3px solid #4B8DF8}.portlet.solid.blue>.portlet-body,.portlet.solid.blue>.portlet-title{border:0;color:#FFF}.portlet.solid.blue>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue{border:1px solid #7cacfa;border-top:0}.portlet.box.blue>.portlet-title>.caption,.portlet.box.blue>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #b7d1fc;color:#d0e1fd}.portlet.box.blue>.portlet-title>.actions .btn-default>i{color:#deeafe}.portlet.box.blue>.portlet-title>.actions .btn-default.active,.portlet.box.blue>.portlet-title>.actions .btn-default:active,.portlet.box.blue>.portlet-title>.actions .btn-default:focus,.portlet.box.blue>.portlet-title>.actions .btn-default:hover{border:1px solid #e8f0fe;color:#fff}.dashboard-stat.blue{background-color:#4B8DF8}.dashboard-stat.blue.dashboard-stat-light:hover{background-color:#3781f7}.dashboard-stat.blue .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue .details .number{color:#FFF}.dashboard-stat.blue .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue .more{color:#FFF;background-color:#3781f7}.bg-blue{border-color:#4B8DF8!important;background-image:none!important;background-color:#4B8DF8!important;color:#FFF!important}.font-blue{color:#4B8DF8!important}.progress-bar.blue{background:#4B8DF8!important;color:#FFF!important}.blue-madison.btn{color:#FFF;background-color:#578ebe;border-color:""}.blue-madison.btn.active,.blue-madison.btn:active,.blue-madison.btn:focus,.blue-madison.btn:hover,.open .blue-madison.btn.dropdown-toggle{color:#FFF;background-color:#437cae}.blue-madison.btn.active,.blue-madison.btn:active{background-image:none;background-color:#3c6f9c}.blue-madison.btn.active:hover,.blue-madison.btn:active:hover{background-color:#3f74a3}.open .blue-madison.btn.dropdown-toggle{background-image:none}.blue-madison.btn.disabled,.blue-madison.btn.disabled.active,.blue-madison.btn.disabled:active,.blue-madison.btn.disabled:focus,.blue-madison.btn.disabled:hover,.blue-madison.btn[disabled],.blue-madison.btn[disabled].active,.blue-madison.btn[disabled]:active,.blue-madison.btn[disabled]:focus,.blue-madison.btn[disabled]:hover,fieldset[disabled] .blue-madison.btn,fieldset[disabled] .blue-madison.btn.active,fieldset[disabled] .blue-madison.btn:active,fieldset[disabled] .blue-madison.btn:focus,fieldset[disabled] .blue-madison.btn:hover{background-color:#578ebe}.blue-madison.btn .badge{color:#578ebe;background-color:#FFF}.portlet.blue-madison,.portlet.box.blue-madison>.portlet-title,.portlet>.portlet-body.blue-madison{background-color:#578ebe}.btn.blue-madison-stripe{border-left:3px solid #578ebe}.portlet.solid.blue-madison>.portlet-body,.portlet.solid.blue-madison>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-madison>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-madison>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-madison{border:1px solid #7ca7cc;border-top:0}.portlet.box.blue-madison>.portlet-title>.caption,.portlet.box.blue-madison>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-madison>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #a8c4dd;color:#bad1e4}.portlet.box.blue-madison>.portlet-title>.actions .btn-default>i{color:#c5d8e9}.portlet.box.blue-madison>.portlet-title>.actions .btn-default.active,.portlet.box.blue-madison>.portlet-title>.actions .btn-default:active,.portlet.box.blue-madison>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-madison>.portlet-title>.actions .btn-default:hover{border:1px solid #cdddec;color:#dfeaf3}.dashboard-stat.blue-madison{background-color:#578ebe}.dashboard-stat.blue-madison.dashboard-stat-light:hover{background-color:#4884b8}.dashboard-stat.blue-madison .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-madison .details .number{color:#FFF}.dashboard-stat.blue-madison .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-madison .more{color:#FFF;background-color:#4884b8}.bg-blue-madison{border-color:#578ebe!important;background-image:none!important;background-color:#578ebe!important;color:#FFF!important}.font-blue-madison{color:#578ebe!important}.progress-bar.blue-madison{background:#578ebe!important;color:#FFF!important}.blue-chambray.btn{color:#FFF;background-color:#2C3E50;border-color:""}.blue-chambray.btn.active,.blue-chambray.btn:active,.blue-chambray.btn:focus,.blue-chambray.btn:hover,.open .blue-chambray.btn.dropdown-toggle{color:#FFF;background-color:#1f2c39}.blue-chambray.btn.active,.blue-chambray.btn:active{background-image:none;background-color:#161f29}.blue-chambray.btn.active:hover,.blue-chambray.btn:active:hover{background-color:#1a242f}.open .blue-chambray.btn.dropdown-toggle{background-image:none}.blue-chambray.btn.disabled,.blue-chambray.btn.disabled.active,.blue-chambray.btn.disabled:active,.blue-chambray.btn.disabled:focus,.blue-chambray.btn.disabled:hover,.blue-chambray.btn[disabled],.blue-chambray.btn[disabled].active,.blue-chambray.btn[disabled]:active,.blue-chambray.btn[disabled]:focus,.blue-chambray.btn[disabled]:hover,fieldset[disabled] .blue-chambray.btn,fieldset[disabled] .blue-chambray.btn.active,fieldset[disabled] .blue-chambray.btn:active,fieldset[disabled] .blue-chambray.btn:focus,fieldset[disabled] .blue-chambray.btn:hover{background-color:#2C3E50}.blue-chambray.btn .badge{color:#2C3E50;background-color:#FFF}.portlet.blue-chambray,.portlet.box.blue-chambray>.portlet-title,.portlet>.portlet-body.blue-chambray{background-color:#2C3E50}.btn.blue-chambray-stripe{border-left:3px solid #2C3E50}.portlet.solid.blue-chambray>.portlet-body,.portlet.solid.blue-chambray>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-chambray>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-chambray>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-chambray{border:1px solid #3e5771;border-top:0}.portlet.box.blue-chambray>.portlet-title>.caption,.portlet.box.blue-chambray>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-chambray>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #547698;color:#5f83a7}.portlet.box.blue-chambray>.portlet-title>.actions .btn-default>i{color:#698aac}.portlet.box.blue-chambray>.portlet-title>.actions .btn-default.active,.portlet.box.blue-chambray>.portlet-title>.actions .btn-default:active,.portlet.box.blue-chambray>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-chambray>.portlet-title>.actions .btn-default:hover{border:1px solid #6f90b0;color:#809cb9}.dashboard-stat.blue-chambray{background-color:#2C3E50}.dashboard-stat.blue-chambray.dashboard-stat-light:hover{background-color:#253443}.dashboard-stat.blue-chambray .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-chambray .details .number{color:#FFF}.dashboard-stat.blue-chambray .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-chambray .more{color:#FFF;background-color:#253443}.bg-blue-chambray{border-color:#2C3E50!important;background-image:none!important;background-color:#2C3E50!important;color:#FFF!important}.font-blue-chambray{color:#2C3E50!important}.progress-bar.blue-chambray{background:#2C3E50!important;color:#FFF!important}.blue-ebonyclay.btn{color:#FFF;background-color:#22313F;border-color:""}.blue-ebonyclay.btn.active,.blue-ebonyclay.btn:active,.blue-ebonyclay.btn:focus,.blue-ebonyclay.btn:hover,.open .blue-ebonyclay.btn.dropdown-toggle{color:#FFF;background-color:#151f28}.blue-ebonyclay.btn.active,.blue-ebonyclay.btn:active{background-image:none;background-color:#0d1217}.blue-ebonyclay.btn.active:hover,.blue-ebonyclay.btn:active:hover{background-color:#10171e}.open .blue-ebonyclay.btn.dropdown-toggle{background-image:none}.blue-ebonyclay.btn.disabled,.blue-ebonyclay.btn.disabled.active,.blue-ebonyclay.btn.disabled:active,.blue-ebonyclay.btn.disabled:focus,.blue-ebonyclay.btn.disabled:hover,.blue-ebonyclay.btn[disabled],.blue-ebonyclay.btn[disabled].active,.blue-ebonyclay.btn[disabled]:active,.blue-ebonyclay.btn[disabled]:focus,.blue-ebonyclay.btn[disabled]:hover,fieldset[disabled] .blue-ebonyclay.btn,fieldset[disabled] .blue-ebonyclay.btn.active,fieldset[disabled] .blue-ebonyclay.btn:active,fieldset[disabled] .blue-ebonyclay.btn:focus,fieldset[disabled] .blue-ebonyclay.btn:hover{background-color:#22313F}.blue-ebonyclay.btn .badge{color:#22313F;background-color:#FFF}.portlet.blue-ebonyclay,.portlet.box.blue-ebonyclay>.portlet-title,.portlet>.portlet-body.blue-ebonyclay{background-color:#22313F}.btn.blue-ebonyclay-stripe{border-left:3px solid #22313F}.portlet.solid.blue-ebonyclay>.portlet-body,.portlet.solid.blue-ebonyclay>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-ebonyclay>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-ebonyclay{border:1px solid #344b60;border-top:0}.portlet.box.blue-ebonyclay>.portlet-title>.caption,.portlet.box.blue-ebonyclay>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #496a88;color:#527798}.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default>i{color:#587ea2}.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default.active,.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default:active,.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default:hover{border:1px solid #5d83a7;color:#6d90b0}.dashboard-stat.blue-ebonyclay{background-color:#22313F}.dashboard-stat.blue-ebonyclay.dashboard-stat-light:hover{background-color:#1b2732}.dashboard-stat.blue-ebonyclay .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-ebonyclay .details .number{color:#FFF}.dashboard-stat.blue-ebonyclay .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-ebonyclay .more{color:#FFF;background-color:#1b2732}.bg-blue-ebonyclay{border-color:#22313F!important;background-image:none!important;background-color:#22313F!important;color:#FFF!important}.font-blue-ebonyclay{color:#22313F!important}.progress-bar.blue-ebonyclay{background:#22313F!important;color:#FFF!important}.blue-hoki.btn{color:#FFF;background-color:#67809F;border-color:""}.blue-hoki.btn.active,.blue-hoki.btn:active,.blue-hoki.btn:focus,.blue-hoki.btn:hover,.open .blue-hoki.btn.dropdown-toggle{color:#FFF;background-color:#586e8b}.blue-hoki.btn.active,.blue-hoki.btn:active{background-image:none;background-color:#4e627b}.blue-hoki.btn.active:hover,.blue-hoki.btn:active:hover{background-color:#526781}.open .blue-hoki.btn.dropdown-toggle{background-image:none}.blue-hoki.btn.disabled,.blue-hoki.btn.disabled.active,.blue-hoki.btn.disabled:active,.blue-hoki.btn.disabled:focus,.blue-hoki.btn.disabled:hover,.blue-hoki.btn[disabled],.blue-hoki.btn[disabled].active,.blue-hoki.btn[disabled]:active,.blue-hoki.btn[disabled]:focus,.blue-hoki.btn[disabled]:hover,fieldset[disabled] .blue-hoki.btn,fieldset[disabled] .blue-hoki.btn.active,fieldset[disabled] .blue-hoki.btn:active,fieldset[disabled] .blue-hoki.btn:focus,fieldset[disabled] .blue-hoki.btn:hover{background-color:#67809F}.blue-hoki.btn .badge{color:#67809F;background-color:#FFF}.portlet.blue-hoki,.portlet.box.blue-hoki>.portlet-title,.portlet>.portlet-body.blue-hoki{background-color:#67809F}.btn.blue-hoki-stripe{border-left:3px solid #67809F}.portlet.solid.blue-hoki>.portlet-body,.portlet.solid.blue-hoki>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-hoki>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-hoki>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-hoki{border:1px solid #869ab3;border-top:0}.portlet.box.blue-hoki>.portlet-title>.caption,.portlet.box.blue-hoki>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-hoki>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #acb9ca;color:#bbc7d4}.portlet.box.blue-hoki>.portlet-title>.actions .btn-default>i{color:#c5ceda}.portlet.box.blue-hoki>.portlet-title>.actions .btn-default.active,.portlet.box.blue-hoki>.portlet-title>.actions .btn-default:active,.portlet.box.blue-hoki>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-hoki>.portlet-title>.actions .btn-default:hover{border:1px solid #cbd4de;color:#dbe1e8}.dashboard-stat.blue-hoki{background-color:#67809F}.dashboard-stat.blue-hoki.dashboard-stat-light:hover{background-color:#5e7694}.dashboard-stat.blue-hoki .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-hoki .details .number{color:#FFF}.dashboard-stat.blue-hoki .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-hoki .more{color:#FFF;background-color:#5e7694}.bg-blue-hoki{border-color:#67809F!important;background-image:none!important;background-color:#67809F!important;color:#FFF!important}.font-blue-hoki{color:#67809F!important}.progress-bar.blue-hoki{background:#67809F!important;color:#FFF!important}.blue-steel.btn{color:#FFF;background-color:#4B77BE;border-color:""}.blue-steel.btn.active,.blue-steel.btn:active,.blue-steel.btn:focus,.blue-steel.btn:hover,.open .blue-steel.btn.dropdown-toggle{color:#FFF;background-color:#3d66a8}.blue-steel.btn.active,.blue-steel.btn:active{background-image:none;background-color:#365b96}.blue-steel.btn.active:hover,.blue-steel.btn:active:hover{background-color:#395f9d}.open .blue-steel.btn.dropdown-toggle{background-image:none}.blue-steel.btn.disabled,.blue-steel.btn.disabled.active,.blue-steel.btn.disabled:active,.blue-steel.btn.disabled:focus,.blue-steel.btn.disabled:hover,.blue-steel.btn[disabled],.blue-steel.btn[disabled].active,.blue-steel.btn[disabled]:active,.blue-steel.btn[disabled]:focus,.blue-steel.btn[disabled]:hover,fieldset[disabled] .blue-steel.btn,fieldset[disabled] .blue-steel.btn.active,fieldset[disabled] .blue-steel.btn:active,fieldset[disabled] .blue-steel.btn:focus,fieldset[disabled] .blue-steel.btn:hover{background-color:#4B77BE}.blue-steel.btn .badge{color:#4B77BE;background-color:#FFF}.portlet.blue-steel,.portlet.box.blue-steel>.portlet-title,.portlet>.portlet-body.blue-steel{background-color:#4B77BE}.btn.blue-steel-stripe{border-left:3px solid #4B77BE}.portlet.solid.blue-steel>.portlet-body,.portlet.solid.blue-steel>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-steel>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-steel>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.collapse{background-image:url(../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-steel{border:1px solid #7093cc;border-top:0}.portlet.box.blue-steel>.portlet-title>.caption,.portlet.box.blue-steel>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-steel>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #9db5dc;color:#b0c3e3}.portlet.box.blue-steel>.portlet-title>.actions .btn-default>i{color:#bbcce7}.portlet.box.blue-steel>.portlet-title>.actions .btn-default.active,.portlet.box.blue-steel>.portlet-title>.actions .btn-default:active,.portlet.box.blue-steel>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-steel>.portlet-title>.actions .btn-default:hover{border:1px solid #c3d2e9;color:#d6e0f0}.dashboard-stat.blue-steel{background-color:#4B77BE}.dashboard-stat.blue-steel.dashboard-stat-light:hover{background-color:#416db4}.dashboard-stat.blue-steel .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-steel .details .number{color:#FFF}.dashboard-stat.blue-steel .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-steel .more{color:#FFF;background-color:#416db4}.bg-blue-steel{border-color:#4B77BE!important;background-image:none!important;background-color:#4B77BE!important;color:#FFF!important}.font-blue-steel{color:#4B77BE!important}.progress-bar.blue-steel{background:#4B77BE!important;color:#FFF!important}.blue-soft.btn{color:#FFF;background-color:#4c87b9;border-color:""}.blue-soft.btn.active,.blue-soft.btn:active,.blue-soft.btn:focus,.blue-soft.btn:hover,.open .blue-soft.btn.dropdown-toggle{color:#FFF;background-color:#3f75a2}.blue-soft.btn.active,.blue-soft.btn:active{background-image:none;background-color:#386890}.blue-soft.btn.active:hover,.blue-soft.btn:active:hover{background-color:#3b6d97}.open .blue-soft.btn.dropdown-toggle{background-image:none}.blue-soft.btn.disabled,.blue-soft.btn.disabled.active,.blue-soft.btn.disabled:active,.blue-soft.btn.disabled:focus,.blue-soft.btn.disabled:hover,.blue-soft.btn[disabled],.blue-soft.btn[disabled].active,.blue-soft.btn[disabled]:active,.blue-soft.btn[disabled]:focus,.blue-soft.btn[disabled]:hover,fieldset[disabled] .blue-soft.btn,fieldset[disabled] .blue-soft.btn.active,fieldset[disabled] .blue-soft.btn:active,fieldset[disabled] .blue-soft.btn:focus,fieldset[disabled] .blue-soft.btn:hover{background-color:#4c87b9}.blue-soft.btn .badge{color:#4c87b9;background-color:#FFF}.portlet.blue-soft,.portlet.box.blue-soft>.portlet-title,.portlet>.portlet-body.blue-soft{background-color:#4c87b9}.btn.blue-soft-stripe{border-left:3px solid #4c87b9}.portlet.solid.blue-soft>.portlet-body,.portlet.solid.blue-soft>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-soft>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-soft>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-soft{border:1px solid #71a0c7;border-top:0}.portlet.box.blue-soft>.portlet-title>.caption,.portlet.box.blue-soft>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-soft>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #9dbdd9;color:#afc9e0}.portlet.box.blue-soft>.portlet-title>.actions .btn-default>i{color:#bad1e4}.portlet.box.blue-soft>.portlet-title>.actions .btn-default.active,.portlet.box.blue-soft>.portlet-title>.actions .btn-default:active,.portlet.box.blue-soft>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-soft>.portlet-title>.actions .btn-default:hover{border:1px solid #c1d6e7;color:#d4e2ee}.dashboard-stat.blue-soft{background-color:#4c87b9}.dashboard-stat.blue-soft.dashboard-stat-light:hover{background-color:#447dad}.dashboard-stat.blue-soft .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-soft .details .number{color:#FFF}.dashboard-stat.blue-soft .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-soft .more{color:#FFF;background-color:#447dad}.bg-blue-soft{border-color:#4c87b9!important;background-image:none!important;background-color:#4c87b9!important;color:#FFF!important}.font-blue-soft{color:#4c87b9!important}.progress-bar.blue-soft{background:#4c87b9!important;color:#FFF!important}.blue-dark.btn{color:#FFF;background-color:#5e738b;border-color:""}.blue-dark.btn.active,.blue-dark.btn:active,.blue-dark.btn:focus,.blue-dark.btn:hover,.open .blue-dark.btn.dropdown-toggle{color:#FFF;background-color:#506176}.blue-dark.btn.active,.blue-dark.btn:active{background-image:none;background-color:#455566}.blue-dark.btn.active:hover,.blue-dark.btn:active:hover{background-color:#495a6d}.open .blue-dark.btn.dropdown-toggle{background-image:none}.blue-dark.btn.disabled,.blue-dark.btn.disabled.active,.blue-dark.btn.disabled:active,.blue-dark.btn.disabled:focus,.blue-dark.btn.disabled:hover,.blue-dark.btn[disabled],.blue-dark.btn[disabled].active,.blue-dark.btn[disabled]:active,.blue-dark.btn[disabled]:focus,.blue-dark.btn[disabled]:hover,fieldset[disabled] .blue-dark.btn,fieldset[disabled] .blue-dark.btn.active,fieldset[disabled] .blue-dark.btn:active,fieldset[disabled] .blue-dark.btn:focus,fieldset[disabled] .blue-dark.btn:hover{background-color:#5e738b}.blue-dark.btn .badge{color:#5e738b;background-color:#FFF}.portlet.blue-dark,.portlet.box.blue-dark>.portlet-title,.portlet>.portlet-body.blue-dark{background-color:#5e738b}.btn.blue-dark-stripe{border-left:3px solid #5e738b}.portlet.solid.blue-dark>.portlet-body,.portlet.solid.blue-dark>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-dark>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-dark>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-dark{border:1px solid #788da4;border-top:0}.portlet.box.blue-dark>.portlet-title>.caption,.portlet.box.blue-dark>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-dark>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #9dacbd;color:#acb8c7}.portlet.box.blue-dark>.portlet-title>.actions .btn-default>i{color:#b5c0cd}.portlet.box.blue-dark>.portlet-title>.actions .btn-default.active,.portlet.box.blue-dark>.portlet-title>.actions .btn-default:active,.portlet.box.blue-dark>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-dark>.portlet-title>.actions .btn-default:hover{border:1px solid #bbc5d1;color:#cad2db}.dashboard-stat.blue-dark{background-color:#5e738b}.dashboard-stat.blue-dark.dashboard-stat-light:hover{background-color:#56697f}.dashboard-stat.blue-dark .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-dark .details .number{color:#FFF}.dashboard-stat.blue-dark .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-dark .more{color:#FFF;background-color:#56697f}.bg-blue-dark{border-color:#5e738b!important;background-image:none!important;background-color:#5e738b!important;color:#FFF!important}.font-blue-dark{color:#5e738b!important}.progress-bar.blue-dark{background:#5e738b!important;color:#FFF!important}.blue-sharp.btn{color:#FFF;background-color:#5C9BD1;border-color:""}.blue-sharp.btn.active,.blue-sharp.btn:active,.blue-sharp.btn:focus,.blue-sharp.btn:hover,.open .blue-sharp.btn.dropdown-toggle{color:#FFF;background-color:#408ac9}.blue-sharp.btn.active,.blue-sharp.btn:active{background-image:none;background-color:#357dbb}.blue-sharp.btn.active:hover,.blue-sharp.btn:active:hover{background-color:#3782c3}.open .blue-sharp.btn.dropdown-toggle{background-image:none}.blue-sharp.btn.disabled,.blue-sharp.btn.disabled.active,.blue-sharp.btn.disabled:active,.blue-sharp.btn.disabled:focus,.blue-sharp.btn.disabled:hover,.blue-sharp.btn[disabled],.blue-sharp.btn[disabled].active,.blue-sharp.btn[disabled]:active,.blue-sharp.btn[disabled]:focus,.blue-sharp.btn[disabled]:hover,fieldset[disabled] .blue-sharp.btn,fieldset[disabled] .blue-sharp.btn.active,fieldset[disabled] .blue-sharp.btn:active,fieldset[disabled] .blue-sharp.btn:focus,fieldset[disabled] .blue-sharp.btn:hover{background-color:#5C9BD1}.blue-sharp.btn .badge{color:#5C9BD1;background-color:#FFF}.portlet.blue-sharp,.portlet.box.blue-sharp>.portlet-title,.portlet>.portlet-body.blue-sharp{background-color:#5C9BD1}.btn.blue-sharp-stripe{border-left:3px solid #5C9BD1}.portlet.solid.blue-sharp>.portlet-body,.portlet.solid.blue-sharp>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-sharp>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-sharp{border:1px solid #84b3dc;border-top:0}.portlet.box.blue-sharp>.portlet-title>.caption,.portlet.box.blue-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-sharp>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #b4d1ea;color:#c7ddef}.portlet.box.blue-sharp>.portlet-title>.actions .btn-default>i{color:#d3e4f3}.portlet.box.blue-sharp>.portlet-title>.actions .btn-default.active,.portlet.box.blue-sharp>.portlet-title>.actions .btn-default:active,.portlet.box.blue-sharp>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-sharp>.portlet-title>.actions .btn-default:hover{border:1px solid #dbe9f5;color:#eff5fb}.dashboard-stat.blue-sharp{background-color:#5C9BD1}.dashboard-stat.blue-sharp.dashboard-stat-light:hover{background-color:#4c91cd}.dashboard-stat.blue-sharp .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-sharp .details .number{color:#FFF}.dashboard-stat.blue-sharp .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-sharp .more{color:#FFF;background-color:#4c91cd}.bg-blue-sharp{border-color:#5C9BD1!important;background-image:none!important;background-color:#5C9BD1!important;color:#FFF!important}.font-blue-sharp{color:#5C9BD1!important}.progress-bar.blue-sharp{background:#5C9BD1!important;color:#FFF!important}.green.btn{color:#FFF;background-color:#35aa47;border-color:""}.green.btn.active,.green.btn:active,.green.btn:focus,.green.btn:hover,.open .green.btn.dropdown-toggle{color:#FFF;background-color:#2d8f3c}.green.btn.active,.green.btn:active{background-image:none;background-color:#267b34}.green.btn.active:hover,.green.btn:active:hover{background-color:#298337}.open .green.btn.dropdown-toggle{background-image:none}.green.btn.disabled,.green.btn.disabled.active,.green.btn.disabled:active,.green.btn.disabled:focus,.green.btn.disabled:hover,.green.btn[disabled],.green.btn[disabled].active,.green.btn[disabled]:active,.green.btn[disabled]:focus,.green.btn[disabled]:hover,fieldset[disabled] .green.btn,fieldset[disabled] .green.btn.active,fieldset[disabled] .green.btn:active,fieldset[disabled] .green.btn:focus,fieldset[disabled] .green.btn:hover{background-color:#35aa47}.green.btn .badge{color:#35aa47;background-color:#FFF}.portlet.box.green>.portlet-title,.portlet.green,.portlet>.portlet-body.green{background-color:#35aa47}.btn.green-stripe{border-left:3px solid #35aa47}.portlet.solid.green>.portlet-body,.portlet.solid.green>.portlet-title{border:0;color:#FFF}.portlet.solid.green>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green{border:1px solid #4bc75e;border-top:0}.portlet.box.green>.portlet-title>.caption,.portlet.box.green>.portlet-title>.caption>i{color:#FFF}.portlet.box.green>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #7ad588;color:#8ddc99}.portlet.box.green>.portlet-title>.actions .btn-default>i{color:#99dfa4}.portlet.box.green>.portlet-title>.actions .btn-default.active,.portlet.box.green>.portlet-title>.actions .btn-default:active,.portlet.box.green>.portlet-title>.actions .btn-default:focus,.portlet.box.green>.portlet-title>.actions .btn-default:hover{border:1px solid #a1e2ab;color:#b4e8bc}.dashboard-stat.green{background-color:#35aa47}.dashboard-stat.green.dashboard-stat-light:hover{background-color:#309a41}.dashboard-stat.green .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green .details .number{color:#FFF}.dashboard-stat.green .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green .more{color:#FFF;background-color:#309a41}.bg-green{border-color:#35aa47!important;background-image:none!important;background-color:#35aa47!important;color:#FFF!important}.font-green{color:#35aa47!important}.progress-bar.green{background:#35aa47!important;color:#FFF!important}.green-meadow.btn{color:#FFF;background-color:#1BBC9B;border-color:""}.green-meadow.btn.active,.green-meadow.btn:active,.green-meadow.btn:focus,.green-meadow.btn:hover,.open .green-meadow.btn.dropdown-toggle{color:#FFF;background-color:#179d81}.green-meadow.btn.active,.green-meadow.btn:active{background-image:none;background-color:#13866f}.green-meadow.btn.active:hover,.green-meadow.btn:active:hover{background-color:#158f76}.open .green-meadow.btn.dropdown-toggle{background-image:none}.green-meadow.btn.disabled,.green-meadow.btn.disabled.active,.green-meadow.btn.disabled:active,.green-meadow.btn.disabled:focus,.green-meadow.btn.disabled:hover,.green-meadow.btn[disabled],.green-meadow.btn[disabled].active,.green-meadow.btn[disabled]:active,.green-meadow.btn[disabled]:focus,.green-meadow.btn[disabled]:hover,fieldset[disabled] .green-meadow.btn,fieldset[disabled] .green-meadow.btn.active,fieldset[disabled] .green-meadow.btn:active,fieldset[disabled] .green-meadow.btn:focus,fieldset[disabled] .green-meadow.btn:hover{background-color:#1BBC9B}.green-meadow.btn .badge{color:#1BBC9B;background-color:#FFF}.portlet.box.green-meadow>.portlet-title,.portlet.green-meadow,.portlet>.portlet-body.green-meadow{background-color:#1BBC9B}.btn.green-meadow-stripe{border-left:3px solid #1BBC9B}.portlet.solid.green-meadow>.portlet-body,.portlet.solid.green-meadow>.portlet-title{border:0;color:#FFF}.portlet.solid.green-meadow>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-meadow>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-meadow{border:1px solid #2ae0bb;border-top:0}.portlet.box.green-meadow>.portlet-title>.caption,.portlet.box.green-meadow>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-meadow>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #5fe8cc;color:#75ebd3}.portlet.box.green-meadow>.portlet-title>.actions .btn-default>i{color:#83edd7}.portlet.box.green-meadow>.portlet-title>.actions .btn-default.active,.portlet.box.green-meadow>.portlet-title>.actions .btn-default:active,.portlet.box.green-meadow>.portlet-title>.actions .btn-default:focus,.portlet.box.green-meadow>.portlet-title>.actions .btn-default:hover{border:1px solid #8ceeda;color:#a2f2e1}.dashboard-stat.green-meadow{background-color:#1BBC9B}.dashboard-stat.green-meadow.dashboard-stat-light:hover{background-color:#18aa8c}.dashboard-stat.green-meadow .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-meadow .details .number{color:#FFF}.dashboard-stat.green-meadow .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-meadow .more{color:#FFF;background-color:#18aa8c}.bg-green-meadow{border-color:#1BBC9B!important;background-image:none!important;background-color:#1BBC9B!important;color:#FFF!important}.font-green-meadow{color:#1BBC9B!important}.progress-bar.green-meadow{background:#1BBC9B!important;color:#FFF!important}.green-seagreen.btn{color:#FFF;background-color:#1BA39C;border-color:""}.green-seagreen.btn.active,.green-seagreen.btn:active,.green-seagreen.btn:focus,.green-seagreen.btn:hover,.open .green-seagreen.btn.dropdown-toggle{color:#FFF;background-color:#16847f}.green-seagreen.btn.active,.green-seagreen.btn:active{background-image:none;background-color:#126e6a}.green-seagreen.btn.active:hover,.green-seagreen.btn:active:hover{background-color:#147772}.open .green-seagreen.btn.dropdown-toggle{background-image:none}.green-seagreen.btn.disabled,.green-seagreen.btn.disabled.active,.green-seagreen.btn.disabled:active,.green-seagreen.btn.disabled:focus,.green-seagreen.btn.disabled:hover,.green-seagreen.btn[disabled],.green-seagreen.btn[disabled].active,.green-seagreen.btn[disabled]:active,.green-seagreen.btn[disabled]:focus,.green-seagreen.btn[disabled]:hover,fieldset[disabled] .green-seagreen.btn,fieldset[disabled] .green-seagreen.btn.active,fieldset[disabled] .green-seagreen.btn:active,fieldset[disabled] .green-seagreen.btn:focus,fieldset[disabled] .green-seagreen.btn:hover{background-color:#1BA39C}.green-seagreen.btn .badge{color:#1BA39C;background-color:#FFF}.portlet.box.green-seagreen>.portlet-title,.portlet.green-seagreen,.portlet>.portlet-body.green-seagreen{background-color:#1BA39C}.btn.green-seagreen-stripe{border-left:3px solid #1BA39C}.portlet.solid.green-seagreen>.portlet-body,.portlet.solid.green-seagreen>.portlet-title{border:0;color:#FFF}.portlet.solid.green-seagreen>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-seagreen>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-seagreen{border:1px solid #22cfc6;border-top:0}.portlet.box.green-seagreen>.portlet-title>.caption,.portlet.box.green-seagreen>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-seagreen>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #4de1da;color:#63e5de}.portlet.box.green-seagreen>.portlet-title>.actions .btn-default>i{color:#70e7e1}.portlet.box.green-seagreen>.portlet-title>.actions .btn-default.active,.portlet.box.green-seagreen>.portlet-title>.actions .btn-default:active,.portlet.box.green-seagreen>.portlet-title>.actions .btn-default:focus,.portlet.box.green-seagreen>.portlet-title>.actions .btn-default:hover{border:1px solid #78e9e3;color:#8eece8}.dashboard-stat.green-seagreen{background-color:#1BA39C}.dashboard-stat.green-seagreen.dashboard-stat-light:hover{background-color:#18918b}.dashboard-stat.green-seagreen .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-seagreen .details .number{color:#FFF}.dashboard-stat.green-seagreen .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-seagreen .more{color:#FFF;background-color:#18918b}.bg-green-seagreen{border-color:#1BA39C!important;background-image:none!important;background-color:#1BA39C!important;color:#FFF!important}.font-green-seagreen{color:#1BA39C!important}.progress-bar.green-seagreen{background:#1BA39C!important;color:#FFF!important}.green-turquoise.btn{color:#FFF;background-color:#36D7B7;border-color:""}.green-turquoise.btn.active,.green-turquoise.btn:active,.green-turquoise.btn:focus,.green-turquoise.btn:hover,.open .green-turquoise.btn.dropdown-toggle{color:#FFF;background-color:#27c3a4}.green-turquoise.btn.active,.green-turquoise.btn:active{background-image:none;background-color:#22ad92}.green-turquoise.btn.active:hover,.green-turquoise.btn:active:hover{background-color:#24b699}.open .green-turquoise.btn.dropdown-toggle{background-image:none}.green-turquoise.btn.disabled,.green-turquoise.btn.disabled.active,.green-turquoise.btn.disabled:active,.green-turquoise.btn.disabled:focus,.green-turquoise.btn.disabled:hover,.green-turquoise.btn[disabled],.green-turquoise.btn[disabled].active,.green-turquoise.btn[disabled]:active,.green-turquoise.btn[disabled]:focus,.green-turquoise.btn[disabled]:hover,fieldset[disabled] .green-turquoise.btn,fieldset[disabled] .green-turquoise.btn.active,fieldset[disabled] .green-turquoise.btn:active,fieldset[disabled] .green-turquoise.btn:focus,fieldset[disabled] .green-turquoise.btn:hover{background-color:#36D7B7}.green-turquoise.btn .badge{color:#36D7B7;background-color:#FFF}.portlet.box.green-turquoise>.portlet-title,.portlet.green-turquoise,.portlet>.portlet-body.green-turquoise{background-color:#36D7B7}.btn.green-turquoise-stripe{border-left:3px solid #36D7B7}.portlet.solid.green-turquoise>.portlet-body,.portlet.solid.green-turquoise>.portlet-title{border:0;color:#FFF}.portlet.solid.green-turquoise>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-turquoise>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-turquoise{border:1px solid #61dfc6;border-top:0}.portlet.box.green-turquoise>.portlet-title>.caption,.portlet.box.green-turquoise>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-turquoise>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #94ead9;color:#a9eee0}.portlet.box.green-turquoise>.portlet-title>.actions .btn-default>i{color:#b6f0e5}.portlet.box.green-turquoise>.portlet-title>.actions .btn-default.active,.portlet.box.green-turquoise>.portlet-title>.actions .btn-default:active,.portlet.box.green-turquoise>.portlet-title>.actions .btn-default:focus,.portlet.box.green-turquoise>.portlet-title>.actions .btn-default:hover{border:1px solid #bef2e8;color:#d3f6ef}.dashboard-stat.green-turquoise{background-color:#36D7B7}.dashboard-stat.green-turquoise.dashboard-stat-light:hover{background-color:#29cfae}.dashboard-stat.green-turquoise .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-turquoise .details .number{color:#FFF}.dashboard-stat.green-turquoise .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-turquoise .more{color:#FFF;background-color:#29cfae}.bg-green-turquoise{border-color:#36D7B7!important;background-image:none!important;background-color:#36D7B7!important;color:#FFF!important}.font-green-turquoise{color:#36D7B7!important}.progress-bar.green-turquoise{background:#36D7B7!important;color:#FFF!important}.green-haze.btn{color:#FFF;background-color:#44b6ae;border-color:""}.green-haze.btn.active,.green-haze.btn:active,.green-haze.btn:focus,.green-haze.btn:hover,.open .green-haze.btn.dropdown-toggle{color:#FFF;background-color:#3a9c95}.green-haze.btn.active,.green-haze.btn:active{background-image:none;background-color:#338983}.green-haze.btn.active:hover,.green-haze.btn:active:hover{background-color:#36918b}.open .green-haze.btn.dropdown-toggle{background-image:none}.green-haze.btn.disabled,.green-haze.btn.disabled.active,.green-haze.btn.disabled:active,.green-haze.btn.disabled:focus,.green-haze.btn.disabled:hover,.green-haze.btn[disabled],.green-haze.btn[disabled].active,.green-haze.btn[disabled]:active,.green-haze.btn[disabled]:focus,.green-haze.btn[disabled]:hover,fieldset[disabled] .green-haze.btn,fieldset[disabled] .green-haze.btn.active,fieldset[disabled] .green-haze.btn:active,fieldset[disabled] .green-haze.btn:focus,fieldset[disabled] .green-haze.btn:hover{background-color:#44b6ae}.green-haze.btn .badge{color:#44b6ae;background-color:#FFF}.portlet.box.green-haze>.portlet-title,.portlet.green-haze,.portlet>.portlet-body.green-haze{background-color:#44b6ae}.btn.green-haze-stripe{border-left:3px solid #44b6ae}.portlet.solid.green-haze>.portlet-body,.portlet.solid.green-haze>.portlet-title{border:0;color:#FFF}.portlet.solid.green-haze>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-haze>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-haze{border:1px solid #67c6bf;border-top:0}.portlet.box.green-haze>.portlet-title>.caption,.portlet.box.green-haze>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-haze>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #93d7d2;color:#a6deda}.portlet.box.green-haze>.portlet-title>.actions .btn-default>i{color:#b1e2de}.portlet.box.green-haze>.portlet-title>.actions .btn-default.active,.portlet.box.green-haze>.portlet-title>.actions .btn-default:active,.portlet.box.green-haze>.portlet-title>.actions .btn-default:focus,.portlet.box.green-haze>.portlet-title>.actions .btn-default:hover{border:1px solid #b9e5e2;color:#cbece9}.dashboard-stat.green-haze{background-color:#44b6ae}.dashboard-stat.green-haze.dashboard-stat-light:hover{background-color:#3ea7a0}.dashboard-stat.green-haze .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-haze .details .number{color:#FFF}.dashboard-stat.green-haze .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-haze .more{color:#FFF;background-color:#3ea7a0}.bg-green-haze{border-color:#44b6ae!important;background-image:none!important;background-color:#44b6ae!important;color:#FFF!important}.font-green-haze{color:#44b6ae!important}.progress-bar.green-haze{background:#44b6ae!important;color:#FFF!important}.green-jungle.btn{color:#FFF;background-color:#26C281;border-color:""}.green-jungle.btn.active,.green-jungle.btn:active,.green-jungle.btn:focus,.green-jungle.btn:hover,.open .green-jungle.btn.dropdown-toggle{color:#FFF;background-color:#20a46d}.green-jungle.btn.active,.green-jungle.btn:active{background-image:none;background-color:#1c8f5f}.green-jungle.btn.active:hover,.green-jungle.btn:active:hover{background-color:#1e9765}.open .green-jungle.btn.dropdown-toggle{background-image:none}.green-jungle.btn.disabled,.green-jungle.btn.disabled.active,.green-jungle.btn.disabled:active,.green-jungle.btn.disabled:focus,.green-jungle.btn.disabled:hover,.green-jungle.btn[disabled],.green-jungle.btn[disabled].active,.green-jungle.btn[disabled]:active,.green-jungle.btn[disabled]:focus,.green-jungle.btn[disabled]:hover,fieldset[disabled] .green-jungle.btn,fieldset[disabled] .green-jungle.btn.active,fieldset[disabled] .green-jungle.btn:active,fieldset[disabled] .green-jungle.btn:focus,fieldset[disabled] .green-jungle.btn:hover{background-color:#26C281}.green-jungle.btn .badge{color:#26C281;background-color:#FFF}.portlet.box.green-jungle>.portlet-title,.portlet.green-jungle,.portlet>.portlet-body.green-jungle{background-color:#26C281}.btn.green-jungle-stripe{border-left:3px solid #26C281}.portlet.solid.green-jungle>.portlet-body,.portlet.solid.green-jungle>.portlet-title{border:0;color:#FFF}.portlet.solid.green-jungle>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-jungle>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-jungle{border:1px solid #41da9a;border-top:0}.portlet.box.green-jungle>.portlet-title>.caption,.portlet.box.green-jungle>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-jungle>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #74e4b5;color:#8ae8c1}.portlet.box.green-jungle>.portlet-title>.actions .btn-default>i{color:#96ebc8}.portlet.box.green-jungle>.portlet-title>.actions .btn-default.active,.portlet.box.green-jungle>.portlet-title>.actions .btn-default:active,.portlet.box.green-jungle>.portlet-title>.actions .btn-default:focus,.portlet.box.green-jungle>.portlet-title>.actions .btn-default:hover{border:1px solid #9feccc;color:#b4f0d7}.dashboard-stat.green-jungle{background-color:#26C281}.dashboard-stat.green-jungle.dashboard-stat-light:hover{background-color:#23b176}.dashboard-stat.green-jungle .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-jungle .details .number{color:#FFF}.dashboard-stat.green-jungle .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-jungle .more{color:#FFF;background-color:#23b176}.bg-green-jungle{border-color:#26C281!important;background-image:none!important;background-color:#26C281!important;color:#FFF!important}.font-green-jungle{color:#26C281!important}.progress-bar.green-jungle{background:#26C281!important;color:#FFF!important}.green-sharp.btn{color:#FFF;background-color:#4DB3A2;border-color:""}.green-sharp.btn.active,.green-sharp.btn:active,.green-sharp.btn:focus,.green-sharp.btn:hover,.open .green-sharp.btn.dropdown-toggle{color:#FFF;background-color:#429a8c}.green-sharp.btn.active,.green-sharp.btn:active{background-image:none;background-color:#3a897b}.green-sharp.btn.active:hover,.green-sharp.btn:active:hover{background-color:#3d9082}.open .green-sharp.btn.dropdown-toggle{background-image:none}.green-sharp.btn.disabled,.green-sharp.btn.disabled.active,.green-sharp.btn.disabled:active,.green-sharp.btn.disabled:focus,.green-sharp.btn.disabled:hover,.green-sharp.btn[disabled],.green-sharp.btn[disabled].active,.green-sharp.btn[disabled]:active,.green-sharp.btn[disabled]:focus,.green-sharp.btn[disabled]:hover,fieldset[disabled] .green-sharp.btn,fieldset[disabled] .green-sharp.btn.active,fieldset[disabled] .green-sharp.btn:active,fieldset[disabled] .green-sharp.btn:focus,fieldset[disabled] .green-sharp.btn:hover{background-color:#4DB3A2}.green-sharp.btn .badge{color:#4DB3A2;background-color:#FFF}.portlet.box.green-sharp>.portlet-title,.portlet.green-sharp,.portlet>.portlet-body.green-sharp{background-color:#4DB3A2}.btn.green-sharp-stripe{border-left:3px solid #4DB3A2}.portlet.solid.green-sharp>.portlet-body,.portlet.solid.green-sharp>.portlet-title{border:0;color:#FFF}.portlet.solid.green-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-sharp>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-sharp{border:1px solid #71c2b5;border-top:0}.portlet.box.green-sharp>.portlet-title>.caption,.portlet.box.green-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-sharp>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #9cd5cb;color:#addcd4}.portlet.box.green-sharp>.portlet-title>.actions .btn-default>i{color:#b8e1da}.portlet.box.green-sharp>.portlet-title>.actions .btn-default.active,.portlet.box.green-sharp>.portlet-title>.actions .btn-default:active,.portlet.box.green-sharp>.portlet-title>.actions .btn-default:focus,.portlet.box.green-sharp>.portlet-title>.actions .btn-default:hover{border:1px solid #bfe4de;color:#d1ebe7}.dashboard-stat.green-sharp{background-color:#4DB3A2}.dashboard-stat.green-sharp.dashboard-stat-light:hover{background-color:#46a595}.dashboard-stat.green-sharp .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-sharp .details .number{color:#FFF}.dashboard-stat.green-sharp .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-sharp .more{color:#FFF;background-color:#46a595}.bg-green-sharp{border-color:#4DB3A2!important;background-image:none!important;background-color:#4DB3A2!important;color:#FFF!important}.font-green-sharp{color:#4DB3A2!important}.progress-bar.green-sharp{background:#4DB3A2!important;color:#FFF!important}.green-soft.btn{color:#FFF;background-color:#3faba4;border-color:""}.green-soft.btn.active,.green-soft.btn:active,.green-soft.btn:focus,.green-soft.btn:hover,.open .green-soft.btn.dropdown-toggle{color:#FFF;background-color:#35918b}.green-soft.btn.active,.green-soft.btn:active{background-image:none;background-color:#2f7e79}.green-soft.btn.active:hover,.green-soft.btn:active:hover{background-color:#318680}.open .green-soft.btn.dropdown-toggle{background-image:none}.green-soft.btn.disabled,.green-soft.btn.disabled.active,.green-soft.btn.disabled:active,.green-soft.btn.disabled:focus,.green-soft.btn.disabled:hover,.green-soft.btn[disabled],.green-soft.btn[disabled].active,.green-soft.btn[disabled]:active,.green-soft.btn[disabled]:focus,.green-soft.btn[disabled]:hover,fieldset[disabled] .green-soft.btn,fieldset[disabled] .green-soft.btn.active,fieldset[disabled] .green-soft.btn:active,fieldset[disabled] .green-soft.btn:focus,fieldset[disabled] .green-soft.btn:hover{background-color:#3faba4}.green-soft.btn .badge{color:#3faba4;background-color:#FFF}.portlet.box.green-soft>.portlet-title,.portlet.green-soft,.portlet>.portlet-body.green-soft{background-color:#3faba4}.btn.green-soft-stripe{border-left:3px solid #3faba4}.portlet.solid.green-soft>.portlet-body,.portlet.solid.green-soft>.portlet-title{border:0;color:#FFF}.portlet.solid.green-soft>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-soft>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-soft{border:1px solid #5bc2bc;border-top:0}.portlet.box.green-soft>.portlet-title>.caption,.portlet.box.green-soft>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-soft>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #87d3ce;color:#9adad6}.portlet.box.green-soft>.portlet-title>.actions .btn-default>i{color:#a5deda}.portlet.box.green-soft>.portlet-title>.actions .btn-default.active,.portlet.box.green-soft>.portlet-title>.actions .btn-default:active,.portlet.box.green-soft>.portlet-title>.actions .btn-default:focus,.portlet.box.green-soft>.portlet-title>.actions .btn-default:hover{border:1px solid #ade1dd;color:#bfe7e5}.dashboard-stat.green-soft{background-color:#3faba4}.dashboard-stat.green-soft.dashboard-stat-light:hover{background-color:#3a9c96}.dashboard-stat.green-soft .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-soft .details .number{color:#FFF}.dashboard-stat.green-soft .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-soft .more{color:#FFF;background-color:#3a9c96}.bg-green-soft{border-color:#3faba4!important;background-image:none!important;background-color:#3faba4!important;color:#FFF!important}.font-green-soft{color:#3faba4!important}.progress-bar.green-soft{background:#3faba4!important;color:#FFF!important}.grey.btn{color:#333;background-color:#E5E5E5;border-color:""}.grey.btn.active,.grey.btn:active,.grey.btn:focus,.grey.btn:hover,.open .grey.btn.dropdown-toggle{color:#333;background-color:#d3d3d3}.grey.btn.active,.grey.btn:active{background-image:none;background-color:#c6c6c6}.grey.btn.active:hover,.grey.btn:active:hover{background-color:#ccc}.open .grey.btn.dropdown-toggle{background-image:none}.grey.btn.disabled,.grey.btn.disabled.active,.grey.btn.disabled:active,.grey.btn.disabled:focus,.grey.btn.disabled:hover,.grey.btn[disabled],.grey.btn[disabled].active,.grey.btn[disabled]:active,.grey.btn[disabled]:focus,.grey.btn[disabled]:hover,fieldset[disabled] .grey.btn,fieldset[disabled] .grey.btn.active,fieldset[disabled] .grey.btn:active,fieldset[disabled] .grey.btn:focus,fieldset[disabled] .grey.btn:hover{background-color:#E5E5E5}.grey.btn .badge{color:#E5E5E5;background-color:#333}.portlet.box.grey>.portlet-title,.portlet.grey,.portlet>.portlet-body.grey{background-color:#E5E5E5}.btn.grey-stripe{border-left:3px solid #E5E5E5}.portlet.solid.grey>.portlet-body,.portlet.solid.grey>.portlet-title{border:0;color:#333}.portlet.solid.grey>.portlet-title>.caption>i{color:#333}.portlet.solid.grey>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey{border:1px solid #fff;border-top:0}.portlet.box.grey>.portlet-title>.caption,.portlet.box.grey>.portlet-title>.caption>i{color:#333}.portlet.box.grey>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fff;color:#fff}.portlet.box.grey>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey>.portlet-title>.actions .btn-default.active,.portlet.box.grey>.portlet-title>.actions .btn-default:active,.portlet.box.grey>.portlet-title>.actions .btn-default:focus,.portlet.box.grey>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey{background-color:#E5E5E5}.dashboard-stat.grey.dashboard-stat-light:hover{background-color:#dbdbdb}.dashboard-stat.grey .visual>i{color:#333;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey .details .number{color:#333}.dashboard-stat.grey .details .desc{color:#333;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey .more{color:#333;background-color:#dbdbdb}.bg-grey{border-color:#E5E5E5!important;background-image:none!important;background-color:#E5E5E5!important;color:#333!important}.font-grey{color:#E5E5E5!important}.progress-bar.grey{background:#E5E5E5!important;color:#333!important}.grey-steel.btn{color:#80898e;background-color:#e9edef;border-color:""}.grey-steel.btn.active,.grey-steel.btn:active,.grey-steel.btn:focus,.grey-steel.btn:hover,.open .grey-steel.btn.dropdown-toggle{color:#80898e;background-color:#d4dce0}.grey-steel.btn.active,.grey-steel.btn:active{background-image:none;background-color:#c6d0d5}.grey-steel.btn.active:hover,.grey-steel.btn:active:hover{background-color:#cbd5da}.open .grey-steel.btn.dropdown-toggle{background-image:none}.grey-steel.btn.disabled,.grey-steel.btn.disabled.active,.grey-steel.btn.disabled:active,.grey-steel.btn.disabled:focus,.grey-steel.btn.disabled:hover,.grey-steel.btn[disabled],.grey-steel.btn[disabled].active,.grey-steel.btn[disabled]:active,.grey-steel.btn[disabled]:focus,.grey-steel.btn[disabled]:hover,fieldset[disabled] .grey-steel.btn,fieldset[disabled] .grey-steel.btn.active,fieldset[disabled] .grey-steel.btn:active,fieldset[disabled] .grey-steel.btn:focus,fieldset[disabled] .grey-steel.btn:hover{background-color:#e9edef}.grey-steel.btn .badge{color:#e9edef;background-color:#80898e}.portlet.box.grey-steel>.portlet-title,.portlet.grey-steel,.portlet>.portlet-body.grey-steel{background-color:#e9edef}.btn.grey-steel-stripe{border-left:3px solid #e9edef}.portlet.solid.grey-steel>.portlet-body,.portlet.solid.grey-steel>.portlet-title{border:0;color:#80898e}.portlet.solid.grey-steel>.portlet-title>.caption>i{color:#80898e}.portlet.solid.grey-steel>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-steel{border:1px solid #fff;border-top:0}.portlet.box.grey-steel>.portlet-title>.caption,.portlet.box.grey-steel>.portlet-title>.caption>i{color:#80898e}.portlet.box.grey-steel>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fff;color:#fff}.portlet.box.grey-steel>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-steel>.portlet-title>.actions .btn-default.active,.portlet.box.grey-steel>.portlet-title>.actions .btn-default:active,.portlet.box.grey-steel>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-steel>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-steel{background-color:#e9edef}.dashboard-stat.grey-steel.dashboard-stat-light:hover{background-color:#dde3e6}.dashboard-stat.grey-steel .visual>i{color:#80898e;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-steel .details .number{color:#80898e}.dashboard-stat.grey-steel .details .desc{color:#80898e;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-steel .more{color:#80898e;background-color:#dde3e6}.bg-grey-steel{border-color:#e9edef!important;background-image:none!important;background-color:#e9edef!important;color:#80898e!important}.font-grey-steel{color:#e9edef!important}.progress-bar.grey-steel{background:#e9edef!important;color:#80898e!important}.grey-cararra.btn{color:#333;background-color:#fafafa;border-color:""}.grey-cararra.btn.active,.grey-cararra.btn:active,.grey-cararra.btn:focus,.grey-cararra.btn:hover,.open .grey-cararra.btn.dropdown-toggle{color:#333;background-color:#e8e8e8}.grey-cararra.btn.active,.grey-cararra.btn:active{background-image:none;background-color:#dbdbdb}.grey-cararra.btn.active:hover,.grey-cararra.btn:active:hover{background-color:#e1e1e1}.open .grey-cararra.btn.dropdown-toggle{background-image:none}.grey-cararra.btn.disabled,.grey-cararra.btn.disabled.active,.grey-cararra.btn.disabled:active,.grey-cararra.btn.disabled:focus,.grey-cararra.btn.disabled:hover,.grey-cararra.btn[disabled],.grey-cararra.btn[disabled].active,.grey-cararra.btn[disabled]:active,.grey-cararra.btn[disabled]:focus,.grey-cararra.btn[disabled]:hover,fieldset[disabled] .grey-cararra.btn,fieldset[disabled] .grey-cararra.btn.active,fieldset[disabled] .grey-cararra.btn:active,fieldset[disabled] .grey-cararra.btn:focus,fieldset[disabled] .grey-cararra.btn:hover{background-color:#fafafa}.grey-cararra.btn .badge{color:#fafafa;background-color:#333}.portlet.box.grey-cararra>.portlet-title,.portlet.grey-cararra,.portlet>.portlet-body.grey-cararra{background-color:#fafafa}.btn.grey-cararra-stripe{border-left:3px solid #fafafa}.portlet.solid.grey-cararra>.portlet-body,.portlet.solid.grey-cararra>.portlet-title{border:0;color:#333}.portlet.solid.grey-cararra>.portlet-title>.caption>i{color:#333}.portlet.solid.grey-cararra>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-cararra{border:1px solid #fff;border-top:0}.portlet.box.grey-cararra>.portlet-title>.caption,.portlet.box.grey-cararra>.portlet-title>.caption>i{color:#333}.portlet.box.grey-cararra>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fff;color:#fff}.portlet.box.grey-cararra>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-cararra>.portlet-title>.actions .btn-default.active,.portlet.box.grey-cararra>.portlet-title>.actions .btn-default:active,.portlet.box.grey-cararra>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-cararra>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-cararra{background-color:#fafafa}.dashboard-stat.grey-cararra.dashboard-stat-light:hover{background-color:#f0f0f0}.dashboard-stat.grey-cararra .visual>i{color:#333;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-cararra .details .number{color:#333}.dashboard-stat.grey-cararra .details .desc{color:#333;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-cararra .more{color:#333;background-color:#f0f0f0}.bg-grey-cararra{border-color:#fafafa!important;background-image:none!important;background-color:#fafafa!important;color:#333!important}.font-grey-cararra{color:#fafafa!important}.progress-bar.grey-cararra{background:#fafafa!important;color:#333!important}.grey-gallery.btn{color:#fff;background-color:#555;border-color:""}.grey-gallery.btn.active,.grey-gallery.btn:active,.grey-gallery.btn:focus,.grey-gallery.btn:hover,.open .grey-gallery.btn.dropdown-toggle{color:#fff;background-color:#434343}.grey-gallery.btn.active,.grey-gallery.btn:active{background-image:none;background-color:#363636}.grey-gallery.btn.active:hover,.grey-gallery.btn:active:hover{background-color:#3b3b3b}.open .grey-gallery.btn.dropdown-toggle{background-image:none}.grey-gallery.btn.disabled,.grey-gallery.btn.disabled.active,.grey-gallery.btn.disabled:active,.grey-gallery.btn.disabled:focus,.grey-gallery.btn.disabled:hover,.grey-gallery.btn[disabled],.grey-gallery.btn[disabled].active,.grey-gallery.btn[disabled]:active,.grey-gallery.btn[disabled]:focus,.grey-gallery.btn[disabled]:hover,fieldset[disabled] .grey-gallery.btn,fieldset[disabled] .grey-gallery.btn.active,fieldset[disabled] .grey-gallery.btn:active,fieldset[disabled] .grey-gallery.btn:focus,fieldset[disabled] .grey-gallery.btn:hover{background-color:#555}.grey-gallery.btn .badge{color:#555;background-color:#fff}.portlet.box.grey-gallery>.portlet-title,.portlet.grey-gallery,.portlet>.portlet-body.grey-gallery{background-color:#555}.btn.grey-gallery-stripe{border-left:3px solid #555}.portlet.solid.grey-gallery>.portlet-body,.portlet.solid.grey-gallery>.portlet-title{border:0;color:#fff}.portlet.solid.grey-gallery>.portlet-title>.caption>i{color:#fff}.portlet.solid.grey-gallery>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-gallery{border:1px solid #6e6e6e;border-top:0}.portlet.box.grey-gallery>.portlet-title>.caption,.portlet.box.grey-gallery>.portlet-title>.caption>i{color:#fff}.portlet.box.grey-gallery>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #8d8d8d;color:#9a9a9a}.portlet.box.grey-gallery>.portlet-title>.actions .btn-default>i{color:#a2a2a2}.portlet.box.grey-gallery>.portlet-title>.actions .btn-default.active,.portlet.box.grey-gallery>.portlet-title>.actions .btn-default:active,.portlet.box.grey-gallery>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-gallery>.portlet-title>.actions .btn-default:hover{border:1px solid #a7a7a7;color:#b3b3b3}.dashboard-stat.grey-gallery{background-color:#555}.dashboard-stat.grey-gallery.dashboard-stat-light:hover{background-color:#4b4b4b}.dashboard-stat.grey-gallery .visual>i{color:#fff;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-gallery .details .number{color:#fff}.dashboard-stat.grey-gallery .details .desc{color:#fff;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-gallery .more{color:#fff;background-color:#4b4b4b}.bg-grey-gallery{border-color:#555!important;background-image:none!important;background-color:#555!important;color:#fff!important}.font-grey-gallery{color:#555!important}.progress-bar.grey-gallery{background:#555!important;color:#fff!important}.grey-cascade.btn{color:#FFF;background-color:#95A5A6;border-color:""}.grey-cascade.btn.active,.grey-cascade.btn:active,.grey-cascade.btn:focus,.grey-cascade.btn:hover,.open .grey-cascade.btn.dropdown-toggle{color:#FFF;background-color:#829596}.grey-cascade.btn.active,.grey-cascade.btn:active{background-image:none;background-color:#74898a}.grey-cascade.btn.active:hover,.grey-cascade.btn:active:hover{background-color:#798d8f}.open .grey-cascade.btn.dropdown-toggle{background-image:none}.grey-cascade.btn.disabled,.grey-cascade.btn.disabled.active,.grey-cascade.btn.disabled:active,.grey-cascade.btn.disabled:focus,.grey-cascade.btn.disabled:hover,.grey-cascade.btn[disabled],.grey-cascade.btn[disabled].active,.grey-cascade.btn[disabled]:active,.grey-cascade.btn[disabled]:focus,.grey-cascade.btn[disabled]:hover,fieldset[disabled] .grey-cascade.btn,fieldset[disabled] .grey-cascade.btn.active,fieldset[disabled] .grey-cascade.btn:active,fieldset[disabled] .grey-cascade.btn:focus,fieldset[disabled] .grey-cascade.btn:hover{background-color:#95A5A6}.grey-cascade.btn .badge{color:#95A5A6;background-color:#FFF}.portlet.box.grey-cascade>.portlet-title,.portlet.grey-cascade,.portlet>.portlet-body.grey-cascade{background-color:#95A5A6}.btn.grey-cascade-stripe{border-left:3px solid #95A5A6}.portlet.solid.grey-cascade>.portlet-body,.portlet.solid.grey-cascade>.portlet-title{border:0;color:#FFF}.portlet.solid.grey-cascade>.portlet-title>.caption>i{color:#FFF}.portlet.solid.grey-cascade>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-cascade{border:1px solid #b1bdbd;border-top:0}.portlet.box.grey-cascade>.portlet-title>.caption,.portlet.box.grey-cascade>.portlet-title>.caption>i{color:#FFF}.portlet.box.grey-cascade>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #d2d9d9;color:#e0e5e5}.portlet.box.grey-cascade>.portlet-title>.actions .btn-default>i{color:#e8ecec}.portlet.box.grey-cascade>.portlet-title>.actions .btn-default.active,.portlet.box.grey-cascade>.portlet-title>.actions .btn-default:active,.portlet.box.grey-cascade>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-cascade>.portlet-title>.actions .btn-default:hover{border:1px solid #eef0f0;color:#fcfcfc}.dashboard-stat.grey-cascade{background-color:#95A5A6}.dashboard-stat.grey-cascade.dashboard-stat-light:hover{background-color:#8a9c9d}.dashboard-stat.grey-cascade .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-cascade .details .number{color:#FFF}.dashboard-stat.grey-cascade .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-cascade .more{color:#FFF;background-color:#8a9c9d}.bg-grey-cascade{border-color:#95A5A6!important;background-image:none!important;background-color:#95A5A6!important;color:#FFF!important}.font-grey-cascade{color:#95A5A6!important}.progress-bar.grey-cascade{background:#95A5A6!important;color:#FFF!important}.grey-silver.btn{color:#FAFCFB;background-color:#BFBFBF;border-color:""}.grey-silver.btn.active,.grey-silver.btn:active,.grey-silver.btn:focus,.grey-silver.btn:hover,.open .grey-silver.btn.dropdown-toggle{color:#FAFCFB;background-color:#adadad}.grey-silver.btn.active,.grey-silver.btn:active{background-image:none;background-color:#a0a0a0}.grey-silver.btn.active:hover,.grey-silver.btn:active:hover{background-color:#a6a6a6}.open .grey-silver.btn.dropdown-toggle{background-image:none}.grey-silver.btn.disabled,.grey-silver.btn.disabled.active,.grey-silver.btn.disabled:active,.grey-silver.btn.disabled:focus,.grey-silver.btn.disabled:hover,.grey-silver.btn[disabled],.grey-silver.btn[disabled].active,.grey-silver.btn[disabled]:active,.grey-silver.btn[disabled]:focus,.grey-silver.btn[disabled]:hover,fieldset[disabled] .grey-silver.btn,fieldset[disabled] .grey-silver.btn.active,fieldset[disabled] .grey-silver.btn:active,fieldset[disabled] .grey-silver.btn:focus,fieldset[disabled] .grey-silver.btn:hover{background-color:#BFBFBF}.grey-silver.btn .badge{color:#BFBFBF;background-color:#FAFCFB}.portlet.box.grey-silver>.portlet-title,.portlet.grey-silver,.portlet>.portlet-body.grey-silver{background-color:#BFBFBF}.btn.grey-silver-stripe{border-left:3px solid #BFBFBF}.portlet.solid.grey-silver>.portlet-body,.portlet.solid.grey-silver>.portlet-title{border:0;color:#FAFCFB}.portlet.solid.grey-silver>.portlet-title>.caption>i{color:#FAFCFB}.portlet.solid.grey-silver>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-silver{border:1px solid #d9d9d9;border-top:0}.portlet.box.grey-silver>.portlet-title>.caption,.portlet.box.grey-silver>.portlet-title>.caption>i{color:#FAFCFB}.portlet.box.grey-silver>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f7f7f7;color:#fff}.portlet.box.grey-silver>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-silver>.portlet-title>.actions .btn-default.active,.portlet.box.grey-silver>.portlet-title>.actions .btn-default:active,.portlet.box.grey-silver>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-silver>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-silver{background-color:#BFBFBF}.dashboard-stat.grey-silver.dashboard-stat-light:hover{background-color:#b5b5b5}.dashboard-stat.grey-silver .visual>i{color:#FAFCFB;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-silver .details .number{color:#FAFCFB}.dashboard-stat.grey-silver .details .desc{color:#FAFCFB;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-silver .more{color:#FAFCFB;background-color:#b5b5b5}.bg-grey-silver{border-color:#BFBFBF!important;background-image:none!important;background-color:#BFBFBF!important;color:#FAFCFB!important}.font-grey-silver{color:#BFBFBF!important}.progress-bar.grey-silver{background:#BFBFBF!important;color:#FAFCFB!important}.grey-salsa.btn{color:#FAFCFB;background-color:#ACB5C3;border-color:""}.grey-salsa.btn.active,.grey-salsa.btn:active,.grey-salsa.btn:focus,.grey-salsa.btn:hover,.open .grey-salsa.btn.dropdown-toggle{color:#FAFCFB;background-color:#97a3b4}.grey-salsa.btn.active,.grey-salsa.btn:active{background-image:none;background-color:#8895a9}.grey-salsa.btn.active:hover,.grey-salsa.btn:active:hover{background-color:#8e9bae}.open .grey-salsa.btn.dropdown-toggle{background-image:none}.grey-salsa.btn.disabled,.grey-salsa.btn.disabled.active,.grey-salsa.btn.disabled:active,.grey-salsa.btn.disabled:focus,.grey-salsa.btn.disabled:hover,.grey-salsa.btn[disabled],.grey-salsa.btn[disabled].active,.grey-salsa.btn[disabled]:active,.grey-salsa.btn[disabled]:focus,.grey-salsa.btn[disabled]:hover,fieldset[disabled] .grey-salsa.btn,fieldset[disabled] .grey-salsa.btn.active,fieldset[disabled] .grey-salsa.btn:active,fieldset[disabled] .grey-salsa.btn:focus,fieldset[disabled] .grey-salsa.btn:hover{background-color:#ACB5C3}.grey-salsa.btn .badge{color:#ACB5C3;background-color:#FAFCFB}.portlet.box.grey-salsa>.portlet-title,.portlet.grey-salsa,.portlet>.portlet-body.grey-salsa{background-color:#ACB5C3}.btn.grey-salsa-stripe{border-left:3px solid #ACB5C3}.portlet.solid.grey-salsa>.portlet-body,.portlet.solid.grey-salsa>.portlet-title{border:0;color:#FAFCFB}.portlet.solid.grey-salsa>.portlet-title>.caption>i{color:#FAFCFB}.portlet.solid.grey-salsa>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-salsa{border:1px solid #cacfd8;border-top:0}.portlet.box.grey-salsa>.portlet-title>.caption,.portlet.box.grey-salsa>.portlet-title>.caption>i{color:#FAFCFB}.portlet.box.grey-salsa>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #edeff2;color:#fcfcfd}.portlet.box.grey-salsa>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-salsa>.portlet-title>.actions .btn-default.active,.portlet.box.grey-salsa>.portlet-title>.actions .btn-default:active,.portlet.box.grey-salsa>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-salsa>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-salsa{background-color:#ACB5C3}.dashboard-stat.grey-salsa.dashboard-stat-light:hover{background-color:#a0aaba}.dashboard-stat.grey-salsa .visual>i{color:#FAFCFB;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-salsa .details .number{color:#FAFCFB}.dashboard-stat.grey-salsa .details .desc{color:#FAFCFB;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-salsa .more{color:#FAFCFB;background-color:#a0aaba}.bg-grey-salsa{border-color:#ACB5C3!important;background-image:none!important;background-color:#ACB5C3!important;color:#FAFCFB!important}.font-grey-salsa{color:#ACB5C3!important}.progress-bar.grey-salsa{background:#ACB5C3!important;color:#FAFCFB!important}.grey-salt.btn{color:#FAFCFB;background-color:#bfcad1;border-color:""}.grey-salt.btn.active,.grey-salt.btn:active,.grey-salt.btn:focus,.grey-salt.btn:hover,.open .grey-salt.btn.dropdown-toggle{color:#FAFCFB;background-color:#aab9c2}.grey-salt.btn.active,.grey-salt.btn:active{background-image:none;background-color:#9badb7}.grey-salt.btn.active:hover,.grey-salt.btn:active:hover{background-color:#a1b1bc}.open .grey-salt.btn.dropdown-toggle{background-image:none}.grey-salt.btn.disabled,.grey-salt.btn.disabled.active,.grey-salt.btn.disabled:active,.grey-salt.btn.disabled:focus,.grey-salt.btn.disabled:hover,.grey-salt.btn[disabled],.grey-salt.btn[disabled].active,.grey-salt.btn[disabled]:active,.grey-salt.btn[disabled]:focus,.grey-salt.btn[disabled]:hover,fieldset[disabled] .grey-salt.btn,fieldset[disabled] .grey-salt.btn.active,fieldset[disabled] .grey-salt.btn:active,fieldset[disabled] .grey-salt.btn:focus,fieldset[disabled] .grey-salt.btn:hover{background-color:#bfcad1}.grey-salt.btn .badge{color:#bfcad1;background-color:#FAFCFB}.portlet.box.grey-salt>.portlet-title,.portlet.grey-salt,.portlet>.portlet-body.grey-salt{background-color:#bfcad1}.btn.grey-salt-stripe{border-left:3px solid #bfcad1}.portlet.solid.grey-salt>.portlet-body,.portlet.solid.grey-salt>.portlet-title{border:0;color:#FAFCFB}.portlet.solid.grey-salt>.portlet-title>.caption>i{color:#FAFCFB}.portlet.solid.grey-salt>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-salt{border:1px solid #dde3e6;border-top:0}.portlet.box.grey-salt>.portlet-title>.caption,.portlet.box.grey-salt>.portlet-title>.caption>i{color:#FAFCFB}.portlet.box.grey-salt>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fff;color:#fff}.portlet.box.grey-salt>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-salt>.portlet-title>.actions .btn-default.active,.portlet.box.grey-salt>.portlet-title>.actions .btn-default:active,.portlet.box.grey-salt>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-salt>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-salt{background-color:#bfcad1}.dashboard-stat.grey-salt.dashboard-stat-light:hover{background-color:#b3c0c8}.dashboard-stat.grey-salt .visual>i{color:#FAFCFB;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-salt .details .number{color:#FAFCFB}.dashboard-stat.grey-salt .details .desc{color:#FAFCFB;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-salt .more{color:#FAFCFB;background-color:#b3c0c8}.bg-grey-salt{border-color:#bfcad1!important;background-image:none!important;background-color:#bfcad1!important;color:#FAFCFB!important}.font-grey-salt{color:#bfcad1!important}.progress-bar.grey-salt{background:#bfcad1!important;color:#FAFCFB!important}.grey-mint.btn{color:#FAFCFB;background-color:#9eacb4;border-color:""}.grey-mint.btn.active,.grey-mint.btn:active,.grey-mint.btn:focus,.grey-mint.btn:hover,.open .grey-mint.btn.dropdown-toggle{color:#FAFCFB;background-color:#8a9ba4}.grey-mint.btn.active,.grey-mint.btn:active{background-image:none;background-color:#7b8e99}.grey-mint.btn.active:hover,.grey-mint.btn:active:hover{background-color:#81939e}.open .grey-mint.btn.dropdown-toggle{background-image:none}.grey-mint.btn.disabled,.grey-mint.btn.disabled.active,.grey-mint.btn.disabled:active,.grey-mint.btn.disabled:focus,.grey-mint.btn.disabled:hover,.grey-mint.btn[disabled],.grey-mint.btn[disabled].active,.grey-mint.btn[disabled]:active,.grey-mint.btn[disabled]:focus,.grey-mint.btn[disabled]:hover,fieldset[disabled] .grey-mint.btn,fieldset[disabled] .grey-mint.btn.active,fieldset[disabled] .grey-mint.btn:active,fieldset[disabled] .grey-mint.btn:focus,fieldset[disabled] .grey-mint.btn:hover{background-color:#9eacb4}.grey-mint.btn .badge{color:#9eacb4;background-color:#FAFCFB}.portlet.box.grey-mint>.portlet-title,.portlet.grey-mint,.portlet>.portlet-body.grey-mint{background-color:#9eacb4}.btn.grey-mint-stripe{border-left:3px solid #9eacb4}.portlet.solid.grey-mint>.portlet-body,.portlet.solid.grey-mint>.portlet-title{border:0;color:#FAFCFB}.portlet.solid.grey-mint>.portlet-title>.caption>i{color:#FAFCFB}.portlet.solid.grey-mint>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-mint{border:1px solid #bbc5ca;border-top:0}.portlet.box.grey-mint>.portlet-title>.caption,.portlet.box.grey-mint>.portlet-title>.caption>i{color:#FAFCFB}.portlet.box.grey-mint>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #dde2e5;color:#eceef0}.portlet.box.grey-mint>.portlet-title>.actions .btn-default>i{color:#f4f6f7}.portlet.box.grey-mint>.portlet-title>.actions .btn-default.active,.portlet.box.grey-mint>.portlet-title>.actions .btn-default:active,.portlet.box.grey-mint>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-mint>.portlet-title>.actions .btn-default:hover{border:1px solid #fafbfb;color:#fff}.dashboard-stat.grey-mint{background-color:#9eacb4}.dashboard-stat.grey-mint.dashboard-stat-light:hover{background-color:#92a2ab}.dashboard-stat.grey-mint .visual>i{color:#FAFCFB;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-mint .details .number{color:#FAFCFB}.dashboard-stat.grey-mint .details .desc{color:#FAFCFB;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-mint .more{color:#FAFCFB;background-color:#92a2ab}.bg-grey-mint{border-color:#9eacb4!important;background-image:none!important;background-color:#9eacb4!important;color:#FAFCFB!important}.font-grey-mint{color:#9eacb4!important}.progress-bar.grey-mint{background:#9eacb4!important;color:#FAFCFB!important}.red.btn{color:#FFF;background-color:#d84a38;border-color:""}.open .red.btn.dropdown-toggle,.red.btn.active,.red.btn:active,.red.btn:focus,.red.btn:hover{color:#FFF;background-color:#c63927}.red.btn.active,.red.btn:active{background-image:none;background-color:#b03223}.red.btn.active:hover,.red.btn:active:hover{background-color:#b93524}.open .red.btn.dropdown-toggle{background-image:none}.red.btn.disabled,.red.btn.disabled.active,.red.btn.disabled:active,.red.btn.disabled:focus,.red.btn.disabled:hover,.red.btn[disabled],.red.btn[disabled].active,.red.btn[disabled]:active,.red.btn[disabled]:focus,.red.btn[disabled]:hover,fieldset[disabled] .red.btn,fieldset[disabled] .red.btn.active,fieldset[disabled] .red.btn:active,fieldset[disabled] .red.btn:focus,fieldset[disabled] .red.btn:hover{background-color:#d84a38}.red.btn .badge{color:#d84a38;background-color:#FFF}.portlet.box.red>.portlet-title,.portlet.red,.portlet>.portlet-body.red{background-color:#d84a38}.btn.red-stripe{border-left:3px solid #d84a38}.portlet.solid.red>.portlet-body,.portlet.solid.red>.portlet-title{border:0;color:#FFF}.portlet.solid.red>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red{border:1px solid #e07163;border-top:0}.portlet.box.red>.portlet-title>.caption,.portlet.box.red>.portlet-title>.caption>i{color:#FFF}.portlet.box.red>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #ea9f96;color:#efb3ab}.portlet.box.red>.portlet-title>.actions .btn-default>i{color:#f1beb8}.portlet.box.red>.portlet-title>.actions .btn-default.active,.portlet.box.red>.portlet-title>.actions .btn-default:active,.portlet.box.red>.portlet-title>.actions .btn-default:focus,.portlet.box.red>.portlet-title>.actions .btn-default:hover{border:1px solid #f3c6c0;color:#f7dad6}.dashboard-stat.red{background-color:#d84a38}.dashboard-stat.red.dashboard-stat-light:hover{background-color:#d23c29}.dashboard-stat.red .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red .details .number{color:#FFF}.dashboard-stat.red .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red .more{color:#FFF;background-color:#d23c29}.bg-red{border-color:#d84a38!important;background-image:none!important;background-color:#d84a38!important;color:#FFF!important}.font-red{color:#d84a38!important}.progress-bar.red{background:#d84a38!important;color:#FFF!important}.red-pink.btn{color:#FFF;background-color:#E08283;border-color:""}.open .red-pink.btn.dropdown-toggle,.red-pink.btn.active,.red-pink.btn:active,.red-pink.btn:focus,.red-pink.btn:hover{color:#FFF;background-color:#d96567}.red-pink.btn.active,.red-pink.btn:active{background-image:none;background-color:#d45152}.red-pink.btn.active:hover,.red-pink.btn:active:hover{background-color:#d6595a}.open .red-pink.btn.dropdown-toggle{background-image:none}.red-pink.btn.disabled,.red-pink.btn.disabled.active,.red-pink.btn.disabled:active,.red-pink.btn.disabled:focus,.red-pink.btn.disabled:hover,.red-pink.btn[disabled],.red-pink.btn[disabled].active,.red-pink.btn[disabled]:active,.red-pink.btn[disabled]:focus,.red-pink.btn[disabled]:hover,fieldset[disabled] .red-pink.btn,fieldset[disabled] .red-pink.btn.active,fieldset[disabled] .red-pink.btn:active,fieldset[disabled] .red-pink.btn:focus,fieldset[disabled] .red-pink.btn:hover{background-color:#E08283}.red-pink.btn .badge{color:#E08283;background-color:#FFF}.portlet.box.red-pink>.portlet-title,.portlet.red-pink,.portlet>.portlet-body.red-pink{background-color:#E08283}.btn.red-pink-stripe{border-left:3px solid #E08283}.portlet.solid.red-pink>.portlet-body,.portlet.solid.red-pink>.portlet-title{border:0;color:#FFF}.portlet.solid.red-pink>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-pink>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-pink{border:1px solid #eaabac;border-top:0}.portlet.box.red-pink>.portlet-title>.caption,.portlet.box.red-pink>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-pink>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f6dcdc;color:#fbf0f0}.portlet.box.red-pink>.portlet-title>.actions .btn-default>i{color:#fefdfd}.portlet.box.red-pink>.portlet-title>.actions .btn-default.active,.portlet.box.red-pink>.portlet-title>.actions .btn-default:active,.portlet.box.red-pink>.portlet-title>.actions .btn-default:focus,.portlet.box.red-pink>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.red-pink{background-color:#E08283}.dashboard-stat.red-pink.dashboard-stat-light:hover{background-color:#dc7273}.dashboard-stat.red-pink .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-pink .details .number{color:#FFF}.dashboard-stat.red-pink .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-pink .more{color:#FFF;background-color:#dc7273}.bg-red-pink{border-color:#E08283!important;background-image:none!important;background-color:#E08283!important;color:#FFF!important}.font-red-pink{color:#E08283!important}.progress-bar.red-pink{background:#E08283!important;color:#FFF!important}.red-sunglo.btn{color:#FFF;background-color:#E26A6A;border-color:""}.open .red-sunglo.btn.dropdown-toggle,.red-sunglo.btn.active,.red-sunglo.btn:active,.red-sunglo.btn:focus,.red-sunglo.btn:hover{color:#FFF;background-color:#dc4c4c}.red-sunglo.btn.active,.red-sunglo.btn:active{background-image:none;background-color:#d83737}.red-sunglo.btn.active:hover,.red-sunglo.btn:active:hover{background-color:#da3f3f}.open .red-sunglo.btn.dropdown-toggle{background-image:none}.red-sunglo.btn.disabled,.red-sunglo.btn.disabled.active,.red-sunglo.btn.disabled:active,.red-sunglo.btn.disabled:focus,.red-sunglo.btn.disabled:hover,.red-sunglo.btn[disabled],.red-sunglo.btn[disabled].active,.red-sunglo.btn[disabled]:active,.red-sunglo.btn[disabled]:focus,.red-sunglo.btn[disabled]:hover,fieldset[disabled] .red-sunglo.btn,fieldset[disabled] .red-sunglo.btn.active,fieldset[disabled] .red-sunglo.btn:active,fieldset[disabled] .red-sunglo.btn:focus,fieldset[disabled] .red-sunglo.btn:hover{background-color:#E26A6A}.red-sunglo.btn .badge{color:#E26A6A;background-color:#FFF}.portlet.box.red-sunglo>.portlet-title,.portlet.red-sunglo,.portlet>.portlet-body.red-sunglo{background-color:#E26A6A}.btn.red-sunglo-stripe{border-left:3px solid #E26A6A}.portlet.solid.red-sunglo>.portlet-body,.portlet.solid.red-sunglo>.portlet-title{border:0;color:#FFF}.portlet.solid.red-sunglo>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-sunglo>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-sunglo{border:1px solid #ea9595;border-top:0}.portlet.box.red-sunglo>.portlet-title>.caption,.portlet.box.red-sunglo>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-sunglo>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f4c8c8;color:#f8dddd}.portlet.box.red-sunglo>.portlet-title>.actions .btn-default>i{color:#fbeaea}.portlet.box.red-sunglo>.portlet-title>.actions .btn-default.active,.portlet.box.red-sunglo>.portlet-title>.actions .btn-default:active,.portlet.box.red-sunglo>.portlet-title>.actions .btn-default:focus,.portlet.box.red-sunglo>.portlet-title>.actions .btn-default:hover{border:1px solid #fdf3f3;color:#fff}.dashboard-stat.red-sunglo{background-color:#E26A6A}.dashboard-stat.red-sunglo.dashboard-stat-light:hover{background-color:#df5959}.dashboard-stat.red-sunglo .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-sunglo .details .number{color:#FFF}.dashboard-stat.red-sunglo .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-sunglo .more{color:#FFF;background-color:#df5959}.bg-red-sunglo{border-color:#E26A6A!important;background-image:none!important;background-color:#E26A6A!important;color:#FFF!important}.font-red-sunglo{color:#E26A6A!important}.progress-bar.red-sunglo{background:#E26A6A!important;color:#FFF!important}.red-intense.btn{color:#FFF;background-color:#e35b5a;border-color:""}.open .red-intense.btn.dropdown-toggle,.red-intense.btn.active,.red-intense.btn:active,.red-intense.btn:focus,.red-intense.btn:hover{color:#FFF;background-color:#de3d3b}.red-intense.btn.active,.red-intense.btn:active{background-image:none;background-color:#da2726}.red-intense.btn.active:hover,.red-intense.btn:active:hover{background-color:#dc302e}.open .red-intense.btn.dropdown-toggle{background-image:none}.red-intense.btn.disabled,.red-intense.btn.disabled.active,.red-intense.btn.disabled:active,.red-intense.btn.disabled:focus,.red-intense.btn.disabled:hover,.red-intense.btn[disabled],.red-intense.btn[disabled].active,.red-intense.btn[disabled]:active,.red-intense.btn[disabled]:focus,.red-intense.btn[disabled]:hover,fieldset[disabled] .red-intense.btn,fieldset[disabled] .red-intense.btn.active,fieldset[disabled] .red-intense.btn:active,fieldset[disabled] .red-intense.btn:focus,fieldset[disabled] .red-intense.btn:hover{background-color:#e35b5a}.red-intense.btn .badge{color:#e35b5a;background-color:#FFF}.portlet.box.red-intense>.portlet-title,.portlet.red-intense,.portlet>.portlet-body.red-intense{background-color:#e35b5a}.btn.red-intense-stripe{border-left:3px solid #e35b5a}.portlet.solid.red-intense>.portlet-body,.portlet.solid.red-intense>.portlet-title{border:0;color:#FFF}.portlet.solid.red-intense>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-intense>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-intense{border:1px solid #ea8686;border-top:0}.portlet.box.red-intense>.portlet-title>.caption,.portlet.box.red-intense>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-intense>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f3baba;color:#f7d0d0}.portlet.box.red-intense>.portlet-title>.actions .btn-default>i{color:#f9dddd}.portlet.box.red-intense>.portlet-title>.actions .btn-default.active,.portlet.box.red-intense>.portlet-title>.actions .btn-default:active,.portlet.box.red-intense>.portlet-title>.actions .btn-default:focus,.portlet.box.red-intense>.portlet-title>.actions .btn-default:hover{border:1px solid #fbe6e6;color:#fefbfb}.dashboard-stat.red-intense{background-color:#e35b5a}.dashboard-stat.red-intense.dashboard-stat-light:hover{background-color:#e04a49}.dashboard-stat.red-intense .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-intense .details .number{color:#FFF}.dashboard-stat.red-intense .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-intense .more{color:#FFF;background-color:#e04a49}.bg-red-intense{border-color:#e35b5a!important;background-image:none!important;background-color:#e35b5a!important;color:#FFF!important}.font-red-intense{color:#e35b5a!important}.progress-bar.red-intense{background:#e35b5a!important;color:#FFF!important}.red-thunderbird.btn{color:#FFF;background-color:#D91E18;border-color:""}.open .red-thunderbird.btn.dropdown-toggle,.red-thunderbird.btn.active,.red-thunderbird.btn:active,.red-thunderbird.btn:focus,.red-thunderbird.btn:hover{color:#FFF;background-color:#b91a14}.red-thunderbird.btn.active,.red-thunderbird.btn:active{background-image:none;background-color:#a21612}.red-thunderbird.btn.active:hover,.red-thunderbird.btn:active:hover{background-color:#ab1813}.open .red-thunderbird.btn.dropdown-toggle{background-image:none}.red-thunderbird.btn.disabled,.red-thunderbird.btn.disabled.active,.red-thunderbird.btn.disabled:active,.red-thunderbird.btn.disabled:focus,.red-thunderbird.btn.disabled:hover,.red-thunderbird.btn[disabled],.red-thunderbird.btn[disabled].active,.red-thunderbird.btn[disabled]:active,.red-thunderbird.btn[disabled]:focus,.red-thunderbird.btn[disabled]:hover,fieldset[disabled] .red-thunderbird.btn,fieldset[disabled] .red-thunderbird.btn.active,fieldset[disabled] .red-thunderbird.btn:active,fieldset[disabled] .red-thunderbird.btn:focus,fieldset[disabled] .red-thunderbird.btn:hover{background-color:#D91E18}.red-thunderbird.btn .badge{color:#D91E18;background-color:#FFF}.portlet.box.red-thunderbird>.portlet-title,.portlet.red-thunderbird,.portlet>.portlet-body.red-thunderbird{background-color:#D91E18}.btn.red-thunderbird-stripe{border-left:3px solid #D91E18}.portlet.solid.red-thunderbird>.portlet-body,.portlet.solid.red-thunderbird>.portlet-title{border:0;color:#FFF}.portlet.solid.red-thunderbird>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-thunderbird{border:1px solid #e9403b;border-top:0}.portlet.box.red-thunderbird>.portlet-title>.caption,.portlet.box.red-thunderbird>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #ef7672;color:#f28c89}.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default>i{color:#f39997}.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default.active,.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default:active,.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default:focus,.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default:hover{border:1px solid #f4a2a0;color:#f7b9b7}.dashboard-stat.red-thunderbird{background-color:#D91E18}.dashboard-stat.red-thunderbird.dashboard-stat-light:hover{background-color:#c71b16}.dashboard-stat.red-thunderbird .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-thunderbird .details .number{color:#FFF}.dashboard-stat.red-thunderbird .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-thunderbird .more{color:#FFF;background-color:#c71b16}.bg-red-thunderbird{border-color:#D91E18!important;background-image:none!important;background-color:#D91E18!important;color:#FFF!important}.font-red-thunderbird{color:#D91E18!important}.progress-bar.red-thunderbird{background:#D91E18!important;color:#FFF!important}.red-flamingo.btn{color:#FFF;background-color:#EF4836;border-color:""}.open .red-flamingo.btn.dropdown-toggle,.red-flamingo.btn.active,.red-flamingo.btn:active,.red-flamingo.btn:focus,.red-flamingo.btn:hover{color:#FFF;background-color:#ec2a15}.red-flamingo.btn.active,.red-flamingo.btn:active{background-image:none;background-color:#d72411}.red-flamingo.btn.active:hover,.red-flamingo.btn:active:hover{background-color:#e02612}.open .red-flamingo.btn.dropdown-toggle{background-image:none}.red-flamingo.btn.disabled,.red-flamingo.btn.disabled.active,.red-flamingo.btn.disabled:active,.red-flamingo.btn.disabled:focus,.red-flamingo.btn.disabled:hover,.red-flamingo.btn[disabled],.red-flamingo.btn[disabled].active,.red-flamingo.btn[disabled]:active,.red-flamingo.btn[disabled]:focus,.red-flamingo.btn[disabled]:hover,fieldset[disabled] .red-flamingo.btn,fieldset[disabled] .red-flamingo.btn.active,fieldset[disabled] .red-flamingo.btn:active,fieldset[disabled] .red-flamingo.btn:focus,fieldset[disabled] .red-flamingo.btn:hover{background-color:#EF4836}.red-flamingo.btn .badge{color:#EF4836;background-color:#FFF}.portlet.box.red-flamingo>.portlet-title,.portlet.red-flamingo,.portlet>.portlet-body.red-flamingo{background-color:#EF4836}.btn.red-flamingo-stripe{border-left:3px solid #EF4836}.portlet.solid.red-flamingo>.portlet-body,.portlet.solid.red-flamingo>.portlet-title{border:0;color:#FFF}.portlet.solid.red-flamingo>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-flamingo>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-flamingo{border:1px solid #f37365;border-top:0}.portlet.box.red-flamingo>.portlet-title>.caption,.portlet.box.red-flamingo>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-flamingo>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f7a79e;color:#f9bcb6}.portlet.box.red-flamingo>.portlet-title>.actions .btn-default>i{color:#fac9c4}.portlet.box.red-flamingo>.portlet-title>.actions .btn-default.active,.portlet.box.red-flamingo>.portlet-title>.actions .btn-default:active,.portlet.box.red-flamingo>.portlet-title>.actions .btn-default:focus,.portlet.box.red-flamingo>.portlet-title>.actions .btn-default:hover{border:1px solid #fbd2cd;color:#fde7e5}.dashboard-stat.red-flamingo{background-color:#EF4836}.dashboard-stat.red-flamingo.dashboard-stat-light:hover{background-color:#ed3723}.dashboard-stat.red-flamingo .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-flamingo .details .number{color:#FFF}.dashboard-stat.red-flamingo .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-flamingo .more{color:#FFF;background-color:#ed3723}.bg-red-flamingo{border-color:#EF4836!important;background-image:none!important;background-color:#EF4836!important;color:#FFF!important}.font-red-flamingo{color:#EF4836!important}.progress-bar.red-flamingo{background:#EF4836!important;color:#FFF!important}.red-soft.btn{color:#FFF;background-color:#d05454;border-color:""}.open .red-soft.btn.dropdown-toggle,.red-soft.btn.active,.red-soft.btn:active,.red-soft.btn:focus,.red-soft.btn:hover{color:#FFF;background-color:#c83838}.red-soft.btn.active,.red-soft.btn:active{background-image:none;background-color:#b53232}.red-soft.btn.active:hover,.red-soft.btn:active:hover{background-color:#bd3434}.open .red-soft.btn.dropdown-toggle{background-image:none}.red-soft.btn.disabled,.red-soft.btn.disabled.active,.red-soft.btn.disabled:active,.red-soft.btn.disabled:focus,.red-soft.btn.disabled:hover,.red-soft.btn[disabled],.red-soft.btn[disabled].active,.red-soft.btn[disabled]:active,.red-soft.btn[disabled]:focus,.red-soft.btn[disabled]:hover,fieldset[disabled] .red-soft.btn,fieldset[disabled] .red-soft.btn.active,fieldset[disabled] .red-soft.btn:active,fieldset[disabled] .red-soft.btn:focus,fieldset[disabled] .red-soft.btn:hover{background-color:#d05454}.red-soft.btn .badge{color:#d05454;background-color:#FFF}.portlet.box.red-soft>.portlet-title,.portlet.red-soft,.portlet>.portlet-body.red-soft{background-color:#d05454}.btn.red-soft-stripe{border-left:3px solid #d05454}.portlet.solid.red-soft>.portlet-body,.portlet.solid.red-soft>.portlet-title{border:0;color:#FFF}.portlet.solid.red-soft>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-soft>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-soft{border:1px solid #db7c7c;border-top:0}.portlet.box.red-soft>.portlet-title>.caption,.portlet.box.red-soft>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-soft>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #e8acac;color:#eec0c0}.portlet.box.red-soft>.portlet-title>.actions .btn-default>i{color:#f1cccc}.portlet.box.red-soft>.portlet-title>.actions .btn-default.active,.portlet.box.red-soft>.portlet-title>.actions .btn-default:active,.portlet.box.red-soft>.portlet-title>.actions .btn-default:focus,.portlet.box.red-soft>.portlet-title>.actions .btn-default:hover{border:1px solid #f3d4d4;color:#f9e8e8}.dashboard-stat.red-soft{background-color:#d05454}.dashboard-stat.red-soft.dashboard-stat-light:hover{background-color:#c44}.dashboard-stat.red-soft .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-soft .details .number{color:#FFF}.dashboard-stat.red-soft .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-soft .more{color:#FFF;background-color:#c44}.bg-red-soft{border-color:#d05454!important;background-image:none!important;background-color:#d05454!important;color:#FFF!important}.font-red-soft{color:#d05454!important}.progress-bar.red-soft{background:#d05454!important;color:#FFF!important}.red-haze.btn{color:#FFF;background-color:#f36a5a;border-color:""}.open .red-haze.btn.dropdown-toggle,.red-haze.btn.active,.red-haze.btn:active,.red-haze.btn:focus,.red-haze.btn:hover{color:#FFF;background-color:#f14c39}.red-haze.btn.active,.red-haze.btn:active{background-image:none;background-color:#ef3621}.red-haze.btn.active:hover,.red-haze.btn:active:hover{background-color:#f03f2a}.open .red-haze.btn.dropdown-toggle{background-image:none}.red-haze.btn.disabled,.red-haze.btn.disabled.active,.red-haze.btn.disabled:active,.red-haze.btn.disabled:focus,.red-haze.btn.disabled:hover,.red-haze.btn[disabled],.red-haze.btn[disabled].active,.red-haze.btn[disabled]:active,.red-haze.btn[disabled]:focus,.red-haze.btn[disabled]:hover,fieldset[disabled] .red-haze.btn,fieldset[disabled] .red-haze.btn.active,fieldset[disabled] .red-haze.btn:active,fieldset[disabled] .red-haze.btn:focus,fieldset[disabled] .red-haze.btn:hover{background-color:#f36a5a}.red-haze.btn .badge{color:#f36a5a;background-color:#FFF}.portlet.box.red-haze>.portlet-title,.portlet.red-haze,.portlet>.portlet-body.red-haze{background-color:#f36a5a}.btn.red-haze-stripe{border-left:3px solid #f36a5a}.portlet.solid.red-haze>.portlet-body,.portlet.solid.red-haze>.portlet-title{border:0;color:#FFF}.portlet.solid.red-haze>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-haze>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-haze{border:1px solid #f6958a;border-top:0}.portlet.box.red-haze>.portlet-title>.caption,.portlet.box.red-haze>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-haze>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fbc8c3;color:#fcdeda}.portlet.box.red-haze>.portlet-title>.actions .btn-default>i{color:#fdebe9}.portlet.box.red-haze>.portlet-title>.actions .btn-default.active,.portlet.box.red-haze>.portlet-title>.actions .btn-default:active,.portlet.box.red-haze>.portlet-title>.actions .btn-default:focus,.portlet.box.red-haze>.portlet-title>.actions .btn-default:hover{border:1px solid #fef3f2;color:#fff}.dashboard-stat.red-haze{background-color:#f36a5a}.dashboard-stat.red-haze.dashboard-stat-light:hover{background-color:#f25947}.dashboard-stat.red-haze .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-haze .details .number{color:#FFF}.dashboard-stat.red-haze .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-haze .more{color:#FFF;background-color:#f25947}.bg-red-haze{border-color:#f36a5a!important;background-image:none!important;background-color:#f36a5a!important;color:#FFF!important}.font-red-haze{color:#f36a5a!important}.progress-bar.red-haze{background:#f36a5a!important;color:#FFF!important}.yellow.btn{color:#FFF;background-color:#FFB848;border-color:""}.open .yellow.btn.dropdown-toggle,.yellow.btn.active,.yellow.btn:active,.yellow.btn:focus,.yellow.btn:hover{color:#FFF;background-color:#ffaa24}.yellow.btn.active,.yellow.btn:active{background-image:none;background-color:#ffa00b}.yellow.btn.active:hover,.yellow.btn:active:hover{background-color:#ffa415}.open .yellow.btn.dropdown-toggle{background-image:none}.yellow.btn.disabled,.yellow.btn.disabled.active,.yellow.btn.disabled:active,.yellow.btn.disabled:focus,.yellow.btn.disabled:hover,.yellow.btn[disabled],.yellow.btn[disabled].active,.yellow.btn[disabled]:active,.yellow.btn[disabled]:focus,.yellow.btn[disabled]:hover,fieldset[disabled] .yellow.btn,fieldset[disabled] .yellow.btn.active,fieldset[disabled] .yellow.btn:active,fieldset[disabled] .yellow.btn:focus,fieldset[disabled] .yellow.btn:hover{background-color:#FFB848}.yellow.btn .badge{color:#FFB848;background-color:#FFF}.portlet.box.yellow>.portlet-title,.portlet.yellow,.portlet>.portlet-body.yellow{background-color:#FFB848}.btn.yellow-stripe{border-left:3px solid #FFB848}.portlet.solid.yellow>.portlet-body,.portlet.solid.yellow>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow{border:1px solid #ffcc7b;border-top:0}.portlet.box.yellow>.portlet-title>.caption,.portlet.box.yellow>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #ffe4b8;color:#ffedd2}.portlet.box.yellow>.portlet-title>.actions .btn-default>i{color:#fff3e1}.portlet.box.yellow>.portlet-title>.actions .btn-default.active,.portlet.box.yellow>.portlet-title>.actions .btn-default:active,.portlet.box.yellow>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow>.portlet-title>.actions .btn-default:hover{border:1px solid #fff7eb;color:#fff}.dashboard-stat.yellow{background-color:#FFB848}.dashboard-stat.yellow.dashboard-stat-light:hover{background-color:#ffb034}.dashboard-stat.yellow .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow .details .number{color:#FFF}.dashboard-stat.yellow .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow .more{color:#FFF;background-color:#ffb034}.bg-yellow{border-color:#FFB848!important;background-image:none!important;background-color:#FFB848!important;color:#FFF!important}.font-yellow{color:#FFB848!important}.progress-bar.yellow{background:#FFB848!important;color:#FFF!important}.yellow-gold.btn{color:#FFF;background-color:#E87E04;border-color:""}.open .yellow-gold.btn.dropdown-toggle,.yellow-gold.btn.active,.yellow-gold.btn:active,.yellow-gold.btn:focus,.yellow-gold.btn:hover{color:#FFF;background-color:#c56b03}.yellow-gold.btn.active,.yellow-gold.btn:active{background-image:none;background-color:#ac5d03}.yellow-gold.btn.active:hover,.yellow-gold.btn:active:hover{background-color:#b66303}.open .yellow-gold.btn.dropdown-toggle{background-image:none}.yellow-gold.btn.disabled,.yellow-gold.btn.disabled.active,.yellow-gold.btn.disabled:active,.yellow-gold.btn.disabled:focus,.yellow-gold.btn.disabled:hover,.yellow-gold.btn[disabled],.yellow-gold.btn[disabled].active,.yellow-gold.btn[disabled]:active,.yellow-gold.btn[disabled]:focus,.yellow-gold.btn[disabled]:hover,fieldset[disabled] .yellow-gold.btn,fieldset[disabled] .yellow-gold.btn.active,fieldset[disabled] .yellow-gold.btn:active,fieldset[disabled] .yellow-gold.btn:focus,fieldset[disabled] .yellow-gold.btn:hover{background-color:#E87E04}.yellow-gold.btn .badge{color:#E87E04;background-color:#FFF}.portlet.box.yellow-gold>.portlet-title,.portlet.yellow-gold,.portlet>.portlet-body.yellow-gold{background-color:#E87E04}.btn.yellow-gold-stripe{border-left:3px solid #E87E04}.portlet.solid.yellow-gold>.portlet-body,.portlet.solid.yellow-gold>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-gold>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-gold>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-gold{border:1px solid #fb9724;border-top:0}.portlet.box.yellow-gold>.portlet-title>.caption,.portlet.box.yellow-gold>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-gold>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fcb460;color:#fdbf79}.portlet.box.yellow-gold>.portlet-title>.actions .btn-default>i{color:#fdc788}.portlet.box.yellow-gold>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-gold>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-gold>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-gold>.portlet-title>.actions .btn-default:hover{border:1px solid #fdcb92;color:#fed7ab}.dashboard-stat.yellow-gold{background-color:#E87E04}.dashboard-stat.yellow-gold.dashboard-stat-light:hover{background-color:#d47304}.dashboard-stat.yellow-gold .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-gold .details .number{color:#FFF}.dashboard-stat.yellow-gold .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-gold .more{color:#FFF;background-color:#d47304}.bg-yellow-gold{border-color:#E87E04!important;background-image:none!important;background-color:#E87E04!important;color:#FFF!important}.font-yellow-gold{color:#E87E04!important}.progress-bar.yellow-gold{background:#E87E04!important;color:#FFF!important}.yellow-casablanca.btn{color:#FFF;background-color:#f2784b;border-color:""}.open .yellow-casablanca.btn.dropdown-toggle,.yellow-casablanca.btn.active,.yellow-casablanca.btn:active,.yellow-casablanca.btn:focus,.yellow-casablanca.btn:hover{color:#FFF;background-color:#f05f2a}.yellow-casablanca.btn.active,.yellow-casablanca.btn:active{background-image:none;background-color:#ee4d12}.yellow-casablanca.btn.active:hover,.yellow-casablanca.btn:active:hover{background-color:#ef541b}.open .yellow-casablanca.btn.dropdown-toggle{background-image:none}.yellow-casablanca.btn.disabled,.yellow-casablanca.btn.disabled.active,.yellow-casablanca.btn.disabled:active,.yellow-casablanca.btn.disabled:focus,.yellow-casablanca.btn.disabled:hover,.yellow-casablanca.btn[disabled],.yellow-casablanca.btn[disabled].active,.yellow-casablanca.btn[disabled]:active,.yellow-casablanca.btn[disabled]:focus,.yellow-casablanca.btn[disabled]:hover,fieldset[disabled] .yellow-casablanca.btn,fieldset[disabled] .yellow-casablanca.btn.active,fieldset[disabled] .yellow-casablanca.btn:active,fieldset[disabled] .yellow-casablanca.btn:focus,fieldset[disabled] .yellow-casablanca.btn:hover{background-color:#f2784b}.yellow-casablanca.btn .badge{color:#f2784b;background-color:#FFF}.portlet.box.yellow-casablanca>.portlet-title,.portlet.yellow-casablanca,.portlet>.portlet-body.yellow-casablanca{background-color:#f2784b}.btn.yellow-casablanca-stripe{border-left:3px solid #f2784b}.portlet.solid.yellow-casablanca>.portlet-body,.portlet.solid.yellow-casablanca>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-casablanca>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-casablanca{border:1px solid #f59c7b;border-top:0}.portlet.box.yellow-casablanca>.portlet-title>.caption,.portlet.box.yellow-casablanca>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fac6b4;color:#fbd8cb}.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default>i{color:#fce3da}.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default:hover{border:1px solid #fdeae3;color:#fffcfb}.dashboard-stat.yellow-casablanca{background-color:#f2784b}.dashboard-stat.yellow-casablanca.dashboard-stat-light:hover{background-color:#f16a38}.dashboard-stat.yellow-casablanca .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-casablanca .details .number{color:#FFF}.dashboard-stat.yellow-casablanca .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-casablanca .more{color:#FFF;background-color:#f16a38}.bg-yellow-casablanca{border-color:#f2784b!important;background-image:none!important;background-color:#f2784b!important;color:#FFF!important}.font-yellow-casablanca{color:#f2784b!important}.progress-bar.yellow-casablanca{background:#f2784b!important;color:#FFF!important}.yellow-crusta.btn{color:#FFF;background-color:#f3c200;border-color:""}.open .yellow-crusta.btn.dropdown-toggle,.yellow-crusta.btn.active,.yellow-crusta.btn:active,.yellow-crusta.btn:focus,.yellow-crusta.btn:hover{color:#FFF;background-color:#cfa500}.yellow-crusta.btn.active,.yellow-crusta.btn:active{background-image:none;background-color:#b69100}.yellow-crusta.btn.active:hover,.yellow-crusta.btn:active:hover{background-color:#c09900}.open .yellow-crusta.btn.dropdown-toggle{background-image:none}.yellow-crusta.btn.disabled,.yellow-crusta.btn.disabled.active,.yellow-crusta.btn.disabled:active,.yellow-crusta.btn.disabled:focus,.yellow-crusta.btn.disabled:hover,.yellow-crusta.btn[disabled],.yellow-crusta.btn[disabled].active,.yellow-crusta.btn[disabled]:active,.yellow-crusta.btn[disabled]:focus,.yellow-crusta.btn[disabled]:hover,fieldset[disabled] .yellow-crusta.btn,fieldset[disabled] .yellow-crusta.btn.active,fieldset[disabled] .yellow-crusta.btn:active,fieldset[disabled] .yellow-crusta.btn:focus,fieldset[disabled] .yellow-crusta.btn:hover{background-color:#f3c200}.yellow-crusta.btn .badge{color:#f3c200;background-color:#FFF}.portlet.box.yellow-crusta>.portlet-title,.portlet.yellow-crusta,.portlet>.portlet-body.yellow-crusta{background-color:#f3c200}.btn.yellow-crusta-stripe{border-left:3px solid #f3c200}.portlet.solid.yellow-crusta>.portlet-body,.portlet.solid.yellow-crusta>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-crusta>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-crusta{border:1px solid #ffd327;border-top:0}.portlet.box.yellow-crusta>.portlet-title>.caption,.portlet.box.yellow-crusta>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #ffe064;color:#ffe57e}.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default>i{color:#ffe88d}.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default:hover{border:1px solid #ffea97;color:#ffefb1}.dashboard-stat.yellow-crusta{background-color:#f3c200}.dashboard-stat.yellow-crusta.dashboard-stat-light:hover{background-color:#dfb200}.dashboard-stat.yellow-crusta .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-crusta .details .number{color:#FFF}.dashboard-stat.yellow-crusta .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-crusta .more{color:#FFF;background-color:#dfb200}.bg-yellow-crusta{border-color:#f3c200!important;background-image:none!important;background-color:#f3c200!important;color:#FFF!important}.font-yellow-crusta{color:#f3c200!important}.progress-bar.yellow-crusta{background:#f3c200!important;color:#FFF!important}.yellow-lemon.btn{color:#FFF;background-color:#F7CA18;border-color:""}.open .yellow-lemon.btn.dropdown-toggle,.yellow-lemon.btn.active,.yellow-lemon.btn:active,.yellow-lemon.btn:focus,.yellow-lemon.btn:hover{color:#FFF;background-color:#e3b708}.yellow-lemon.btn.active,.yellow-lemon.btn:active{background-image:none;background-color:#cba307}.yellow-lemon.btn.active:hover,.yellow-lemon.btn:active:hover{background-color:#d5ab07}.open .yellow-lemon.btn.dropdown-toggle{background-image:none}.yellow-lemon.btn.disabled,.yellow-lemon.btn.disabled.active,.yellow-lemon.btn.disabled:active,.yellow-lemon.btn.disabled:focus,.yellow-lemon.btn.disabled:hover,.yellow-lemon.btn[disabled],.yellow-lemon.btn[disabled].active,.yellow-lemon.btn[disabled]:active,.yellow-lemon.btn[disabled]:focus,.yellow-lemon.btn[disabled]:hover,fieldset[disabled] .yellow-lemon.btn,fieldset[disabled] .yellow-lemon.btn.active,fieldset[disabled] .yellow-lemon.btn:active,fieldset[disabled] .yellow-lemon.btn:focus,fieldset[disabled] .yellow-lemon.btn:hover{background-color:#F7CA18}.yellow-lemon.btn .badge{color:#F7CA18;background-color:#FFF}.portlet.box.yellow-lemon>.portlet-title,.portlet.yellow-lemon,.portlet>.portlet-body.yellow-lemon{background-color:#F7CA18}.btn.yellow-lemon-stripe{border-left:3px solid #F7CA18}.portlet.solid.yellow-lemon>.portlet-body,.portlet.solid.yellow-lemon>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-lemon>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-lemon{border:1px solid #f9d549;border-top:0}.portlet.box.yellow-lemon>.portlet-title>.caption,.portlet.box.yellow-lemon>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fbe384;color:#fce99d}.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default>i{color:#fcecac}.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default:hover{border:1px solid #fceeb6;color:#fdf4ce}.dashboard-stat.yellow-lemon{background-color:#F7CA18}.dashboard-stat.yellow-lemon.dashboard-stat-light:hover{background-color:#f2c308}.dashboard-stat.yellow-lemon .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-lemon .details .number{color:#FFF}.dashboard-stat.yellow-lemon .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-lemon .more{color:#FFF;background-color:#f2c308}.bg-yellow-lemon{border-color:#F7CA18!important;background-image:none!important;background-color:#F7CA18!important;color:#FFF!important}.font-yellow-lemon{color:#F7CA18!important}.progress-bar.yellow-lemon{background:#F7CA18!important;color:#FFF!important}.yellow-saffron.btn{color:#FFF;background-color:#F4D03F;border-color:""}.open .yellow-saffron.btn.dropdown-toggle,.yellow-saffron.btn.active,.yellow-saffron.btn:active,.yellow-saffron.btn:focus,.yellow-saffron.btn:hover{color:#FFF;background-color:#f2c81d}.yellow-saffron.btn.active,.yellow-saffron.btn:active{background-image:none;background-color:#e8bd0d}.yellow-saffron.btn.active:hover,.yellow-saffron.btn:active:hover{background-color:#f1c40f}.open .yellow-saffron.btn.dropdown-toggle{background-image:none}.yellow-saffron.btn.disabled,.yellow-saffron.btn.disabled.active,.yellow-saffron.btn.disabled:active,.yellow-saffron.btn.disabled:focus,.yellow-saffron.btn.disabled:hover,.yellow-saffron.btn[disabled],.yellow-saffron.btn[disabled].active,.yellow-saffron.btn[disabled]:active,.yellow-saffron.btn[disabled]:focus,.yellow-saffron.btn[disabled]:hover,fieldset[disabled] .yellow-saffron.btn,fieldset[disabled] .yellow-saffron.btn.active,fieldset[disabled] .yellow-saffron.btn:active,fieldset[disabled] .yellow-saffron.btn:focus,fieldset[disabled] .yellow-saffron.btn:hover{background-color:#F4D03F}.yellow-saffron.btn .badge{color:#F4D03F;background-color:#FFF}.portlet.box.yellow-saffron>.portlet-title,.portlet.yellow-saffron,.portlet>.portlet-body.yellow-saffron{background-color:#F4D03F}.btn.yellow-saffron-stripe{border-left:3px solid #F4D03F}.portlet.solid.yellow-saffron>.portlet-body,.portlet.solid.yellow-saffron>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-saffron>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-saffron{border:1px solid #f7dc6f;border-top:0}.portlet.box.yellow-saffron>.portlet-title>.caption,.portlet.box.yellow-saffron>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #faeaa9;color:#fbf0c1}.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default>i{color:#fcf3d0}.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default:hover{border:1px solid #fdf6d9;color:#fefcf1}.dashboard-stat.yellow-saffron{background-color:#F4D03F}.dashboard-stat.yellow-saffron.dashboard-stat-light:hover{background-color:#f3cb2c}.dashboard-stat.yellow-saffron .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-saffron .details .number{color:#FFF}.dashboard-stat.yellow-saffron .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-saffron .more{color:#FFF;background-color:#f3cb2c}.bg-yellow-saffron{border-color:#F4D03F!important;background-image:none!important;background-color:#F4D03F!important;color:#FFF!important}.font-yellow-saffron{color:#F4D03F!important}.progress-bar.yellow-saffron{background:#F4D03F!important;color:#FFF!important}.purple.btn{color:#FFF;background-color:#8E44AD;border-color:""}.open .purple.btn.dropdown-toggle,.purple.btn.active,.purple.btn:active,.purple.btn:focus,.purple.btn:hover{color:#FFF;background-color:#793a93}.purple.btn.active,.purple.btn:active{background-image:none;background-color:#6a3381}.purple.btn.active:hover,.purple.btn:active:hover{background-color:#703688}.open .purple.btn.dropdown-toggle{background-image:none}.purple.btn.disabled,.purple.btn.disabled.active,.purple.btn.disabled:active,.purple.btn.disabled:focus,.purple.btn.disabled:hover,.purple.btn[disabled],.purple.btn[disabled].active,.purple.btn[disabled]:active,.purple.btn[disabled]:focus,.purple.btn[disabled]:hover,fieldset[disabled] .purple.btn,fieldset[disabled] .purple.btn.active,fieldset[disabled] .purple.btn:active,fieldset[disabled] .purple.btn:focus,fieldset[disabled] .purple.btn:hover{background-color:#8E44AD}.purple.btn .badge{color:#8E44AD;background-color:#FFF}.portlet.box.purple>.portlet-title,.portlet.purple,.portlet>.portlet-body.purple{background-color:#8E44AD}.btn.purple-stripe{border-left:3px solid #8E44AD}.portlet.solid.purple>.portlet-body,.portlet.solid.purple>.portlet-title{border:0;color:#FFF}.portlet.solid.purple>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple{border:1px solid #a563c1;border-top:0}.portlet.box.purple>.portlet-title>.caption,.portlet.box.purple>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #bf8ed3;color:#c9a1da}.portlet.box.purple>.portlet-title>.actions .btn-default>i{color:#cfacde}.portlet.box.purple>.portlet-title>.actions .btn-default.active,.portlet.box.purple>.portlet-title>.actions .btn-default:active,.portlet.box.purple>.portlet-title>.actions .btn-default:focus,.portlet.box.purple>.portlet-title>.actions .btn-default:hover{border:1px solid #d4b3e1;color:#dec5e8}.dashboard-stat.purple{background-color:#8E44AD}.dashboard-stat.purple.dashboard-stat-light:hover{background-color:#823e9e}.dashboard-stat.purple .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple .details .number{color:#FFF}.dashboard-stat.purple .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple .more{color:#FFF;background-color:#823e9e}.bg-purple{border-color:#8E44AD!important;background-image:none!important;background-color:#8E44AD!important;color:#FFF!important}.font-purple{color:#8E44AD!important}.progress-bar.purple{background:#8E44AD!important;color:#FFF!important}.purple-plum.btn{color:#FFF;background-color:#8775a7;border-color:""}.open .purple-plum.btn.dropdown-toggle,.purple-plum.btn.active,.purple-plum.btn:active,.purple-plum.btn:focus,.purple-plum.btn:hover{color:#FFF;background-color:#746198}.purple-plum.btn.active,.purple-plum.btn:active{background-image:none;background-color:#685788}.purple-plum.btn.active:hover,.purple-plum.btn:active:hover{background-color:#6d5b8e}.open .purple-plum.btn.dropdown-toggle{background-image:none}.purple-plum.btn.disabled,.purple-plum.btn.disabled.active,.purple-plum.btn.disabled:active,.purple-plum.btn.disabled:focus,.purple-plum.btn.disabled:hover,.purple-plum.btn[disabled],.purple-plum.btn[disabled].active,.purple-plum.btn[disabled]:active,.purple-plum.btn[disabled]:focus,.purple-plum.btn[disabled]:hover,fieldset[disabled] .purple-plum.btn,fieldset[disabled] .purple-plum.btn.active,fieldset[disabled] .purple-plum.btn:active,fieldset[disabled] .purple-plum.btn:focus,fieldset[disabled] .purple-plum.btn:hover{background-color:#8775a7}.purple-plum.btn .badge{color:#8775a7;background-color:#FFF}.portlet.box.purple-plum>.portlet-title,.portlet.purple-plum,.portlet>.portlet-body.purple-plum{background-color:#8775a7}.btn.purple-plum-stripe{border-left:3px solid #8775a7}.portlet.solid.purple-plum>.portlet-body,.portlet.solid.purple-plum>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-plum>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-plum>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-plum{border:1px solid #a294bb;border-top:0}.portlet.box.purple-plum>.portlet-title>.caption,.portlet.box.purple-plum>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-plum>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #c3bad3;color:#d0c9dd}.portlet.box.purple-plum>.portlet-title>.actions .btn-default>i{color:#d8d2e3}.portlet.box.purple-plum>.portlet-title>.actions .btn-default.active,.portlet.box.purple-plum>.portlet-title>.actions .btn-default:active,.portlet.box.purple-plum>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-plum>.portlet-title>.actions .btn-default:hover{border:1px solid #ded9e7;color:#ebe8f0}.dashboard-stat.purple-plum{background-color:#8775a7}.dashboard-stat.purple-plum.dashboard-stat-light:hover{background-color:#7c699f}.dashboard-stat.purple-plum .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-plum .details .number{color:#FFF}.dashboard-stat.purple-plum .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-plum .more{color:#FFF;background-color:#7c699f}.bg-purple-plum{border-color:#8775a7!important;background-image:none!important;background-color:#8775a7!important;color:#FFF!important}.font-purple-plum{color:#8775a7!important}.progress-bar.purple-plum{background:#8775a7!important;color:#FFF!important}.purple-medium.btn{color:#FFF;background-color:#BF55EC;border-color:""}.open .purple-medium.btn.dropdown-toggle,.purple-medium.btn.active,.purple-medium.btn:active,.purple-medium.btn:focus,.purple-medium.btn:hover{color:#FFF;background-color:#b335e8}.purple-medium.btn.active,.purple-medium.btn:active{background-image:none;background-color:#aa1ee6}.purple-medium.btn.active:hover,.purple-medium.btn:active:hover{background-color:#ae27e7}.open .purple-medium.btn.dropdown-toggle{background-image:none}.purple-medium.btn.disabled,.purple-medium.btn.disabled.active,.purple-medium.btn.disabled:active,.purple-medium.btn.disabled:focus,.purple-medium.btn.disabled:hover,.purple-medium.btn[disabled],.purple-medium.btn[disabled].active,.purple-medium.btn[disabled]:active,.purple-medium.btn[disabled]:focus,.purple-medium.btn[disabled]:hover,fieldset[disabled] .purple-medium.btn,fieldset[disabled] .purple-medium.btn.active,fieldset[disabled] .purple-medium.btn:active,fieldset[disabled] .purple-medium.btn:focus,fieldset[disabled] .purple-medium.btn:hover{background-color:#BF55EC}.purple-medium.btn .badge{color:#BF55EC;background-color:#FFF}.portlet.box.purple-medium>.portlet-title,.portlet.purple-medium,.portlet>.portlet-body.purple-medium{background-color:#BF55EC}.btn.purple-medium-stripe{border-left:3px solid #BF55EC}.portlet.solid.purple-medium>.portlet-body,.portlet.solid.purple-medium>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-medium>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-medium>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-medium{border:1px solid #d083f1;border-top:0}.portlet.box.purple-medium>.portlet-title>.caption,.portlet.box.purple-medium>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-medium>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #e5baf7;color:#eed1fa}.portlet.box.purple-medium>.portlet-title>.actions .btn-default>i{color:#f3dffb}.portlet.box.purple-medium>.portlet-title>.actions .btn-default.active,.portlet.box.purple-medium>.portlet-title>.actions .btn-default:active,.portlet.box.purple-medium>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-medium>.portlet-title>.actions .btn-default:hover{border:1px solid #f6e8fc;color:#fff}.dashboard-stat.purple-medium{background-color:#BF55EC}.dashboard-stat.purple-medium.dashboard-stat-light:hover{background-color:#b843ea}.dashboard-stat.purple-medium .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-medium .details .number{color:#FFF}.dashboard-stat.purple-medium .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-medium .more{color:#FFF;background-color:#b843ea}.bg-purple-medium{border-color:#BF55EC!important;background-image:none!important;background-color:#BF55EC!important;color:#FFF!important}.font-purple-medium{color:#BF55EC!important}.progress-bar.purple-medium{background:#BF55EC!important;color:#FFF!important}.purple-studio.btn{color:#FFF;background-color:#8E44AD;border-color:""}.open .purple-studio.btn.dropdown-toggle,.purple-studio.btn.active,.purple-studio.btn:active,.purple-studio.btn:focus,.purple-studio.btn:hover{color:#FFF;background-color:#793a93}.purple-studio.btn.active,.purple-studio.btn:active{background-image:none;background-color:#6a3381}.purple-studio.btn.active:hover,.purple-studio.btn:active:hover{background-color:#703688}.open .purple-studio.btn.dropdown-toggle{background-image:none}.purple-studio.btn.disabled,.purple-studio.btn.disabled.active,.purple-studio.btn.disabled:active,.purple-studio.btn.disabled:focus,.purple-studio.btn.disabled:hover,.purple-studio.btn[disabled],.purple-studio.btn[disabled].active,.purple-studio.btn[disabled]:active,.purple-studio.btn[disabled]:focus,.purple-studio.btn[disabled]:hover,fieldset[disabled] .purple-studio.btn,fieldset[disabled] .purple-studio.btn.active,fieldset[disabled] .purple-studio.btn:active,fieldset[disabled] .purple-studio.btn:focus,fieldset[disabled] .purple-studio.btn:hover{background-color:#8E44AD}.purple-studio.btn .badge{color:#8E44AD;background-color:#FFF}.portlet.box.purple-studio>.portlet-title,.portlet.purple-studio,.portlet>.portlet-body.purple-studio{background-color:#8E44AD}.btn.purple-studio-stripe{border-left:3px solid #8E44AD}.portlet.solid.purple-studio>.portlet-body,.portlet.solid.purple-studio>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-studio>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-studio>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-studio{border:1px solid #a563c1;border-top:0}.portlet.box.purple-studio>.portlet-title>.caption,.portlet.box.purple-studio>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-studio>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #bf8ed3;color:#c9a1da}.portlet.box.purple-studio>.portlet-title>.actions .btn-default>i{color:#cfacde}.portlet.box.purple-studio>.portlet-title>.actions .btn-default.active,.portlet.box.purple-studio>.portlet-title>.actions .btn-default:active,.portlet.box.purple-studio>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-studio>.portlet-title>.actions .btn-default:hover{border:1px solid #d4b3e1;color:#dec5e8}.dashboard-stat.purple-studio{background-color:#8E44AD}.dashboard-stat.purple-studio.dashboard-stat-light:hover{background-color:#823e9e}.dashboard-stat.purple-studio .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-studio .details .number{color:#FFF}.dashboard-stat.purple-studio .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-studio .more{color:#FFF;background-color:#823e9e}.bg-purple-studio{border-color:#8E44AD!important;background-image:none!important;background-color:#8E44AD!important;color:#FFF!important}.font-purple-studio{color:#8E44AD!important}.progress-bar.purple-studio{background:#8E44AD!important;color:#FFF!important}.purple-wisteria.btn{color:#FFF;background-color:#9B59B6;border-color:""}.open .purple-wisteria.btn.dropdown-toggle,.purple-wisteria.btn.active,.purple-wisteria.btn:active,.purple-wisteria.btn:focus,.purple-wisteria.btn:hover{color:#FFF;background-color:#8948a3}.purple-wisteria.btn.active,.purple-wisteria.btn:active{background-image:none;background-color:#7a4092}.purple-wisteria.btn.active:hover,.purple-wisteria.btn:active:hover{background-color:#804399}.open .purple-wisteria.btn.dropdown-toggle{background-image:none}.purple-wisteria.btn.disabled,.purple-wisteria.btn.disabled.active,.purple-wisteria.btn.disabled:active,.purple-wisteria.btn.disabled:focus,.purple-wisteria.btn.disabled:hover,.purple-wisteria.btn[disabled],.purple-wisteria.btn[disabled].active,.purple-wisteria.btn[disabled]:active,.purple-wisteria.btn[disabled]:focus,.purple-wisteria.btn[disabled]:hover,fieldset[disabled] .purple-wisteria.btn,fieldset[disabled] .purple-wisteria.btn.active,fieldset[disabled] .purple-wisteria.btn:active,fieldset[disabled] .purple-wisteria.btn:focus,fieldset[disabled] .purple-wisteria.btn:hover{background-color:#9B59B6}.purple-wisteria.btn .badge{color:#9B59B6;background-color:#FFF}.portlet.box.purple-wisteria>.portlet-title,.portlet.purple-wisteria,.portlet>.portlet-body.purple-wisteria{background-color:#9B59B6}.btn.purple-wisteria-stripe{border-left:3px solid #9B59B6}.portlet.solid.purple-wisteria>.portlet-body,.portlet.solid.purple-wisteria>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-wisteria>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-wisteria{border:1px solid #b07cc6;border-top:0}.portlet.box.purple-wisteria>.portlet-title>.caption,.portlet.box.purple-wisteria>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #caa7d8;color:#d5b9e0}.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default>i{color:#dbc3e5}.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default.active,.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default:active,.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default:hover{border:1px solid #dfcae8;color:#eadcf0}.dashboard-stat.purple-wisteria{background-color:#9B59B6}.dashboard-stat.purple-wisteria.dashboard-stat-light:hover{background-color:#924dae}.dashboard-stat.purple-wisteria .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-wisteria .details .number{color:#FFF}.dashboard-stat.purple-wisteria .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-wisteria .more{color:#FFF;background-color:#924dae}.bg-purple-wisteria{border-color:#9B59B6!important;background-image:none!important;background-color:#9B59B6!important;color:#FFF!important}.font-purple-wisteria{color:#9B59B6!important}.progress-bar.purple-wisteria{background:#9B59B6!important;color:#FFF!important}.purple-seance.btn{color:#FFF;background-color:#9A12B3;border-color:""}.open .purple-seance.btn.dropdown-toggle,.purple-seance.btn.active,.purple-seance.btn:active,.purple-seance.btn:focus,.purple-seance.btn:hover{color:#FFF;background-color:#7e0f93}.purple-seance.btn.active,.purple-seance.btn:active{background-image:none;background-color:#6a0c7b}.purple-seance.btn.active:hover,.purple-seance.btn:active:hover{background-color:#720d85}.open .purple-seance.btn.dropdown-toggle{background-image:none}.purple-seance.btn.disabled,.purple-seance.btn.disabled.active,.purple-seance.btn.disabled:active,.purple-seance.btn.disabled:focus,.purple-seance.btn.disabled:hover,.purple-seance.btn[disabled],.purple-seance.btn[disabled].active,.purple-seance.btn[disabled]:active,.purple-seance.btn[disabled]:focus,.purple-seance.btn[disabled]:hover,fieldset[disabled] .purple-seance.btn,fieldset[disabled] .purple-seance.btn.active,fieldset[disabled] .purple-seance.btn:active,fieldset[disabled] .purple-seance.btn:focus,fieldset[disabled] .purple-seance.btn:hover{background-color:#9A12B3}.purple-seance.btn .badge{color:#9A12B3;background-color:#FFF}.portlet.box.purple-seance>.portlet-title,.portlet.purple-seance,.portlet>.portlet-body.purple-seance{background-color:#9A12B3}.btn.purple-seance-stripe{border-left:3px solid #9A12B3}.portlet.solid.purple-seance>.portlet-body,.portlet.solid.purple-seance>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-seance>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-seance>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-seance{border:1px solid #c217e1;border-top:0}.portlet.box.purple-seance>.portlet-title>.caption,.portlet.box.purple-seance>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-seance>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #d349ed;color:#d960ef}.portlet.box.purple-seance>.portlet-title>.actions .btn-default>i{color:#dc6ef0}.portlet.box.purple-seance>.portlet-title>.actions .btn-default.active,.portlet.box.purple-seance>.portlet-title>.actions .btn-default:active,.portlet.box.purple-seance>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-seance>.portlet-title>.actions .btn-default:hover{border:1px solid #de77f1;color:#e48ef4}.dashboard-stat.purple-seance{background-color:#9A12B3}.dashboard-stat.purple-seance.dashboard-stat-light:hover{background-color:#8a10a0}.dashboard-stat.purple-seance .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-seance .details .number{color:#FFF}.dashboard-stat.purple-seance .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-seance .more{color:#FFF;background-color:#8a10a0}.bg-purple-seance{border-color:#9A12B3!important;background-image:none!important;background-color:#9A12B3!important;color:#FFF!important}.font-purple-seance{color:#9A12B3!important}.progress-bar.purple-seance{background:#9A12B3!important;color:#FFF!important}.purple-intense.btn{color:#FFF;background-color:#8775a7;border-color:""}.open .purple-intense.btn.dropdown-toggle,.purple-intense.btn.active,.purple-intense.btn:active,.purple-intense.btn:focus,.purple-intense.btn:hover{color:#FFF;background-color:#746198}.purple-intense.btn.active,.purple-intense.btn:active{background-image:none;background-color:#685788}.purple-intense.btn.active:hover,.purple-intense.btn:active:hover{background-color:#6d5b8e}.open .purple-intense.btn.dropdown-toggle{background-image:none}.purple-intense.btn.disabled,.purple-intense.btn.disabled.active,.purple-intense.btn.disabled:active,.purple-intense.btn.disabled:focus,.purple-intense.btn.disabled:hover,.purple-intense.btn[disabled],.purple-intense.btn[disabled].active,.purple-intense.btn[disabled]:active,.purple-intense.btn[disabled]:focus,.purple-intense.btn[disabled]:hover,fieldset[disabled] .purple-intense.btn,fieldset[disabled] .purple-intense.btn.active,fieldset[disabled] .purple-intense.btn:active,fieldset[disabled] .purple-intense.btn:focus,fieldset[disabled] .purple-intense.btn:hover{background-color:#8775a7}.purple-intense.btn .badge{color:#8775a7;background-color:#FFF}.portlet.box.purple-intense>.portlet-title,.portlet.purple-intense,.portlet>.portlet-body.purple-intense{background-color:#8775a7}.btn.purple-intense-stripe{border-left:3px solid #8775a7}.portlet.solid.purple-intense>.portlet-body,.portlet.solid.purple-intense>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-intense>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-intense>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-intense{border:1px solid #a294bb;border-top:0}.portlet.box.purple-intense>.portlet-title>.caption,.portlet.box.purple-intense>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-intense>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #c3bad3;color:#d0c9dd}.portlet.box.purple-intense>.portlet-title>.actions .btn-default>i{color:#d8d2e3}.portlet.box.purple-intense>.portlet-title>.actions .btn-default.active,.portlet.box.purple-intense>.portlet-title>.actions .btn-default:active,.portlet.box.purple-intense>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-intense>.portlet-title>.actions .btn-default:hover{border:1px solid #ded9e7;color:#ebe8f0}.dashboard-stat.purple-intense{background-color:#8775a7}.dashboard-stat.purple-intense.dashboard-stat-light:hover{background-color:#7c699f}.dashboard-stat.purple-intense .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-intense .details .number{color:#FFF}.dashboard-stat.purple-intense .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-intense .more{color:#FFF;background-color:#7c699f}.bg-purple-intense{border-color:#8775a7!important;background-image:none!important;background-color:#8775a7!important;color:#FFF!important}.font-purple-intense{color:#8775a7!important}.progress-bar.purple-intense{background:#8775a7!important;color:#FFF!important}.purple-sharp.btn{color:#FFF;background-color:#796799;border-color:""}.open .purple-sharp.btn.dropdown-toggle,.purple-sharp.btn.active,.purple-sharp.btn:active,.purple-sharp.btn:focus,.purple-sharp.btn:hover{color:#FFF;background-color:#685884}.purple-sharp.btn.active,.purple-sharp.btn:active{background-image:none;background-color:#5c4e75}.purple-sharp.btn.active:hover,.purple-sharp.btn:active:hover{background-color:#61527b}.open .purple-sharp.btn.dropdown-toggle{background-image:none}.purple-sharp.btn.disabled,.purple-sharp.btn.disabled.active,.purple-sharp.btn.disabled:active,.purple-sharp.btn.disabled:focus,.purple-sharp.btn.disabled:hover,.purple-sharp.btn[disabled],.purple-sharp.btn[disabled].active,.purple-sharp.btn[disabled]:active,.purple-sharp.btn[disabled]:focus,.purple-sharp.btn[disabled]:hover,fieldset[disabled] .purple-sharp.btn,fieldset[disabled] .purple-sharp.btn.active,fieldset[disabled] .purple-sharp.btn:active,fieldset[disabled] .purple-sharp.btn:focus,fieldset[disabled] .purple-sharp.btn:hover{background-color:#796799}.purple-sharp.btn .badge{color:#796799;background-color:#FFF}.portlet.box.purple-sharp>.portlet-title,.portlet.purple-sharp,.portlet>.portlet-body.purple-sharp{background-color:#796799}.btn.purple-sharp-stripe{border-left:3px solid #796799}.portlet.solid.purple-sharp>.portlet-body,.portlet.solid.purple-sharp>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-sharp>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-sharp{border:1px solid #9486ad;border-top:0}.portlet.box.purple-sharp>.portlet-title>.caption,.portlet.box.purple-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-sharp>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #b4aac6;color:#c2b9d0}.portlet.box.purple-sharp>.portlet-title>.actions .btn-default>i{color:#cac3d6}.portlet.box.purple-sharp>.portlet-title>.actions .btn-default.active,.portlet.box.purple-sharp>.portlet-title>.actions .btn-default:active,.portlet.box.purple-sharp>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-sharp>.portlet-title>.actions .btn-default:hover{border:1px solid #cfc9db;color:#ddd8e5}.dashboard-stat.purple-sharp{background-color:#796799}.dashboard-stat.purple-sharp.dashboard-stat-light:hover{background-color:#6f5f8d}.dashboard-stat.purple-sharp .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-sharp .details .number{color:#FFF}.dashboard-stat.purple-sharp .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-sharp .more{color:#FFF;background-color:#6f5f8d}.bg-purple-sharp{border-color:#796799!important;background-image:none!important;background-color:#796799!important;color:#FFF!important}.font-purple-sharp{color:#796799!important}.progress-bar.purple-sharp{background:#796799!important;color:#FFF!important}.purple-soft.btn{color:#FFF;background-color:#8877a9;border-color:""}.open .purple-soft.btn.dropdown-toggle,.purple-soft.btn.active,.purple-soft.btn:active,.purple-soft.btn:focus,.purple-soft.btn:hover{color:#FFF;background-color:#75629b}.purple-soft.btn.active,.purple-soft.btn:active{background-image:none;background-color:#69588b}.purple-soft.btn.active:hover,.purple-soft.btn:active:hover{background-color:#6e5c91}.open .purple-soft.btn.dropdown-toggle{background-image:none}.purple-soft.btn.disabled,.purple-soft.btn.disabled.active,.purple-soft.btn.disabled:active,.purple-soft.btn.disabled:focus,.purple-soft.btn.disabled:hover,.purple-soft.btn[disabled],.purple-soft.btn[disabled].active,.purple-soft.btn[disabled]:active,.purple-soft.btn[disabled]:focus,.purple-soft.btn[disabled]:hover,fieldset[disabled] .purple-soft.btn,fieldset[disabled] .purple-soft.btn.active,fieldset[disabled] .purple-soft.btn:active,fieldset[disabled] .purple-soft.btn:focus,fieldset[disabled] .purple-soft.btn:hover{background-color:#8877a9}.purple-soft.btn .badge{color:#8877a9;background-color:#FFF}.portlet.box.purple-soft>.portlet-title,.portlet.purple-soft,.portlet>.portlet-body.purple-soft{background-color:#8877a9}.btn.purple-soft-stripe{border-left:3px solid #8877a9}.portlet.solid.purple-soft>.portlet-body,.portlet.solid.purple-soft>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-soft>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-soft>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-soft{border:1px solid #a396bd;border-top:0}.portlet.box.purple-soft>.portlet-title>.caption,.portlet.box.purple-soft>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-soft>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #c4bcd4;color:#d2cbde}.portlet.box.purple-soft>.portlet-title>.actions .btn-default>i{color:#dad5e4}.portlet.box.purple-soft>.portlet-title>.actions .btn-default.active,.portlet.box.purple-soft>.portlet-title>.actions .btn-default:active,.portlet.box.purple-soft>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-soft>.portlet-title>.actions .btn-default:hover{border:1px solid #dfdbe8;color:#edebf2}.dashboard-stat.purple-soft{background-color:#8877a9}.dashboard-stat.purple-soft.dashboard-stat-light:hover{background-color:#7d6ba1}.dashboard-stat.purple-soft .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-soft .details .number{color:#FFF}.dashboard-stat.purple-soft .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-soft .more{color:#FFF;background-color:#7d6ba1}.bg-purple-soft{border-color:#8877a9!important;background-image:none!important;background-color:#8877a9!important;color:#FFF!important}.font-purple-soft{color:#8877a9!important}.progress-bar.purple-soft{background:#8877a9!important;color:#FFF!important}.btn-transparent.btn{background:0 0;color:#888}@-moz-keyframes whirly-loader{0%{-moz-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes whirly-loader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes whirly-loader{0%{-moz-transform:rotate(0);-ms-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.whirly-loader:not(:required){overflow:hidden;position:relative;text-indent:-9999px;display:inline-block;width:8px;height:8px;background:0 0;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%;-moz-box-shadow:#FA4C61 0 26px 0 6px,#FA4C61 .91px 26.05px 0 5.93px,#FA4C61 1.82px 26.07px 0 5.87px,#FA4C61 2.74px 26.06px 0 5.8px,#FA4C61 3.66px 26.01px 0 5.73px,#FA4C61 4.57px 25.93px 0 5.67px,#FA4C61 5.49px 25.82px 0 5.6px,#FA4C61 6.4px 25.68px 0 5.53px,#FA4C61 7.31px 25.51px 0 5.47px,#FA4C61 8.22px 25.3px 0 5.4px,#FA4C61 9.12px 25.06px 0 5.33px,#FA4C61 10.01px 24.79px 0 5.27px,#FA4C61 10.9px 24.48px 0 5.2px,#FA4C61 11.78px 24.15px 0 5.13px,#FA4C61 12.64px 23.78px 0 5.07px,#FA4C61 13.5px 23.38px 0 5px,#FA4C61 14.34px 22.95px 0 4.93px,#FA4C61 15.17px 22.49px 0 4.87px,#FA4C61 15.99px 22.01px 0 4.8px,#FA4C61 16.79px 21.49px 0 4.73px,#FA4C61 17.57px 20.94px 0 4.67px,#FA4C61 18.33px 20.36px 0 4.6px,#FA4C61 19.08px 19.76px 0 4.53px,#FA4C61 19.81px 19.13px 0 4.47px,#FA4C61 20.51px 18.47px 0 4.4px,#FA4C61 21.19px 17.78px 0 4.33px,#FA4C61 21.85px 17.07px 0 4.27px,#FA4C61 22.49px 16.34px 0 4.2px,#FA4C61 23.1px 15.58px 0 4.13px,#FA4C61 23.69px 14.8px 0 4.07px,#FA4C61 24.25px 14px 0 4px,#FA4C61 24.78px 13.18px 0 3.93px,#FA4C61 25.29px 12.33px 0 3.87px,#FA4C61 25.76px 11.47px 0 3.8px,#FA4C61 26.21px 10.59px 0 3.73px,#FA4C61 26.62px 9.69px 0 3.67px,#FA4C61 27.01px 8.78px 0 3.6px,#FA4C61 27.36px 7.85px 0 3.53px,#FA4C61 27.69px 6.9px 0 3.47px,#FA4C61 27.98px 5.95px 0 3.4px,#FA4C61 28.23px 4.98px 0 3.33px,#FA4C61 28.45px 4px 0 3.27px,#FA4C61 28.64px 3.01px 0 3.2px,#FA4C61 28.8px 2.01px 0 3.13px,#FA4C61 28.92px 1.01px 0 3.07px,#FA4C61 29px 0 0 3px,#FA4C61 29.05px -1.01px 0 2.93px,#FA4C61 29.06px -2.03px 0 2.87px,#FA4C61 29.04px -3.05px 0 2.8px,#FA4C61 28.98px -4.07px 0 2.73px,#FA4C61 28.89px -5.09px 0 2.67px,#FA4C61 28.76px -6.11px 0 2.6px,#FA4C61 28.59px -7.13px 0 2.53px,#FA4C61 28.39px -8.14px 0 2.47px,#FA4C61 28.15px -9.15px 0 2.4px,#FA4C61 27.88px -10.15px 0 2.33px,#FA4C61 27.57px -11.14px 0 2.27px,#FA4C61 27.22px -12.12px 0 2.2px,#FA4C61 26.84px -13.09px 0 2.13px,#FA4C61 26.43px -14.05px 0 2.07px,#FA4C61 25.98px -15px 0 2px,#FA4C61 25.5px -15.93px 0 1.93px,#FA4C61 24.98px -16.85px 0 1.87px,#FA4C61 24.43px -17.75px 0 1.8px,#FA4C61 23.85px -18.63px 0 1.73px,#FA4C61 23.24px -19.5px 0 1.67px,#FA4C61 22.59px -20.34px 0 1.6px,#FA4C61 21.92px -21.16px 0 1.53px,#FA4C61 21.21px -21.96px 0 1.47px,#FA4C61 20.48px -22.74px 0 1.4px,#FA4C61 19.71px -23.49px 0 1.33px,#FA4C61 18.92px -24.22px 0 1.27px,#FA4C61 18.1px -24.92px 0 1.2px,#FA4C61 17.26px -25.59px 0 1.13px,#FA4C61 16.39px -26.23px 0 1.07px,#FA4C61 15.5px -26.85px 0 1px,#FA4C61 14.58px -27.43px 0 .93px,#FA4C61 13.65px -27.98px 0 .87px,#FA4C61 12.69px -28.5px 0 .8px,#FA4C61 11.71px -28.99px 0 .73px,#FA4C61 10.72px -29.44px 0 .67px,#FA4C61 9.7px -29.86px 0 .6px,#FA4C61 8.67px -30.25px 0 .53px,#FA4C61 7.63px -30.6px 0 .47px,#FA4C61 6.57px -30.91px 0 .4px,#FA4C61 5.5px -31.19px 0 .33px,#FA4C61 4.42px -31.42px 0 .27px,#FA4C61 3.32px -31.63px 0 .2px,#FA4C61 2.22px -31.79px 0 .13px,#FA4C61 1.11px -31.91px 0 .07px,#FA4C61 0 -32px 0 0,#FA4C61 -1.12px -32.05px 0 -.07px,#FA4C61 -2.24px -32.06px 0 -.13px,#FA4C61 -3.37px -32.02px 0 -.2px,#FA4C61 -4.49px -31.95px 0 -.27px,#FA4C61 -5.61px -31.84px 0 -.33px,#FA4C61 -6.74px -31.69px 0 -.4px,#FA4C61 -7.85px -31.5px 0 -.47px,#FA4C61 -8.97px -31.27px 0 -.53px,#FA4C61 -10.07px -31px 0 -.6px,#FA4C61 -11.17px -30.7px 0 -.67px,#FA4C61 -12.26px -30.35px 0 -.73px,#FA4C61 -13.34px -29.96px 0 -.8px,#FA4C61 -14.41px -29.54px 0 -.87px,#FA4C61 -15.46px -29.08px 0 -.93px,#FA4C61 -16.5px -28.58px 0 -1px,#FA4C61 -17.52px -28.04px 0 -1.07px,#FA4C61 -18.53px -27.47px 0 -1.13px,#FA4C61 -19.51px -26.86px 0 -1.2px,#FA4C61 -20.48px -26.21px 0 -1.27px,#FA4C61 -21.43px -25.53px 0 -1.33px,#FA4C61 -22.35px -24.82px 0 -1.4px,#FA4C61 -23.25px -24.07px 0 -1.47px,#FA4C61 -24.12px -23.29px 0 -1.53px,#FA4C61 -24.97px -22.48px 0 -1.6px,#FA4C61 -25.79px -21.64px 0 -1.67px,#FA4C61 -26.58px -20.77px 0 -1.73px,#FA4C61 -27.34px -19.87px 0 -1.8px,#FA4C61 -28.08px -18.94px 0 -1.87px,#FA4C61 -28.78px -17.98px 0 -1.93px,#FA4C61 -29.44px -17px 0 -2px,#FA4C61 -30.08px -15.99px 0 -2.07px,#FA4C61 -30.68px -14.96px 0 -2.13px,#FA4C61 -31.24px -13.91px 0 -2.2px,#FA4C61 -31.77px -12.84px 0 -2.27px,#FA4C61 -32.26px -11.74px 0 -2.33px,#FA4C61 -32.72px -10.63px 0 -2.4px,#FA4C61 -33.13px -9.5px 0 -2.47px,#FA4C61 -33.51px -8.35px 0 -2.53px,#FA4C61 -33.84px -7.19px 0 -2.6px,#FA4C61 -34.14px -6.02px 0 -2.67px,#FA4C61 -34.4px -4.83px 0 -2.73px,#FA4C61 -34.61px -3.64px 0 -2.8px,#FA4C61 -34.78px -2.43px 0 -2.87px,#FA4C61 -34.91px -1.22px 0 -2.93px,#FA4C61 -35px 0 0 -3px,#FA4C61 -35.05px 1.22px 0 -3.07px,#FA4C61 -35.05px 2.45px 0 -3.13px,#FA4C61 -35.01px 3.68px 0 -3.2px,#FA4C61 -34.92px 4.91px 0 -3.27px,#FA4C61 -34.8px 6.14px 0 -3.33px,#FA4C61 -34.63px 7.36px 0 -3.4px,#FA4C61 -34.41px 8.58px 0 -3.47px,#FA4C61 -34.16px 9.79px 0 -3.53px,#FA4C61 -33.86px 11px 0 -3.6px,#FA4C61 -33.52px 12.2px 0 -3.67px,#FA4C61 -33.13px 13.39px 0 -3.73px,#FA4C61 -32.7px 14.56px 0 -3.8px,#FA4C61 -32.24px 15.72px 0 -3.87px,#FA4C61 -31.73px 16.87px 0 -3.93px,#FA4C61 -31.18px 18px 0 -4px,#FA4C61 -30.59px 19.11px 0 -4.07px,#FA4C61 -29.96px 20.21px 0 -4.13px,#FA4C61 -29.29px 21.28px 0 -4.2px,#FA4C61 -28.58px 22.33px 0 -4.27px,#FA4C61 -27.83px 23.35px 0 -4.33px,#FA4C61 -27.05px 24.36px 0 -4.4px,#FA4C61 -26.23px 25.33px 0 -4.47px,#FA4C61 -25.38px 26.28px 0 -4.53px,#FA4C61 -24.49px 27.2px 0 -4.6px,#FA4C61 -23.57px 28.09px 0 -4.67px,#FA4C61 -22.62px 28.95px 0 -4.73px,#FA4C61 -21.63px 29.77px 0 -4.8px,#FA4C61 -20.62px 30.56px 0 -4.87px,#FA4C61 -19.57px 31.32px 0 -4.93px,#FA4C61 -18.5px 32.04px 0 -5px,#FA4C61 -17.4px 32.73px 0 -5.07px,#FA4C61 -16.28px 33.38px 0 -5.13px,#FA4C61 -15.13px 33.98px 0 -5.2px,#FA4C61 -13.96px 34.55px 0 -5.27px,#FA4C61 -12.77px 35.08px 0 -5.33px,#FA4C61 -11.56px 35.57px 0 -5.4px,#FA4C61 -10.33px 36.02px 0 -5.47px,#FA4C61 -9.08px 36.42px 0 -5.53px,#FA4C61 -7.82px 36.78px 0 -5.6px,#FA4C61 -6.54px 37.09px 0 -5.67px,#FA4C61 -5.25px 37.37px 0 -5.73px,#FA4C61 -3.95px 37.59px 0 -5.8px,#FA4C61 -2.64px 37.77px 0 -5.87px,#FA4C61 -1.32px 37.91px 0 -5.93px;-webkit-box-shadow:#FA4C61 0 26px 0 6px,#FA4C61 .91px 26.05px 0 5.93px,#FA4C61 1.82px 26.07px 0 5.87px,#FA4C61 2.74px 26.06px 0 5.8px,#FA4C61 3.66px 26.01px 0 5.73px,#FA4C61 4.57px 25.93px 0 5.67px,#FA4C61 5.49px 25.82px 0 5.6px,#FA4C61 6.4px 25.68px 0 5.53px,#FA4C61 7.31px 25.51px 0 5.47px,#FA4C61 8.22px 25.3px 0 5.4px,#FA4C61 9.12px 25.06px 0 5.33px,#FA4C61 10.01px 24.79px 0 5.27px,#FA4C61 10.9px 24.48px 0 5.2px,#FA4C61 11.78px 24.15px 0 5.13px,#FA4C61 12.64px 23.78px 0 5.07px,#FA4C61 13.5px 23.38px 0 5px,#FA4C61 14.34px 22.95px 0 4.93px,#FA4C61 15.17px 22.49px 0 4.87px,#FA4C61 15.99px 22.01px 0 4.8px,#FA4C61 16.79px 21.49px 0 4.73px,#FA4C61 17.57px 20.94px 0 4.67px,#FA4C61 18.33px 20.36px 0 4.6px,#FA4C61 19.08px 19.76px 0 4.53px,#FA4C61 19.81px 19.13px 0 4.47px,#FA4C61 20.51px 18.47px 0 4.4px,#FA4C61 21.19px 17.78px 0 4.33px,#FA4C61 21.85px 17.07px 0 4.27px,#FA4C61 22.49px 16.34px 0 4.2px,#FA4C61 23.1px 15.58px 0 4.13px,#FA4C61 23.69px 14.8px 0 4.07px,#FA4C61 24.25px 14px 0 4px,#FA4C61 24.78px 13.18px 0 3.93px,#FA4C61 25.29px 12.33px 0 3.87px,#FA4C61 25.76px 11.47px 0 3.8px,#FA4C61 26.21px 10.59px 0 3.73px,#FA4C61 26.62px 9.69px 0 3.67px,#FA4C61 27.01px 8.78px 0 3.6px,#FA4C61 27.36px 7.85px 0 3.53px,#FA4C61 27.69px 6.9px 0 3.47px,#FA4C61 27.98px 5.95px 0 3.4px,#FA4C61 28.23px 4.98px 0 3.33px,#FA4C61 28.45px 4px 0 3.27px,#FA4C61 28.64px 3.01px 0 3.2px,#FA4C61 28.8px 2.01px 0 3.13px,#FA4C61 28.92px 1.01px 0 3.07px,#FA4C61 29px 0 0 3px,#FA4C61 29.05px -1.01px 0 2.93px,#FA4C61 29.06px -2.03px 0 2.87px,#FA4C61 29.04px -3.05px 0 2.8px,#FA4C61 28.98px -4.07px 0 2.73px,#FA4C61 28.89px -5.09px 0 2.67px,#FA4C61 28.76px -6.11px 0 2.6px,#FA4C61 28.59px -7.13px 0 2.53px,#FA4C61 28.39px -8.14px 0 2.47px,#FA4C61 28.15px -9.15px 0 2.4px,#FA4C61 27.88px -10.15px 0 2.33px,#FA4C61 27.57px -11.14px 0 2.27px,#FA4C61 27.22px -12.12px 0 2.2px,#FA4C61 26.84px -13.09px 0 2.13px,#FA4C61 26.43px -14.05px 0 2.07px,#FA4C61 25.98px -15px 0 2px,#FA4C61 25.5px -15.93px 0 1.93px,#FA4C61 24.98px -16.85px 0 1.87px,#FA4C61 24.43px -17.75px 0 1.8px,#FA4C61 23.85px -18.63px 0 1.73px,#FA4C61 23.24px -19.5px 0 1.67px,#FA4C61 22.59px -20.34px 0 1.6px,#FA4C61 21.92px -21.16px 0 1.53px,#FA4C61 21.21px -21.96px 0 1.47px,#FA4C61 20.48px -22.74px 0 1.4px,#FA4C61 19.71px -23.49px 0 1.33px,#FA4C61 18.92px -24.22px 0 1.27px,#FA4C61 18.1px -24.92px 0 1.2px,#FA4C61 17.26px -25.59px 0 1.13px,#FA4C61 16.39px -26.23px 0 1.07px,#FA4C61 15.5px -26.85px 0 1px,#FA4C61 14.58px -27.43px 0 .93px,#FA4C61 13.65px -27.98px 0 .87px,#FA4C61 12.69px -28.5px 0 .8px,#FA4C61 11.71px -28.99px 0 .73px,#FA4C61 10.72px -29.44px 0 .67px,#FA4C61 9.7px -29.86px 0 .6px,#FA4C61 8.67px -30.25px 0 .53px,#FA4C61 7.63px -30.6px 0 .47px,#FA4C61 6.57px -30.91px 0 .4px,#FA4C61 5.5px -31.19px 0 .33px,#FA4C61 4.42px -31.42px 0 .27px,#FA4C61 3.32px -31.63px 0 .2px,#FA4C61 2.22px -31.79px 0 .13px,#FA4C61 1.11px -31.91px 0 .07px,#FA4C61 0 -32px 0 0,#FA4C61 -1.12px -32.05px 0 -.07px,#FA4C61 -2.24px -32.06px 0 -.13px,#FA4C61 -3.37px -32.02px 0 -.2px,#FA4C61 -4.49px -31.95px 0 -.27px,#FA4C61 -5.61px -31.84px 0 -.33px,#FA4C61 -6.74px -31.69px 0 -.4px,#FA4C61 -7.85px -31.5px 0 -.47px,#FA4C61 -8.97px -31.27px 0 -.53px,#FA4C61 -10.07px -31px 0 -.6px,#FA4C61 -11.17px -30.7px 0 -.67px,#FA4C61 -12.26px -30.35px 0 -.73px,#FA4C61 -13.34px -29.96px 0 -.8px,#FA4C61 -14.41px -29.54px 0 -.87px,#FA4C61 -15.46px -29.08px 0 -.93px,#FA4C61 -16.5px -28.58px 0 -1px,#FA4C61 -17.52px -28.04px 0 -1.07px,#FA4C61 -18.53px -27.47px 0 -1.13px,#FA4C61 -19.51px -26.86px 0 -1.2px,#FA4C61 -20.48px -26.21px 0 -1.27px,#FA4C61 -21.43px -25.53px 0 -1.33px,#FA4C61 -22.35px -24.82px 0 -1.4px,#FA4C61 -23.25px -24.07px 0 -1.47px,#FA4C61 -24.12px -23.29px 0 -1.53px,#FA4C61 -24.97px -22.48px 0 -1.6px,#FA4C61 -25.79px -21.64px 0 -1.67px,#FA4C61 -26.58px -20.77px 0 -1.73px,#FA4C61 -27.34px -19.87px 0 -1.8px,#FA4C61 -28.08px -18.94px 0 -1.87px,#FA4C61 -28.78px -17.98px 0 -1.93px,#FA4C61 -29.44px -17px 0 -2px,#FA4C61 -30.08px -15.99px 0 -2.07px,#FA4C61 -30.68px -14.96px 0 -2.13px,#FA4C61 -31.24px -13.91px 0 -2.2px,#FA4C61 -31.77px -12.84px 0 -2.27px,#FA4C61 -32.26px -11.74px 0 -2.33px,#FA4C61 -32.72px -10.63px 0 -2.4px,#FA4C61 -33.13px -9.5px 0 -2.47px,#FA4C61 -33.51px -8.35px 0 -2.53px,#FA4C61 -33.84px -7.19px 0 -2.6px,#FA4C61 -34.14px -6.02px 0 -2.67px,#FA4C61 -34.4px -4.83px 0 -2.73px,#FA4C61 -34.61px -3.64px 0 -2.8px,#FA4C61 -34.78px -2.43px 0 -2.87px,#FA4C61 -34.91px -1.22px 0 -2.93px,#FA4C61 -35px 0 0 -3px,#FA4C61 -35.05px 1.22px 0 -3.07px,#FA4C61 -35.05px 2.45px 0 -3.13px,#FA4C61 -35.01px 3.68px 0 -3.2px,#FA4C61 -34.92px 4.91px 0 -3.27px,#FA4C61 -34.8px 6.14px 0 -3.33px,#FA4C61 -34.63px 7.36px 0 -3.4px,#FA4C61 -34.41px 8.58px 0 -3.47px,#FA4C61 -34.16px 9.79px 0 -3.53px,#FA4C61 -33.86px 11px 0 -3.6px,#FA4C61 -33.52px 12.2px 0 -3.67px,#FA4C61 -33.13px 13.39px 0 -3.73px,#FA4C61 -32.7px 14.56px 0 -3.8px,#FA4C61 -32.24px 15.72px 0 -3.87px,#FA4C61 -31.73px 16.87px 0 -3.93px,#FA4C61 -31.18px 18px 0 -4px,#FA4C61 -30.59px 19.11px 0 -4.07px,#FA4C61 -29.96px 20.21px 0 -4.13px,#FA4C61 -29.29px 21.28px 0 -4.2px,#FA4C61 -28.58px 22.33px 0 -4.27px,#FA4C61 -27.83px 23.35px 0 -4.33px,#FA4C61 -27.05px 24.36px 0 -4.4px,#FA4C61 -26.23px 25.33px 0 -4.47px,#FA4C61 -25.38px 26.28px 0 -4.53px,#FA4C61 -24.49px 27.2px 0 -4.6px,#FA4C61 -23.57px 28.09px 0 -4.67px,#FA4C61 -22.62px 28.95px 0 -4.73px,#FA4C61 -21.63px 29.77px 0 -4.8px,#FA4C61 -20.62px 30.56px 0 -4.87px,#FA4C61 -19.57px 31.32px 0 -4.93px,#FA4C61 -18.5px 32.04px 0 -5px,#FA4C61 -17.4px 32.73px 0 -5.07px,#FA4C61 -16.28px 33.38px 0 -5.13px,#FA4C61 -15.13px 33.98px 0 -5.2px,#FA4C61 -13.96px 34.55px 0 -5.27px,#FA4C61 -12.77px 35.08px 0 -5.33px,#FA4C61 -11.56px 35.57px 0 -5.4px,#FA4C61 -10.33px 36.02px 0 -5.47px,#FA4C61 -9.08px 36.42px 0 -5.53px,#FA4C61 -7.82px 36.78px 0 -5.6px,#FA4C61 -6.54px 37.09px 0 -5.67px,#FA4C61 -5.25px 37.37px 0 -5.73px,#FA4C61 -3.95px 37.59px 0 -5.8px,#FA4C61 -2.64px 37.77px 0 -5.87px,#FA4C61 -1.32px 37.91px 0 -5.93px;box-shadow:#FA4C61 0 26px 0 6px,#FA4C61 .91px 26.05px 0 5.93px,#FA4C61 1.82px 26.07px 0 5.87px,#FA4C61 2.74px 26.06px 0 5.8px,#FA4C61 3.66px 26.01px 0 5.73px,#FA4C61 4.57px 25.93px 0 5.67px,#FA4C61 5.49px 25.82px 0 5.6px,#FA4C61 6.4px 25.68px 0 5.53px,#FA4C61 7.31px 25.51px 0 5.47px,#FA4C61 8.22px 25.3px 0 5.4px,#FA4C61 9.12px 25.06px 0 5.33px,#FA4C61 10.01px 24.79px 0 5.27px,#FA4C61 10.9px 24.48px 0 5.2px,#FA4C61 11.78px 24.15px 0 5.13px,#FA4C61 12.64px 23.78px 0 5.07px,#FA4C61 13.5px 23.38px 0 5px,#FA4C61 14.34px 22.95px 0 4.93px,#FA4C61 15.17px 22.49px 0 4.87px,#FA4C61 15.99px 22.01px 0 4.8px,#FA4C61 16.79px 21.49px 0 4.73px,#FA4C61 17.57px 20.94px 0 4.67px,#FA4C61 18.33px 20.36px 0 4.6px,#FA4C61 19.08px 19.76px 0 4.53px,#FA4C61 19.81px 19.13px 0 4.47px,#FA4C61 20.51px 18.47px 0 4.4px,#FA4C61 21.19px 17.78px 0 4.33px,#FA4C61 21.85px 17.07px 0 4.27px,#FA4C61 22.49px 16.34px 0 4.2px,#FA4C61 23.1px 15.58px 0 4.13px,#FA4C61 23.69px 14.8px 0 4.07px,#FA4C61 24.25px 14px 0 4px,#FA4C61 24.78px 13.18px 0 3.93px,#FA4C61 25.29px 12.33px 0 3.87px,#FA4C61 25.76px 11.47px 0 3.8px,#FA4C61 26.21px 10.59px 0 3.73px,#FA4C61 26.62px 9.69px 0 3.67px,#FA4C61 27.01px 8.78px 0 3.6px,#FA4C61 27.36px 7.85px 0 3.53px,#FA4C61 27.69px 6.9px 0 3.47px,#FA4C61 27.98px 5.95px 0 3.4px,#FA4C61 28.23px 4.98px 0 3.33px,#FA4C61 28.45px 4px 0 3.27px,#FA4C61 28.64px 3.01px 0 3.2px,#FA4C61 28.8px 2.01px 0 3.13px,#FA4C61 28.92px 1.01px 0 3.07px,#FA4C61 29px 0 0 3px,#FA4C61 29.05px -1.01px 0 2.93px,#FA4C61 29.06px -2.03px 0 2.87px,#FA4C61 29.04px -3.05px 0 2.8px,#FA4C61 28.98px -4.07px 0 2.73px,#FA4C61 28.89px -5.09px 0 2.67px,#FA4C61 28.76px -6.11px 0 2.6px,#FA4C61 28.59px -7.13px 0 2.53px,#FA4C61 28.39px -8.14px 0 2.47px,#FA4C61 28.15px -9.15px 0 2.4px,#FA4C61 27.88px -10.15px 0 2.33px,#FA4C61 27.57px -11.14px 0 2.27px,#FA4C61 27.22px -12.12px 0 2.2px,#FA4C61 26.84px -13.09px 0 2.13px,#FA4C61 26.43px -14.05px 0 2.07px,#FA4C61 25.98px -15px 0 2px,#FA4C61 25.5px -15.93px 0 1.93px,#FA4C61 24.98px -16.85px 0 1.87px,#FA4C61 24.43px -17.75px 0 1.8px,#FA4C61 23.85px -18.63px 0 1.73px,#FA4C61 23.24px -19.5px 0 1.67px,#FA4C61 22.59px -20.34px 0 1.6px,#FA4C61 21.92px -21.16px 0 1.53px,#FA4C61 21.21px -21.96px 0 1.47px,#FA4C61 20.48px -22.74px 0 1.4px,#FA4C61 19.71px -23.49px 0 1.33px,#FA4C61 18.92px -24.22px 0 1.27px,#FA4C61 18.1px -24.92px 0 1.2px,#FA4C61 17.26px -25.59px 0 1.13px,#FA4C61 16.39px -26.23px 0 1.07px,#FA4C61 15.5px -26.85px 0 1px,#FA4C61 14.58px -27.43px 0 .93px,#FA4C61 13.65px -27.98px 0 .87px,#FA4C61 12.69px -28.5px 0 .8px,#FA4C61 11.71px -28.99px 0 .73px,#FA4C61 10.72px -29.44px 0 .67px,#FA4C61 9.7px -29.86px 0 .6px,#FA4C61 8.67px -30.25px 0 .53px,#FA4C61 7.63px -30.6px 0 .47px,#FA4C61 6.57px -30.91px 0 .4px,#FA4C61 5.5px -31.19px 0 .33px,#FA4C61 4.42px -31.42px 0 .27px,#FA4C61 3.32px -31.63px 0 .2px,#FA4C61 2.22px -31.79px 0 .13px,#FA4C61 1.11px -31.91px 0 .07px,#FA4C61 0 -32px 0 0,#FA4C61 -1.12px -32.05px 0 -.07px,#FA4C61 -2.24px -32.06px 0 -.13px,#FA4C61 -3.37px -32.02px 0 -.2px,#FA4C61 -4.49px -31.95px 0 -.27px,#FA4C61 -5.61px -31.84px 0 -.33px,#FA4C61 -6.74px -31.69px 0 -.4px,#FA4C61 -7.85px -31.5px 0 -.47px,#FA4C61 -8.97px -31.27px 0 -.53px,#FA4C61 -10.07px -31px 0 -.6px,#FA4C61 -11.17px -30.7px 0 -.67px,#FA4C61 -12.26px -30.35px 0 -.73px,#FA4C61 -13.34px -29.96px 0 -.8px,#FA4C61 -14.41px -29.54px 0 -.87px,#FA4C61 -15.46px -29.08px 0 -.93px,#FA4C61 -16.5px -28.58px 0 -1px,#FA4C61 -17.52px -28.04px 0 -1.07px,#FA4C61 -18.53px -27.47px 0 -1.13px,#FA4C61 -19.51px -26.86px 0 -1.2px,#FA4C61 -20.48px -26.21px 0 -1.27px,#FA4C61 -21.43px -25.53px 0 -1.33px,#FA4C61 -22.35px -24.82px 0 -1.4px,#FA4C61 -23.25px -24.07px 0 -1.47px,#FA4C61 -24.12px -23.29px 0 -1.53px,#FA4C61 -24.97px -22.48px 0 -1.6px,#FA4C61 -25.79px -21.64px 0 -1.67px,#FA4C61 -26.58px -20.77px 0 -1.73px,#FA4C61 -27.34px -19.87px 0 -1.8px,#FA4C61 -28.08px -18.94px 0 -1.87px,#FA4C61 -28.78px -17.98px 0 -1.93px,#FA4C61 -29.44px -17px 0 -2px,#FA4C61 -30.08px -15.99px 0 -2.07px,#FA4C61 -30.68px -14.96px 0 -2.13px,#FA4C61 -31.24px -13.91px 0 -2.2px,#FA4C61 -31.77px -12.84px 0 -2.27px,#FA4C61 -32.26px -11.74px 0 -2.33px,#FA4C61 -32.72px -10.63px 0 -2.4px,#FA4C61 -33.13px -9.5px 0 -2.47px,#FA4C61 -33.51px -8.35px 0 -2.53px,#FA4C61 -33.84px -7.19px 0 -2.6px,#FA4C61 -34.14px -6.02px 0 -2.67px,#FA4C61 -34.4px -4.83px 0 -2.73px,#FA4C61 -34.61px -3.64px 0 -2.8px,#FA4C61 -34.78px -2.43px 0 -2.87px,#FA4C61 -34.91px -1.22px 0 -2.93px,#FA4C61 -35px 0 0 -3px,#FA4C61 -35.05px 1.22px 0 -3.07px,#FA4C61 -35.05px 2.45px 0 -3.13px,#FA4C61 -35.01px 3.68px 0 -3.2px,#FA4C61 -34.92px 4.91px 0 -3.27px,#FA4C61 -34.8px 6.14px 0 -3.33px,#FA4C61 -34.63px 7.36px 0 -3.4px,#FA4C61 -34.41px 8.58px 0 -3.47px,#FA4C61 -34.16px 9.79px 0 -3.53px,#FA4C61 -33.86px 11px 0 -3.6px,#FA4C61 -33.52px 12.2px 0 -3.67px,#FA4C61 -33.13px 13.39px 0 -3.73px,#FA4C61 -32.7px 14.56px 0 -3.8px,#FA4C61 -32.24px 15.72px 0 -3.87px,#FA4C61 -31.73px 16.87px 0 -3.93px,#FA4C61 -31.18px 18px 0 -4px,#FA4C61 -30.59px 19.11px 0 -4.07px,#FA4C61 -29.96px 20.21px 0 -4.13px,#FA4C61 -29.29px 21.28px 0 -4.2px,#FA4C61 -28.58px 22.33px 0 -4.27px,#FA4C61 -27.83px 23.35px 0 -4.33px,#FA4C61 -27.05px 24.36px 0 -4.4px,#FA4C61 -26.23px 25.33px 0 -4.47px,#FA4C61 -25.38px 26.28px 0 -4.53px,#FA4C61 -24.49px 27.2px 0 -4.6px,#FA4C61 -23.57px 28.09px 0 -4.67px,#FA4C61 -22.62px 28.95px 0 -4.73px,#FA4C61 -21.63px 29.77px 0 -4.8px,#FA4C61 -20.62px 30.56px 0 -4.87px,#FA4C61 -19.57px 31.32px 0 -4.93px,#FA4C61 -18.5px 32.04px 0 -5px,#FA4C61 -17.4px 32.73px 0 -5.07px,#FA4C61 -16.28px 33.38px 0 -5.13px,#FA4C61 -15.13px 33.98px 0 -5.2px,#FA4C61 -13.96px 34.55px 0 -5.27px,#FA4C61 -12.77px 35.08px 0 -5.33px,#FA4C61 -11.56px 35.57px 0 -5.4px,#FA4C61 -10.33px 36.02px 0 -5.47px,#FA4C61 -9.08px 36.42px 0 -5.53px,#FA4C61 -7.82px 36.78px 0 -5.6px,#FA4C61 -6.54px 37.09px 0 -5.67px,#FA4C61 -5.25px 37.37px 0 -5.73px,#FA4C61 -3.95px 37.59px 0 -5.8px,#FA4C61 -2.64px 37.77px 0 -5.87px,#FA4C61 -1.32px 37.91px 0 -5.93px;-moz-animation:whirly-loader 1.25s infinite linear;-webkit-animation:whirly-loader 1.25s infinite linear;animation:whirly-loader 1.25s infinite linear;-moz-transform-origin:50% 50%;-ms-transform-origin:50% 50%;-webkit-transform-origin:50% 50%;transform-origin:50% 50%}.inactive-link{cursor:default}.ui-grid-vcenter div{position:relative;top:50%;vertical-align:middle;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);white-space:nowrap;text-overflow:ellipsis;overflow:hidden!important}.demo{background-image:url(../../assets/images/demo.png)}.float-right{float:right}.float-left{float:left}.checker{width:19px;height:19px}.collapse.am-collapse{animation-duration:.3s;animation-timing-function:ease;animation-fill-mode:backwards;overflow:hidden}.message-info{float:right;color:#d3d3d3;margin-right:5px}[ui-view].ng-enter{-webkit-animation:fadeInUpm .5s;animation:fadeInUpm .5s}.steps,.steps-indicator{padding-bottom:20px!important}.ui-sortable,.ui-sortable-handle{cursor:move}.step .btn:not(.ui-select-toggle,.remove-condition){margin-bottom:10px}.mbottom20{margin-bottom:20px}.pbottom20{padding-bottom:20px}.break-overflow{overflow-wrap:break-word}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.alert{padding:15px!important;margin-bottom:20px!important;border:1px solid transparent!important;border-radius:4px!important}.alert h4{margin-top:0!important;color:inherit!important}.alert .alert-link{font-weight:700!important}.alert>p,.alert>ul{margin-bottom:0!important}.alert>p+p{margin-top:5px!important}.alert-dismissable,.alert-dismissible{padding-right:35px!important}.alert-dismissable .close,.alert-dismissible .close{position:relative!important;top:-2px!important;right:-21px!important;color:inherit!important}.alert-success{background-color:#dff0d8!important;border-color:#d6e9c6!important;color:#3c763d!important}.alert-success hr{border-top-color:#c9e2b3!important}.alert-success .alert-link{color:#2b542c!important}.alert-info{background-color:#d9edf7!important;border-color:#bce8f1!important;color:#31708f!important}.alert-info hr{border-top-color:#a6e1ec!important}.alert-info .alert-link{color:#245269!important}.alert-warning{background-color:#fcf8e3!important;border-color:#faebcc!important;color:#8a6d3b!important}.alert-warning hr{border-top-color:#f7e1b5!important}.alert-warning .alert-link{color:#66512c!important}.alert-danger{background-color:#f2dede!important;border-color:#ebccd1!important;color:#a94442!important}.alert-danger hr{border-top-color:#e4b9c0!important}.alert-danger .alert-link{color:#843534!important}.alert .close{text-indent:inherit!important;background-image:none!important;width:auto!important}.page-404 .number{position:relative;top:35px;display:inline-block;letter-spacing:-10px;margin-top:0;margin-bottom:10px;line-height:128px;font-size:128px;font-weight:300;color:#7bbbd6;text-align:right}.page-404 .details{margin-left:40px;display:inline-block;padding-top:0;text-align:left}.sounds-title-icon{font-size:17px}.ui-select-multiple input.ui-select-search{width:100%!important}.modal.fade,.over-topbar{z-index:9996!important}.list-group-item-custom{border:none}.pointer-cursor{cursor:pointer!important}.select-group-father{font-weight:700!important}.select-group-son{font-style:italic!important}@media (max-height:908px){.modal-body-scroll{max-height:325px;overflow-y:scroll}}.widget .dashboard-stat{margin-bottom:0!important}.widget .panel-body{padding:0}.left-margin{margin-left:20px}.contact-portlet{overflow-x:hidden;overflow-y:auto}.contact-tab{background:#F1F3FA;padding-top:20px}.contact-tab-container{padding-left:20px;padding-right:20px}.col-fixed,.tree-row{float:left}.col-fixed{width:277px;margin-right:15px}.tree-row{width:calc(100% - 277px + 15px)}.tree-search{float:left;display:inline-block;line-height:18px;font-weight:300;padding:10px 0}.report-field-handle{width:66px;height:66px;background-image:url(../../assets/images/move.png);background-repeat:no-repeat;background-size:66px 66px}.ui-sortable-helper{display:table}.report-field-remove{width:66px;height:66px;text-align:center}.portlet.light .portlet-title{padding:0;min-height:48px}.portlet .portlet-title{border-bottom:1px solid #eee;padding:0;margin-bottom:10px;min-height:41px;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.ui-select-match-text{width:100%;overflow:hidden;text-overflow:ellipsis;padding-right:20px}.ui-select-choices-row-inner div{width:100%;overflow:hidden;text-overflow:ellipsis}.ui-select-toggle>.btn.btn-link{margin-right:10px;top:6px;position:absolute;right:10px}.extract-grid{min-height:600px}body>[uib-modal-window]:not([modal-render]){display:none}.watermark{position:absolute;top:50%;transform:translateY(-50%);opacity:.7;width:100%;text-align:center;z-index:1000;font-size:25px}.centered-uigrid-td{text-align:center;margin:4px}.condition{margin-top:8px;margin-bottom:8px}.ms-container .ms-list{height:430px!important}.ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection{padding:7px 12px!important}.ms-container{width:100%!important}.ms-optgroup-label{text-align:center;font-weight:700;background-color:#F0F0F0}.pause-select{width:20px;color:#A29999;border:none}@keyframes blink{0%{border-color:transparent}25%{border-color:#EACD9E}50%{border-color:#ECC077}75%{border-color:#ECB861}100%{border-color:#FFB848}}.paused-agent{border:2px solid transparent;animation:blink .5s step-end infinite alternate}.otherfields-col{min-height:400px!important;max-width:100%}.profile-content{min-height:800px}.portfolio-stat p{color:#16a1f2;display:block;font-size:22px;line-height:28px;margin-top:0;font-weight:200;width:100%;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis}.portfolio-stat{text-transform:uppercase;padding:10px 25px}.page-header.navbar{background-color:#2b3643}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle>i{color:#79869a}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle .badge.badge-default{background-color:#EA4C61;color:#fff}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle:hover,.page-header.navbar .top-menu .navbar-nav>li.dropdown.open .dropdown-toggle{background-color:#3f4f62}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle:hover>i,.page-header.navbar .top-menu .navbar-nav>li.dropdown.open .dropdown-toggle>i{color:#a4aebb}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu{border-color:#e7eaf0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu:after{border-bottom-color:#eaedf2}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external{background:#eaedf2}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>h3{color:#62878f}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>a{color:#5b9bd1}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>a:hover{color:#3175af;text-decoration:underline}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li>a{border-bottom:1px solid #EFF2F6!important;color:#888}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li>a:hover{background:#f8f9fa}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li>a .time{background:#f1f1f1}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li>a:hover .time{background:#e4e4e4}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-toggle>.circle{background-color:#EA4C61;color:#fff}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-toggle>.corner{border-color:transparent transparent transparent #EA4C61}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox .dropdown-menu .dropdown-menu-list .subject .from{color:#5b9bd1}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-toggle>.langname,.page-header.navbar .top-menu .navbar-nav>li.dropdown-user>.dropdown-toggle>.username,.page-header.navbar .top-menu .navbar-nav>li.dropdown-user>.dropdown-toggle>i{color:#c6cfda}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list .progress{background-color:#dfe2e9}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user>.dropdown-menu{width:195px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu{background:#3f4f62;border:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu:after{border-bottom-color:#3f4f62}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu>li.external{background:#2f3b49}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu>li.external>h3{color:#adbaca}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu>li.external>a:hover{color:#87b6dd}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu .dropdown-menu-list>li a,.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li a{color:#bcc7d4;border-bottom:1px solid #4b5e75!important}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu .dropdown-menu-list>li a>i,.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li a>i{color:#9dadc0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu .dropdown-menu-list>li a:hover,.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li a:hover{background:#47596e}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li a{border-bottom:0!important}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li.divider{background:#4b5e75}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification.dropdown-dark .dropdown-menu .dropdown-menu-list>li>a .time{background:#354353}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification.dropdown-dark .dropdown-menu .dropdown-menu-list>li>a:hover .time{background:#2b3643}.page-header.navbar .search-form{background:#232c37}.page-header.navbar .search-form.open,.page-header.navbar .search-form:hover{background:#3f4f62}.page-header.navbar .search-form .input-group .form-control{color:#959fad}.page-header.navbar .search-form .input-group .form-control::-moz-placeholder{color:#929cab;opacity:1}.page-header.navbar .search-form .input-group .form-control:-ms-input-placeholder{color:#929cab}.page-header.navbar .search-form .input-group .form-control::-webkit-input-placeholder{color:#929cab}.page-header.navbar .search-form .input-group .input-group-btn .btn.submit>i{color:#959fad}.page-header.navbar .menu-toggler{background-image:url(../../assets/images/sidebar_toggler_icon_darkblue.png)}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu{box-shadow:5px 5px rgba(63,79,98,.2)}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>h3,.page-header.navbar .hor-menu .navbar-nav>li>a{color:#c6cfda}.page-header.navbar .hor-menu .navbar-nav>li>a>i{color:#788ea8}.page-header.navbar .hor-menu .navbar-nav>li.open>a,.page-header.navbar .hor-menu .navbar-nav>li>a:hover{color:#d5dce4;background:#3f4f62!important}.page-header.navbar .hor-menu .navbar-nav>li.open>a>i,.page-header.navbar .hor-menu .navbar-nav>li>a:hover>i{color:#889bb2}.page-header.navbar .hor-menu .navbar-nav>li.active>a,.page-header.navbar .hor-menu .navbar-nav>li.current>a{color:#fff;background:#EA4C61!important}.page-header.navbar .hor-menu .navbar-nav>li.active>a>i,.page-header.navbar .hor-menu .navbar-nav>li.current>a>i{color:#788ea8}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu{box-shadow:5px 5px rgba(63,79,98,.2);background:#3f4f62}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a>i{color:#c6cfda}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li:hover>a{color:#f1f3f6;background:#47596e}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li:hover>a>i{color:#f1f3f6}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.active>a,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.active>a:hover,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.current>a,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.current>a:hover{color:#f1f3f6;background:#47596e}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.active>a:hover>i,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.active>a>i,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.current>a:hover>i,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.current>a>i{color:#f1f3f6}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.divider{background-color:#495c72}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-submenu>a:after{color:#c6cfda}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.mega-menu-dropdown>.dropdown-menu{box-shadow:5px 5px rgba(102,102,102,.1)}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>h3{color:#666}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>a{color:#c6cfda}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>a>i{color:#788ea8}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>a:hover{color:#d5dce4;background:#3f4f62}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>a:hover>i{color:#889bb2}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.open>a{color:#333!important;background:#fff!important}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.open>a>i{color:#333!important}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.active>a,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.active>a:hover,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.current>a,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.current>a:hover{color:#fff;background:#EA4C61}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.active>a:hover>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.active>a>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.current>a:hover>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.current>a>i{color:#788ea8}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu{box-shadow:5px 5px rgba(102,102,102,.1);background:#fff;border:1px solid #efeff5}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li>a{color:#000}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li>a>i{color:#888}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li:hover>a{color:#000;background:#f2f2f7}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li:hover>a>i{color:#666}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.active>a,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.active>a:hover,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.current>a,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.current>a:hover{color:#000;background:#f2f2f7}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.active>a:hover>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.active>a>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.current>a:hover>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.current>a>i{color:#666}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.divider{background-color:#f2f2f7}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>.dropdown-menu{border-top:0}.page-sidebar,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover{background-color:#364150}.page-sidebar .page-sidebar-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a{color:#b4bcc8}.page-sidebar .page-sidebar-menu>li>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i{color:#606C7D}.page-sidebar .page-sidebar-menu>li>a>i[class*=icon-],.page-sidebar .page-sidebar-menu>li>a>i[class^=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i[class*=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i[class^=icon-]{color:#6b788b}.page-sidebar .page-sidebar-menu>li>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>.arrow:before{color:#606C7D}.page-sidebar .page-sidebar-menu>li.heading>h3,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.heading>h3{color:#708096}.page-sidebar .page-sidebar-menu>li.open>a,.page-sidebar .page-sidebar-menu>li:hover>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:hover>a{background:#2C3542;color:#b4bcc8}.page-sidebar .page-sidebar-menu>li.open>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li.open>a>.arrow:before,.page-sidebar .page-sidebar-menu>li.open>a>i,.page-sidebar .page-sidebar-menu>li:hover>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li:hover>a>.arrow:before,.page-sidebar .page-sidebar-menu>li:hover>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:hover>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:hover>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:hover>a>i{color:#606C7D}.page-sidebar .page-sidebar-menu>li.active.open>a,.page-sidebar .page-sidebar-menu>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a{background:#EA4C61;border-top-color:transparent;color:#fff}.page-sidebar .page-sidebar-menu>li.active.open>a:hover,.page-sidebar .page-sidebar-menu>li.active>a:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a:hover{background:#EA4C61}.page-sidebar .page-sidebar-menu>li.active.open>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li.active.open>a>.arrow:before,.page-sidebar .page-sidebar-menu>li.active.open>a>i,.page-sidebar .page-sidebar-menu>li.active>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li.active>a>.arrow:before,.page-sidebar .page-sidebar-menu>li.active>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>i{color:#fff}.page-sidebar .page-sidebar-menu>li.active+li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active+li>a{border-top-color:transparent}.page-sidebar .page-sidebar-menu>li.active.open+li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open+li>a{border-top-color:#3d4957}.page-sidebar .page-sidebar-menu>li:last-child>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:last-child>a{border-bottom:1px solid transparent!important}.page-sidebar .page-sidebar-menu li:hover>a>.arrow.open:before,.page-sidebar .page-sidebar-menu li:hover>a>.arrow:before,.page-sidebar .page-sidebar-menu li>a>.arrow.open:before,.page-sidebar .page-sidebar-menu li>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.arrow:before{color:#606C7D}.page-sidebar .page-sidebar-menu li.active>a>.arrow.open:before,.page-sidebar .page-sidebar-menu li.active>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active>a>.arrow:before{color:#fff}.page-sidebar-closed .page-sidebar .page-sidebar-menu:hover .sub-menu,.page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu:hover .sub-menu{background-color:#364150}.page-sidebar .page-sidebar-menu .sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a{color:#b4bcc8}.page-sidebar .page-sidebar-menu .sub-menu>li>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>i{color:#606C7D}.page-sidebar .page-sidebar-menu .sub-menu>li>a>i[class*=icon-],.page-sidebar .page-sidebar-menu .sub-menu>li>a>i[class^=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>i[class*=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>i[class^=icon-]{color:#6b788b}.page-sidebar .page-sidebar-menu .sub-menu>li>a>.arrow.open:before,.page-sidebar .page-sidebar-menu .sub-menu>li>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>.arrow:before{color:#606C7D}.page-sidebar .page-sidebar-menu .sub-menu>li.active>a,.page-sidebar .page-sidebar-menu .sub-menu>li.open>a,.page-sidebar .page-sidebar-menu .sub-menu>li:hover>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li:hover>a{background:#3e4b5c!important}.page-sidebar .page-sidebar-menu .sub-menu>li.active>a>i,.page-sidebar .page-sidebar-menu .sub-menu>li.open>a>i,.page-sidebar .page-sidebar-menu .sub-menu>li:hover>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.active>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.open>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li:hover>a>i{color:#959fae}.page-sidebar .page-sidebar-menu .sub-menu>li.active>a>.arrow.open:before,.page-sidebar .page-sidebar-menu .sub-menu>li.active>a>.arrow:before,.page-sidebar .page-sidebar-menu .sub-menu>li.open>a>.arrow.open:before,.page-sidebar .page-sidebar-menu .sub-menu>li.open>a>.arrow:before,.page-sidebar .page-sidebar-menu .sub-menu>li:hover>a>.arrow.open:before,.page-sidebar .page-sidebar-menu .sub-menu>li:hover>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.active>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.active>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.open>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.open>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li:hover>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li:hover>a>.arrow:before{color:#606C7D}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li:hover>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li:hover>a{background:#3a4656}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a{background:#3e4b5c;border-left:4px solid #EA4C61;color:#f1f1f1}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a:hover,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a:hover{border-left:4px solid #EA4C61;background:#3a4656}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>.arrow.open:before,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>.arrow:before,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>i,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a>.arrow.open:before,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a>.arrow:before,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a>i{color:#eee}.page-sidebar .sidebar-search .input-group .input-group-btn .btn>i,.page-sidebar-closed .page-sidebar .sidebar-search.open .remove>i,.page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.open .remove>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn>i{color:#4e5c6f}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu{background:#3a4656}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.active>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li:hover>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li:hover>a{background:#3e4b5c!important}.page-sidebar .sidebar-toggler,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler{background:url(../assets/images/sidebar_inline_toggler_icon_darkblue.jpg)}.page-sidebar .sidebar-search .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group{border-bottom:1px solid #435060}.page-sidebar .sidebar-search .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control{background-color:#364150;color:#4e5c6f}.page-sidebar .sidebar-search .input-group .form-control::-moz-placeholder,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control::-moz-placeholder{color:#4e5c6f;opacity:1}.page-sidebar .sidebar-search .input-group .form-control:-ms-input-placeholder,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control:-ms-input-placeholder{color:#4e5c6f}.page-sidebar .sidebar-search .input-group .form-control::-webkit-input-placeholder,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control::-webkit-input-placeholder{color:#4e5c6f}.page-sidebar .sidebar-search.sidebar-search-bordered .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group{border:1px solid #435060}.page-sidebar-closed .page-sidebar .sidebar-search.open .input-group,.page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.open .input-group{background-color:#364150}.page-sidebar-closed .page-sidebar .sidebar-search.sidebar-search-solid .input-group,.page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group{background:0 0}.page-sidebar .sidebar-search.sidebar-search-solid .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group{border:1px solid #2c3541;background:#2c3541}.page-sidebar .sidebar-search.sidebar-search-solid .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group .form-control{background:#2c3541}.page-sidebar .sidebar-search.sidebar-search-solid.open .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid.open .input-group{border:1px solid #364150;background:#364150}.page-sidebar .sidebar-search.sidebar-search-solid.open .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid.open .input-group .form-control{background:#364150}.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a,.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a:hover,.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light>li.active>a,.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light>li.active>a:hover{border-left:0;border-right:4px solid #EA4C61}.page-quick-sidebar-wrapper,.page-quick-sidebar-wrapper .page-quick-sidebar{background:#435468}.page-quick-sidebar-toggler{background:#576d87}.page-quick-sidebar-toggler:hover{background:#51667e}.page-quick-sidebar-toggler>i,.page-quick-sidebar-wrapper{color:#d1d6de}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a{color:#c9ced7;background:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a:hover{background:#4d6178}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li.open>a{color:#c9ced7;background:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li.active>a{border:0;background:#435468}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu{border:0;background:#576d87;box-shadow:5px 5px rgba(142,160,182,.1)}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu:after,.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu:before{border-bottom:7px solid #576d87}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li>a{color:#d1d6de}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li>a>i{color:#ccd1d9}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li>a:hover{background:#5d7591;color:#d1d6de}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li>a:hover>i{color:#d4d9e0}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li.active>a{background:#59708a;color:#d1d6de}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li.divider{background-color:#5d7591}.page-quick-sidebar-wrapper .page-quick-sidebar .list-heading{color:#a5afbd}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items>li{border-bottom-color:#495c72}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items>li:hover{background:#495c72}.page-quick-sidebar-wrapper .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list{color:#c9ced7}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search .input-group{border-bottom:1px solid #435060}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search .input-group .form-control{background-color:#435468;color:#c9ced7}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-sub{color:#9ca7b7}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-small{color:#919cae}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .datetime,.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .name{color:#bdc4ce}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .message{color:#c9ced7;background:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message .arrow{border-right-color:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message .arrow{border-left-color:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a{color:#b7bfca}.page-quick-sidebar-wrapper .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a .desc{text-decoration:underline}.page-quick-sidebar-wrapper .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li .desc{color:#b1b9c6}.page-quick-sidebar-wrapper .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li .date{color:#919cae}.page-footer .page-footer-inner{color:#98a6ba}.page-footer-fixed .page-footer{background-color:#28303b}@media (min-width:992px){.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu{box-shadow:5px 5px rgba(44,53,66,.2)}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu.sidebar-search-wrapper,.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu.sidebar-toggler-wrapper{box-shadow:none}.page-sidebar-menu.page-sidebar-menu-closed>li:hover{box-shadow:5px 5px rgba(44,53,66,.2)}.page-sidebar-menu.page-sidebar-menu-closed>li:hover.sidebar-search-wrapper,.page-sidebar-menu.page-sidebar-menu-closed>li:hover.sidebar-toggler-wrapper{box-shadow:none}.page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu{box-shadow:5px 5px rgba(44,53,66,.2)}.page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu.sidebar-search-wrapper,.page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu.sidebar-toggler-wrapper{box-shadow:none}.page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed>li.heading{padding:0;margin-top:15px;margin-bottom:15px;border-top:1px solid #3d4957!important}.page-sidebar-fixed:not(.page-footer-fixed) .page-content{border-bottom:0}.page-sidebar-fixed:not(.page-footer-fixed) .page-footer{background-color:#fff}.page-sidebar-fixed:not(.page-footer-fixed) .page-footer .page-footer-inner{color:#333}.page-boxed{background-color:#303a47!important}.page-boxed .page-container{background-color:#364150;border-left:1px solid #3d4957;border-bottom:1px solid #3d4957}.page-boxed.page-sidebar-reversed .page-container{border-left:0;border-right:1px solid #3d4957}.page-boxed.page-sidebar-fixed .page-container{border-left:0;border-bottom:0}.page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container{border-left:0;border-right:0;border-bottom:0}.page-boxed.page-sidebar-fixed .page-sidebar{border-left:1px solid #3d4957}.page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar{border-right:1px solid #3d4957;border-left:0}.page-boxed.page-sidebar-fixed.page-footer-fixed .page-footer{background-color:#303a47!important}.page-boxed.page-sidebar-fixed.page-footer-fixed .page-footer .page-footer-inner{color:#98a6ba}.page-sidebar-menu-hover-submenu li:hover a>.arrow{border-right:8px solid #323c4b}.page-sidebar-reversed .page-sidebar-menu-hover-submenu li:hover a>.arrow{border-left:8px solid #323c4b}.page-sidebar-menu-hover-submenu li:hover>.sub-menu{background:#323c4b!important}}.pace .pace-progress-inner,.page-header.navbar,.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .progress .progress-bar{box-shadow:none}@media (max-width:991px){.page-sidebar{background-color:#28303b}.page-sidebar .page-sidebar-menu>li>a{border-top:1px solid #364150}.page-sidebar .page-sidebar-menu>li.open>a,.page-sidebar .page-sidebar-menu>li:hover>a{background:#2e3744}.page-sidebar .page-sidebar-menu>li:last-child>a{border-bottom:0!important}.page-sidebar .page-sidebar-menu .sidebar-search input,.page-sidebar .page-sidebar-menu>li .sub-menu{background-color:#28303b!important}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a:hover,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a:hover,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li:hover>a{background:#2e3744}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu{background:#28303b!important}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.active>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li:hover>a{background:#2e3744!important}}@media (max-width:480px){.page-header.navbar .top-menu{background-color:#364150}.page-header-fixed-mobile .page-header.navbar .top-menu{background-color:#2b3643}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle{background-color:#415265}.page-header-fixed-mobile .page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle{background:0 0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle:hover{background-color:#3f4f62}}body{background-color:#364150}.block-spinner-bar>div,.page-spinner-bar>div{background:#20c5ad}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTQzyDMXhdD8sAj6OAJTFsBI.woff2) format('woff2')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTQ7aC6SjiAOpAWOKfJDfVRY.woff2) format('woff2');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTRdwxCXfZpKo5kWAx_74bHs.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTSGUML8f7tzeB6gGvgki0bE.woff2) format('woff2');unicode-range:U+02BC,U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200B-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTZ6vnaPZw6nYDxM4SVEMFKg.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTfy1_HTwRwgtl1cPga3Fy3Y.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTfgrLsWo7Jk1KvZser0olKY.woff2) format('woff2');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTYjoYw3YTyktCCer_ilOlhE.woff2) format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTRampu5_7CjHW5spxoeN3Vs.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/TCmDhmS1RRL7aqhqZW19hwLUuEpTyoUstqEm5AMlJo4.woff2) format('woff2')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/K88pR3goAWT7BTt32Z01m4X0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/RjgO7rYTmqiVp7vzi-Q5UYX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/ttwNtsRpgsxVmgGGmiUOEoX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+02BC,U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200B-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/LWCjsQkB6EMdfHrEVqA1KYX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/xozscpT2726on7jbcb_pAoX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/59ZRklaO5bWGqF5A9baEEYX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/u-WUoqrET9fUeobQW7jkRYX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(https://fonts.gstatic.com/s/opensans/v13/cJZKeOuBrn4kERxqtaUH3ZBw1xU1rKptJj_0jans920.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSgzyDMXhdD8sAj6OAJTFsBI.woff2) format('woff2')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSg7aC6SjiAOpAWOKfJDfVRY.woff2) format('woff2');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNShdwxCXfZpKo5kWAx_74bHs.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSiGUML8f7tzeB6gGvgki0bE.woff2) format('woff2');unicode-range:U+02BC,U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200B-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSp6vnaPZw6nYDxM4SVEMFKg.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSvy1_HTwRwgtl1cPga3Fy3Y.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSvgrLsWo7Jk1KvZser0olKY.woff2) format('woff2');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSojoYw3YTyktCCer_ilOlhE.woff2) format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNShampu5_7CjHW5spxoeN3Vs.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzAzyDMXhdD8sAj6OAJTFsBI.woff2) format('woff2')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzA7aC6SjiAOpAWOKfJDfVRY.woff2) format('woff2');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzBdwxCXfZpKo5kWAx_74bHs.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzCGUML8f7tzeB6gGvgki0bE.woff2) format('woff2');unicode-range:U+02BC,U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200B-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzJ6vnaPZw6nYDxM4SVEMFKg.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzPy1_HTwRwgtl1cPga3Fy3Y.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzPgrLsWo7Jk1KvZser0olKY.woff2) format('woff2');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzIjoYw3YTyktCCer_ilOlhE.woff2) format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzBampu5_7CjHW5spxoeN3Vs.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@media print{body{background-color:#fff!important}.hidden-print,.page-bar,.page-footer,.page-quick-sidebar-wrapper,.page-sidebar-wrapper,.theme-panel{display:none}.no-page-break{page-break-after:avoid}.page-container{margin:0!important;padding:0!important}.page-content{min-height:300px!important;padding:0 20px 20px!important;margin:0!important}}.page-header.navbar{width:100%;margin:0;border:0;padding:0;height:46px;min-height:46px;filter:none;background-image:none}.page-header.navbar.navbar-fixed-top,.page-header.navbar.navbar-static-top{z-index:9995}.page-header.navbar .page-logo{float:left;display:block;width:235px;height:46px;padding-left:20px;padding-right:20px}.page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo{padding:0}.page-header.navbar .page-logo>.logo-image,.page-header.navbar .page-logo>a{display:inline-block;float:left}.page-header.navbar .page-logo .logo-default{margin:16px 0 0}.page-header.navbar .page-logo .logo-mini{display:none;margin-left:5px}.page-header.navbar .page-logo .text-logo{padding-left:20px;padding-top:12px}.page-header.navbar .search-form{display:inline-block;width:46px;position:relative;float:left;transition:all .6s}.page-header.navbar .search-form .input-group .form-control{height:46px;border:0;background:0 0!important;font-size:13px;padding-left:0;margin-left:12px;text-indent:-150000px}.page-header.navbar .search-form .input-group .form-control:hover{cursor:pointer}.page-header.navbar .search-form .input-group .input-group-btn{height:46px}.page-header.navbar .search-form .input-group .input-group-btn .btn.submit{margin-left:-24px;padding:0;width:46px;background:0 0;margin-top:4px;display:block}.page-header.navbar .search-form .input-group .input-group-btn .btn.submit>i{font-size:15px}.page-header.navbar .search-form.open{transition:all .6s;width:300px!important}.page-header.navbar .search-form.open .input-group .form-control{text-indent:0}.page-header.navbar .search-form.open .input-group .form-control:hover{cursor:text}.page-header.navbar .search-form.open .input-group .input-group-btn .btn.submit{margin-left:0}.page-header.navbar .menu-toggler{display:block;cursor:pointer;opacity:.7;filter:alpha(opacity=70);width:24px;height:24px;background-repeat:no-repeat;background-position:center center}.page-header.navbar .menu-toggler:hover,.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li>a:hover{opacity:1;filter:alpha(opacity=100)}.page-header.navbar .menu-toggler.sidebar-toggler{float:right;margin:11px 0 0}.page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .menu-toggler.sidebar-toggler{margin-right:10.5px}.page-header.navbar .menu-toggler.responsive-toggler{display:none;float:right;margin:11px 6px 0}.page-header.navbar .top-menu{margin:0;padding:0;float:right}.page-header.navbar .top-menu .navbar-nav{padding:0;margin-right:20px;display:block}.page-header.navbar .top-menu .navbar-nav>li.dropdown{margin:0;padding:0 4px;height:46px;display:inline-block}.page-header.navbar .top-menu .navbar-nav>li.dropdown:last-child{padding-right:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle{margin:0;padding:17px 10px 9px}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle:last-child{padding-right:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle>i{font-size:17px}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle>i.glyphicon{font-size:16px}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle>.badge{font-family:"Open Sans",sans-serif;position:absolute;top:10px;right:20px;font-weight:300px;padding:3px 6px}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle:focus{background:0 0}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-menu{margin-top:3px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-menu:before{position:absolute;top:-7px;right:9px;display:inline-block!important;border-right:7px solid transparent;border-bottom:7px solid #eee;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,.2);content:''}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-menu:after{position:absolute;top:-6px;right:10px;display:inline-block!important;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-menu>li>a{color:#555}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu{min-width:160px;max-width:275px;width:275px;z-index:9995}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external{display:block;overflow:hidden;padding:15px;letter-spacing:.5px;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>h3{margin:0;padding:0;float:left;font-size:13px;display:inline-block}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>a{display:inline-block;padding:0;background:0 0;clear:inherit;font-size:13px;font-weight:300;position:absolute;right:10px;border:0;margin-top:-1px}.page-bar:after,.page-container:after,.page-footer:after,.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:after,.page-sidebar .page-sidebar-menu>li.sidebar-search-wrapper:after,.page-sidebar .page-sidebar-menu>li.sidebar-toggler-wrapper:after,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-search-wrapper:after,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-toggler-wrapper:after{clear:both}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list{padding-right:0!important;padding-left:0;list-style:none}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li>a{display:block;clear:both;font-weight:300;line-height:20px;white-space:normal;font-size:13px;padding:16px 15px 18px;text-shadow:none}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li:first-child a{border-top:none}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .details{overflow:hidden}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .details .label-icon{margin-right:10px;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;border-radius:50%}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .details .label-icon i{margin-right:2px;margin-left:1px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .details .label-icon .badge{right:15px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .time{float:right;max-width:75px;font-size:11px;font-weight:400;opacity:.7;filter:alpha(opacity=70);text-align:right;padding:1px 5px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .photo{float:left;margin:0 6px 6px 0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .photo img{height:40px;width:40px;-webkit-border-radius:50%!important;-moz-border-radius:50%!important;-ms-border-radius:50%!important;-o-border-radius:50%!important;border-radius:50%!important}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .subject{display:block;margin-left:46px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .subject .from{font-size:13px;font-weight:600}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .subject .time{font-size:12px;font-weight:400;opacity:.5;filter:alpha(opacity=50);float:right}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .message{display:block!important;font-size:12px;line-height:1.3;margin-left:46px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .task{margin-bottom:5px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .task .desc{font-size:13px;font-weight:300}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .task .percent{float:right;font-weight:600;display:inline-block}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .progress{display:block;height:8px;margin:8px 0 2px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle{padding:14px 6px 12px 8px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle>.username{display:inline-block;font-size:13px;font-weight:300}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle>img{float:left;margin-top:-5px;margin-right:5px;height:29px;display:inline-block}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle>i{display:inline-block;margin:0;font-size:13px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-menu{width:175px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-menu>li>a{font-size:14px;font-weight:300}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-menu>li>a i{width:15px;display:inline-block;margin-right:9px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-menu>li>a .badge{margin-right:10px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language{padding-left:0;padding-right:0;margin:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-toggle{padding:14px 3px 12px 7px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-toggle>img{margin-bottom:2px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-toggle>i{font-size:14px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-menu>li>a{font-size:13px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-menu>li>a>img{margin-bottom:2px;margin-right:5px}.page-header.navbar .top-menu .navbar-nav li.dropdown-dark .dropdown-menu:before{border-left:none;border-right:none}.page-header.navbar .top-menu .navbar-nav li.dropdown-dark .dropdown-menu .dropdown-menu-list>li.external a{background:0 0!important;border:none!important}@media (min-width:768px){.page-header.navbar .search-form.search-form-expanded{width:200px}.page-header.navbar .search-form.search-form-expanded .input-group .form-control{text-indent:0}.page-header.navbar .search-form.search-form-expanded .input-group .form-control:hover{cursor:text}.page-header.navbar .search-form.search-form-expanded .input-group .input-group-btn .btn.submit{margin-left:0}}.page-header.navbar .container{position:relative}.page-header.navbar .hor-menu .navbar-nav,.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown{position:static}.page-header.navbar .hor-menu{margin:0;float:left}.page-header.navbar .hor-menu .navbar-nav.navbar-right .dropdown-menu{left:auto;right:0}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu{left:auto;width:auto}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content{font-family:"Open Sans",sans-serif;padding:15px;margin:0}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content.mega-menu-responsive-content{padding:10px 18px 10px 45px}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu{padding:0;margin:0}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu:last-child{border-right:0}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li{padding:1px!important;margin:0!important;list-style:none}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>h3{margin-top:5px;padding-left:6px;font-size:15px;font-weight:400}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a{white-space:normal;font-family:"Open Sans",sans-serif;padding:7px;margin:0;font-size:14px;font-weight:300}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a.iconify{padding:7px 7px 7px 30px}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a.iconify>i{position:absolute;top:auto!important;margin-left:-24px;font-size:15px;margin-top:3px!important}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a .badge,.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a .label{margin-left:5px}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown.mega-menu-full .dropdown-menu{left:20px;right:20px}.page-header.navbar .hor-menu .navbar-nav>li.menu-dropdown .dropdown-menu:after,.page-header.navbar .hor-menu .navbar-nav>li.menu-dropdown .dropdown-menu:before{display:none!important}.page-header.navbar .hor-menu .navbar-nav>li>a{font-size:14px;font-weight:400;padding:13px}.page-header.navbar .hor-menu .navbar-nav>li>a:focus{background:0 0!important}.page-header.navbar .hor-menu .navbar-nav>li.active .selected,.page-header.navbar .hor-menu .navbar-nav>li.current .selected{left:50%;bottom:0;position:absolute;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid transparent;display:inline-block;margin:0 0 -6px -7px;width:0;height:0}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu{margin-top:0;border:none}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a{font-family:"Open Sans",sans-serif;font-size:14px;font-weight:300;padding:9px 10px;white-space:normal}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a .badge,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a .label{font-weight:300}.page-header.navbar .hor-menu .navbar-nav>li.classic-menu-dropdown .dropdown-menu{min-width:195px;max-width:235px}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-submenu>.dropdown-menu{top:0}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-submenu>a:after{top:9px;right:10px}@media (min-width:992px) and (max-width:1200px){.page-boxed .page-header.navbar .top-menu .navbar-nav>li.dropdown-language .dropdown-toggle .langname,.page-boxed .page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle .username.username-hide-on-mobile{display:none}}@media (min-width:992px){.page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo{padding:0;width:45px}.page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo .logo-default{display:none}.page-boxed .page-header.navbar .page-logo{width:236px}.page-boxed .page-header.navbar .top-menu .navbar-nav{margin-right:0}.page-sidebar-closed.page-sidebar-closed-hide-logo.page-boxed .page-header.navbar .page-logo{width:46px}.page-boxed.page-sidebar-fixed .page-header.navbar .page-logo{width:235px}}@media (max-width:991px){.page-header.navbar{padding:0 20px;position:relative;clear:both}.page-header.navbar .page-logo{width:auto;padding:0;margin-right:10px;margin-left:0!important;padding-left:0!important}.page-header.navbar .page-logo img{margin-left:4px!important}.page-header.navbar .menu-toggler.sidebar-toggler{display:none!important}.page-header.navbar .menu-toggler.responsive-toggler{display:inline-block}.page-header.navbar .top-menu .navbar-nav{display:inline-block;margin:0 10px 0 0}.page-header.navbar .top-menu .navbar-nav>li{float:left}.page-header.navbar .top-menu .navbar-nav .nav li.dropdown i{display:inline-block;position:relative;top:1px;right:0}.page-header.navbar .top-menu .navbar-nav .open .dropdown-menu{position:absolute}.page-header-fixed.page-header-fixed-mobile .navbar-fixed-top{position:fixed}.page-boxed .page-header.navbar>.container{max-width:none!important;margin:0!important;padding:0!important}}@media (min-width:768px) and (max-width:991px){.page-boxed .page-header.navbar{margin:auto!important;padding:0}.page-boxed .page-header.navbar>.container{margin:auto!important}}@media (max-width:767px){.page-header.navbar{padding:0 10px}.page-header.navbar .page-logo{width:auto}.page-header.navbar .search-form.open{z-index:3;left:10px;right:10px;position:absolute;width:auto!important}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended>.dropdown-menu{max-width:255px;width:255px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu{margin-right:-190px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu:after,.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu:before{margin-right:190px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox .dropdown-menu{margin-right:-150px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox .dropdown-menu:after,.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox .dropdown-menu:before{margin-right:150px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu{margin-right:-110px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu:after,.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu:before{margin-right:110px}}@media (max-width:580px){.page-header.navbar .top-menu .navbar-nav>li.dropdown-language .dropdown-toggle .langname,.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle .username.username-hide-on-mobile{display:none}}@media (max-width:480px){.page-header-fixed.page-header-fixed-mobile .page-header.navbar{height:92px}.page-header.navbar .top-menu{display:block;clear:both}.page-header.navbar .top-menu .navbar-nav{margin-right:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle{padding:17px 6px 9px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language .dropdown-toggle{padding:14px 4px 12px 2px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle{padding:14px 0 12px 2px}}.pace .pace-progress{z-index:10000;top:44px;height:2px}.pace .pace-activity{top:48px;right:22px;border-radius:10px!important}.page-container{margin:0;padding:0;position:relative}.page-container:after,.page-container:before{content:" ";display:table}.page-header-fixed .page-container{margin-top:46px}.page-footer-fixed.page-footer-fixed-mobile .page-container{margin-bottom:20px!important}@media (min-width:992px){.page-footer-fixed .page-container{margin-bottom:20px!important}}@media (max-width:991px){.page-container{margin:0!important;padding:0!important}.page-header-fixed.page-header-fixed-mobile .page-container{margin-top:46px!important}}@media (max-width:480px){.page-header-fixed .pace .pace-progress{top:92px}.page-header-fixed .pace .pace-activity{top:188px;right:15px}.page-header-fixed.page-header-fixed-mobile .page-container{margin-top:92px!important}}.ie8 .page-sidebar{width:235px;float:left;position:relative;margin-right:-100%}.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover.navbar-collapse,.page-sidebar.navbar-collapse{padding:0;box-shadow:none}.page-sidebar .page-sidebar-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu{list-style:none;margin:0;padding:0}.page-sidebar .page-sidebar-menu>li,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li{display:block;margin:0;padding:0;border:0}.page-sidebar .page-sidebar-menu>li.sidebar-search-wrapper,.page-sidebar .page-sidebar-menu>li.sidebar-toggler-wrapper,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-search-wrapper,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-toggler-wrapper{border:0!important}.page-sidebar .page-sidebar-menu>li.sidebar-search-wrapper:after,.page-sidebar .page-sidebar-menu>li.sidebar-search-wrapper:before,.page-sidebar .page-sidebar-menu>li.sidebar-toggler-wrapper:after,.page-sidebar .page-sidebar-menu>li.sidebar-toggler-wrapper:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-search-wrapper:after,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-search-wrapper:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-toggler-wrapper:after,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-toggler-wrapper:before{content:" ";display:table}.page-sidebar .page-sidebar-menu>li.start>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.start>a{border-top-color:transparent!important}.page-sidebar .page-sidebar-menu>li.last>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.last>a{border-bottom-color:transparent!important}.page-sidebar .page-sidebar-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a{display:block;position:relative;margin:0;border:0;padding:10px 15px;text-decoration:none;font-size:14px;font-weight:300}.page-sidebar .page-sidebar-menu>li>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i{font-size:16px;margin-right:5px;text-shadow:none}.page-sidebar .page-sidebar-menu>li>a>i.glyphicon,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i.glyphicon{top:3px;margin-left:1px;margin-right:4px}.page-sidebar .page-sidebar-menu>li>a>[class^=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>[class^=icon-]{top:2px;margin-left:1px;margin-right:4px}.page-sidebar-fixed .page-sidebar .page-sidebar-menu>li>a,.page-sidebar-fixed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a{transition:all .2s ease}.page-sidebar-reversed.page-sidebar-fixed .page-sidebar .page-sidebar-menu>li>a,.page-sidebar-reversed.page-sidebar-fixed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a{transition:none}.page-sidebar .page-sidebar-menu>li.heading,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.heading{padding:15px}.page-sidebar .page-sidebar-menu>li.heading>h3,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.heading>h3{margin:0;padding:0;font-size:14px;font-weight:300}.page-sidebar .page-sidebar-menu>li.heading+li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.heading+li>a{border-top:0}.page-sidebar .page-sidebar-menu>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a{font-size:14px}.page-sidebar .page-sidebar-menu>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a{border:none;text-shadow:none;font-size:14px}.page-sidebar .page-sidebar-menu>li.active>a>.selected,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.selected{display:block;float:right;position:absolute;right:0;top:8px;background:0 0;width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-right:12px solid #fff}.page-sidebar-reversed .page-sidebar .page-sidebar-menu>li.active>a>.selected,.page-sidebar-reversed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.selected{right:auto;left:0;border-right:0;border-left:8px solid #fff}.page-container-bg-solid .page-sidebar .page-sidebar-menu>li.active>a>.selected,.page-container-bg-solid .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.selected{border-color:transparent #F1F3FA transparent transparent}.page-container-bg-solid.page-sidebar-reversed .page-sidebar .page-sidebar-menu>li.active>a>.selected,.page-container-bg-solid.page-sidebar-reversed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.selected{border-color:transparent transparent transparent #F1F3FA}.page-sidebar .page-sidebar-menu li>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.arrow:before{float:right;width:10px;text-align:center;margin-top:-1px;margin-right:5px;margin-left:5px;display:inline;font-size:16px;font-family:FontAwesome;height:auto;content:"\f104";font-weight:300;text-shadow:none}.page-sidebar .page-sidebar-menu li>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.arrow.open:before{content:"\f107"}.page-sidebar .page-sidebar-menu li>a>.badge,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.badge{float:right;margin-top:1px;margin-right:0}.page-sidebar .page-sidebar-menu .sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu{list-style:none;display:none;padding:0;margin:8px 0}.page-sidebar .page-sidebar-menu .sub-menu li,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li{background:0 0;margin:0;padding:0;margin-top:1px!important}.page-sidebar .page-sidebar-menu .sub-menu li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>a{display:block;margin:0;padding:6px 15px 6px 43px;text-decoration:none;font-size:14px;font-weight:300;background:0 0}.page-sidebar .page-sidebar-menu .sub-menu li>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>a>i{font-size:14px}.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu{margin:0}.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>a{padding-left:60px}.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu{margin:0}.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a{padding-left:80px}.page-sidebar .page-sidebar-menu li.active>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active>.sub-menu{display:block}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li>a{border:0;margin:0;padding-left:11px;border-left:4px solid transparent}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu{margin:0;padding:1px 0}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li>a{padding-top:8px;padding-bottom:8px}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li:first-child,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li:first-child{margin-top:0!important}.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li>a,.page-sidebar-reversed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li>a{padding-left:15px;padding-right:11px;border-left:0;border-right:4px solid transparent}.page-sidebar .sidebar-toggler,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler{display:block;cursor:pointer;opacity:.7;filter:alpha(opacity=70);width:30px;height:27px;margin-top:15px;margin-right:19px;float:right;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-sidebar .sidebar-toggler:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler:hover{filter:alpha(opacity=100);opacity:1}.page-sidebar .sidebar-search,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search{padding:0;margin:22px 18px}.page-sidebar .sidebar-search .remove,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .remove{display:none}.page-sidebar .sidebar-search .remove>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .remove>i{font-size:16px}.page-sidebar .sidebar-search .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-sidebar .sidebar-search .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control{border:0;font-size:14px;padding:0;height:auto;line-height:auto;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-sidebar .sidebar-search .input-group .input-group-btn .btn,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn{padding:2px 0 0;background-color:transparent;background-repeat:no-repeat;background-position:100% 3px}.page-sidebar .sidebar-search .input-group .input-group-btn .btn>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn>i{font-size:15px}.page-sidebar .sidebar-search.sidebar-search-bordered,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered{margin:25px 18px}.page-sidebar .sidebar-search.sidebar-search-bordered .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group .form-control{font-size:13px;padding:6px 8px}.page-sidebar .sidebar-search.sidebar-search-bordered .input-group .input-group-btn .btn,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group .input-group-btn .btn{margin-right:6px}@media (min-width:992px){.page-full-width .page-sidebar,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.open>.sub-menu,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>.sub-menu{display:none!important}.page-sidebar{width:235px;float:left;position:relative;margin-right:-100%}.page-sidebar.navbar-collapse{max-height:none!important}.page-sidebar-reversed .page-sidebar{float:right;margin-right:0;margin-left:-100%}.page-sidebar-reversed.page-sidebar-fixed .page-sidebar{margin-left:-235px}.page-sidebar-reversed.page-sidebar-fixed .page-sidebar-wrapper{position:relative;float:right}.page-sidebar-fixed .page-sidebar{position:fixed!important;margin-left:0;top:46px}.page-sidebar-fixed .page-sidebar-menu>li.last{margin-bottom:15px!important}.page-sidebar-closed .page-sidebar,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed{width:45px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover{width:256px!important;position:relative!important;z-index:10000;display:block!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;-ms-border-radius:0 4px 0 0;-o-border-radius:0 4px 0 0;border-radius:0 4px 0 0}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>i{margin-right:10px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>.title{display:inline!important;padding-left:15px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>.badge{display:block!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>.selected{display:none}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover.heading{width:45px!important;box-shadow:none}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu{width:210px;position:absolute;z-index:2000;left:46px;margin-top:0;top:100%;display:block!important;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu>li>a{padding-left:15px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu>li>.sub-menu>li>a{padding-left:30px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu>li>.sub-menu>li>.sub-menu>li>a{padding-left:45px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.heading>h3{display:none}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-toggler-wrapper .sidebar-toggler{margin-right:8px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-search-wrapper:hover,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-toggler-wrapper:hover{width:45px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a{padding-left:11px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a .selected{right:-3px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a>.arrow,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a>.badge,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a>.title{display:none!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-toggler{margin-left:3px;margin-right:3px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group{border-color:transparent;margin-left:-4px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group .form-control{display:none}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group .input-group-btn .btn{display:block}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.sidebar-search-bordered .input-group{padding:5px 0 3px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open{height:39px;margin-top:14px;margin-bottom:14px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group{width:210px;position:relative;z-index:1;margin-left:24px;padding:0}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .form-control{background:0 0;border:0;display:block;padding:8px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .input-group-btn .btn{display:block;margin-right:8px;margin-top:1px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .remove{background-repeat:no-repeat;width:11px;height:11px;margin:9px -5px 9px -7px;display:block;float:left}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open.sidebar-search-bordered{height:36px;margin-top:23px;margin-bottom:23px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open.sidebar-search-bordered .input-group{padding:0}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed>li>a{padding-right:11px;padding-left:7px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar{margin-left:-45px;width:45px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>.sub-menu{left:auto;right:46px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover{margin-left:-211px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a{-webkit-border-radius:4px 0 0;-moz-border-radius:4px 0 0;-ms-border-radius:4px 0 0 0;-o-border-radius:4px 0 0;border-radius:4px 0 0}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>.title{padding-left:0;padding-right:15px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>i{margin-right:0;margin-left:2px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-search-wrapper:hover,.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-toggler-wrapper:hover{margin-left:0}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group{margin-left:-227px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .input-group-btn .btn{margin-right:10px!important}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .remove{margin:9px 4px 12px -16px!important;float:right!important}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed>li>a{padding-right:7px;padding-left:11px}.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover{width:235px!important;display:absolute;z-index:10000}.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu{width:235px!important}.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .selected{display:none!important}.page-sidebar-closed.page-sidebar-fixed.page-sidebar-reversed .page-sidebar:hover{width:235px!important;display:absolute;z-index:10000;margin-left:-235px!important}.page-sidebar-closed.page-sidebar-fixed.page-sidebar-reversed .page-sidebar:hover .page-sidebar-menu{width:235px!important}.page-sidebar-closed.page-sidebar-hide .page-sidebar{display:none!important}.page-sidebar-menu.page-sidebar-menu-hover-submenu li .sub-menu{display:none;width:210px;z-index:2000;position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-sidebar-menu.page-sidebar-menu-hover-submenu li .sub-menu>li>a{margin:3px}.page-sidebar-menu.page-sidebar-menu-hover-submenu li.active .sub-menu,.page-sidebar-menu.page-sidebar-menu-hover-submenu li.open .sub-menu{display:none!important}.page-sidebar-menu.page-sidebar-menu-hover-submenu li a>.arrow{display:none}.page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>a>.arrow{display:block;float:right;position:absolute;right:0;margin-top:-20px;background:0 0;width:0;height:0;border-style:solid;border-top:12px double transparent;border-bottom:12px double transparent;border-left:0}.page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>a>.arrow:after,.page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>a>.arrow:before{display:none}.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>a>.arrow{right:auto;left:0;border-right:0}.page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>.sub-menu{display:inline-block!important}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>a>.arrow{z-index:1;right:0;margin-top:-23px}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>a>.selected{display:none}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu{margin-left:235px;margin-top:-40px}.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu{margin-left:-210px!important}.page-sidebar-closed .page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu{margin-left:0}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu>li>a{padding-left:15px}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu>li .sub-menu{margin-left:210px;margin-top:-38px!important}.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu>li .sub-menu{margin-left:-210px!important}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu>li .sub-menu>li>a{padding-left:10px;padding-right:10px}.page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-hover-submenu li:hover>.sub-menu,.page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-hover-submenu li:hover>.sub-menu>li>.sub-menu{margin-top:-41px}}@media (max-width:991px){.page-sidebar,.page-sidebar.navbar-collapse.in{border-top:0!important;margin:20px}.page-sidebar .sidebar-toggler{display:none}.page-sidebar .selected,.page-sidebar.navbar-collapse.collapse{display:none!important}.page-sidebar.navbar-collapse{max-height:none}.page-sidebar.navbar-collapse.in{position:relative;overflow:hidden!important;overflow-y:auto!important;display:block!important}.page-sidebar.navbar-collapse.navbar-no-scroll{max-height:none!important}.page-sidebar .mega-menu-responsive-content{padding:10px 18px 10px 45px}.page-full-width .page-sidebar-menu{display:block}}@media (min-width:768px) and (max-width:991px){.page-sidebar .btn-navbar.collapsed .arrow{display:none}.page-sidebar .btn-navbar .arrow{position:absolute;right:25px;width:0;height:0;top:50px;border-bottom:15px solid #5f646b;border-left:15px solid transparent;border-right:15px solid transparent}}.page-header .top-menu .dropdown-quick-sidebar-toggler>.dropdown-toggle{padding:17px 10px 9px!important}.page-header .top-menu .dropdown-quick-sidebar-toggler>.dropdown-toggle i{top:0}.page-quick-sidebar-open .page-header .top-menu .dropdown-quick-sidebar-toggler>.dropdown-toggle i:before{content:"\e066"}.page-quick-sidebar-wrapper{transition:right .3s;z-index:9994;position:fixed;top:46px;bottom:0;right:-270px;width:270px;overflow:hidden}.page-quick-sidebar-wrapper.phonebar{top:0}.page-footer-fixed .page-quick-sidebar-wrapper{bottom:33px}.page-quick-sidebar-full-height .page-quick-sidebar-wrapper{top:0;bottom:0}.page-quick-sidebar-open .page-quick-sidebar-wrapper{transition:right .3s;right:0}.page-quick-sidebar-toggler{overflow:hidden;z-index:9994;display:none;width:28px;height:27px;position:fixed;top:19px;right:15px;text-align:center;padding-top:6px}.page-quick-sidebar-open .page-quick-sidebar-toggler{display:inline-block}.page-quick-sidebar-toggler>i{font-size:17px}@media (max-width:480px){.page-sidebar,.page-sidebar.in{margin:0 10px 10px!important}.page-header-fixed.page-header-fixed-mobile .page-sidebar,.page-header-fixed.page-header-fixed-mobile .page-sidebar.in{margin-top:10px!important}.page-quick-sidebar-wrapper{top:92px}.page-quick-sidebar-toggler{top:65px}}.page-content-wrapper,.page-footer,.page-header,.page-sidebar-wrapper{transition:margin .3s}.page-quick-sidebar-open.page-quick-sidebar-push-content .page-content-wrapper,.page-quick-sidebar-open.page-quick-sidebar-push-content .page-sidebar-wrapper{transition:margin-left .3s;margin-left:-270px}.page-quick-sidebar-open.page-quick-sidebar-push-content .page-footer{transition:margin-right .3s;margin-right:270px;margin-left:-270px}.page-sidebar-reversed.page-quick-sidebar-open.page-quick-sidebar-push-content .page-sidebar-wrapper{transition:margin-right .3s;margin-right:270px}.page-quick-sidebar-open.page-quick-sidebar-push-content.page-quick-sidebar-full-height .page-header{transition:margin-left .3s;margin-left:-270px}.page-quick-sidebar-open.page-quick-sidebar-push-content.page-footer-fixed:not(.page-quick-sidebar-full-height) .page-footer{margin-left:0;margin-right:0}.page-quick-sidebar-open.page-quick-sidebar-over-content-transparent .page-quick-sidebar-wrapper{opacity:.9;filter:alpha(opacity=90)}@media (max-width:991px){.page-quick-sidebar-open.page-quick-sidebar-push-content .page-sidebar-wrapper{display:none}}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified{margin:0;padding:0}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li{display:table-cell!important;width:1%!important}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a{padding:15px;border:0;height:46px;font-size:13px;text-transform:uppercase;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a>.badge{position:absolute;top:12px;right:3px}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a:hover{border:0}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu{margin-top:8px;margin-right:20px}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu:before{position:absolute;top:-7px;right:19px;display:inline-block!important;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,.2);content:''}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu:after{position:absolute;top:-6px;right:20px;display:inline-block!important;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>.tab-content{margin:0;padding:0}.page-quick-sidebar-wrapper .page-quick-sidebar .list-heading{font-size:16px;margin:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items{margin:0;padding:0;list-style:none}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items>li{margin:0;padding:10px;background:0 0;border-bottom-width:1px;border-bottom-style:solid}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items>li:last-child{border-bottom:0}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items.borderless li{border:0}.page-quick-sidebar-wrapper .page-quick-sidebar .inner-content{margin:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-list{position:absolute!important;width:270px!important;transition:margin .3s}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item{position:absolute!important;width:270px!important;transition:margin .3s;margin-left:270px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav{padding:0 10px 5px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list{vertical-align:middle;display:inline-block;font-size:14px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list>i{font-size:17px;line-height:17px;vertical-align:top;margin-right:3px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list{transition:margin .3s;margin-left:-270px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list .slimScrollBar,.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list .slimScrollRail{display:none!important}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-item{transition:margin .3s;margin-left:0}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users{padding:10px 0;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media{padding:12px 10px 11px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object{border-radius:50%!important;width:38.57px;opacity:.8;filter:alpha(opacity=80);float:left;margin-right:10px}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search{padding:0;margin:10px 22px}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search .input-group .form-control{border:0;font-size:14px;padding:0;height:auto}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search .input-group .input-group-btn .btn{padding:2px 0 0;background-color:transparent;background-repeat:no-repeat;background-position:100% 3px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:after,.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:before{content:" ";display:table}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media:hover{cursor:pointer}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media:hover .media-object{opacity:1;filter:alpha(opacity=100)}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading{margin:5px 0 0;font-size:14px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-sub{font-size:11px;text-transform:uppercase}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-small{font-size:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-status{margin-top:10px;right:10px;position:absolute;display:inline-block}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages{padding:0 10px;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post{transition:display .3s;padding:5px 0;margin:10px auto;font-size:12px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .body{display:block;word-wrap:break-word}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .avatar{width:38.57px;border-radius:50%!important}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .avatar{float:left;margin-right:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .avatar{float:right;margin-left:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .name{font-size:12px;font-weight:300}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .datetime{font-size:12px;font-weight:300;text-style:italic}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .message{display:block;padding:5px;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message{text-align:left;margin-left:55px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message .arrow{display:block;position:absolute;top:9px;left:-6px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right-width:6px;border-right-style:solid}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message{margin-right:55px;text-align:right}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message .arrow{display:block;position:absolute;top:9px;right:-6px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left-width:6px;border-left-style:solid}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .datetime,.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .name{text-align:right}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-form{padding:20px 10px 15px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-form .input-group .form-control{font-size:13px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list{padding:10px 0;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li .label{margin-top:5px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li .desc{padding:0}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list{padding:10px 0;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li .bootstrap-switch{margin-top:-3px;float:right;border:0;min-width:59px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li .form-control{width:75px!important;padding:4px!important;float:right;border:0;margin-top:-4px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li select.form-control{padding:4px 0!important}.page-title{padding:0;font-size:28px;letter-spacing:-1px;display:block;color:#666;margin:0 0 15px;font-weight:300;font-family:"Open Sans",sans-serif}.page-title small{font-size:14px;letter-spacing:0;font-weight:300;color:#888}.page-container-bg-solid .page-title{color:#666;margin-bottom:20px;margin-top:20px}.page-container-bg-solid .page-title small{color:#666}.page-bar{padding:0;background-color:#f7f7f7;margin-bottom:25px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-bar:after,.page-bar:before{content:" ";display:table}.page-bar .page-breadcrumb{display:inline-block;float:left;padding:8px;margin:0;list-style:none}.page-bar .page-breadcrumb>li{display:inline-block}.ie8 .page-bar .page-breadcrumb>li{margin-right:1px}.page-bar .page-breadcrumb>li>a,.page-bar .page-breadcrumb>li>span{color:#888;font-size:14px;text-shadow:none}.page-bar .page-breadcrumb>li>i{color:#aaa;font-size:14px;text-shadow:none}.page-bar .page-breadcrumb>li>i[class*=icon-],.page-bar .page-breadcrumb>li>i[class^=icon-]{color:gray}.page-bar .page-toolbar{display:inline-block;float:right;padding:0}.page-bar .page-toolbar .btn-fit-height{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-ms-border-radius:0 4px 4px 0;-o-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;padding-top:8px;padding-bottom:8px}.page-container-bg-solid .page-bar{position:relative;padding:0 20px;background-color:#fff;margin:-25px -20px 0}.page-container-bg-solid .page-bar .page-breadcrumb{padding:11px 0}.page-container-bg-solid .page-bar .page-breadcrumb>li>a,.page-container-bg-solid .page-bar .page-breadcrumb>li>span{color:#888}.page-container-bg-solid .page-bar .page-breadcrumb>li>i{color:#aaa}.page-container-bg-solid .page-bar .page-breadcrumb>li>i[class*=icon-],.page-container-bg-solid .page-bar .page-breadcrumb>li>i[class^=icon-]{color:#8c8c8c}.page-container-bg-solid .page-bar .page-toolbar{padding:6px 0}.page-container-bg-solid .page-bar .page-toolbar .btn{margin-top:-2px}.page-container-bg-solid .page-bar .page-toolbar .btn.btn-sm{margin-top:0}.page-content{margin-top:0;padding:0;background-color:#fff}.page-container-bg-solid .page-content{background:#F1F3FA}.page-full-width .page-content{margin-left:0!important}@media (min-width:992px){.page-content-wrapper{float:left;width:100%}.page-content-wrapper .page-content{margin-left:235px;margin-top:0;min-height:600px;padding:25px 20px 10px}.page-content-wrapper .page-content.no-min-height{min-height:auto}.page-sidebar-fixed.page-sidebar-hover-on .page-content-wrapper .page-content{margin-left:45px}.page-sidebar-reversed .page-content-wrapper .page-content{margin-left:0!important;margin-right:235px!important}.page-sidebar-reversed.page-sidebar-fixed.page-sidebar-hover-on .page-content-wrapper .page-content{margin-left:0;margin-right:45px}.page-sidebar-reversed.page-sidebar-closed .page-content-wrapper .page-content{margin-left:0!important;margin-right:45px!important}.page-sidebar-closed .page-content-wrapper .page-content{margin-left:45px!important}.page-full-width .page-content-wrapper .page-content,.page-sidebar-closed.page-sidebar-hide .page-content-wrapper .page-content{margin-left:0!important}.page-sidebar-closed.page-sidebar-reversed.page-sidebar-hide .page-content-wrapper .page-content{margin-right:0!important}}@media (max-width:991px){.page-container-bg-solid .page-bar{margin-top:-20px}.page-boxed>.container{max-width:none!important;margin:0!important;padding:0!important}.page-content-wrapper .page-content{margin:0!important;padding:20px!important;min-height:280px}}@media (min-width:768px) and (max-width:991px){.page-boxed>.container{margin:auto!important}}@media (max-width:767px){.page-content-wrapper .page-content{padding:20px 10px 10px!important;overflow:hidden}.page-content-wrapper .page-content .page-title{margin-bottom:20px;font-size:18px}.page-content-wrapper .page-content .page-title small{font-size:13px;padding-top:3px}}@media (max-width:480px){.page-content-wrapper .page-content .page-title small{display:block;clear:both}}.page-footer{padding:8px 20px 5px;font-size:12px;height:33px}.page-footer:after,.page-footer:before{content:" ";display:table}.page-footer .page-footer-inner{float:left;display:inline-block}.page-footer-fixed.page-footer-fixed-mobile .page-footer{position:fixed;left:0;right:0;z-index:10000;bottom:0}.page-footer-fixed.page-footer-fixed-mobile.page-sidebar-fixed .page-footer{margin-left:0!important}@media (min-width:992px){.page-footer{clear:left}.page-footer-fixed .page-footer{position:fixed;left:0;right:0;z-index:10000;bottom:0}.page-sidebar-fixed.page-sidebar-closed .page-footer{margin-left:45px}.page-sidebar-fixed.page-footer-fixed .page-footer{margin-left:0!important}.page-sidebar-fixed .page-footer{margin-left:235px;padding:8px 20px 5px}.page-boxed .page-footer{padding:8px 0 5px}.page-boxed.page-sidebar-fixed .page-footer{padding-right:20px;padding-left:20px}.page-sidebar-reversed.page-sidebar-fixed .page-footer{margin-left:0;margin-right:235px;padding:8px 20px 5px}.page-sidebar-reversed.page-sidebar-fixed.page-footer-fixed .page-footer{margin-left:0;margin-right:0}.page-sidebar-reversed.page-sidebar-fixed.page-sidebar-closed .page-footer{margin-right:45px}}#ui-grid-twbs #ui-grid-twbs .btn-group-vertical>.btn-group:after,#ui-grid-twbs #ui-grid-twbs .btn-toolbar:after,#ui-grid-twbs #ui-grid-twbs .form-horizontal .form-group:after,.aside .aside-dialog .aside-footer:after,.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.container-fluid:after,.container:after,.dataTable,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after,.scroller-footer:after,.ui-grid-clearfix:after,.ui-grid-footer-canvas:after,.ui-grid-header-canvas:after{clear:both}@media (max-width:991px){.page-boxed .page-footer{padding-left:0;padding-right:0}}@media (max-width:767px){.page-boxed .page-footer,.page-footer{padding-left:10px;padding-right:10px}.page-footer-fixed .page-footer .container{padding-left:0;padding-right:0}}.scroll-to-top{padding:1px;text-align:center;position:fixed;bottom:10px;z-index:10001;display:none;right:10px}.theme-panel>.toggler,.theme-panel>.toggler-close{padding:20px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;top:4px;cursor:pointer}.scroll-to-top>i{display:inline-block;color:#687991;font-size:30px;opacity:.6;filter:alpha(opacity=60)}.scroll-to-top:hover{cursor:pointer}.scroll-to-top:hover>i{opacity:1;filter:alpha(opacity=100)}@media (min-width:992px){.scroll-to-top{right:20px}}@media (max-width:991px){.scroll-to-top{bottom:10px;right:10px}.scroll-to-top>i{font-size:28px}}.theme-panel{width:420px;margin-top:-13px;margin-right:0;z-index:100;float:right;position:relative}.theme-panel>.toggler{right:0;position:absolute;background:url(../img/icon-color.png) center no-repeat #d5dade;border-radius:4px}.theme-panel>.toggler:hover{background-color:#3d3d3d!important}.theme-panel>.toggler-close{display:none;right:0;z-index:101;position:absolute;background:url(../img/icon-color-close.png) center no-repeat #3d3d3d!important;border-radius:4px}.theme-panel>.toggler-close:hover{background-color:#222!important}.theme-panel>.theme-options{top:4px;right:0;display:none;position:absolute;z-index:100;background:#3d3d3d;box-shadow:5px 5px rgba(61,61,61,.1);-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.modal-open .colorpicker,.modal-open .datepicker,.modal-open .daterangepicker,.modal-open .datetimepicker{z-index:10055!important}.theme-panel>.theme-options>.theme-option{color:#cfcfcf;padding:10px;border-top:1px solid #444;margin-top:0;margin-bottom:0}.theme-panel>.theme-options>.theme-option>span{text-transform:uppercase;display:inline-block;width:145px;font-size:13px;font-weight:300}.theme-panel>.theme-options>.theme-option>select.form-control{display:inline;width:135px;padding:2px;text-transform:lowercase}.theme-panel>.theme-options>.theme-option.theme-colors{border-top:0}.theme-panel>.theme-options>.theme-option.theme-colors>span{display:block;width:auto}.theme-panel>.theme-options>.theme-option.theme-colors>ul{list-style:none;padding:0;display:block;margin-bottom:10px!important;margin-top:15px}.colorpicker.dropdown-menu,.daterangepicker.dropdown-menu,.datetimepicker.dropdown-menu{padding:5px}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li{width:40px;height:40px;margin:0 4px;cursor:pointer;list-style:none;float:left;border:1px solid #707070}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li:first-child{margin-left:0}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.current,.theme-panel>.theme-options>.theme-option.theme-colors>ul>li:hover{border:2px solid #d64635}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-default{background:#333438}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-darkblue{background:#2b3643}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-blue{background:#2D5F8B}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-grey{background:#697380}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-light{background:#F9FAFD}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-light2{background:#F1F1F1}.page-container-bg-solid .theme-panel{position:absolute;margin-top:30px;margin-right:20px;right:0}.page-container-bg-solid .theme-panel>.toggler{background:url(../img/icon-color.png) center no-repeat #BFCAD1}.page-container-bg-solid.page-sidebar-reversed .theme-panel{margin-right:255px}.page-on-load{background:#fefefe}.datepicker .active,.datepicker .active:hover,.datepicker .selected,.datepicker .today{background-image:none!important;filter:none!important}.page-on-load .page-container,.page-on-load .page-footer,.page-on-load .page-header,.page-on-load>.clearfix{display:none;transition:all 2s}.input-group.color .input-group-btn i{position:absolute;display:block;cursor:pointer;width:20px;height:20px;right:6px}.datepaginator a{font-family:'Open Sans';font-size:13px;font-weight:300}.datepicker table td,.datepicker table th,.datetimepicker table td,.datetimepicker table th{font-family:'Open Sans'!important}#dp-calendar{right:4px!important}.datepaginator .fa-angle-right:before{content:"\f105"}.datepaginator .fa-angle-left:before{content:"\f104"}.datepicker.dropdown-menu{padding:5px;box-shadow:5px 5px rgba(102,102,102,.1);border:1px solid #efefef}.datepicker .selected{background-color:#909090!important}.datepicker .active{background-color:#4b8df8!important}.datepicker .active:hover{background-color:#2678FC!important}.datepicker .input-daterange input{text-align:left}.datepicker table td{color:#000;font-weight:300!important}.datepicker table th{color:#333;font-weight:400!important}.daterangepicker{margin-top:4px}.daterangepicker td{text-shadow:none}.daterangepicker td.active{background-color:#4b8df8;background-image:none;filter:none}.datetimepicker .active,.datetimepicker .active:hover{filter:none!important;background-image:none!important}.daterangepicker th{font-weight:400;font-size:14px}.daterangepicker .ranges input[type=text]{width:70px!important;font-size:11px;vertical-align:middle}.daterangepicker .ranges label{font-weight:300;display:block}.daterangepicker .ranges .btn{margin-top:10px}.daterangepicker .ranges li{color:#333}.daterangepicker .ranges li.active,.daterangepicker .ranges li:hover{background:#4b8df8!important;border:1px solid #4b8df8!important;color:#fff}.daterangepicker .range_inputs input{margin-bottom:0!important}.daterangepicker .fa-angle-right:before{content:"\f105"}.daterangepicker .fa-angle-left:before,.datetimepicker .fa-angle-left:before{content:"\f104"}.datetimepicker table td{color:#000;font-weight:300!important}.datetimepicker table th{font-weight:400!important}.datetimepicker .active{background-color:#4b8df8!important}.datetimepicker .active:hover{background-color:#2678FC!important}.datetimepicker .fa-angle-right:before{content:"\f105"}.editable-input table,.editable-input table td,.editable-input table th,.editable-input table tr{border:0!important}.editable-input .combodate select{margin-bottom:5px}.fileinput{margin-bottom:0}.fileinput .close{float:none}.fileinput .input-group{white-space:nowrap;overflow:hidden}.md-input{padding:5px!important;border-bottom:0!important;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.md-editor{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.md-editor .btn-toolbar{margin-left:0;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.md-editor .btn-toolbar .btn-group .btn-sm.btn{padding-bottom:3px}.md-editor .btn-toolbar .btn-group .btn-primary{padding-top:5px;padding-bottom:7px}.md-editor.active{border:1px solid #999;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important}.has-error .md-editor{border:1px solid #ebccd1!important}.has-success .md-editor{border:1px solid #d6e9c6!important}.has-warning .md-editor{border:1px solid #faebcc!important}.modal-open.page-overflow .modal-scrollable,.modal-open.page-overflow .page-container,.modal-open.page-overflow .page-container .navbar-fixed-bottom,.modal-open.page-overflow .page-container .navbar-fixed-top{overflow-y:auto!important}.modal-scrollable{overflow:hidden!important}.modal-backdrop{position:fixed}.bootstrap-select .btn{border-color:#e5e5e5}.has-error .bootstrap-select .btn{border-color:#ebccd1}.has-success .bootstrap-select .btn{border-color:#d6e9c6}.has-warning .bootstrap-select .btn{border-color:#faebcc}.bootstrap-select.open .btn,.bootstrap-select.open.dropup .btn{border-color:#999}.bootstrap-select .btn:focus{outline:0!important;outline-offset:0}.bootstrap-select.btn-group .dropdown-menu{margin-top:1px}.bootstrap-select.btn-group .dropdown-menu>li>dt>.text{font-weight:600;font-family:'Open Sans';font-size:14px}.bootstrap-select.btn-group .dropdown-menu .text-muted{color:#999!important}.bootstrap-select .caret{border:0;width:auto;height:auto;margin-top:-10px!important}.bootstrap-select .caret:before{content:"\f107";display:inline-block;border:0;font-family:FontAwesome;font-style:normal;font-weight:400}.form-wizard .steps>li>a.step>.desc,.form-wizard .steps>li>a.step>.number{display:inline-block;font-size:16px;font-weight:300}.bootstrap-select .selected i{color:#aaa}.bootstrap-select .dropdown-menu{z-index:9999!important}.bootstrap-switch{border-color:#e5e5e5}.bootstrap-switch.bootstrap-switch-focused{box-shadow:none;border-color:#e5e5e5}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{color:#fff;background:#428bca}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info{color:#fff;background:#89C4F4}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success{color:#fff;background:#45B6AF}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning{color:#fff;background:#dfba49}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger{color:#fff;background:#F3565D}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default{color:#444;background:#ececec}.portlet>.portlet-title>.actions>.bootstrap-switch{border-color:transparent;margin-top:0}.bootstrap-timepicker-widget table td a{padding:4px 0}.bootstrap-timepicker-widget input,.bootstrap-timepicker-widget input:focus{outline:0!important;border:0}.modal-open .bootstrap-timepicker-widget{z-index:10055!important}.bootstrap-timepicker-widget.timepicker-orient-bottom:after,.bootstrap-timepicker-widget.timepicker-orient-bottom:before{top:auto}.toast{-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important;background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast .toast-close-button{display:inline-block;margin-top:0;margin-right:0;text-indent:-100000px;width:11px;height:16px;background-repeat:no-repeat!important;background-image:url(../../assets/images/portlet-remove-icon-white.png)!important}.form-wizard .steps,.form-wizard .steps>li>a.step{background-color:#fff;background-image:none;border:0;box-shadow:none;filter:none}.toast-top-center{top:12px;margin:0 auto 0 -150px;left:50%}.toast-bottom-center{bottom:12px;margin:0 auto 0 -150px;left:50%}.form-wizard .progress{margin-bottom:30px}.form-wizard .steps{padding:10px 0;margin-bottom:15px}.form-wizard .steps>li>a.step:hover{background:0 0}.form-wizard .steps>li>a.step>.number{background-color:#eee;text-align:center!important;padding:11px 15px 13px;margin-right:10px;height:45px;width:45px;-webkit-border-radius:50%!important;-moz-border-radius:50%!important;border-radius:50%!important}.form-wizard .steps>li>a.step>.desc>i{display:none}.form-wizard .steps>li.active>a.step .number{background-color:#45B6AF;color:#fff}.form-wizard .steps>li.active>a.step .desc{color:#333}.form-wizard .steps>li.done>a.step .number{background-color:#dfba49;color:#fff}.form-wizard .steps>li.done>a.step .desc{color:#333}.form-wizard .steps>li.done>a.step .desc i{font-size:12px;font-weight:400;color:#999;display:inline-block}@media (min-width:768px) and (max-width:1200px){.form-wizard .step .desc{margin-top:10px;display:block}}.wysihtml5-sandbox{width:100%!important}.wysihtml5-toolbar li{margin:0;height:29px}.wysihtml5-toolbar li .dropdown-menu{margin-top:5px}.has-error .wysihtml5-sandbox{border:1px solid #ebccd1!important}.has-success .wysihtml5-sandbox{border:1px solid #d6e9c6!important}.has-warning .wysihtml5-sandbox{border:1px solid #faebcc!important}.note-editor{border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.note-editor .note-toolbar{border-bottom:1px solid #e5e5e5;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.note-editor .note-statusbar{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.note-editor .note-statusbar .note-resizebar{border-top:1px solid #e5e5e5}.note-editor.fullscreen{z-index:11000;width:100%!important}.note-editor .dropdown-menu:before{left:9px;right:auto}.note-editor .dropdown-menu:after{left:10px;right:auto}.note-link-dialog .checkbox{margin-left:20px}.has-error .note-editor{border:1px solid #ebccd1!important}.has-success .note-editor{border:1px solid #d6e9c6!important}.has-warning .note-editor{border:1px solid #faebcc!important}.bootbox .bootbox-close-button{margin-top:0!important}.cke{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.cke .cke-top{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.cke .cke-bottom{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.cke_bottom,.cke_dialog,.cke_dialog_footer,.cke_dialog_title,.cke_inner,.cke_reset,.cke_top{background-image:none!important;filter:none;border-top:0;border-bottom:0;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important;text-shadow:none}.cke_dialog_tab,.cke_dialog_ui_button,.cke_dialog_ui_input_text{filter:none;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;background-image:none!important}.cke_dialog_tab,.cke_dialog_ui_button{box-shadow:none!important;text-shadow:none!important}.cke_dialog_tab:hover,.cke_dialog_ui_button:hover{text-decoration:none;text-shadow:none}.cke_dialog_ui_input_text{box-shadow:none!important}.cke_button,.cke_combo_button,.cke_toolbar,.cke_toolgroup{background-image:none!important;filter:none!important;border:0;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important}.cke_button,.cke_combo_button,.cke_hc.cke_panel_listItem a,.cke_panel_grouptitle{background-image:none!important;filter:none;text-shadow:none}.cke_button:hover,.cke_combo_button:hover{background-color:#ddd}.cke_toolbar_break{background-image:none!important;filter:none!important;border:0;box-shadow:none!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;-ms-box-shadow:none!important;-o-box-shadow:none!important}.has-error .cke{border:1px solid #ebccd1!important}.has-success .cke{border:1px solid #d6e9c6!important}.has-warning .cke{border:1px solid #faebcc!important}.modal-open .clockface{z-index:10055!important}.clockface .cell .inner.active,.clockface .cell .outer.active{background-color:#4b8df8!important;background-image:none;filter:none}.dataTable{width:100%;margin-top:5px}.dataTables_filter .form-control{margin-left:4px}.dataTables_filter label{line-height:32px}.dataTable .row-details{margin-top:3px;display:inline-block;cursor:pointer;width:14px;height:14px}.dataTable .row-details.row-details-close{background:url(../img/datatable-row-openclose.png) no-repeat}.dataTable .row-details.row-details-open{background:url(../img/datatable-row-openclose.png) 0 -23px no-repeat}.dataTable .details{background-color:#eee}.dataTable .details td,.dataTable .details th{padding:4px;background:0 0;border:0}.dataTable .details tr:hover td,.dataTable .details tr:hover th{background:0 0}.dataTable .details tr:nth-child(even) td,.dataTable .details tr:nth-child(even) th,.dataTable .details tr:nth-child(odd) td,.dataTable .details tr:nth-child(odd) th{background-color:#eee}.dataTable>thead>tr>th.sorting,.dataTable>thead>tr>th.sorting_asc,.dataTable>thead>tr>th.sorting_desc{padding-right:18px}.dataTable .table-checkbox{width:8px!important}@media (max-width:768px){.form-wizard .steps>li>a{text-align:left}.dataTables_wrapper .dataTables_filter .form-control,.dataTables_wrapper .dataTables_length .form-control{display:inline-block}.dataTables_wrapper .dataTables_info{top:17px}.dataTables_wrapper .dataTables_paginate{margin-top:-15px}}@media (max-width:480px){.dataTables_wrapper .dataTables_filter .form-control{width:175px!important}.dataTables_wrapper .dataTables_paginate{float:left;margin-top:20px}}.dataTables_processing{position:fixed;top:50%;left:50%;min-width:125px;margin-left:0;padding:7px;text-align:center;color:#333;font-size:13px;border:1px solid #ddd;background-color:#eee;vertical-align:middle;-webkit-box-shadow:0 1px 8px rgba(0,0,0,.1);-moz-box-shadow:0 1px 8px rgba(0,0,0,.1);box-shadow:0 1px 8px rgba(0,0,0,.1)}.dataTables_processing span{line-height:15px;vertical-align:middle}.dataTables_empty{text-align:center}.tabletools-btn-group{margin:0 0 10px}.tabletools-btn-group>.btn{margin-right:5px}.tabletools-btn-group>.btn:last-child{margin-right:0}.tabletools-dropdown-on-portlet{margin-top:-55px;float:right}.tabletools-dropdown-on-portlet>.btn{margin-right:5px}.tabletools-dropdown-on-portlet>.btn:last-child{margin-right:0}.DTTT_Print{background-color:#fff}.DTTT_Print .DTTT_PrintMessage{display:none}@media print{.DTTT_Print .DTTT_PrintMessage{display:inline-block}}.DTTT_Print .DTTT_Print_Info{display:block;position:fixed;top:35px;font-size:18px;width:700px;left:50%;margin-left:-350px;text-align:center}.DTTT_Print .page-footer,.DTTT_Print .page-header,.DTTT_Print .page-sidebar{display:none}.DTTT_Print .page-content-wrapper{float:none}.DTTT_Print .row,.DTTT_Print [class*=col-]{padding:0;margin:0}.DTTT_Print .page-content{margin:50px auto!important;border:0!important;width:800px!important;padding:0!important}.DTTT_Print .page-content .portlet{border:0;padding:0}.DTTT_Print .page-content .portlet .portlet-body{padding:0}.DTTT_Print .page-content .dataTables_wrapper{padding:0;margin:0;box-shadow:5px 5px rgba(102,102,102,.1)}@media print{.DTTT_Print .page-content .dataTables_wrapper{box-shadow:none}}.paging_bootstrap_extended{margin:0!important;padding:0!important;float:none!important;font-size:13px}.dataTables_extended_wrapper .seperator{padding:0 2px}.dataTables_extended_wrapper div.dataTables_info,.dataTables_extended_wrapper div.dataTables_length,.dataTables_extended_wrapper div.dataTables_paginate{display:inline-block;float:none!important;padding:0!important;margin:0!important;position:static!important}@media (max-width:480px){.dataTables_extended_wrapper div.dataTables_info,.dataTables_extended_wrapper div.dataTables_length,.dataTables_extended_wrapper div.dataTables_paginate{display:block;margin-bottom:10px!important}.dataTables_extended_wrapper .seperator{display:none!important}}.dataTables_extended_wrapper div.dataTables_length label{margin:0!important;padding:0!important;font-size:13px;float:none!important;display:inline-block!important}.table-container .table-actions-wrapper{display:none}.dataTables_scroll{margin-bottom:10px}.dataTables_scrollHead{border-bottom:2px solid #ddd!important}.dataTables_scrollHead thead th{border-bottom:0!important}.dataTables_scrollBody{border-bottom:1px solid #ddd!important}.dropzone{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.fancybox-overlay{z-index:100000}.fancybox-opened{z-index:100001}.spinner-buttons.btn-group-vertical .btn{text-align:center;margin:0;height:17px;width:22px;padding-left:6px;padding-right:6px;padding-top:0}.page-style-rounded .spinner-buttons.btn-group-vertical .btn.spinner-up{border-radius:0;border-top-right-radius:4px!important}.page-style-rounded .spinner-buttons.btn-group-vertical .btn.spinner-down{border-radius:0 0 4px}.external-event{display:inline-block;cursor:move;margin-bottom:5px;margin-left:5px}.fc-scroller{overflow-y:auto;overflow-x:hidden}.fc-month-view .fc-scroller{height:auto!important}.portlet .event-form-title{font-size:14px;margin-top:4px;font-weight:400;margin-bottom:10px}.portlet.calendar .fc-button{box-shadow:none;text-shadow:none;border:0 #ddd;height:35px;padding:6px 8px 7px;margin-left:2px;background:0 0;color:#fff;top:-45px;outline:0!important;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;border-style:none solid}.portlet.calendar .fc-toolbar{margin-bottom:0}.portlet.calendar .fc-toolbar h2{margin-top:3px;font-size:17px}.portlet.calendar .fc-button .fc-icon-left-single-arrow,.portlet.calendar .fc-button .fc-icon-right-single-arrow{font-family:FontAwesome;font-size:16px}.portlet.calendar .fc-header{margin-bottom:-21px}.portlet.calendar .fc-button-prev{padding-right:10px;padding-left:8px}.portlet.calendar .fc-button-next{padding-right:8px;padding-left:10px}.portlet.calendar .fc-button.fc-state-active,.portlet.calendar .fc-button.fc-state-hover{color:#666;background-color:#fff}.portlet.calendar .fc-button.fc-state-disabled{color:#ddd}.portlet.calendar .fc-button .fc-icon-left-single-arrow:after{content:""}.portlet.calendar .fc-button .fc-icon-left-single-arrow:before{content:"\f104"}.portlet.calendar .fc-button .fc-icon-right-single-arrow:after{content:""}.portlet.calendar .fc-button .fc-icon-right-single-arrow:before{content:"\f105"}.portlet.calendar .fc-text-arrow{font-size:22px;font-family:"Courier New",Courier,monospace;vertical-align:baseline}.portlet.calendar .fc-event .fc-time,.portlet.calendar .fc-event .fc-title{text-align:left;color:#fff;font-size:13px;font-weight:300;float:left}.portlet.calendar .fc-event{border:0;background-color:#69a4e0;color:#fff}.portlet.calendar .fc-event .fc-content{border:0}.portlet.calendar .fc-header-title h2{font-size:14px;line-height:20px;font-weight:400;color:#111}.portlet.calendar .fc-widget-header{background-image:none;filter:none;background-color:#eee;text-transform:uppercase;font-weight:300}.portlet.calendar.light .fc-button{top:-60px;color:#666;text-transform:uppercase;font-size:12px;padding-bottom:35px}.portlet.calendar.light .fc-button .fc-text-arrow{margin-top:-6px;display:inline-block}.portlet.calendar.light .fc-button.fc-state-active,.portlet.calendar.light .fc-button.fc-state-hover{color:#333;border-bottom:2px solid #45B6AF}.portlet.calendar.light .fc-button.fc-state-disabled{color:#aaa}.portlet.calendar .mobile .fc-button{padding:0 6px 20px;margin-left:2px;border:0;background-color:#ddd;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;color:#000;text-shadow:none;text-align:center}.portlet.calendar .mobile .fc-button.fc-state-active,.portlet.calendar .mobile .fc-button.fc-state-hover{background-color:#eee}.portlet.calendar .mobile .fc-button.fc-state-disabled{color:#bbb}.portlet.calendar .mobile .fc-button-prev{margin-right:5px;margin-top:-2px}.portlet.calendar .mobile .fc-button-next{margin-right:0;margin-top:-2px}.portlet.calendar .mobile .fc-header-space{margin:0;padding:0;width:0}.portlet.calendar .mobile .fc-header-left{position:absolute;z-index:10}.portlet.calendar .mobile .fc-header-left .fc-button{top:-2px}.portlet.calendar .mobile .fc-header-right{position:relative;right:0}.portlet.calendar .mobile .fc-header-right .fc-button{top:35px}.portlet.calendar .mobile .fc-content{margin-top:53px}.gmaps{height:300px;width:100%}.gmaps img{max-width:none}#gmap_static div{background-repeat:no-repeat;background-position:50% 50%;display:block;height:300px}#gmap_routes_instructions{margin-top:10px;margin-bottom:0}#gritter-notice-wrapper{right:1px!important}.gritter-close{left:auto!important;right:3px!important}.gritter-title{font-family:"Open Sans";font-size:18px;font-weight:300}.easy-pie-chart .number{font-size:14px!important;position:relative;text-align:center;height:75px;line-height:75px}.easy-pie-chart .number canvas{position:absolute;top:0;left:0}.profile,.profile-classic .profile-image,.sparkline-chart,.vmaps{position:relative}.blueimp-gallery .close{background-image:url(../../assets/images/portlet-remove-icon-white.png)!important;margin-top:-2px}.blueimp-gallery .next,.blueimp-gallery .prev{border-radius:23px!important}.ms-container .ms-list{border:1px solid #e5e5e5;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.ms-container .ms-optgroup-label{font-size:14px}.jquery-notific8-message,.ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection{font-size:13px}.ms-container .ms-list.ms-focus{border-color:#999;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.ms-container .ms-selectable li.ms-hover,.ms-container .ms-selection li.ms-hover{color:#333;background-color:#eee}.ms-container .form-control{margin-bottom:5px}[class*=jquery-notific8],[class*=jquery-notific8]:after,[class*=jquery-notific8]:before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.left .jquery-notific8-close-sticky span,.right .jquery-notific8-close-sticky span{font-size:10px}.jquery-notific8-heading{font-weight:300;font-size:16px}.password-strength .password-verdict{display:inline-block;margin-top:6px;margin-left:5px}.password-strength .progress{margin-top:5px;margin-bottom:0}.password-strength .progress-bar{padding:2px}.scroller{padding:0 12px 0 0;margin:0;overflow:hidden}.scroller-footer{margin-top:10px}.scroller-footer:after,.scroller-footer:before{content:" ";display:table}.portlet-body .slimScrollBar{margin-right:0}.jqstooltip{width:auto!important;height:auto!important}.easy-pie-chart,.sparkline-chart{text-align:center}.sparkline-chart{margin-top:15px}.easy-pie-chart .number{font-weight:300;width:85px;margin:0 auto}.sparkline-chart .number{width:100px;margin:0 auto 10px}.easy-pie-chart .title,.sparkline-chart .title{display:block;text-align:center;color:#333;font-weight:300;font-size:16px;margin-top:5px;margin-bottom:10px}.easy-pie-chart .title:hover,.sparkline-chart .title:hover{color:#666;text-decoration:none}.easy-pie-chart .title>i,.sparkline-chart .title>i{margin-top:5px}div.tagsinput{min-height:35px;height:auto!important;margin:0;padding:5px 5px 0;overflow:auto}.add-portfolio,.portfolio-block,.portfolio-stat,.portfolio-text,.portfolio-text .portfolio-text-info,.vmaps{overflow:hidden}div.tagsinput span.tag{background:#aaa;color:#fff;border:0;padding:3px 6px;margin-top:0;margin-bottom:5px}div.tagsinput input{padding:3px 6px;width:75px!important}div.tagsinput span.tag a{color:#fff}div.tagsinput .not_valid{color:#fff;padding:3px 6px;background-color:#e02222}.slider{border:0;padding:0;display:block;margin:12px 5px;min-height:11px}.vakata-context li a .vakata-contextmenu-sep,.vakata-context li a i,iframe[src="about:blank"]{display:none}.ui-slider-vertical{width:11px}.ui-slider-horizontal .ui-slider-handle{top:-3px}.ui-slider-vertical .ui-slider-handle{left:-3px}.bs-example+.highlight:after,.bs-example:after{left:15px;text-transform:uppercase;letter-spacing:1px}.ui-slider-handle,.ui-slider-vertical{filter:none!important;background-image:none!important}.jqvmap-zoomin,.jqvmap-zoomout{height:16px;width:16px;background-color:#666}.vmaps{height:300px}.jstree-default .jstree-clicked{border:0;background-color:#e1e1e1;box-shadow:none}.jstree-default .jstree-hovered{border:0;background-color:#eee;box-shadow:none}.jstree-default .jstree-wholerow-clicked,.jstree-wholerow .jstree-wholerow-clicked{background:#e1e1e1;border:0;box-shadow:none}.jstree-default .jstree-wholerow-hovered,.jstree-wholerow .jstree-wholerow-hovered{border:0;background-color:#eee;box-shadow:none}.jstree-icon.icon-lg{margin-top:1px}.jstree-open>.jstree-anchor>.fa-folder:before{margin-left:2px;content:"\f07c"}.jstree-default.jstree-rtl .jstree-last{background:no-repeat}.vakata-context,.vakata-context ul{padding:0;min-width:125px;background-color:#fff;font-size:14px;font-family:"Segoe UI",Helvetica,Arial,sans-serif;box-shadow:5px 5px rgba(102,102,102,.1);border:1px solid #efefef}.vakata-context li{border:0}.vakata-context li a{padding:0 10px;border:0}.vakata-context .vakata-context-hover>a,.vakata-context li a:hover{background-color:#eee;color:#333;box-shadow:none;margin:0}.vakata-context .vakata-context-hover>a .ins,.vakata-context .vakata-context-hover>a .span,.vakata-context li a:hover .ins,.vakata-context li a:hover .span{border:0!important}.vakata-context li a ins,.vakata-context li a span{display:none;border:0!important}.vakata-context .vakata-context-separator a,.vakata-context-rtl .vakata-context-separator a{margin:0;border:0}.jstree-rename-input{background-color:#fff!important;border:1px solid #e5e5e5!important;outline:0!important;padding:2px 6px!important;margin-right:-4px!important}.noUi-control{margin:9px 0}.noUi-primary .noUi-connect,.noUi-primary.noUi-connect{background:#428bca}.noUi-info .noUi-connect,.noUi-info.noUi-connect{background:#89C4F4}.noUi-success .noUi-connect,.noUi-success.noUi-connect{background:#45B6AF}.noUi-warning .noUi-connect,.noUi-warning.noUi-connect{background:#dfba49}.noUi-danger .noUi-connect,.noUi-danger.noUi-connect{background:#F3565D}.noUi-default .noUi-connect,.noUi-default.noUi-connect{background:#c6c6c6}.form-recaptcha-img{margin-bottom:10px;clear:both;border:1px solid #e5e5e5;padding:5px}.form-control .select2-choice{border:1px solid #e5e5e5;background-color:#fff;background-image:none;filter:none;height:34px;padding:3px 0 0 12px}.select2-container.select2-drop-above .select2-choice{border-bottom-color:#e5e5e5;background-color:#fff;background-image:none;filter:none}.select2-drop{border:1px solid #e5e5e5;background-color:#fff;background-image:none;-webkit-box-shadow:none;box-shadow:none;filter:none;border-top:0}.select2-drop-auto-width{border-top:1px solid #e5e5e5}.select2-drop.select2-drop-above{border-top:1px solid #e5e5e5;-webkit-box-shadow:none;box-shadow:none}.select2-drop-active{border:1px solid #999;border-top:0}.select2-container .select2-choice .select2-arrow{background-image:none;background-color:#fff;filter:none;border-left:1px solid #e5e5e5}.select2-container.select2-container-active .select2-arrow,.select2-container.select2-dropdown-open .select2-arrow{border-left:0!important}.select2-container .select2-choice .select2-arrow b{background-position:0 1px}.select2-search input{background-color:#fff!important;filter:none;margin:5px 0 0;border:1px solid #e5e5e5;webkit-appearance:none!important;color:#333;outline:0;height:auto!important;min-height:26px;padding:6px!important;line-height:20px;font-size:14px;font-weight:400;vertical-align:top;-webkit-box-shadow:none;box-shadow:none}.form-control.select2-container{border:0;height:auto!important;padding:0}.select2-container-active .select2-choice,.select2-container-active .select2-choices{border:1px solid #999!important;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-dropdown-open .select2-choice{border-bottom:0!important;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-dropdown-open.select2-drop-above .select2-choice,.select2-dropdown-open.select2-drop-above .select2-choices{border:1px solid #999!important;border-top:0!important;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-drop.select2-drop-above.select2-drop-active{border:1px solid #999!important;border-bottom:0!important}.select2-dropdown-open .select2-choice .select2-arrow b{background-position:-18px 1px}.select2-results{margin:5px 0}.select2-results .select2-highlighted{background:#eee;color:#333}.select2-results li em{background:#feffde;font-style:normal}.select2-results .select2-highlighted em{background:0 0}.select2-results .select2-highlighted ul{background:#fff;color:#000}.select2-results .select2-no-results,.select2-results .select2-searching,.select2-results .select2-selection-limit{padding:3px 7px 4px;background:#f4f4f4;display:list-item}.select2-container-multi,.select2-container-multi .select2-choices{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.select2-container-multi.select2-dropdown-open,.select2-container-multi.select2-dropdown-open .select2-choices{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.select2-container-multi.select2-dropdown-open.select2-drop-above,.select2-container-multi.select2-dropdown-open.select2-drop-above .select2-choices{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.select2-container-multi .select2-choices{padding-left:6px;min-height:34px;border:1px solid #e5e5e5;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-container-multi.select2-container-active .select2-choices{border:1px solid #999!important;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-container-multi .select2-choices .select2-search-choice{padding:3px 5px 3px 18px;margin:5px 0 3px 5px;border:1px solid #e5e5e5;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.has-warning .select2-container .select2-choice,.has-warning .select2-container .select2-choices,.has-warning .select2-container.select2-dropdown-open .select2-choice,.has-warning .select2-container.select2-dropdown-open .select2-choices{border-color:#faebcc}.has-warning .select2-container.select2-dropdown-open .select2-choice>span{color:#faebcc}.has-error .select2-container .select2-choice,.has-error .select2-container .select2-choices,.has-error .select2-container.select2-dropdown-open .select2-choice,.has-error .select2-container.select2-dropdown-open .select2-choices{border-color:#ebccd1}.has-error .select2-container.select2-dropdown-open .select2-choice>span{color:#ebccd1}.has-success .select2-container .select2-choice,.has-success .select2-container .select2-choices,.has-success .select2-container.select2-dropdown-open .select2-choice,.has-success .select2-container.select2-dropdown-open .select2-choices{border-color:#d6e9c6}.has-success .select2-container.select2-dropdown-open .select2-choice>span{color:#d6e9c6}.modal-open .select2-drop-mask{z-index:10051}.modal-open .select2-drop{z-index:10052}.modal-open .select2-search{z-index:10053}.form-control.input-lg .select2-choice{height:46px;padding:10px 16px}.select2-container.input-lg .select2-choice .select2-arrow b{background-position:0 7px}.form-control.input-sm .select2-choice{height:30px;padding:1px 10px 5px}.select2-container.input-sm .select2-choice .select2-arrow b{background-position:0 0}.checker{margin-top:-2px!important;margin-right:2px!important}.checker input,.radio input{outline:0!important}.alert,.aside:focus,.btn[bs-select],.timepicker.dropdown-menu button,.ui-grid-render-container:focus,[tabindex="-1"]{outline:0}div.checker.disabled span,div.checker.disabled.active span{background-position:-152px -260px}div.checker.disabled:hover,div.radio.disabled:hover{cursor:not-allowed}.edit-plunkr,.panel-heading[role=tab] .panel-title a,.ui-grid-header-cell .sortable,a[ng-click],input[type=checkbox]{cursor:pointer}div.checker,div.radio{margin-right:0;margin-left:3px}.portlet-body-morris-fit{margin-right:-20px;margin-left:-20px;margin-bottom:-15px}.portlet-body-morris-fit>svg{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.morris-hover.morris-default-style .morris-hover-row-label{text-align:left;font-weight:400;font-size:15px;color:#7D8C9D;font-family:"Open Sans",sans-serif}.morris-hover.morris-default-style .morris-hover-point{text-align:left;font-size:14px;font-weight:400;font-family:"Open Sans",sans-serif}.icheck-list>label{display:block;margin-bottom:8px}.icheck-list>label:last-child{margin-bottom:0}.form-horizontal .icheck-inline{margin-top:8px}.icheck-inline>label{display:inline-block;margin-left:15px}.icheck-inline>label:first-child{margin-left:0}div[class*=icheckbox_],div[class*=iradio_]{margin-right:5px;top:-1px!important}.icheck-colors{padding:0;margin:0;list-style:none}.icheck-colors>li{padding:0;margin:4px;float:left;display:inline-block;height:20px;width:20px;background:#000;opacity:.6;filter:alpha(opacity=60)}.icheck-colors>li:first-child{margin-left:0}.icheck-colors>li:hover{opacity:1;filter:alpha(opacity=100);cursor:pointer}.icheck-colors>li.active{height:26px;margin-top:0;opacity:.6;filter:alpha(opacity=60)}.icheck-colors>li.red{background:#d54e21}.icheck-colors>li.green{background:#78a300}.icheck-colors>li.blue{background:#0e76a8}.icheck-colors>li.aero{background:#9cc2cb}.icheck-colors>li.grey{background:#73716e}.icheck-colors>li.orange{background:#f70}.icheck-colors>li.yellow{background:#fc0}.icheck-colors>li.pink{background:#ff66b5}.icheck-colors>li.purple{background:#6a5a8c}.ui-select-match-close{margin-top:5px!important;margin-left:5px!important}.profile p{color:#636363;font-size:13px}.profile p a{color:#169ef4}.profile label{margin-top:10px}.profile label:first-child{margin-top:0}.profile-classic .profile-edit{top:0;right:0;margin:0;color:#fff;opacity:.6;padding:0 9px;font-size:11px;background:#000;position:absolute;filter:alpha(opacity=60)}.profile-classic .profile-image img{margin-bottom:15px}.profile-classic li{padding:8px 0;font-size:13px;border-top:solid 1px #f5f5f5}.profile-classic li:first-child{border-top:none}.profile-classic li span{color:#666;font-size:13px;margin-right:7px}.profile .tabbable-custom-profile .nav-tabs>li>a{padding:6px 12px}.profile ul.profile-nav{margin-bottom:30px}.profile ul.profile-nav li{position:relative}.profile ul.profile-nav li a{color:#557386;display:block;font-size:14px;padding:8px 10px;margin-bottom:1px;background:#f0f6fa;border-left:solid 2px #c4d5df}.profile ul.profile-nav li a:hover{color:#169ef4;background:#ecf5fb;text-decoration:none;border-left:solid 2px #169ef4}.profile ul.profile-nav li a.profile-edit{top:0;right:0;margin:0;color:#fff;opacity:.6;border:none;padding:3px 9px;font-size:12px;background:#000;position:absolute;filter:alpha(opacity=60)}.profile ul.profile-nav li a.profile-edit:hover{text-decoration:underline}.profile ul.profile-nav a span{top:0;right:0;color:#fff;font-size:16px;padding:7px 13px;position:absolute;background:#169ef4}.profile ul.profile-nav a:hover span{background:#0b94ea}.profile-info h1{color:#383839;font-size:24px;font-weight:400;margin:0 0 10px}.profile-info ul{margin-bottom:15px}.profile-info li{color:#6b6b6b;font-size:13px;margin-right:15px;margin-bottom:5px;padding:0!important}.profile-info li i{color:#b5c1c9;font-size:15px}.profile-info li:hover i{color:#169ef4}.sale-summary ul{margin-top:-10px}.sale-summary li{padding:10px 0;overflow:hidden;border-top:solid 1px #eee}.sale-summary li:first-child{border-top:none}.sale-summary li .sale-info{margin-top:4px;float:left;color:#646464;font-size:14px;text-transform:uppercase}.sale-summary li .sale-num{float:right;color:#169ef4;font-size:20px;font-weight:300}.sale-summary li span i{top:1px;width:13px;height:14px;margin-left:3px;position:relative;display:inline-block}.sale-summary li i.icon-img-up{background:url(../../img/icon-img-up.png) no-repeat!important}.sale-summary li i.icon-img-down{background:url(../../img/icon-img-down.png) no-repeat!important}.sale-summary .caption h4{color:#383839;font-size:18px}.sale-summary .caption{border-color:#c9c9c9}.profile .table-advance thead tr th{background:#f0f6fa}.profile .table-bordered,.profile .table-bordered td,.profile .table-bordered th{border-color:#e5eff6}.profile .table-striped tbody>tr:nth-child(2n+1)>td,.profile .table-striped tbody>tr:nth-child(2n+1)>th{background:#fcfcfc}.profile .table-hover tbody tr:hover td,.profile .table-hover tbody tr:hover th{background:#f5fafd}.add-portfolio{margin-bottom:30px;background:#f0f6fa;padding:12px 14px}.add-portfolio span{float:left;display:inline-block;font-weight:300;font-size:22px;margin-top:0}.add-portfolio .btn{margin-left:20px}.portfolio-block{background:#fff;margin-bottom:15px}.portfolio-text img{float:left;margin-right:15px}.portfolio-btn a{display:block;padding:25px 0;background:#ddd!important}.portfolio-btn a:hover{background:#1d943b!important}.portfolio-btn span{color:#fff;font-size:22px;font-weight:200}.portfolio-info{float:left;color:#616161;font-size:12px;padding:10px 25px;margin-bottom:5px;text-transform:uppercase}.portfolio-info p{color:#16a1f2;display:block;font-size:22px;line-height:28px;margin-top:0;font-weight:200;text-transform:uppercase}.profile-settings{background:#fafafa;padding:15px 8px 0;margin-bottom:5px}.profile-settings p{padding-left:5px;margin-bottom:3px}.profile-settings .controls>.checkbox,.profile-settings .controls>.radio{font-size:12px;margin-top:2px!important}.modal.disabled{-webkit-animation:noop!important;animation:noop!important}.modal.disabled.am-fade-and-slide-top .modal-dialog{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop}.modal.disabled.am-fade-and-scale .modal-dialog,.tab-pane.am-fade{-webkit-animation-duration:.3s;-webkit-animation-fill-mode:backwards}.modal.disabled.am-fade-and-slide-top.ng-enter .modal-dialog{visibility:hidden;-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop}.modal.disabled.am-fade-and-slide-top.ng-enter-active .modal-dialog,.modal.disabled.am-fade-and-slide-top.ng-leave-active .modal-dialog{visibility:visible}.modal.disabled.am-fade-and-slide-top.ng-leave .modal-dialog{-webkit-animation-name:fadeAndSlideToTop;animation-name:fadeAndSlideToTop}.modal.disabled.am-fade-and-scale .modal-dialog{animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;animation-fill-mode:backwards;-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn}.modal.disabled.am-fade-and-scale.ng-enter .modal-dialog{visibility:hidden;-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn}.modal.disabled.am-fade-and-scale.ng-enter-active .modal-dialog,.modal.disabled.am-fade-and-scale.ng-leave-active .modal-dialog{visibility:visible}.modal.disabled.am-fade-and-scale.ng-leave .modal-dialog{-webkit-animation-name:fadeAndScaleOut;animation-name:fadeAndScaleOut}@-webkit-keyframes noop{from,to{opacity:1}}@keyframes noop{from,to{opacity:1}}.bs-example{position:relative;padding:45px 15px 15px;margin:0 -15px 15px;background-color:#fafafa;box-shadow:inset 0 3px 6px rgba(0,0,0,.05);border-color:#e5e5e5 #eee #eee;border-style:solid;border-width:1px 0}.bs-example:after{content:"Example";position:absolute;top:15px;font-size:12px;font-weight:700;color:#bbb}.bs-example+.highlight{margin:-15px -15px 15px;border-radius:0;border-width:0 0 1px}@media (min-width:768px){.bs-example,.bs-example+.highlight{margin-left:0;margin-right:0;border-width:1px}.bs-example{background-color:#fff;border-color:#ddd;border-radius:4px 4px 0 0;box-shadow:none}.bs-example+.highlight{margin-top:-16px;border-bottom-left-radius:4px;border-bottom-right-radius:4px}}.bs-example .container{width:auto}.bs-example>.alert:last-child,.bs-example>.form-control:last-child,.bs-example>.jumbotron:last-child,.bs-example>.list-group:last-child,.bs-example>.navbar:last-child,.bs-example>.panel:last-child,.bs-example>.progress:last-child,.bs-example>.table-responsive:last-child>.table,.bs-example>.table:last-child,.bs-example>.well:last-child,.bs-example>blockquote:last-child,.bs-example>ol:last-child,.bs-example>p:last-child,.bs-example>ul:last-child{margin-bottom:0}.bs-example>p>.close{float:none}.bs-example .nav-tabs{margin-bottom:15px}.bs-footer{padding-top:40px;padding-bottom:30px;margin-top:100px;color:#787878;text-align:center;border-top:1px solid #e6e6e6}.bs-docs-nav .navbar-brand,.bs-masthead-links a{color:#fff}.bs-docs-nav,.bs-docs-nav .navbar-collapse{border-color:#a33f3e}.footer-links{margin:10px 0;padding-left:0}.footer-links li{display:inline;padding:0 2px}.footer-links li:first-child{padding-left:0}@media (min-width:768px){.bs-footer{text-align:left}.bs-footer p{margin-bottom:0}}.bs-masthead{position:relative;padding:30px 15px;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,.15)}.bs-masthead h1{font-size:50px;line-height:1;color:#fff}.bs-masthead .btn-outline-inverse{margin:10px}.bs-masthead-links{margin-top:20px;margin-bottom:40px;padding:0 15px;list-style:none;text-align:center}.bs-masthead-links li{display:inline}.bs-masthead-links li+li{margin-left:20px}@media (min-width:768px){.bs-masthead{text-align:left;padding-top:140px;padding-bottom:140px}.bs-masthead h1{font-size:100px}.bs-masthead .lead{margin-right:25%;font-size:30px}.bs-masthead .btn-outline-inverse{width:auto;margin:20px 5px 20px 0;padding:18px 24px;font-size:21px}.bs-masthead-links{padding:0;text-align:left}}.bs-docs-nav{background-color:#b94846;box-shadow:0 1px 0 rgba(255,255,255,.1);text-shadow:0 -1px 0 rgba(0,0,0,.15)}.bs-docs-nav .navbar-nav>li>a{-webkit-transition:color .15s linear;transition:color .15s linear;color:#f9f1f1}.bs-docs-nav .navbar-nav>li>a:hover{color:#fff}.bs-docs-nav .navbar-nav>.active>a,.bs-docs-nav .navbar-nav>.active>a:hover{background-color:#a33f3e;color:#fff}.bs-docs-nav .navbar-toggle{border-color:#b94846}.bs-docs-nav .navbar-toggle:hover{border-color:#a33f3e;background-color:#a33f3e}.bs-old-docs{padding:15px 20px;color:#787878;background-color:#fafafa;border-top:1px solid #fff;border-bottom:1px solid #e6e6e6}.bs-old-docs strong{color:#545454}@media (max-width:991px){.navbar-toggle{margin-left:15px;display:block!important;float:left}.bs-sidebar.affix{position:static!important}}.bs-header .container,.select.dropdown-menu.select-multiple li{position:relative}.bs-sidenav{margin-top:40px;margin-bottom:20px;width:124px}.bs-sidebar .nav>li>a{display:block;font-size:13px;font-weight:500;color:#999;padding:4px 15px;text-align:right}.bs-sidebar .nav>li>a:focus,.bs-sidebar .nav>li>a:hover{padding-right:14px;color:#b94846;text-decoration:none;background-color:transparent;border-right:1px solid #b94846}.bs-sidebar .nav>.active:focus>a,.bs-sidebar .nav>.active:hover>a,.bs-sidebar .nav>.active>a{padding-right:13px;font-weight:700;color:#b94846;background-color:transparent;border-right:2px solid #b94846}.bs-sidebar .nav .nav{display:none;padding-bottom:10px}.bs-sidebar .nav .nav>li>a{padding-top:2px;padding-bottom:2px;padding-right:30px;font-size:12px;font-weight:400}.bs-sidebar .nav .nav>li>a:focus,.bs-sidebar .nav .nav>li>a:hover{padding-right:29px}.bs-sidebar .nav .nav>.active:focus>a,.bs-sidebar .nav .nav>.active:hover>a,.bs-sidebar .nav .nav>.active>a{font-weight:500;padding-right:28px}@media (min-width:992px){.bs-sidebar .nav>.active>ul{display:block}.bs-sidebar.affix .bs-sidenav,.bs-sidebar.affix-bottom .bs-sidenav{margin-top:0;margin-bottom:0}}h1[id],h2[id]{margin-top:-45px}@media (min-width:1200px){.bs-sidebar{margin-right:30px}}.am-fade.aside-backdrop,.am-fade.modal-backdrop{background-color:rgba(0,0,0,.5)}.bs-docs-aside{min-width:200px}h1[id]{padding-top:80px}h2[id]{padding-top:60px}.bs-header{padding:30px 15px 40px;font-size:16px;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,.15)}.bs-header h1{color:#fff}.bs-header p{font-weight:300;line-height:1.5}@media (min-width:768px){.bs-header{font-size:21px;text-align:left}.bs-header h1{font-size:60px;line-height:1}}@media (min-width:992px){.bs-header h1,.bs-header p{margin-right:300px}}.highlight{display:none;padding:9px 14px;margin-bottom:14px;background-color:#f6f6f8;border:1px solid #e2e2e9;border-radius:4px}.highlight pre{padding:0;margin-top:0;margin-bottom:0;background-color:transparent;border:0;white-space:nowrap}.highlight pre code{font-size:inherit;color:#333}.highlight pre .lineno{display:inline-block;width:22px;padding-right:5px;margin-right:10px;text-align:right;color:#bebec5}@media (min-width:481px){.highlight{display:block}}input.ng-dirty.ng-invalid,select.ng-dirty.ng-invalid,textarea.ng-dirty.ng-invalid{color:#b94a48;border-color:#ee5f5b}input.ng-dirty.ng-invalid:focus,select.ng-dirty.ng-invalid:focus,textarea.ng-dirty.ng-invalid:focus{border-color:#e9322d;box-shadow:0 0 6px #f8b9b7}input:focus.ng-pristine.ng-invalid,select:focus.ng-pristine.ng-invalid,textarea:focus.ng-pristine.ng-invalid{color:#555;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}input:focus.ng-pristine.ng-invalid:focus,select:focus.ng-pristine.ng-invalid:focus,textarea:focus.ng-pristine.ng-invalid:focus{border-color:rgba(82,168,236,.8);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}body .modal{overflow-y:hidden}body.modal-open{overflow-y:visible!important}.lt-ie9 .bs-sidebar{display:none!important}.modal-backdrop{z-index:1040;bottom:0}.select.dropdown-menu.select-multiple li>i{color:#fff;display:none;position:absolute;top:5px;right:10px}.bs-example+.highlight,body{position:relative}.alert.bottom-right,.alert.top,.alert.top-right{right:0}.select.dropdown-menu.select-multiple li.active>i{display:block}body{padding-top:50px}.bs-example-scope{font-size:85%}.bs-example-scope+.bs-example{margin:-15px -15px 15px}.bs-example-scope+.bs-example+.highlight>pre{border-radius:0 0 4px 4px}.aside.bs-docs-aside .aside-header{background:#b94846}.aside.bs-docs-aside .nav{margin:0}.bs-docs-social{max-height:200px}.bs-docs-social ul{list-style:none;padding:1em 0 0}.bs-docs-social ul li{height:30px}@media (max-width:991px){.bs-docs-social ul li{display:inline-block}}.bs-docs-home,.bs-header{color:#fff;background:url(../assets/images/triangular-red.png) #b94846;padding-bottom:20px}pre>code{background:0 0}.bs-example+.highlight code{padding:2.5em .5em 1em}.alert.bottom-right .close,.alert.top-right .close{padding-left:10px}.alert.bottom-left .close,.alert.top-left .close{padding-right:10px}.bs-example+.highlight:after{content:"Source";position:absolute;top:15px;font-size:12px;font-weight:700;color:#bbb}.twitter-follow-button{position:relative;top:5px;margin-left:10px}.tab-pane.am-fade{animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;animation-fill-mode:backwards;opacity:1}.am-collapse,.panel-collapse.am-collapse{-webkit-animation-duration:.3s;-webkit-animation-fill-mode:backwards;overflow:hidden}.panel-collapse.am-collapse{animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;animation-fill-mode:backwards}.am-collapse,.am-flip-x{-webkit-animation-timing-function:ease}.panel-collapse.am-collapse2{-webkit-transition:.3s ease max-height;transition:.3s ease max-height;max-height:100px;overflow:hidden}.panel-collapse.am-collapse2.in-remove{max-height:100px;display:block}.panel-collapse.am-collapse2.in-add{max-height:0}@-webkit-keyframes expand{from{max-height:0}to{max-height:100px}}@keyframes expand{from{max-height:0}to{max-height:100px}}@-webkit-keyframes collapse{from{max-height:100px}to{max-height:0}}@keyframes collapse{from{max-height:100px}to{max-height:0}}.am-collapse{animation-duration:.3s;animation-timing-function:ease;animation-fill-mode:backwards;opacity:1}.am-fade,.am-flip-x{-webkit-animation-fill-mode:backwards}.am-collapse.am-collapse-add,.am-collapse.ng-hide-remove,.am-collapse.ng-move{-webkit-animation-name:expand;animation-name:expand}.am-collapse.am-collapse-remove,.am-collapse.ng-hide{-webkit-animation-name:collapse;animation-name:collapse}.am-collapse.ng-enter{visibility:hidden;-webkit-animation-name:expand;animation-name:expand;-webkit-animation-play-state:paused;animation-play-state:paused}.am-collapse.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-collapse.ng-leave{-webkit-animation-name:collapse;animation-name:collapse;-webkit-animation-play-state:paused;animation-play-state:paused}.am-collapse.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes expand{from{max-height:0}to{max-height:500px}}@keyframes expand{from{max-height:0}to{max-height:500px}}@-webkit-keyframes collapse{from{max-height:500px}to{max-height:0}}@keyframes collapse{from{max-height:500px}to{max-height:0}}.panel-collapse.am-collapse.in-remove{-webkit-animation-name:collapse;animation-name:collapse;display:block}.panel-collapse.am-collapse.in-add{-webkit-animation-name:expand;animation-name:expand}.am-fade{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:linear;animation-timing-function:linear;animation-fill-mode:backwards;opacity:1}.am-fade.am-fade-add,.am-fade.ng-hide-remove,.am-fade.ng-move{-webkit-animation-name:fadeIn;animation-name:fadeIn}.am-fade.am-fade-remove,.am-fade.ng-hide{-webkit-animation-name:fadeOut;animation-name:fadeOut}.am-fade.ng-enter{visibility:hidden;-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade.ng-leave{-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}.tab-pane.am-fade.active-remove{display:none!important}.tab-pane.am-fade.active-add{-webkit-animation-name:fadeIn;animation-name:fadeIn}.aside-backdrop.am-fade,.modal-backdrop.am-fade{background:rgba(0,0,0,.5);-webkit-animation-duration:.15s;animation-duration:.15s}.aside-backdrop.am-fade.ng-leave,.modal-backdrop.am-fade.ng-leave{-webkit-animation-delay:.3s;animation-delay:.3s}.am-flip-x{-webkit-animation-duration:.4s;animation-duration:.4s;animation-timing-function:ease;animation-fill-mode:backwards}.am-flip-x-linear,.am-slide-top{-webkit-animation-fill-mode:backwards}.am-flip-x.am-flip-x-add,.am-flip-x.ng-hide-remove,.am-flip-x.ng-move{-webkit-animation-name:flipInXBounce;animation-name:flipInXBounce}.am-flip-x.am-flip-x-remove,.am-flip-x.ng-hide{-webkit-animation-name:flipOutX;animation-name:flipOutX}.am-flip-x.ng-enter{visibility:hidden;-webkit-animation-name:flipInXBounce;animation-name:flipInXBounce;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-flip-x.ng-leave{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-flip-x-linear{-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:ease;animation-timing-function:ease;animation-fill-mode:backwards}.am-slide-right,.am-slide-top{-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out}.am-flip-x-linear.am-flip-x-add,.am-flip-x-linear.ng-hide-remove,.am-flip-x-linear.ng-move{-webkit-animation-name:flipInX;animation-name:flipInX}.am-flip-x-linear.am-flip-x-remove,.am-flip-x-linear.ng-hide{-webkit-animation-name:flipOutX;animation-name:flipOutX}.am-flip-x-linear.ng-enter{visibility:hidden;-webkit-animation-name:flipInX;animation-name:flipInX;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x-linear.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-flip-x-linear.ng-leave{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x-linear.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes flipInX{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}}@keyframes flipInX{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}}@-webkit-keyframes flipInXBounce{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}40%{-webkit-transform:perspective(400px) rotateX(-10deg);transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}}@keyframes flipInXBounce{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}40%{-webkit-transform:perspective(400px) rotateX(-10deg);transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}}@-webkit-keyframes flipOutX{from{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}to{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}}@keyframes flipOutX{from{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}to{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}}.am-slide-top{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-slide-bottom,.am-slide-right{-webkit-animation-fill-mode:backwards}.am-slide-top.am-slide-top-add,.am-slide-top.ng-hide-remove,.am-slide-top.ng-move{-webkit-animation-name:slideFromTop;animation-name:slideFromTop}.am-slide-top.am-slide-top-remove,.am-slide-top.ng-hide{-webkit-animation-name:slideToTop;animation-name:slideToTop}.am-slide-top.ng-enter{visibility:hidden;-webkit-animation-name:slideFromTop;animation-name:slideFromTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-top.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-top.ng-leave{-webkit-animation-name:slideToTop;animation-name:slideToTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-top.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-slide-right{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-slide-bottom,.am-slide-left{-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out}.am-slide-right.am-slide-right-add,.am-slide-right.ng-hide-remove,.am-slide-right.ng-move{-webkit-animation-name:slideFromRight;animation-name:slideFromRight}.am-slide-right.am-slide-right-remove,.am-slide-right.ng-hide{-webkit-animation-name:slideToRight;animation-name:slideToRight}.am-slide-right.ng-enter{visibility:hidden;-webkit-animation-name:slideFromRight;animation-name:slideFromRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-right.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-right.ng-leave{-webkit-animation-name:slideToRight;animation-name:slideToRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-right.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-slide-bottom{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-fade-and-slide-top,.am-slide-left{-webkit-animation-fill-mode:backwards}.am-slide-bottom.am-slide-bottom-add,.am-slide-bottom.ng-hide-remove,.am-slide-bottom.ng-move{-webkit-animation-name:slideFromBottom;animation-name:slideFromBottom}.am-slide-bottom.am-slide-bottom-remove,.am-slide-bottom.ng-hide{-webkit-animation-name:slideToBottom;animation-name:slideToBottom}.am-slide-bottom.ng-enter{visibility:hidden;-webkit-animation-name:slideFromBottom;animation-name:slideFromBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-bottom.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-bottom.ng-leave{-webkit-animation-name:slideToBottom;animation-name:slideToBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-bottom.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-slide-left{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-fade-and-slide-right,.am-fade-and-slide-top{-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out}.am-slide-left.am-slide-left-add,.am-slide-left.ng-hide-remove,.am-slide-left.ng-move{-webkit-animation-name:slideFromLeft;animation-name:slideFromLeft}.am-slide-left.am-slide-left-remove,.am-slide-left.ng-hide{-webkit-animation-name:slideToLeft;animation-name:slideToLeft}.am-slide-left.ng-enter{visibility:hidden;-webkit-animation-name:slideFromLeft;animation-name:slideFromLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-left.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-left.ng-leave{-webkit-animation-name:slideToLeft;animation-name:slideToLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-left.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes slideFromTop{from{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes slideFromTop{from{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@-webkit-keyframes slideToTop{to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes slideToTop{to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@-webkit-keyframes slideFromRight{from{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slideFromRight{from{-webkit-transform:translateX(100%);transform:translateX(100%)}}@-webkit-keyframes slideToRight{to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slideToRight{to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@-webkit-keyframes slideFromBottom{from{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes slideFromBottom{from{-webkit-transform:translateY(100%);transform:translateY(100%)}}@-webkit-keyframes slideToBottom{to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes slideToBottom{to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@-webkit-keyframes slideFromLeft{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slideFromLeft{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@-webkit-keyframes slideToLeft{to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slideToLeft{to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.am-fade-and-slide-top{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-fade-and-slide-top.am-fade-and-slide-top-add,.am-fade-and-slide-top.ng-hide-remove,.am-fade-and-slide-top.ng-move{-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop}.am-fade-and-slide-top.am-fade-and-slide-top-remove,.am-fade-and-slide-top.ng-hide{-webkit-animation-name:fadeAndSlideToTop;animation-name:fadeAndSlideToTop}.am-fade-and-slide-top.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-top.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-top.ng-leave{-webkit-animation-name:fadeAndSlideToTop;animation-name:fadeAndSlideToTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-top.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-right{animation-duration:.3s;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-slide-bottom,.am-fade-and-slide-left{-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out}.am-fade-and-slide-right.am-fade-and-slide-right-add,.am-fade-and-slide-right.ng-hide-remove,.am-fade-and-slide-right.ng-move{-webkit-animation-name:fadeAndSlideFromRight;animation-name:fadeAndSlideFromRight}.am-fade-and-slide-right.am-fade-and-slide-right-remove,.am-fade-and-slide-right.ng-hide{-webkit-animation-name:fadeAndSlideToRight;animation-name:fadeAndSlideToRight}.am-fade-and-slide-right.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromRight;animation-name:fadeAndSlideFromRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-right.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-right.ng-leave{-webkit-animation-name:fadeAndSlideToRight;animation-name:fadeAndSlideToRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-right.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-bottom{animation-duration:.3s;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-slide-bottom.am-fade-and-slide-bottom-add,.am-fade-and-slide-bottom.ng-hide-remove,.am-fade-and-slide-bottom.ng-move{-webkit-animation-name:fadeAndSlideFromBottom;animation-name:fadeAndSlideFromBottom}.am-fade-and-slide-bottom.am-fade-and-slide-bottom-remove,.am-fade-and-slide-bottom.ng-hide{-webkit-animation-name:fadeAndSlideToBottom;animation-name:fadeAndSlideToBottom}.am-fade-and-slide-bottom.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromBottom;animation-name:fadeAndSlideFromBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-bottom.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-bottom.ng-leave{-webkit-animation-name:fadeAndSlideToBottom;animation-name:fadeAndSlideToBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-bottom.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-left{animation-duration:.3s;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-slide-left.am-fade-and-slide-left-add,.am-fade-and-slide-left.ng-hide-remove,.am-fade-and-slide-left.ng-move{-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;-webkit-animation-name:fadeAndSlideFromLeft;animation-name:fadeAndSlideFromLeft}.am-fade-and-slide-left.am-fade-and-slide-left-remove,.am-fade-and-slide-left.ng-hide{-webkit-animation-name:fadeAndSlideToLeft;animation-name:fadeAndSlideToLeft}.am-fade-and-slide-left.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromLeft;animation-name:fadeAndSlideFromLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-left.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-left.ng-leave{-webkit-animation-name:fadeAndSlideToLeft;animation-name:fadeAndSlideToLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-left.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes fadeAndSlideFromTop{from{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}to{opacity:1}}@keyframes fadeAndSlideFromTop{from{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToTop{from{opacity:1}to{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}}@keyframes fadeAndSlideToTop{from{opacity:1}to{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}}@-webkit-keyframes fadeAndSlideFromRight{from{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}to{opacity:1}}@keyframes fadeAndSlideFromRight{from{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToRight{from{opacity:1}to{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}}@keyframes fadeAndSlideToRight{from{opacity:1}to{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}}@-webkit-keyframes fadeAndSlideFromBottom{from{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1}}@keyframes fadeAndSlideFromBottom{from{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToBottom{from{opacity:1}to{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}}@keyframes fadeAndSlideToBottom{from{opacity:1}to{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}}@-webkit-keyframes fadeAndSlideFromLeft{from{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}to{opacity:1}}@keyframes fadeAndSlideFromLeft{from{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToLeft{from{opacity:1}to{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}}@keyframes fadeAndSlideToLeft{from{opacity:1}to{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}}.am-fade-and-scale{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-scale.am-fade-and-scale-add,.am-fade-and-scale.ng-enter,.am-fade-and-scale.ng-hide-remove,.am-fade-and-scale.ng-move{-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn}.am-fade-and-scale.am-fade-and-scale-remove,.am-fade-and-scale.ng-hide,.am-fade-and-scale.ng-leave{-webkit-animation-name:fadeAndScaleOut;animation-name:fadeAndScaleOut}.am-fade-and-scale.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-scale.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-scale.ng-leave{-webkit-animation-name:fadeAndScaleOut;animation-name:fadeAndScaleOut;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-scale.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes fadeAndScaleIn{from{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:1}}@keyframes fadeAndScaleIn{from{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:1}}@-webkit-keyframes fadeAndScaleOut{from{opacity:1}to{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}}@keyframes fadeAndScaleOut{from{opacity:1}to{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}}.alert.bottom,.alert.bottom-left,.alert.bottom-right,.alert.top,.alert.top-left,.alert.top-right{position:fixed;z-index:1050;margin:20px}.alert.top,.alert.top-left,.alert.top-right{top:50px}.alert.top{left:0}.alert.top-left{left:0}.alert.bottom,.alert.bottom-left,.alert.bottom-right{bottom:0}.alert.bottom{right:0;left:0}.alert.bottom-left{left:0}.aside .aside-dialog .aside-footer:after,.aside .aside-dialog .aside-footer:before,.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.aside{position:fixed;top:0;bottom:0;z-index:1049;overflow:auto;min-width:320px;background:#fff}@media (max-width:991px){.aside{min-width:240px}}.aside.left{right:auto;left:0}.aside.right{right:0;left:auto}.aside .aside-dialog .aside-header{border-bottom:1px solid #e5e5e5;min-height:16.43px;padding:6px 15px;background:#337ab7;color:#fff}.aside .aside-dialog .aside-header .close{margin-right:-8px;padding:4px 8px;color:#fff;font-size:25px;opacity:.8}.aside .aside-dialog .aside-body{position:relative;padding:15px}.aside .aside-dialog .aside-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.aside .aside-dialog .aside-footer .btn+.btn{margin-left:5px;margin-bottom:0}.aside .aside-dialog .aside-footer .btn-group .btn+.btn{margin-left:-1px}.aside .aside-dialog .aside-footer .btn-block+.btn-block{margin-left:0}.aside-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.aside-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.aside-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.ui-grid-top-panel,.ui-grid-top-panel-background{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='white', endColorstr='white', GradientType=0)}.datepicker.dropdown-menu{width:250px;height:270px}.datepicker.dropdown-menu button{outline:0;border:0}.datepicker.dropdown-menu tbody{height:180px}.datepicker.dropdown-menu tbody button{padding:6px}.datepicker.dropdown-menu.datepicker-mode-1 tbody button,.datepicker.dropdown-menu.datepicker-mode-2 tbody button{height:65px}.callout{margin:20px 0;padding:20px;border-left:3px solid #eee}.callout h4{margin-top:0;margin-bottom:5px}.popover.top-left,.popover.top-right{margin-top:-10px}.callout p:last-child{margin-bottom:0}.callout-danger{border-color:#eed3d7;background-color:#fdf7f7}.callout-danger h4{color:#b94a48}.callout-warning{border-color:#faebcc;background-color:#faf8f0}.callout-warning h4{color:#8a6d3b}.callout-info{border-color:#bce8f1;background-color:#f4f8fa}.callout-info h4{color:#34789a}.modal.center .modal-dialog{position:fixed;top:40%;left:50%;min-width:320px;max-width:630px;width:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.popover.top-left .arrow{margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px;left:10%}.popover.top-left .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.bottom-left,.popover.bottom-right{margin-top:10px}.popover.top-right .arrow{margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px;left:90%}.popover.top-right .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.bottom-left .arrow{margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px;left:10%}.popover.bottom-left .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.bottom-right .arrow{margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px;left:90%}.popover.bottom-right .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.timepicker.dropdown-menu{padding:0 4px}.timepicker.dropdown-menu button{border:0}.timepicker.dropdown-menu tbody button{padding:6px}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-group-xs>.btn{font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px}.btn-group-xs>.btn{padding:1px 5px}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.tooltip.tooltip-info.top .tooltip-arrow,.tooltip.tooltip-info.top-left .tooltip-arrow,.tooltip.tooltip-info.top-right .tooltip-arrow{border-top-color:#d9edf7}.tooltip.tooltip-info.right .tooltip-arrow{border-right-color:#d9edf7}.tooltip.tooltip-info.bottom .tooltip-arrow,.tooltip.tooltip-info.bottom-left .tooltip-arrow,.tooltip.tooltip-info.bottom-right .tooltip-arrow{border-bottom-color:#d9edf7}.tooltip.tooltip-info.left .tooltip-arrow{border-left-color:#d9edf7}.tooltip.tooltip-info .tooltip-inner{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.tooltip.tooltip-info .tooltip-inner hr{border-top-color:#a6e1ec}.tooltip.tooltip-info .tooltip-inner .alert-link{color:#245269}.tooltip.tooltip-success.top .tooltip-arrow,.tooltip.tooltip-success.top-left .tooltip-arrow,.tooltip.tooltip-success.top-right .tooltip-arrow{border-top-color:#dff0d8}.tooltip.tooltip-success.right .tooltip-arrow{border-right-color:#dff0d8}.tooltip.tooltip-success.bottom .tooltip-arrow,.tooltip.tooltip-success.bottom-left .tooltip-arrow,.tooltip.tooltip-success.bottom-right .tooltip-arrow{border-bottom-color:#dff0d8}.tooltip.tooltip-success.left .tooltip-arrow{border-left-color:#dff0d8}.tooltip.tooltip-success .tooltip-inner{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.tooltip.tooltip-success .tooltip-inner hr{border-top-color:#c9e2b3}.tooltip.tooltip-success .tooltip-inner .alert-link{color:#2b542c}.tooltip.tooltip-danger.top .tooltip-arrow,.tooltip.tooltip-danger.top-left .tooltip-arrow,.tooltip.tooltip-danger.top-right .tooltip-arrow{border-top-color:#f2dede}.tooltip.tooltip-danger.right .tooltip-arrow{border-right-color:#f2dede}.tooltip.tooltip-danger.bottom .tooltip-arrow,.tooltip.tooltip-danger.bottom-left .tooltip-arrow,.tooltip.tooltip-danger.bottom-right .tooltip-arrow{border-bottom-color:#f2dede}.tooltip.tooltip-danger.left .tooltip-arrow{border-left-color:#f2dede}.tooltip.tooltip-danger .tooltip-inner{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.tooltip.tooltip-danger .tooltip-inner hr{border-top-color:#e4b9c0}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{border-width:5px 5px 0;border-top-color:#000;margin-left:-5px;bottom:0}.tooltip.tooltip-danger .tooltip-inner .alert-link{color:#843534}.tooltip.top-left{margin-top:-3px;padding:5px 0}.tooltip.top-left .tooltip-arrow{left:10%}.tooltip.top-right{margin-top:-3px;padding:5px 0}.tooltip.bottom-left,.tooltip.bottom-right{margin-top:3px;padding:5px 0}.tooltip.top-right .tooltip-arrow{left:90%}.tooltip.bottom-left .tooltip-arrow{top:0;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000;left:10%}.tooltip.bottom-right .tooltip-arrow{top:0;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000;left:90%}#ui-grid-twbs #ui-grid-twbs .btn-group-vertical>.btn-group:after,#ui-grid-twbs #ui-grid-twbs .btn-group-vertical>.btn-group:before,#ui-grid-twbs #ui-grid-twbs .btn-toolbar:after,#ui-grid-twbs #ui-grid-twbs .btn-toolbar:before,#ui-grid-twbs #ui-grid-twbs .form-horizontal .form-group:after,#ui-grid-twbs #ui-grid-twbs .form-horizontal .form-group:before{content:" ";display:table}.ui-grid{border:1px solid #ddd;box-sizing:content-box;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0)}.ui-grid-vertical-bar{position:absolute;right:0;width:0}.ui-grid-scrollbar-placeholder{background-color:transparent}.ui-grid-cell:not(:last-child) .ui-grid-vertical-bar,.ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar{width:1px;background-color:#ddd}.ui-grid-header-cell:last-child .ui-grid-vertical-bar{right:-1px;width:1px;background-color:#ddd}.ui-grid-clearfix:after,.ui-grid-clearfix:before{content:"";display:table}.ui-grid-invisible{visibility:hidden}.ui-grid-contents-wrapper{position:relative;height:100%;width:100%}.ui-grid-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.ui-grid-top-panel-background{background:#fff;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#fff),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#fff,#fff);background:-moz-linear-gradient(center bottom,#fff 0,#fff 100%);background:-o-linear-gradient(white,#fff)}.ui-grid-header{border-bottom:1px solid #ddd;box-sizing:border-box}.ui-grid-top-panel{position:relative;overflow:hidden;font-weight:700;background:#fff;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#fff),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#fff,#fff);background:-moz-linear-gradient(center bottom,#fff 0,#fff 100%);background:-o-linear-gradient(white,#fff);-moz-border-radius-topright:-1px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:-1px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:-1px -1px 0 0;border-radius:-1px -1px 0 0}.ui-grid-header-viewport{overflow:hidden}.ui-grid-header-canvas:after,.ui-grid-header-canvas:before{content:"";display:table;line-height:0}.ui-grid-header-cell-wrapper{position:relative;display:table;box-sizing:border-box;height:100%}.ui-grid-header-cell-row{display:table-row;position:relative}.ui-grid-header-cell{position:relative;box-sizing:border-box;background-color:inherit;border-right:1px solid;border-color:#ddd;display:table-cell;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:0}.ui-grid-header-cell:last-child{border-right:0}.ui-grid-header-cell .ui-grid-sort-priority-number{margin-left:-8px}.ui-grid-header .ui-grid-vertical-bar{top:0;bottom:0}.ui-grid-column-menu-button{position:absolute;right:1px;top:0}.ui-grid-column-menu-button .ui-grid-icon-angle-down{vertical-align:sub}.ui-grid-column-menu-button-last-col{margin-right:25px}.ui-grid-column-menu{position:absolute}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transition:all 50ms linear;-moz-transition:all 50ms linear;-o-transition:all 50ms linear;transition:all 50ms linear;display:block!important}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add.ng-hide-add-active,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-o-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove.ng-hide-remove-active{-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transition:all 50ms linear;-moz-transition:all 50ms linear;-o-transition:all 50ms linear;transition:all 50ms linear;display:block!important}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add.ng-hide-add-active,.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-o-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove.ng-hide-remove-active{-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.ui-grid-filter-container{padding:4px 10px;position:relative}.ui-grid-filter-container .ui-grid-filter-button{position:absolute;top:0;bottom:0;right:0}.ui-grid-filter-container .ui-grid-filter-button [class^=ui-grid-icon]{position:absolute;top:50%;line-height:32px;margin-top:-16px;right:10px;opacity:.66}.ui-grid-filter-container .ui-grid-filter-button [class^=ui-grid-icon]:hover{opacity:1}.ui-grid-filter-container .ui-grid-filter-button-select{position:absolute;top:0;bottom:0;right:0}.ui-grid-filter-container .ui-grid-filter-button-select [class^=ui-grid-icon]{position:absolute;top:50%;line-height:32px;margin-top:-16px;right:0;opacity:.66}.ui-grid-filter-container .ui-grid-filter-button-select [class^=ui-grid-icon]:hover{opacity:1}select.ui-grid-filter-select{padding:0;margin:0;width:90%;border:1px solid #ddd;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:0;border-radius:0}select.ui-grid-filter-select:hover{border:1px solid #ddd}.ui-grid-no-row-overlay,.ui-grid-render-container{-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0}.ui-grid-filter-cancel-button-hidden select.ui-grid-filter-select{width:100%}.ui-grid-render-container{position:inherit;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:0;border-radius:0}.ui-grid-viewport{min-height:20px;position:relative;overflow-y:scroll;-webkit-overflow-scrolling:touch}.ui-grid-viewport:focus{outline:0!important}.ui-grid-canvas{position:relative;padding-top:1px}.ui-grid-row:nth-child(odd) .ui-grid-cell{background-color:#fff}.ui-grid-row:nth-child(even) .ui-grid-cell{background-color:#f8f8f8}.ui-grid-footer-panel-background,.ui-grid-no-row-overlay{background:#fff;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='white', endColorstr='white', GradientType=0)}.ui-grid-row:last-child .ui-grid-cell{border-bottom-color:#ddd;border-bottom-style:solid}.ui-grid-no-row-overlay{position:absolute;top:0;bottom:0;left:0;right:0;margin:10%;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#fff),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#fff,#fff);background:-moz-linear-gradient(center bottom,#fff 0,#fff 100%);background:-o-linear-gradient(white,#fff);-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ddd;font-size:2em;text-align:center;-webkit-border-radius:0;border-radius:0}.ui-grid-no-row-overlay>*{position:absolute;display:table;margin:auto 0;width:100%;top:0;bottom:0;left:0;right:0;opacity:.66}.ui-grid-cell{overflow:hidden;float:left;background-color:inherit;border-right:1px solid;border-color:#ddd;box-sizing:border-box}.ui-grid-cell:last-child{border-right:0}.ui-grid-cell-contents{padding:5px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden;height:100%}.ui-grid-cell-contents-hidden{visibility:hidden;width:0;height:0;display:none}.ui-grid-row .ui-grid-cell.ui-grid-row-header-cell{border-bottom:solid 1px #ddd}.ui-grid-footer-panel-background{background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#fff),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#fff,#fff);background:-moz-linear-gradient(center bottom,#fff 0,#fff 100%);background:-o-linear-gradient(white,#fff)}.ui-grid-footer-panel{position:relative;border-bottom:1px solid #ddd;border-top:1px solid #ddd;overflow:hidden;font-weight:700;background:#fff;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#fff),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#fff,#fff);background:-moz-linear-gradient(center bottom,#fff 0,#fff 100%);background:-o-linear-gradient(white,#fff);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='white', endColorstr='white', GradientType=0);-moz-border-radius-topright:-1px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:-1px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:-1px -1px 0 0;border-radius:-1px -1px 0 0}.ui-grid-grid-footer{float:left;width:100%;padding:10px;border-top:1px solid #ddd;box-sizing:border-box}.ui-grid-footer-viewport{overflow:hidden}.ui-grid-footer-canvas{position:relative}.ui-grid-footer-canvas:after,.ui-grid-footer-canvas:before{content:"";display:table;line-height:0}.ui-grid-footer-cell-wrapper{position:relative;display:table;box-sizing:border-box;height:100%}.ui-grid-menu,.ui-grid-menu-button{position:absolute;cursor:pointer;z-index:2}.ui-grid-footer-cell-row{display:table-row}.ui-grid-footer-cell{overflow:hidden;background-color:inherit;border-right:1px solid;border-color:#ddd;box-sizing:border-box;display:table-cell}.ui-grid-footer-cell:last-child{border-right:0}input[type=text].ui-grid-filter-input{padding:0;margin:0;width:100%;border:1px solid #ddd;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:0;border-radius:0}input[type=text].ui-grid-filter-input:hover{border:1px solid #ddd}.ui-grid-menu-button{right:0;top:0;background:#fff;border:none;height:31px;font-weight:400}.ui-grid-menu-button .ui-grid-icon-container{margin-top:3px}.ui-grid-menu-button .ui-grid-menu{right:0}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid{overflow:hidden;border:1px solid #ddd}.ui-grid-menu{padding:0 10px 20px;box-sizing:border-box}.ui-grid-menu .ui-grid-menu-inner{background:#fff;border:1px solid #ddd;position:relative;white-space:nowrap;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 10px 20px rgba(0,0,0,.2),inset 0 12px 12px -14px rgba(0,0,0,.2);-moz-box-shadow:0 10px 20px rgba(0,0,0,.2),inset 0 12px 12px -14px rgba(0,0,0,.2);box-shadow:0 10px 20px rgba(0,0,0,.2),inset 0 12px 12px -14px rgba(0,0,0,.2)}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button{position:absolute;right:0;top:0;display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:1px;font-size:10px;line-height:1;border-radius:2px;color:transparent;background-color:transparent}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover{text-decoration:none}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active{outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled],fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button,.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active:hover,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active:hover,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover{color:transparent;background-color:rgba(0,0,0,0);border-color:transparent}.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active{background-image:none}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled:hover,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled].focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled]:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled]:hover,fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover{background-color:transparent;border-color:transparent}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button .badge{color:transparent;background-color:transparent}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button>i{opacity:.75;color:#000}.ui-grid-menu .ui-grid-menu-inner ul{margin:0;padding:0;list-style-type:none}.ui-grid-menu .ui-grid-menu-inner ul li{padding:0}.ui-grid-menu .ui-grid-menu-inner ul li button{min-width:100%;padding:8px;text-align:left;background:0 0;border:none}.ui-grid-menu .ui-grid-menu-inner ul li button:focus,.ui-grid-menu .ui-grid-menu-inner ul li button:hover{-webkit-box-shadow:inset 0 0 14px rgba(0,0,0,.2);-moz-box-shadow:inset 0 0 14px rgba(0,0,0,.2);box-shadow:inset 0 0 14px rgba(0,0,0,.2)}.ui-grid-menu .ui-grid-menu-inner ul li button.ui-grid-menu-item-active{-webkit-box-shadow:inset 0 0 14px rgba(0,0,0,.2);-moz-box-shadow:inset 0 0 14px rgba(0,0,0,.2);box-shadow:inset 0 0 14px rgba(0,0,0,.2);background-color:#cecece}.ui-grid-menu .ui-grid-menu-inner ul li:not(:last-child)>button{border-bottom:1px solid #ddd}.ui-grid-sortarrow{right:5px;position:absolute;width:20px;top:0;bottom:0;background-position:center}.ui-grid-sortarrow.down{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}@font-face{font-family:ui-grid;src:url(ui-grid.eot);src:url(ui-grid.eot#iefix) format('embedded-opentype'),url(../../assets/css/global/ui-grid.woff) format('woff'),url(../../assets/css/global/ui-grid.ttf) format('truetype'),url(ui-grid.svg?#ui-grid) format('svg');font-weight:400;font-style:normal}[class*=" ui-grid-icon"]:before,[class^=ui-grid-icon]:before{font-family:ui-grid;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.ui-grid-icon-blank::before{width:1em;content:' '}.ui-grid[dir=rtl] .ui-grid-cell,.ui-grid[dir=rtl] .ui-grid-footer-cell,.ui-grid[dir=rtl] .ui-grid-header-cell{float:right!important}.ui-grid[dir=rtl] .ui-grid-column-menu-button{position:absolute;left:1px;top:0;right:inherit}.ui-grid[dir=rtl] .ui-grid-cell:first-child,.ui-grid[dir=rtl] .ui-grid-footer-cell:first-child,.ui-grid[dir=rtl] .ui-grid-header-cell:first-child{border-right:0}.ui-grid[dir=rtl] .ui-grid-cell:last-child,.ui-grid[dir=rtl] .ui-grid-header-cell:last-child{border-right:1px solid #ddd;border-left:0}.ui-grid[dir=rtl] .ui-grid-cell:first-child .ui-grid-vertical-bar,.ui-grid[dir=rtl] .ui-grid-footer-cell:first-child .ui-grid-vertical-bar,.ui-grid[dir=rtl] .ui-grid-header-cell:first-child .ui-grid-vertical-bar{width:0}.ui-grid[dir=rtl] .ui-grid-menu-button{z-index:2;position:absolute;left:0;right:auto;background:#fff;border:1px solid #ddd;cursor:pointer;min-height:27px;font-weight:400}.ui-grid[dir=rtl] .ui-grid-menu-button .ui-grid-menu{left:0;right:auto}.ui-grid[dir=rtl] .ui-grid-filter-container .ui-grid-filter-button{right:initial;left:0}.ui-grid[dir=rtl] .ui-grid-filter-container .ui-grid-filter-button [class^=ui-grid-icon]{right:initial;left:10px}.ui-grid-animate-spin{-moz-animation:ui-grid-spin 2s infinite linear;-o-animation:ui-grid-spin 2s infinite linear;-webkit-animation:ui-grid-spin 2s infinite linear;animation:ui-grid-spin 2s infinite linear;display:inline-block}@-moz-keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.ui-grid-draggable-row{height:30px}.ui-grid-draggable-row-over{position:relative;color:#AAA}.ui-grid-draggable-row-over:before{content:"";display:block;position:absolute;left:0;width:100%;border-bottom:1px dashed #AAA}.ui-grid-draggable-row-over--above:before{top:0}.ui-grid-draggable-row-over--below:before{bottom:0}
\ No newline at end of file
similarity index 60%
rename from public/app/116b9f4e.app.js
rename to public/app/8f31380f.app.js
index 235c257..a502552 100644 (file)
@@ -2,39 +2,41 @@
 name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){var b=d.open({animation:!0,templateUrl:"app/channels/mail/queue/list/list.create.modal.html",controller:"ChatQueueListCreateCtrl"});b.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("ChatQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","ChatQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return e.save(a.item).$promise.then(function(a){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.queues.list",{url:"/list",templateUrl:"app/channels/chat/queue/list/list.html",controller:"ChatQueueListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","ChatQueue","Team",function(a,b,c,d,e,f,g){var h=function(){return{select:function(b){return f.save({id:a.queue.id,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})},deselect:function(b){return f["delete"]({id:a.queue.id,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})}}};a.getQueue=function(){b.get("/api/chat/queues/"+e.id).success(function(b){b.penalty=0,a.queue=b}).error(function(a){console.error(a)})},a.updateChatQueue=function(){var f=angular.copy(a.queue);b.put("/api/chat/queues/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){a.queue=f,b.errors.forEach(function(a){c.show(a.message,"danger")})})},a.getTeams=function(){return g.get().$promise.then(function(b){return a.teams=b.rows,f.query({id:e.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindChatQueue(a.teams,_.map(b,function(a){return{id:a.id,penalty:a.UserHasChatQueue.penalty}}),h)})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.queues.view",{url:"/view/:id",templateUrl:"app/channels/chat/queue/view/view.html",controller:"ChatQueueViewCtrl",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.channels.chat.queues.view.settings",{url:"/settings",templateUrl:"app/channels/chat/queue/view/view.settings.html"}).state("main.channels.chat.queues.view.agents",{url:"/agents",templateUrl:"app/channels/chat/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/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","ChatQueue","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){return k.spin("spinner-grid"),g.get(s).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){p(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function o(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});if(c){var d=a.gridOptions.data.indexOf(c);a.gridOptions.data[d].online=b.online,a.gridOptions.data[d].lastLoginAt=b.lastLoginAt,a.gridOptions.data[d].pause=b.chatPause,a.gridOptions.data[d].pauseType=b.pauseType,a.gridOptions.data[d].lastPauseAt=b.lastPauseAt,a.gridOptions.data[d].ipaddr=b.ipaddr,a.gridOptions.data[d].port=b.port,a.gridOptions.data[d].fullcontact=b.fullcontact,a.gridOptions.data[d].useragent=b.useragent,a.gridOptions.data[d].lastms=b.lastms,a.gridOptions.data[d].internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)})}}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_chat_queue:save",function(b){console.log("new queue",b);var c=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0}),d=a.gridOptions.data.indexOf(c);a.gridOptions.data.splice(d+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,queueId:b.ChatQueueId,agent:b.membername,online:c.online})}),e.socket.on("user_has_chat_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queueId:b.ChatQueueId})})}function p(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.chatPause,pauseType:b.pauseType,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.ChatQueues.forEach(function(c){a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,queueId:c.id,agent:b.name,online:b.online})})}function q(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function r(){return j.get().$promise.then(function(b){a.chatQueues=b.rows,e.syncUpdates("chat_queue",a.chatQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.chatQueues=[];var s={offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.isAgent">{{row.entity.agent}} &lt;{{row.entity.internal}}&gt;</div>'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.online != null && row.entity.isAgent"><i class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i> <span data-ng-if="row.entity.online" class="left-margin">(<timer start-time="grid.appScope.moment(row.entity.lastLoginAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"chatPause",width:300,displayName:"APPLICATION_PAUSE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.pause != null && row.entity.online" class="ui-grid-vcenter" data-ng-class="{\'paused-agent\':row.entity.pause}"><timer data-ng-if="row.entity.pause" start-time="grid.appScope.moment(row.entity.lastPauseAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span><span data-ng-if="row.entity.pause" class="left-margin">({{row.entity.pauseType}})</span><i data-ng-if="row.entity.pause" data-ng-click="grid.appScope.pause(row.entity.agentId,\'unpause\')" class="icon-control-play font-green pointer-cursor left-margin" title="{{\'APPLICATION_RESUME\' | translate}}"></i><i class="icon-control-pause font-yellow pointer-cursor" data-ng-click="grid.appScope.pause(row.entity.agentId,\'pause\',\'DEFAULT PAUSE\')" title="{{\'APPLICATION_DEFAULT_PAUSE\' | translate}}"></i><select data-ng-if="grid.appScope.pauses.length" class="pause-select pointer-cursor" data-ng-model="grid.appScope.pauseType" data-ng-change="grid.appScope.pause(row.entity.agentId,\'pause\',grid.appScope.pauseType)"><option class="pointer-cursor" data-ng-repeat="pause in grid.appScope.pauses">{{pause.name}}</option></select></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"PAUSED"},{value:"false",label:"NOT PAUSED"}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><button data-ng-if="row.entity.queueId" class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.leaveQueue(row.entity.agentId,row.entity.queueId)"><i class="icon-ban"></i> {{\'APPLICATION_LEAVE\' | translate}}</button><button data-ng-if="row.entity.isAgent && row.treeNode.children.length < grid.appScope.chatQueues.length" class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.joinQueue(row.entity.agentId)"><i class="icon-plus"></i> {{\'APPLICATION_JOIN_QUEUE\' | translate}}</button> <button data-ng-if="row.entity.isAgent" class="btn btn-xs blue-madison" data-ng-click="grid.appScope.showInfo(row.entity)"><i class="icon-info"></i> {{\'APPLICATION_INFO\' | translate}}</button><div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?s.order=null:s.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),n()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){s.offset=(a-1)*b,s.limit=b,n()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?s[a.name]=a.filters[0].term:delete s[a.name]}),n()})}},n(),q(),r(),o()};var t=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_chat_queue")}),a.pause=function(a,b,c){return i.save({name:b,agent:a,type:c||"DEFAULT PAUSE",data4:c||"DEFAULT PAUSE",channel:"chat"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/chat/realtime/view/agent/queue.modal.add.html",controller:"ChatRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.chatQueues,function(b){return _.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})?!0:!1})}}});g.result.then(function(b){return i.save({name:"QueueAdd",agent:e,queues:_.filter(a.chatQueues,function(a){return _.includes(b.queues,a.id)}),channel:"chat",data1:e,data3:b.queues.join(","),data4:"chat"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queueId:b,channel:"chat",data1:a,data3:b,data4:"chat"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/chat/realtime/view/agent/agent.modal.info.html",controller:"ChatRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/chat/realtime/view/agent/agent.html",controller:"ChatRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewQueueCtrl",["$scope","$http","socket","ChatQueue","Agent",function(a,b,c,d,e){a.initQueues=function(){a.gridOptions={enableSorting:!1,enableFiltering:!0,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,showTreeExpandNoChildren:!1,columnDefs:[{name:"queueName",displayName:"Queue"},{name:"fullname",displayName:"Agent",cellClass:"text-center"},{name:"online",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><i data-ng-if="row.entity.online != null" class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i></div>'},{name:"chatPause",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><i data-ng-if=\"row.entity.chatPause != null\" data-ng-class=\"row.entity.chatPause ? 'icon-control-pause font-red' : 'icon-control-play font-green'\"></i></div>"},{name:"pauseType",cellClass:"text-center",cellTemplate:'<span data-ng-if="row.entity.chatPause">{{row.entity.pauseType}}</span>'},{name:"lastLoginAt",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><time data-ng-if="row.entity.lastLoginAt" is="relative-time" datetime="{{row.entity.lastLoginAt}}">April 1, 2014</time></div>'}],onRegisterApi:function(b){a.gridApi=b,a.gridApi.treeBase.on.rowExpanded(a,function(b){var c=_.findIndex(a.gridOptions.data,{$$hashKey:b.entity.$$hashKey});b.entity.Users&&b.entity.Users.forEach(function(b){_.find(a.gridOptions.data,{name:b.name})||a.gridOptions.data.splice(c+1,0,b)})})}},d.get(function(b){a.gridOptions.data=[],b.rows.forEach(function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b),b.Users&&b.Users.forEach(function(b){b.agentName=b.name,a.gridOptions.data.push(b)})}),c.socket.on("agent:save",function(b){var c=_.filter(a.gridOptions.data,{agentName:b.name});c.forEach(function(a){a.online=b.online,a.lastLoginAt=b.lastLoginAt})}),c.socket.on("chat_queue:save",function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b)}),c.socket.on("chat_queue:remove",function(b){_.remov(a.gridOptions.data,{queueName:b.name})}),c.socket.on("user_has_chat_queue:save",function(b){var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.ChatQueueId});e.get({id:b.UserId}).$promise.then(function(b){a.gridOptions.data.splice(c+1,0,{id:b.id,name:b.name,fullname:b.fullname,agentName:b.name,online:b.online,lastLoginAt:b.lastLoginAt})})["catch"](function(a){console.error(a)})}),c.socket.on("user_has_chat_queue:remove",function(b){for(var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.ChatQueueId}),d=c+1;d<a.gridOptions.data.length;d++)a.gridOptions.data[d].id==b.UserId&&a.gridOptions.data.splice(d,1)})},function(a){console.error(a)})},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(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")}),a.initAgents=function(){b.get("/api/report/mails").success(function(b){a.agents=b,c.socket.on("report_mail:save",function(b){var c=_.find(a.agents,{id:b.id});c||a.agents.unshift(b)}),c.socket.on("report_mail:update",function(b){var c=_.find(a.agents,{id:b.id}),d=a.agents.indexOf(c);c&&_.merge(a.agents[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime.view.queues",{url:"/queues",templateUrl:"app/channels/chat/realtime/view/queue/queue.html",controller:"ChatRealtimeViewQueueCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewSessionCtrl",["$scope","$http","socket","uiGridConstants",function(a,b,c,d){a.initSessions=function(){a.gridOptions={enableHorizontalScrollbar:0,enableVerticalScrollbar:0,columnDefs:[{name:"uniqueid",cellClass:"text-center",width:150,enableSorting:!1,enableFiltering:!0},{name:"application",displayName:"APPLICATION_APP",headerCellFilter:"translate",cellClass:"text-center"},{name:"queuename",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center"},{name:"agentname",cellClass:"text-center"},{name:"websitename",displayName:"APPLICATION_WEB_SITE",headerCellFilter:"translate"},{name:"joinAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.joinAt" is="relative-time" datetime="{{row.entity.joinAt}}">April 1, 2014</time>',sort:{direction:d.DESC,priority:1}},{name:"leaveAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.leaveAt" is="relative-time" datetime="{{row.entity.leaveAt}}">April 1, 2014</time>'},{name:"unmanagedAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.unmanagedAt" is="relative-time" datetime="{{row.entity.unmanagedAt}}">April 1, 2014</time>'}],data:[]},b.get("/api/report/chat/sessions").success(function(b){a.gridOptions.data=b.rows,c.socket.on("report_chat_session:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id}),d=a.gridOptions.data.indexOf(c);c?_.merge(a.gridOptions.data[d],b):a.gridOptions.data.unshift(b)})}).error(function(a){console.error(a)})},a.$on("$destroy",function(){c.unsyncUpdates("report_chat:save"),c.unsyncUpdates("report_chat:update")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime.view.sessions",{url:"/sessions",templateUrl:"app/channels/chat/realtime/view/session/session.html",controller:"ChatRealtimeViewSessionCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"Queues",link:"main.chat.realtime.view.agent.queues"},{name:"Timeline",link:"main.chat.realtime.view.agent.timeline"}],a.sessions=[{name:"Sessions",link:"main.chat.realtime.view.sessions"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime.view",{url:"/view",templateUrl:"app/channels/chat/realtime/view/view.html",controller:"ChatRealtimeViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatVisitorListCtrl",["$scope","ChatVisitor","gridOptions","$uibModal",function(a,b,c,d){a.initView=function(){var d={exporterCsvFilename:"chat_visitors.csv",columnDefs:[{name:"fullname",cellClass:"text-center"},{name:"email",cellClass:"text-center"},{name:"origin",cellClass:"text-center"},{name:"createdAt",displayName:"createdAt",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><span am-time-ago="row.entity.createdAt"></span></div>'},{name:"action",width:100,buttons:[{"class":"blue-hoki",href:"/channels/chat/visitors/view/{{row.entity.id}}/profile",name:"profile"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.visitors.list",{url:"/list",templateUrl:"app/channels/chat/visitor/list/list.html",controller:"ChatVisitorListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatVisitorViewCtrl",["$scope","$stateParams","ChatVisitor",function(a,b,c){a.initView=function(){return c.get({id:b.id}).$promise.then(function(b){a.chatVisitor=b})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.visitors.view",{url:"/view/:id",templateUrl:"app/channels/chat/visitor/view/view.html",controller:"ChatVisitorViewCtrl",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.channels.chat.visitors.view.profile",{url:"/profile",templateUrl:"app/channels/chat/visitor/view/view.profile.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.visitors",{url:"/visitors",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("ChatApplication",["$resource",function(a){return a("/api/chat/applications/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatWebsite",["$resource",function(a){return a("/api/chat/websites/:websiteId/:controller/:id",{id:"@websiteId"},{update:{method:"PUT"},updateFields:{method:"PUT",isArray:!0}})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteListCtrl",["$scope","gridOptions","ChatWebsite",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"chat_websites.csv",columnDefs:[{name:"name"},{name:"description"},{name:"address"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/chat/websites/view/{{row.entity.id}}/embedding/view",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.list",{url:"/list",templateUrl:"app/channels/chat/website/list/list.html",controller:"ChatWebsiteListCtrl",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.channels.chat.websites.view.actions",{url:"/actions",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewActionListCtrl",["$scope","gridOptions","ChatWebsite","$http","$translate","$stateParams","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i){a.initActons=function(){var d={draggable:!0,exporterCsvFilename:"chat_applications.csv",columnDefs:[{name:"app",cellClass:"text-center"},{name:"name",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span>{{row.entity.ChatQueue ? row.entity.ChatQueue.name : row.entity.User.name}}</span></div>"},{name:"timeout",cellClass:"text-center"},{name:"interval",cellClass:"text-center"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/chat/websites/view/{{row.entity.ChatWebsiteId}}/actions/view/{{row.entity.id}}",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.app, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a,{websiteId:f.websiteId,controller:"applications"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.actions.list",{url:"/list",templateUrl:"app/channels/chat/website/view/action/list/list.html",controller:"ChatWebsiteViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval","ChatApplication","ChatQueue","Agent","Interval",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){return a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],k.get({id:c.actionId}).$promise.then(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})})["catch"](function(a){f.show(d.instant("Something went wrong!"),"danger")})},a.getQueues=function(){return l.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return m.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return n.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.updateItem=function(){var b=["*","*","*","*"],e={app:a.application.app,timeout:a.application.timeout,chatAccountId:c.id};switch(a.application.app){case"agent":e.UserId=a.application.UserId;break;case"queue":e.chatQueueId=a.application.chatQueueId}switch(a.application.intType){case"always":e.interval=b.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(b[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?b[1]="*":b[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?b[2]="*":b[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?b[3]="*":b[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",e.interval=b.join(","),delete a.application.IntervalId;break;case"list":e.IntervalId=a.application.IntervalId}return k.update({id:c.actionId},e).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.actions.view",{url:"/view/:actionId",templateUrl:"app/channels/chat/website/view/action/view/view.html",controller:"ChatWebsiteViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewActionWizardCtrl",["$scope","$http","Agent","Interval","ChatQueue","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=l.application,a.$stateParams=f,a.$interval=m.interval,a.forms={},a.application={app:"queue",intType:"always",alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){return e.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return c.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return d.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.createItem=function(){var c=["*","*","*","*"],d={app:a.application.app,timeout:a.application.timeout,ChatWebsiteId:f.websiteId};switch(a.application.app){case"agent":d.UserId=a.application.UserId;break;case"queue":d.ChatQueueId=a.application.ChatQueueId}switch(a.application.intType){case"always":d.interval=c.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(c[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?c[1]="*":c[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?c[2]="*":c[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?c[3]="*":c[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",d.interval=c.join(","),delete a.application.IntervalId;break;case"list":d.IntervalId=a.application.IntervalId}b.post("/api/chat/applications",d).success(function(){h.path("/channels/chat/websites/view/"+f.websiteId+"/actions/list")}).error(function(a){console.error(a)})},a.formValidation=function(a){return a},a.next=function(){j.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.actions.wizard",{url:"/wizard",templateUrl:"app/channels/chat/website/view/action/wizard/wizard.html",controller:"ChatWebsiteViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.embedding",{url:"/embedding",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewEmbeddingViewCtrl",["$scope","$stateParams","$translate","clipboard","xAlert","ChatWebsite",function(a,b,c,d,e,f){a.initView=function(){return f.get({websiteId:b.websiteId,controller:"snippet"}).$promise.then(function(b){a.snippetCode=b.html})["catch"](function(a){e.show(a.message,"danger")})},a.copyToClipboard=function(){d.copyText(a.snippetCode),e.show(c.instant("MESSAGE_TEXT_COPIED_CLIPBOARD")+"!","success")}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.embedding.view",{url:"/view",templateUrl:"app/channels/chat/website/view/embedding/view/view.html",controller:"ChatWebsiteViewEmbeddingViewCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.form",{url:"/forms",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewFormViewCtrl",["$scope","$builder","$validator","$stateParams","$translate","ChatWebsite","xAlert",function(a,b,c,d,e,f,g){
 a.saveForm=function(a){var c=angular.copy(b.forms[a]);return c.length>3?g.show("You can insert at least 3 input elements","danger"):(_.forEach(c,function(a){delete a.id}),f.updateFields({websiteId:d.websiteId,controller:"fields",id:a},c).$promise.then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")}))},a.getChatWebsiteFields=function(a){return f.query({websiteId:d.websiteId,controller:"fields",id:a}).$promise.then(function(c){_.forEach(c,function(c){b.addFormObject(a,c)})})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.form.view",{url:"/view",templateUrl:"app/channels/chat/website/view/form/view/view.html",controller:"ChatWebsiteViewFormViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewProactiveListCtrl",["$scope","gridOptions","ChatWebsite","$http","$translate","$stateParams","$uibModal",function(a,b,c,d,e,f,g){a.initProactiveActions=function(){var d={exporterCsvFilename:"telephones.csv",columnDefs:[{name:"name"},{name:"type"},{name:"action",width:125,buttons:[{"class":"blue-hoki",onClick:"grid.appScope.createItem(row.entity)",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a,{websiteId:f.websiteId,controller:"proactive"})},a.createItem=function(b){var c=g.open({animation:!0,templateUrl:"app/channels/chat/website/view/proactive/list/list.create.modal.html",controller:"ChatWebsiteProactiveListCreateCtrl",resolve:{item:b}});c.result.then(function(b){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteProactiveListCreateCtrl",["$scope","$translate","$uibModalInstance","$stateParams","ChatWebsite","xAlert","item",function(a,b,c,d,e,f,g){a.form={},a.item=g||{},a.title=g?b.instant("APPLICATION_EDIT_PROACTIVE_ACTION"):b.instant("APPLICATION_NEW_PROACTIVE_ACTION"),a.possibleType=[{type:"mouseOver",title:"Mouse Over"},{type:"timeout",title:"Timeout"}],a.save=function(){return g?e.update({websiteId:d.websiteId,controller:"proactive",id:a.item.id},a.item).$promise.then(function(a){f.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){f.show(a.data.message,"danger")}):e.save({websiteId:d.websiteId,controller:"proactive"},a.item).$promise.then(function(a){f.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){f.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.proactive.list",{url:"/list",templateUrl:"app/channels/chat/website/view/proactive/list/list.html",controller:"ChatWebsiteViewProactiveListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.proactive",{url:"/proactive",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.snippet",{url:"/snippet",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewSnippetViewCtrl",["$scope","$http","$stateParams","$translate","Template",function(a,b,c,d,e){a.$translate=d,a.statePreview={state:"online"},a.enquirySwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.lang={HeaderCurrentlyChatting:"Live Chat",HeaderOffline:"Contact us",OperatorOfflineMessage:"It appears as if all operators are currently offline.",OfflineMessage:"<strong>We're not online.</strong><br/>It doesn't mean we're not there to help - leave your message below and we'll be in touch as soon as possible.",EnquiryMessagePlaceholder:"Your message...",EnquiryButtonText:"Leave message",EnquirySubmitSuccess:"Your message was sucessfully submitted - we will contact you as soon as possible.",OperatorComposing:"{fullname} is typing...",FirstMessageText:"",ExitChatButtonText:"Exit Chat",ExitChatQuestionText:"Are you sure?",ExitChatButtonConfirmText:"Yes",ExitChatButtonCancelText:"No",MessagePlaceholderText:"Your message...",MessageSendButtonText:"Send",ValidationEmailRequired:"Please enter your email address",ValidationEmailInvalid:"Please enter a valid email address",ValidationEmailMaxLength:"The email address may not exceed 85 characters",ValidationUsernameRequired:"Please enter your name",ValidationUsernameMaxLength:"The name may not exceed 45 characters",ValidationEnquiryRequired:"Please enter your enquiry",ValidationEnquiryMaxLength:"The enquiry may not exceed 1500 characters",ValidationMessageRequired:"Please enter your message",ValidationMessageMaxLength:"The message may not exceed 750 characters"},a.initView=function(){e.get().$promise.then(function(b){console.log(b),a.mailTemplates=b.rows})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.snippet.view",{url:"/view",templateUrl:"app/channels/chat/website/view/snippet/view/view.html",controller:"ChatWebsiteViewSnippetViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewCtrl",["$scope","xAlert","$http","$location","$stateParams","$translate","WizardHandler","ChatApplication","ChatWebsite",function(a,b,c,d,e,f,g,h,i){a.initApplication=function(){a.forms={},a.application={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.deleteItem=function(a){return h["delete"]({id:a}).$promise.then(function(){b.show(f.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(f.instant("Something went wrong!"),"danger")})},a.initView=function(){return i.get({id:e.websiteId}).$promise.then(function(b){a.chatWebsite=b})["catch"](function(a){b.show(a.message,"danger")})},a.updateItem=function(){return i.update({id:a.chatWebsite.id},a.chatWebsite).$promise.then(function(){b.show(f.instant("MESSAGE_CHAT_WEBSITE_UPDATE_SUCCESS")+"!","success")})["catch"](function(){b.show(f.instant("MESSAGE_CHAT_WEBSITE_UPDATE_FAILURE"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view",{url:"/view/:websiteId",templateUrl:"app/channels/chat/website/view/view.html",controller:"ChatWebsiteViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites",{url:"/websites",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert","ChatWebsite",function(a,b,c,d,e,f,g){a.$translate=d,a.forms={formSetting:void 0,formAppearance:void 0,formLabel:void 0,formFunctionality:void 0},a.next=function(){e.wizard().next()},a.exitValidation=function(a){return a},a.item={},a.createItem=function(){return g.save(a.item).$promise.then(function(){f.show(d.instant("MESSAGE_CHAT_WEBSITE_CREATE_SUCCESS"),"success"),c.path("/channels/chat/websites/list")})["catch"](function(a){f.show(d.instant("MESSAGE_CHAT_WEBSITE_CREATE_FAILURE"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.wizard",{url:"/wizard",templateUrl:"app/channels/chat/website/wizard/wizard.html",controller:"ChatWebsiteWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts",{url:"/accounts",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("FaxAccountListCtrl",["$scope","$http","xAlert","$translate","socket","Modal","$rootScope","$log","stResource",function(a,b,c,d,e,f,g,h,i){a.conf={faxAccountsByPage:{name:"10",value:10}},a.faxAccountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.fax_accounts={checked:[]},a.check=function(b,c){c?a.fax_accounts.checked=angular.copy(_.map(a.displayedFaxAccounts,"id")):a.fax_accounts.checked=[]},a.initList=function(b){e.unsyncUpdates("fax_account"),b.url="/api/fax/accounts",i.getPage(b).then(function(c){a.displayedFaxAccounts=c.rows,b.pagination.numberOfPages=c.total_pages,g.updateTableConfig(a.faxAccountsByPage,a.displayedFaxAccounts.length),g.updateTableConfig(a.conf.faxAccountsByPage,a.displayedFaxAccounts.length)}),e.socket.on("fax_account:save",function(){a.initList(b)}),e.socket.on("fax_account:remove",function(c){a.fax_accounts.checked=_.without(a.fax_accounts.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("api/fax/accounts/"+a).success(function(){c.show(d.instant("MESSAGE_FAX_ACCOUNT_DELETE_SUCCESS"),"success")}).error(function(){c.show(d.instant("MESSAGE_FAX_ACCOUNT_DELETE_FAILURE"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/fax/accounts",{params:{id:a.fax_accounts.checked}}).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(d.instant(a.message),"danger")})}),a.getFaxAccounts=function(b){return _.map(a.faxAccountsByPage,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.$on("$destroy",function(){e.unsyncUpdates("fax_account")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts.list",{url:"/list",templateUrl:"app/channels/fax/account/list/list.html",controller:"FaxAccountListCtrl",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("FaxAccountViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.forms={},a.sortableOptions={stop:function(){b.post("api/fax/accounts/"+c.id+"/applications",{applications:_.map(a.faxApplications,"id")}).success(function(b){a.faxApplications=b}).error(function(a){console.error(a)})},"ui-floating":!0},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.initApplication=function(){a.forms={},a.application={}},a.deleteItem=i.confirm["delete"](function(a){b["delete"]("api/fax/applications/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.getAppdata=function(b,c){switch(b){case"agent":return a.agents?_.find(a.agents,{id:c}).name:c;case"queue":return a.faxQueues?_.find(a.faxQueues,{id:c}).name:c}return"UNKNOWN"},a.createItem=function(){switch(a.application.appdata=a.application.appdata.id,a.application.app){case"agent":a.application.UserId=parseInt(a.application.appdata,10);break;case"queue":a.application.FaxQueueId=parseInt(a.application.appdata,10)}a.application.FaxAccountId=c.id,b.post("api/fax/applications",a.application).success(function(){e.path("/channels/fax/accounts/view/"+c.id+"/routes")}).error(function(){h.show("Something went wrong!","danger")})},a.$watch("application.app",function(c){if(c){var d;switch(c){case"agent":d="api/agents";break;case"queue":d="api/fax/queues"}b.get(d).success(function(b){a.items=b.rows})}},!0),a.initView=function(){b.get("/api/trunks").success(function(b){a.trunks=b.rows}).error(function(a){console.log(a)}),b.get("/api/fax/accounts/"+c.id).success(function(b){a.account=b}).error(function(){})},a.getAgents=function(){b.get("api/fax/agents").success(function(b){a.agents=b})},a.getFaxApplications=function(){b.get("/api/fax/applications",{params:{FaxAccountId:c.id}}).success(function(b){a.faxApplications=b,g.socket.on("fax_application:remove",function(b){_.remove(a.faxApplications,{id:b.id})})}),b.get("/api/agents").success(function(b){a.agents=b.rows}),b.get("/api/fax/queues").success(function(b){a.faxQueues=b.rows})},a.updateItemFaxAccount=function(){b.put("/api/fax/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_FAX_ACCOUNT_UPDATE_SUCCESS")+".","success")}).error(function(){h.show(d.instant("MESSAGE_FAX_ACCOUNT_UPDATE_FAILURE")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts.view",{url:"/view/:id",templateUrl:"app/channels/fax/account/view/view.html",controller:"FaxAccountViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.channels.fax.accounts.view.settings",{url:"/settings",templateUrl:"app/channels/fax/account/view/view.settings.html",authenticate:!0}).state("main.channels.fax.accounts.view.routes",{url:"/routes",templateUrl:"app/channels/fax/account/view/view.routes.html",authenticate:!0}).state("main.channels.fax.accounts.view.applications",{url:"/applications",templateUrl:"app/channels/fax/account/view/view.applications.html",authenticate:!0})}]),angular.module("xCallyShuttleApp").controller("FaxAccountWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.$translate=d,a.forms={},a.item={},a.item.ecm=!1,a.item.minrate="9600",a.item.maxrate="33600",b.get("/api/trunks").success(function(b){a.trunks=b.rows}).error(function(a){console.error(a)})},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/fax/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_FAX_ACCOUNT_CREATE_SUCCESS")+".","success"),c.path("/channels/fax/accounts/list")}).error(function(){e.show(d.instant("MESSAGE_FAX_ACCOUNT_CREATE_FAILURE")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts.wizard",{url:"/wizard",templateUrl:"app/channels/fax/account/wizard/wizard.html",controller:"FaxAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax",{url:"/fax",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxInboxComposeCtrl",["$scope","$http","FileUploader","$location","Auth","xAlert","$cookieStore","$translate",function(a,b,c,d,e,f,g,h){a.forms={},a.form={to:[],sto:[]},b.get("api/fax/accounts").success(function(b){a.faxAccounts=b.rows}),a.isNewMessageFromEmpty=!0;var i=a.uploader=new c({url:"api/fax/messages",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+g.get("token")}});i.filters.push({name:"pdfFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|pdf|".indexOf(b)}}),i.onBeforeUploadItem=function(b){b.formData.push({accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:e.getCurrentUser().id,html:a.form.html?a.form.html:""})},i.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d)},i.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d)},i.onCompleteAll=function(){i.clearQueue(),f.show(h.instant("MESSAGE_WELL_DONE"),"success"),d.path("/channels/fax/inbox/incoming")},i.onWhenAddingFileFailed=function(){f.show(h.instant("MESSAGE_WRONG_FORMAT"),"danger")},a.sendFax=function(){return a.form.sto.length?void(i.queue.length?i.uploadAll():b.post("api/fax/messages",{accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:e.getCurrentUser().id,html:a.form.html,onlyText:!0}).success(function(){f.show(h.instant("MESSAGE_WELL_DONE"),"success"),d.path("/channels/fax/inbox/incoming")}).error(function(a){f.show(h.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})):(a.forms.compose.to.$valid=!1,void(a.forms.compose.to.$invalid=!0))},a.cancel=function(){a.form.sto=[],delete a.form.from}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.inbox.compose",{url:"/compose",templateUrl:"app/channels/fax/inbox/room/room.html",controller:"FaxInboxComposeCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxInboxCtrl",["$scope","$http","$location","$translate","$timeout","$notification","Auth","socket","$interval",function(a,b,c,d,e,f,g,h,i){a.go=function(a,d,e){e?b.put("/api/fax/rooms/"+d,{status:e}).success(function(){c.path(a)}).error(function(a){console.error(a)}):c.path(a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.inbox",{url:"/inbox",templateUrl:"app/channels/fax/inbox/inbox.html",controller:"FaxInboxCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/inbox.css","assets/css/todo.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FaxInboxIncomingCtrl",["$scope","$http","$location","socket","Auth","xAlert",function(a,b,c,d,e,f){a.$location=c,a.getRooms=function(){e.isAdmin()?b.get("api/fax/rooms").success(function(b){a.faxRooms=b,d.syncUpdates("fax_room",a.faxRooms)}).error(function(a){console.error(a),f.show($translate.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")}):b.get("api/fax/rooms/agent/"+e.getCurrentUser().id).success(function(b){a.faxRooms=b,d.socket.on("fax_room:update",function(b){b.UserId===e.getCurrentUser().id&&a.faxRooms.push(b)})}).error(function(a){f.show($translate.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.inbox.incoming",{url:"/incoming",templateUrl:"app/channels/fax/inbox/incoming/incoming.html",controller:"FaxInboxIncomingCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxInboxRoomCtrl",["$scope","$http","$stateParams","$location","FileUploader","socket","Auth","xAlert","$translate","$cookieStore",function(a,b,c,d,e,f,g,h,i,j){function k(){a.lastMessage=_.reject(a.faxRoom.FaxMessages,function(a){return"RECEIVED"!==a.status}),a.lastMessage=_.sortByOrder(a.lastMessage,["id"],["desc"])[0],a.lastMessage&&(console.log(a.faxRoom),a.form.from=a.faxRoom.FaxAccount,a.form.to=[a.lastMessage.From.phone],a.form.sto=[a.lastMessage.From.phone])}var l=a.uploader=new e({url:"api/fax/messages",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+j.get("token")}});l.filters.push({name:"pdfFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|pdf|".indexOf(b)}}),l.onBeforeUploadItem=function(b){console.log(a.form.from.id,a.form.sto[0],a.isNewMessageFromEmpty,c.id,g.getCurrentUser().id),b.formData.push({accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,roomId:c.id,userId:g.getCurrentUser().id,html:a.form.html}),console.log(b)},l.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d)},l.onErrorItem=function(a,b,c,d){console.info("onErrorItem",b,c,d)},l.onCompleteAll=function(){l.clearQueue(),h.show(i.instant("MESSAGE_WELL_DONE"),"success")},l.onWhenAddingFileFailed=function(){h.show(i.instant("MESSAGE_WRONG_FORMAT"),"danger")},a.initRoomView=function(){a.isNewMessageFromEmpty=!0,a.Auth=g,a.forms={},a.form={to:[],sto:[]},b.get("api/agents").success(function(b){a.agents=b}),b.get("api/fax/accounts").success(function(b){a.faxAccounts=b.rows}),c.id&&b.get("/api/fax/rooms/"+c.id).success(function(b){a.faxRoom=b,a.isNewMessageFromEmpty=!1,f.syncUpdates("fax_message",[],function(b,c){"created"===b&&c.FaxRoomId===a.faxRoom.id&&(a.faxRoom.FaxMessages.push(c),k())}),k()}).error(function(a){console.error(a),h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.sendFax=function(){return a.form.sto.length?void(l.queue.length?l.uploadAll():b.post("api/fax/messages",{accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:g.getCurrentUser().id,html:a.form.html,onlyText:!0}).success(function(){h.show(i.instant("MESSAGE_WELL_DONE"),"success"),console.log("Fax Message sent")}).error(function(a){h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})):(a.forms.compose.to.$valid=!1,void(a.forms.compose.to.$invalid=!0))},a.assignAgent=function(a){b.put("/api/fax/rooms/"+c.id,{UserId:a}).success(function(){h.show(i.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(){h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateStatus=function(d){b.put("/api/fax/rooms/"+c.id,{status:d}).success(function(b){a.faxRoom.status=b.status,h.show(i.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(a){console.error(a),h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.cancel=function(){a.form.sto=[],delete a.form.from,l.clearQueue()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.inbox.room",{url:"/room/:id",templateUrl:"app/channels/fax/inbox/room/room.html",controller:"FaxInboxRoomCtrl"})}]),angular.module("xCallyShuttleApp").factory("FaxQueue",["$resource",function(a){return a("/api/fax/queues/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("FaxQueueListCtrl",["$scope","FaxQueue","gridOptions","$uibModal",function(a,b,c,d){a.initView=function(){var d={exporterCsvFilename:"fax_queues.csv",columnDefs:[{name:"name"},{name:"description"},{name:"strategy"},{name:"timeout"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/fax/queues/view/{{row.entity.id}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){var b=d.open({animation:!0,templateUrl:"app/channels/fax/queue/list/list.create.modal.html",controller:"FaxQueueListCreateCtrl"});b.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("FaxQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","FaxQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return e.save(a.item).$promise.then(function(a){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.queues.list",{url:"/list",templateUrl:"app/channels/fax/queue/list/list.html",controller:"FaxQueueListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("FaxQueueViewCtrl",["$scope","$http","$translate","$stateParams","xAlert","FaxQueue","Team",function(a,b,c,d,e,f,g){var h=function(){return{select:function(b){return f.save({id:a.queue.id,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.error(a)})},deselect:function(b){return f["delete"]({id:a.queue.id,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.error(a)})}}};a.getQueue=function(){return f.get({id:d.id}).$promise.then(function(b){b.penalty=0,a.queue=b})["catch"](function(a){e.show(a.message,"danger")})},a.updateFaxQueue=function(){return f.update({id:d.id},{name:a.queue.name,description:a.queue.description,timeout:a.queue.timeout,strategy:a.queue.strategy}).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")})},a.getTeams=function(){return g.get().$promise.then(function(b){return a.teams=b.rows,f.query({id:d.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindMailQueue(a.teams,_.map(b,function(a){return{id:a.id,penalty:a.UserHasFaxQueue.penalty}}),h)})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.queues.view",{url:"/view/:id",templateUrl:"app/channels/fax/queue/view/view.html",controller:"FaxQueueViewCtrl",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.channels.fax.queues.view.settings",{url:"/settings",templateUrl:"app/channels/fax/queue/view/view.settings.html"}).state("main.channels.fax.queues.view.agents",{url:"/agents",templateUrl:"app/channels/fax/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/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("FaxRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","FaxQueue","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){return k.spin("spinner-grid"),g.get(s).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){p(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function o(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});if(c){var d=a.gridOptions.data.indexOf(c);a.gridOptions.data[d].online=b.online,a.gridOptions.data[d].lastLoginAt=b.lastLoginAt,a.gridOptions.data[d].pause=b.faxPause,a.gridOptions.data[d].pauseType=b.pauseType,a.gridOptions.data[d].lastPauseAt=b.lastPauseAt,a.gridOptions.data[d].ipaddr=b.ipaddr,a.gridOptions.data[d].port=b.port,a.gridOptions.data[d].fullcontact=b.fullcontact,a.gridOptions.data[d].useragent=b.useragent,a.gridOptions.data[d].lastms=b.lastms,a.gridOptions.data[d].internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)})}}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_fax_queue:save",function(b){console.log("new queue",b);var c=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0}),d=a.gridOptions.data.indexOf(c);a.gridOptions.data.splice(d+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,queueId:b.FaxQueueId,agent:b.membername,online:c.online})}),e.socket.on("user_has_fax_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queueId:b.FaxQueueId})})}function p(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.faxPause,pauseType:b.pauseType,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.FaxQueues.forEach(function(c){a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,queueId:c.id,agent:b.name,online:b.online})})}function q(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function r(){return j.get().$promise.then(function(b){a.faxQueues=b.rows,e.syncUpdates("fax_queue",a.faxQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.faxQueues=[];var s={offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.isAgent">{{row.entity.agent}} &lt;{{row.entity.internal}}&gt;</div>'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.online != null && row.entity.isAgent"><i class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i> <span data-ng-if="row.entity.online" class="left-margin">(<timer start-time="grid.appScope.moment(row.entity.lastLoginAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"faxPause",width:300,displayName:"APPLICATION_PAUSE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.pause != null && row.entity.online" class="ui-grid-vcenter" data-ng-class="{\'paused-agent\':row.entity.pause}"><timer data-ng-if="row.entity.pause" start-time="grid.appScope.moment(row.entity.lastPauseAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span><span data-ng-if="row.entity.pause" class="left-margin">({{row.entity.pauseType}})</span><i data-ng-if="row.entity.pause" data-ng-click="grid.appScope.pause(row.entity.agentId,\'unpause\')" class="icon-control-play font-green pointer-cursor left-margin" title="{{\'APPLICATION_RESUME\' | translate}}"></i><i class="icon-control-pause font-yellow pointer-cursor" data-ng-click="grid.appScope.pause(row.entity.agentId,\'pause\',\'DEFAULT PAUSE\')" title="{{\'APPLICATION_DEFAULT_PAUSE\' | translate}}"></i><select data-ng-if="grid.appScope.pauses.length" class="pause-select pointer-cursor" data-ng-model="grid.appScope.pauseType" data-ng-change="grid.appScope.pause(row.entity.agentId,\'pause\',grid.appScope.pauseType)"><option class="pointer-cursor" data-ng-repeat="pause in grid.appScope.pauses">{{pause.name}}</option></select></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"PAUSED"},{value:"false",label:"NOT PAUSED"}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><button data-ng-if="row.entity.queueId" class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.leaveQueue(row.entity.agentId,row.entity.queueId)"><i class="icon-ban"></i> {{\'APPLICATION_LEAVE\' | translate}}</button><button data-ng-if="row.entity.isAgent && row.treeNode.children.length < grid.appScope.faxQueues.length" class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.joinQueue(row.entity.agentId)"><i class="icon-plus"></i> {{\'APPLICATION_JOIN_QUEUE\' | translate}}</button> <button data-ng-if="row.entity.isAgent" class="btn btn-xs blue-madison" data-ng-click="grid.appScope.showInfo(row.entity)"><i class="icon-info"></i> {{\'APPLICATION_INFO\' | translate}}</button><div>',
 enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?s.order=null:s.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),n()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){s.offset=(a-1)*b,s.limit=b,n()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?s[a.name]=a.filters[0].term:delete s[a.name]}),n()})}},n(),q(),r(),o()};var t=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_fax_queue")}),a.pause=function(a,b,c){return i.save({name:b,agent:a,type:c||"DEFAULT PAUSE",data4:c||"DEFAULT PAUSE",channel:"fax"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/fax/realtime/view/agent/queue.modal.add.html",controller:"FaxRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.faxQueues,function(b){return _.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})?!0:!1})}}});g.result.then(function(b){return i.save({name:"QueueAdd",agent:e,queues:_.filter(a.faxQueues,function(a){return _.includes(b.queues,a.id)}),channel:"fax",data1:e,data3:b.queues.join(","),data4:"fax"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queueId:b,channel:"fax",data1:a,data3:b,data4:"fax"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/fax/realtime/view/agent/agent.modal.info.html",controller:"FaxRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/fax/realtime/view/agent/agent.html",controller:"FaxRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("FaxRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("FaxRealtimeViewCtrl",["$scope","$state",function(a,b){a.agents=[{name:"Queues",link:"main.channels.fax.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.fax.realtime.view.agents.timeline"}],a.sessions=[{name:"Sessions",link:"main.channels.fax.realtime.view.sessions"}],a.tree={queues:[{name:"Queues",link:"main.channels.fax.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.fax.realtime.view.agents.timeline"}],sessions:[{name:"Sessions",link:"main.channels.fax.realtime.view.sessions"}]}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.realtime.view",{url:"/view",templateUrl:"app/channels/fax/realtime/view/view.html",controller:"FaxRealtimeViewCtrl"})}]),angular.module("xCallyShuttleApp").factory("MailAccount",["$resource",function(a){return a("/api/mail/accounts/:accountId/:controller/:id",{id:"@accountId"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts",{url:"/accounts",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("MailAccountListCtrl",["$scope","gridOptions","MailAccount","$stateParams",function(a,b,c,d){a.initView=function(){var e={exporterCsvFilename:"mail_accounts.csv",columnDefs:[{name:"name"},{name:"description"},{name:"address"},{name:"MailServerIn.state",width:100,cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span class=\"label label-sm\" data-ng-class=\"row.entity.MailServerIn.state === 'CONNECTED' ? 'label-success' : 'label-danger'\">{{row.entity.MailServerIn.state}}</span></div>",displayName:"IMAP",enableSorting:!1,enableFiltering:!1},{name:"MailServerOut.state",width:110,cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span class=\"label label-sm\" data-ng-class=\"row.entity.MailServerOut.state === 'CONNECTED' ? 'label-success' : 'label-danger'\">{{row.entity.MailServerOut.state}}</span></div>",displayName:"SMTP",enableSorting:!1,enableFiltering:!1},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/mail/accounts/view/{{row.entity.id}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,e,a,{accountId:d.accountId})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.list",{url:"/list",templateUrl:"app/channels/mail/account/list/list.html",controller:"MailAccountListCtrl"})}]),angular.module("xCallyShuttleApp").factory("MailServerIn",["$resource",function(a){return a("/api/mail/servers/in/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("MailServerOut",["$resource",function(a){return a("/api/mail/servers/out/:id/:controller",{id:"@id"},{update:{method:"PUT"},test:{method:"GET"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.actions",{url:"/actions",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionListCtrl",["$scope","gridOptions","MailAccount","$http","$translate","$stateParams",function(a,b,c,d,e,f){a.initActons=function(){var d={draggable:!0,exporterCsvFilename:"mail_applications.csv",enableSorting:!1,enableFiltering:!1,columnDefs:[{name:"app",cellClass:"text-center"},{name:"name",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span>{{row.entity.MailQueue ? row.entity.MailQueue.name : row.entity.User.name}}</span></div>"},{name:"timeout",cellClass:"text-center"},{name:"interval",cellClass:"text-center"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/mail/accounts/view/{{row.entity.MailAccountId}}/actions/view/{{row.entity.id}}",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.app, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a,{accountId:f.accountId,controller:"applications"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.actions.list",{url:"/list",templateUrl:"app/channels/mail/account/view/action/list/list.html",controller:"MailAccountViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval","Agent","Interval","MailQueue",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],b.get("/api/mail/applications/"+c.actionId).success(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})}).error(function(a){console.error(a)})},a.getQueues=function(){return m.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return k.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return l.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.updateItem=function(){var e=["*","*","*","*"],g={app:a.application.app,timeout:a.application.timeout,MailAccountId:c.id};switch(a.application.app){case"agent":g.UserId=a.application.UserId;break;case"queue":g.MailQueueId=a.application.MailQueueId}switch(a.application.intType){case"always":g.interval=e.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(e[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?e[1]="*":e[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?e[2]="*":e[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?e[3]="*":e[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",g.interval=e.join(","),delete a.application.IntervalId;break;case"list":g.IntervalId=a.application.IntervalId}b.put("/api/mail/applications/"+c.actionId,g).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.actions.view",{url:"/view/:actionId",templateUrl:"app/channels/mail/account/view/action/view/view.html",controller:"MailAccountViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionWizardCtrl",["$scope","$http","Agent","MailQueue","Interval","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=l.application,a.$stateParams=f,a.$interval=m.interval,a.forms={},a.application={alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){return d.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return c.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return e.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.createItem=function(){var c=["*","*","*","*"],d={app:a.application.app,timeout:a.application.timeout,MailAccountId:f.accountId};switch(a.application.app){case"agent":d.UserId=a.application.UserId;break;case"queue":d.MailQueueId=a.application.MailQueueId}switch(a.application.intType){case"always":d.interval=c.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(c[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?c[1]="*":c[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?c[2]="*":c[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?c[3]="*":c[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",d.interval=c.join(","),delete a.application.IntervalId;break;case"list":d.IntervalId=a.application.IntervalId}b.post("/api/mail/applications",d).success(function(){h.path("/channels/mail/accounts/view/"+f.accountId+"/actions/list")}).error(function(a){console.error(a)})},a.formValidation=function(a){return a},a.next=function(){j.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.actions.wizard",{url:"/wizard",templateUrl:"app/channels/mail/account/view/action/wizard/wizard.html",controller:"MailAccountViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewCtrl",["$scope","$http","$stateParams","$translate","$location","$timeout","socket","xAlert","MailAccount","MailMessage","MailServerIn","MailServerOut","usSpinnerService",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.CONST_TIMEOUT=3e4,a.$on("$destroy",function(){g.socket.removeAllListeners("mail_message:sent"),g.socket.removeAllListeners("mail_message:failed")}),a.initView=function(){return g.socket.on("mail_message:sent",function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success"),m.stop("spinner-grid")}),g.socket.on("mail_message:failed",function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),m.stop("spinner-grid")}),i.get({id:c.accountId}).$promise.then(function(b){a.account=b})["catch"](function(a){h.show(a.message,"danger")})},a.updateItemMailAccount=function(){return i.update({id:c.accountId},{name:a.account.name,description:a.account.description,address:a.account.address,fidelity:a.account.fidelity,timeout:a.account.timeout}).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})},a.updateItemMailServerIn=function(){return k.update({id:a.account.MailServerIn.id},a.account.MailServerIn).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})},a.updateItemMailServerOut=function(){return l.update({id:a.account.MailServerOut.id},a.account.MailServerOut).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})},a.test=function(){return m.spin("spinner-grid"),l.test({id:a.account.MailServerOut.id,controller:"test"}).$promise["finally"](function(){f(function(){m.stop("spinner-grid")},a.CONST_TIMEOUT)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view",{url:"/view/:accountId",templateUrl:"app/channels/mail/account/view/view.html",controller:"MailAccountViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.channels.mail.accounts.view.settings",{url:"/settings",templateUrl:"app/channels/mail/account/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("MailAccountWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert","MailAccount",function(a,b,c,d,e,f,g){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.forms={},a.item={MailServerIn:{port:993,ssl:!0,"delete":!1,protocol:"IMAP",filter:"UNSEEN",mailbox:"INBOX",keepalive:!0,authTimeout:5,connTimeout:10},MailServerOut:{port:465,ssl:!0}}},a.goNext=function(){e.wizard().next()},a.formValidation=function(a){return a},a.createItem=function(){return g.save(a.item).$promise.then(function(){c.path("/channels/mail/accounts/list")})["catch"](function(a){f.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.wizard",{url:"/wizard",templateUrl:"app/channels/mail/account/wizard/wizard.html",controller:"MailAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.inbox",{url:"/inbox",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailInboxListCtrl",["$scope","$rootScope","$uibModal","MailRoom","gridOptions","uiGridConstants","Auth",function(a,b,c,d,e,f,g){a.loadAgents=function(a){c.open({animation:!0,templateUrl:"app/channels/mail/inbox/view/view.agents.modal.html",controller:"MailInboxViewModalAgentCtrl",resolve:{roomId:a}})},a.initView=function(){var c={exporterCsvFilename:"mail_rooms.csv",enableRowHeaderSelection:g.isAdmin(),columnDefs:[{name:"id",displayName:"",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span>#{{row.entity.id}}</span></div>",width:75,enableSorting:!1,enableFiltering:!1},{name:"subject"},{name:"from",cellClass:"text-center"},{name:"MailAccount.name",displayName:"Account",cellClass:"text-center",enableSorting:!1,enableFiltering:!1},{name:"users",displayName:"APPLICATION_AGENTS",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{(row.entity.Users | map:'fullname').join(', ')}}</div>",enableSorting:!1,enableFiltering:!1},{name:"status",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span class=\"label label-sm\" data-ng-class=\"{'label-info': row.entity.status === 'OPEN', 'label-danger': row.entity.status === 'NEW','label-success': row.entity.status === 'CLOSED'}\">{{row.entity.status}}</span></div>",filter:{type:f.filter.SELECT,selectOptions:[{value:"NEW",label:"NEW"},{value:"OPEN",label:"OPEN"},{value:"CLOSED",label:"CLOSED"}]},width:100},{name:"createdAt",displayName:"",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><time is="relative-time" datetime="{{row.entity.createdAt}}">April 1, 2014</time></div>',enableSorting:!1,enableFiltering:!1,width:125},{name:"action",width:175,buttons:[{"class":"blue-hoki",href:"/channels/mail/inbox/view/{{row.entity.id}}/room",name:"open"},{"class":"green-meadow",href:"#",name:"agents",onClick:"grid.appScope.loadAgents(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.id, row.entity.id)",hide:!g.isAdmin()}]}]};a.gridOptions=e.gridOptions(d,c,a),b.$on("mailMessageEvent",function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.inbox.list",{url:"/list",templateUrl:"app/channels/mail/inbox/list/list.html",controller:"MailInboxListCtrl"})}]),angular.module("xCallyShuttleApp").directive("mail",function(){return{templateUrl:"app/channels/mail/inbox/mail/mail.html",restrict:"EA",scope:{mailMessage:"=message"}}}),angular.module("xCallyShuttleApp").directive("note",function(){return{templateUrl:"app/channels/mail/inbox/note/note.html",restrict:"EA",scope:{mailMessage:"=message"}}}),angular.module("xCallyShuttleApp").controller("MailInboxViewModalAgentCtrl",["$scope","$uibModalInstance","$translate","$stateParams","Agent","MailRoom","xAlert","roomId",function(a,b,c,d,e,f,g,h){console.log("roomId",h),a.initModal=function(){a.agents=[],a.item={agents:[]},e.get().$promise.then(function(b){b.rows.forEach(function(b){a.agents.push(b)})})["catch"](function(a){console.error(a)}),f.query({id:d.id||h,controller:"agents"}).$promise.then(function(b){b.forEach(function(b){a.agents.push(b),a.item.agents.push(b.id)})})["catch"](function(a){console.error(a)}),a.modal={dismissable:!0,title:"APPLICATION_MESSAGE_SEND_RETRY",text:"MESSAGE_MESSAGE_SEND_RETRY",buttons:[{classes:"btn btn-success",text:"APPLICATION_RETRY",click:function(a){b.close(a)}},{classes:"btn default",text:"APPLICATION_CANCEL",click:function(a){b.dismiss(a)}}]}},a.ok=function(){return f.update({id:d.id||h,controller:"agents",agents:a.item.agents}).$promise.then(function(){g.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close()})["catch"](function(a){console.error(a)})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailInboxViewCtrl",["$scope","$location","$cookieStore","$stateParams","$translate","$uibModal","CannedAnswer","socket","Agent","MailAccount","MailRoom","MailAttachment","MailMessage","FileUploader","Auth","xAlert","usSpinnerService",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){var r,s=[];a.onSelectAnswer=function(b){a.form.html+=b,a.selectedAnswer=""},a.getAnswers=function(a){return g.get({key:a}).$promise.then(function(a){return _.map(a.rows,"value")})},a.initRoom=function(){a.Auth=o,a.config={autoHideScrollbar:!1,theme:"light",advanced:{updateOnContentResize:!0},setHeight:781,scrollInertia:0},a.forms={},a.selectedAnswer="",a.form={disabled:!1,from:[],to:[],sto:[],cc:[],scc:[],html:""},h.socket.on("mail_message:save",function(b){return a.mailRoom&&b.MailRoomId===d.id?m.get({id:b.id}).$promise.then(function(b){a.mailRoom.MailMessages.unshift(b)})["catch"](function(a){console.error(a)}):void 0}),r=a.uploader=new n({url:"api/mail/attachments",autoUpload:!0,withCredentials:!0,headers:{Authorization:"Bearer "+c.get("token")}}),r.removeFromQueue=function(a){var b=this;return l["delete"]({id:a.basename}).$promise.then(function(){var c=b.getIndexOfItem(a),d=b.queue[c];d.isUploading&&d.cancel(),b.queue.splice(c,1),d._destroy(),b.progress=b._getTotalProgress(),s=_.reject(s,{basename:a.basename})})["catch"](function(){p.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},r.onErrorItem=function(){p.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},r.onSuccessItem=function(a,b){var c={size:b.size,path:b.path,name:b.name,basename:b.basename,type:b.type};a=_.merge(a,c),s.push(c)},i.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)}),j.get().$promise.then(function(b){a.mailAccounts=b.rows})["catch"](function(a){console.error(a)}),d.id&&k.get({id:d.id}).$promise.then(function(b){a.mailRoom=b,a.form.from.push(b.MailAccount.address);var c=_.last(a.mailRoom.MailMessages);a.form.to=a.form.cc=a.form.bcc=_.union(c.from,c.to,c.cc,c.bcc),a.form.sto=_.remove(a.form.to,function(a){return a!==b.MailAccount.address}),"NEW"===a.mailRoom.status&&k.update({id:d.id},{status:"OPEN"})})["catch"](function(a){console.error(a)})},a.cancel=function(){a.form.disabled=!1,a.form.from=[],a.form.to=[],a.form.sto=[],a.form.cc=[],a.form.scc=[],delete a.form.subject,delete a.form.html},a.updateStatus=function(a){return k.update({id:d.id},{status:a}).$promise.then(function(){p.show(e.instant("MESSAGE_STATUS_UPDATE_SUCCESS"),"success"),b.path("/channels/mail/inbox/list")})["catch"](function(a){p.show(a.message,"danger")})},a.loadAgents=function(){f.open({animation:!0,templateUrl:"app/channels/mail/inbox/view/view.agents.modal.html",controller:"MailInboxViewModalAgentCtrl"})},a.loadTemplate=function(){f.open({animation:!0,templateUrl:"app/channels/mail/inbox/view/view.templates.modal.html",controller:"MailInboxViewModalTemplateCtrl"}).result.then(function(b){a.form.subject=b.template.subject,a.form.html=b.template.html})},a.loadNote=function(){f.open({animation:!0,templateUrl:"app/channels/mail/inbox/view/view.notes.modal.html",controller:"MailInboxViewModalNoteCtrl"})},a.sendMail=function(){var c={},f={subject:a.mailRoom?a.mailRoom.subject:a.form.subject,from:a.form.from,to:a.form.sto||[],cc:a.form.scc||[],html:a.form.html||null,text:a.form.text||null,inReplyTo:c.messageId||null,status:"SENDING",MailAttachments:s};return q.spin("spinner-grid"),a.form.disabled=!0,a.mailRoom?(c=_.last(a.mailRoom.MailMessages,{status:"RECEIVED"}),f.inReplyTo=c.messageId||null,k.save({id:d.id,controller:"messages"},f).$promise.then(function(){p.show(e.instant("MESSAGE_WELL_DONE"),"success"),b.path("/channels/mail/inbox/list")})["catch"](function(){p.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){q.stop("spinner-grid"),a.form.disabled=!1})):m.save(f).$promise.then(function(){p.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success"),b.path("/channels/mail/inbox/list")})["catch"](function(){p.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){q.stop("spinner-grid"),a.form.disabled=!1})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.inbox.view",{url:"/view",templateUrl:"app/channels/mail/inbox/view/view.html"}).state("main.channels.mail.inbox.view.compose",{url:"/compose",templateUrl:"app/channels/mail/inbox/view/view.room.html",controller:"MailInboxViewCtrl"}).state("main.channels.mail.inbox.view.room",{url:"/:id/room",templateUrl:"app/channels/mail/inbox/view/view.room.html",controller:"MailInboxViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailInboxViewModalNoteCtrl",["$scope","$uibModalInstance","$stateParams","$translate","MailRoom","xAlert",function(a,b,c,d,e,f){a.initModal=function(){a.item={}},a.ok=function(){return e.save({id:c.id,controller:"messages"},{text:a.item.text,status:"NOTE"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(){f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){b.close()})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailInboxViewModalTemplateCtrl",["$scope","$uibModalInstance","Template",function(a,b,c){a.initModal=function(){return a.item={},c.get().$promise.then(function(b){a.templates=b.rows})["catch"](function(a){console.error(a)})},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail",{url:"/mail",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("MailAttachment",["$resource",function(a){return a("/api/mail/attachments/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").factory("MailMessage",["$resource",function(a){return a("/api/mail/messages/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("MailReport",["$resource",function(a){return a("/api/report/mails/:id/:controller1/:controller2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("MailRoom",["$resource",function(a){return a("/api/mail/rooms/:id/:controller",{id:"@id",controller:"@controller"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("MailQueueListCtrl",["$scope","MailQueue","gridOptions","$uibModal","xAlert",function(a,b,c,d,e){a.initView=function(){var d={exporterCsvFilename:"voice_queues.csv",columnDefs:[{name:"name"},{name:"description"},{name:"timeout"},{name:"strategy"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/mail/queues/view/{{row.entity.id}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){var b=d.open({animation:!0,templateUrl:"app/channels/mail/queue/list/list.create.modal.html",controller:"MailQueueListCreateCtrl"});b.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("MailQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","MailQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return e.save(a.item).$promise.then(function(a){b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.queues.list",{url:"/list",templateUrl:"app/channels/mail/queue/list/list.html",controller:"MailQueueListCtrl"})}]),angular.module("xCallyShuttleApp").factory("MailQueue",["$resource",function(a){return a("/api/mail/queues/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!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"]})}]},data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("MailQueueViewCtrl",["$scope","$http","$translate","$stateParams","xAlert","Team","MailQueue",function(a,b,c,d,e,f,g){var h=function(){return{select:function(b){return g.save({id:a.queue.id,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.error(a)})},deselect:function(b){return g["delete"]({id:a.queue.id,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.error(a)})}}};a.getQueue=function(){return g.get({id:d.id}).$promise.then(function(b){b.penalty=0,a.queue=b})["catch"](function(a){console.error(a)})},a.updateMailQueue=function(){return g.update({id:d.id},{name:a.queue.name,description:a.queue.description,timeout:a.queue.timeout,strategy:a.queue.strategy}).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})},a.getTeams=function(){return f.get().$promise.then(function(b){return a.teams=b.rows,g.query({id:d.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindMailQueue(a.teams,_.map(b,function(a){return{id:a.id,penalty:a.UserHasMailQueue.penalty}}),h)})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.queues.view",{url:"/view/:id",templateUrl:"app/channels/mail/queue/view/view.html",
-controller:"MailQueueViewCtrl",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.channels.mail.queues.view.settings",{url:"/settings",templateUrl:"app/channels/mail/queue/view/view.settings.html"}).state("main.channels.mail.queues.view.agents",{url:"/agents",templateUrl:"app/channels/mail/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/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","MailQueue","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){return k.spin("spinner-grid"),g.get(s).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){p(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function o(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});if(c){var d=a.gridOptions.data.indexOf(c);a.gridOptions.data[d].online=b.online,a.gridOptions.data[d].lastLoginAt=b.lastLoginAt,a.gridOptions.data[d].pause=b.mailPause,a.gridOptions.data[d].pauseType=b.pauseType,a.gridOptions.data[d].lastPauseAt=b.lastPauseAt,a.gridOptions.data[d].ipaddr=b.ipaddr,a.gridOptions.data[d].port=b.port,a.gridOptions.data[d].fullcontact=b.fullcontact,a.gridOptions.data[d].useragent=b.useragent,a.gridOptions.data[d].lastms=b.lastms,a.gridOptions.data[d].internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)})}}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_mail_queue:save",function(b){console.log("new queue",b);var c=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0}),d=a.gridOptions.data.indexOf(c);a.gridOptions.data.splice(d+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,queueId:b.MailQueueId,agent:b.membername,online:c.online})}),e.socket.on("user_has_mail_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queueId:b.MailQueueId})})}function p(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.mailPause,pauseType:b.pauseType,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.MailQueues.forEach(function(c){a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,queueId:c.id,agent:b.name,online:b.online})})}function q(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function r(){return j.get().$promise.then(function(b){a.mailQueues=b.rows,e.syncUpdates("mail_queue",a.mailQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.mailQueues=[];var s={offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.isAgent">{{row.entity.agent}} &lt;{{row.entity.internal}}&gt;</div>'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.online != null && row.entity.isAgent"><i class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i> <span data-ng-if="row.entity.online" class="left-margin">(<timer start-time="grid.appScope.moment(row.entity.lastLoginAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"mailPause",width:300,displayName:"APPLICATION_PAUSE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.pause != null && row.entity.online" class="ui-grid-vcenter" data-ng-class="{\'paused-agent\':row.entity.pause}"><timer data-ng-if="row.entity.pause" start-time="grid.appScope.moment(row.entity.lastPauseAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span><span data-ng-if="row.entity.pause" class="left-margin">({{row.entity.pauseType}})</span><i data-ng-if="row.entity.pause" data-ng-click="grid.appScope.pause(row.entity.agentId,\'unpause\')" class="icon-control-play font-green pointer-cursor left-margin" title="{{\'APPLICATION_RESUME\' | translate}}"></i><i class="icon-control-pause font-yellow pointer-cursor" data-ng-click="grid.appScope.pause(row.entity.agentId,\'pause\',\'DEFAULT PAUSE\')" title="{{\'APPLICATION_DEFAULT_PAUSE\' | translate}}"></i><select data-ng-if="grid.appScope.pauses.length" class="pause-select pointer-cursor" data-ng-model="grid.appScope.pauseType" data-ng-change="grid.appScope.pause(row.entity.agentId,\'pause\',grid.appScope.pauseType)"><option class="pointer-cursor" data-ng-repeat="pause in grid.appScope.pauses">{{pause.name}}</option></select></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"PAUSED"},{value:"false",label:"NOT PAUSED"}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><button data-ng-if="row.entity.queueId" class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.leaveQueue(row.entity.agentId,row.entity.queueId)"><i class="icon-ban"></i> {{\'APPLICATION_LEAVE\' | translate}}</button><button data-ng-if="row.entity.isAgent && row.treeNode.children.length < grid.appScope.mailQueues.length" class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.joinQueue(row.entity.agentId)"><i class="icon-plus"></i> {{\'APPLICATION_JOIN_QUEUE\' | translate}}</button> <button data-ng-if="row.entity.isAgent" class="btn btn-xs blue-madison" data-ng-click="grid.appScope.showInfo(row.entity)"><i class="icon-info"></i> {{\'APPLICATION_INFO\' | translate}}</button><div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?s.order=null:s.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),n()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){s.offset=(a-1)*b,s.limit=b,n()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?s[a.name]=a.filters[0].term:delete s[a.name]}),n()})}},n(),q(),r(),o()};var t=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_mail_queue")}),a.pause=function(a,b,c){return i.save({name:b,agent:a,type:c||"DEFAULT PAUSE",data4:c||"DEFAULT PAUSE",channel:"mail"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/mail/realtime/view/agent/queue.modal.add.html",controller:"MailRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.mailQueues,function(b){return _.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})?!0:!1})}}});g.result.then(function(b){return i.save({name:"QueueAdd",agent:e,queues:_.filter(a.mailQueues,function(a){return _.includes(b.queues,a.id)}),channel:"mail",data1:e,data3:b.queues.join(","),data4:"mail"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queueId:b,channel:"mail",data1:a,data3:b,data4:"mail"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/mail/realtime/view/agent/agent.modal.info.html",controller:"MailRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/mail/realtime/view/agent/agent.html",controller:"MailRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewQueueCtrl",["$scope","$http","socket","MailQueue","Agent",function(a,b,c,d,e){a.initQueues=function(){a.gridOptions={enableSorting:!1,enableFiltering:!0,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,showTreeExpandNoChildren:!1,columnDefs:[{name:"queueName",displayName:"Queue"},{name:"fullname",displayName:"Agent",cellClass:"text-center"},{name:"online",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><i data-ng-if="row.entity.online != null" class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i></div>'},{name:"chatPause",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><i data-ng-if=\"row.entity.mailPause != null\" data-ng-class=\"row.entity.mailPause ? 'icon-control-pause font-red' : 'icon-control-play font-green'\"></i></div>"},{name:"pauseType",cellClass:"text-center",cellTemplate:'<span data-ng-if="row.entity.mailPause">{{row.entity.pauseType}}</span>'},{name:"lastLoginAt",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><time data-ng-if="row.entity.agentName" is="relative-time" datetime="{{row.entity.lastLoginAt}}">April 1, 2014</time></div>'}],onRegisterApi:function(b){a.gridApi=b,a.gridApi.treeBase.on.rowExpanded(a,function(b){var c=_.findIndex(a.gridOptions.data,{$$hashKey:b.entity.$$hashKey});b.entity.Users&&b.entity.Users.forEach(function(b){_.find(a.gridOptions.data,{name:b.name})||a.gridOptions.data.splice(c+1,0,b)})})}},d.get(function(b){a.gridOptions.data=[],b.rows.forEach(function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b),b.Users&&b.Users.forEach(function(b){b.agentName=b.name,a.gridOptions.data.push(b)})}),c.socket.on("agent:save",function(b){var c=_.filter(a.gridOptions.data,{agentName:b.name});c.forEach(function(a){a.online=b.online,a.lastLoginAt=b.lastLoginAt})}),c.socket.on("mail_queue:save",function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b)}),c.socket.on("mail_queue:remove",function(b){_.remov(a.gridOptions.data,{queueName:b.name})}),c.socket.on("user_has_mail_queue:save",function(b){var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.MailQueueId});e.get({id:b.UserId}).$promise.then(function(b){a.gridOptions.data.splice(c+1,0,{id:b.id,name:b.name,fullname:b.fullname,agentName:b.name,online:b.online,lastLoginAt:b.lastLoginAt})})["catch"](function(a){console.error(a)})}),c.socket.on("user_has_mail_queue:remove",function(b){for(var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.MailQueueId}),d=c+1;d<a.gridOptions.data.length;d++)a.gridOptions.data[d].id==b.UserId&&a.gridOptions.data.splice(d,1)})},function(a){console.error(a)})},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(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")}),a.initAgents=function(){b.get("/api/report/mails").success(function(b){a.agents=b,c.socket.on("report_mail:save",function(b){var c=_.find(a.agents,{id:b.id});c||a.agents.unshift(b)}),c.socket.on("report_mail:update",function(b){var c=_.find(a.agents,{id:b.id}),d=a.agents.indexOf(c);c&&_.merge(a.agents[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view.queues",{url:"/queues",templateUrl:"app/channels/mail/realtime/view/queue/queue.html",controller:"MailRealtimeViewQueueCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewSessionCtrl",["$scope","$http","socket","uiGridConstants",function(a,b,c,d){a.initSessions=function(){a.gridOptions={enableHorizontalScrollbar:0,enableVerticalScrollbar:0,columnDefs:[{name:"uniqueid",displayName:"",cellClass:"text-center",width:150,enableSorting:!1,enableFiltering:!0},{name:"application",displayName:"APPLICATION_APP",headerCellFilter:"translate",cellClass:"text-center"},{name:"queuename",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center"},{name:"agentname",cellClass:"text-center"},{name:"accountname",displayName:"APPLICATION_ACCOUNT",headerCellFilter:"translate"},{name:"joinAt",displayName:"joinAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.joinAt" is="relative-time" datetime="{{row.entity.joinAt}}">April 1, 2014</time>',sort:{direction:d.DESC,priority:1}},{name:"leaveAt",displayName:"leaveAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.leaveAt" is="relative-time" datetime="{{row.entity.leaveAt}}">April 1, 2014</time>'},{name:"unmanagedAt",displayName:"unmanangedAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.unmanagedAt" is="relative-time" datetime="{{row.entity.unmanagedAt}}">April 1, 2014</time>'}],data:[]},b.get("/api/report/mail/sessions").success(function(b){a.gridOptions.data=b.rows,c.socket.on("report_mail_session:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id}),d=a.gridOptions.data.indexOf(c);c?_.merge(a.gridOptions.data[d],b):a.gridOptions.data.unshift(b)})}).error(function(a){console.error(a)})},a.$on("$destroy",function(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view.sessions",{url:"/sessions",templateUrl:"app/channels/mail/realtime/view/session/session.html",controller:"MailRealtimeViewSessionCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewCtrl",["$scope","$state",function(a,b){a.agents=[{name:"Queues",link:"main.channels.mail.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.mail.realtime.view.agents.timeline"}],a.sessions=[{name:"Sessions",link:"main.channels.mail.realtime.view.sessions"}],a.tree={queues:[{name:"Queues",link:"main.channels.mail.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.mail.realtime.view.agents.timeline"}],sessions:[{name:"Sessions",link:"main.channels.mail.realtime.view.sessions"}]}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view",{url:"/view",templateUrl:"app/channels/mail/realtime/view/view.html",controller:"MailRealtimeViewCtrl"})}]),angular.module("xCallyShuttleApp").factory("ReportCall",["$resource",function(a){return a("/api/report/calls/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChanSpy",["$resource",function(a){return a("/api/chanspy/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.chanspy",{url:"/chanspy",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChanSpyListCtrl",["$scope","$uibModal","ChanSpy","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"chanspy.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/channels/voice/chanspy/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/channels/voice/chanspy/list/list.create.modal.html",controller:"ChanSpyListCreateCtrl"});c.result.then(function(b){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("ChanSpyListCreateCtrl",["$scope","$translate","$uibModalInstance","ChanSpy","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.options=[{name:"APPLICATION_CHANSPY_OPTION_b",value:"b"},{name:"APPLICATION_CHANSPY_OPTION_B",value:"B"},{name:"APPLICATION_CHANSPY_OPTION_E",value:"E"},{name:"APPLICATION_CHANSPY_OPTION_o",value:"o"},{name:"APPLICATION_CHANSPY_OPTION_q",value:"q"},{name:"APPLICATION_CHANSPY_OPTION_s",value:"s"},{name:"APPLICATION_CHANSPY_OPTION_S",value:"S"},{name:"APPLICATION_CHANSPY_OPTION_w",value:"w"},{name:"APPLICATION_CHANSPY_OPTION_W",value:"W"}],a.save=function(){return a.item.options=a.item.options.join(""),d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.chanspy.list",{url:"/list",templateUrl:"app/channels/voice/chanspy/list/list.html",controller:"ChanSpyListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChanSpyViewCtrl",["$scope","$translate","$stateParams","xAlert","ChanSpy",function(a,b,c,d,e){a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.options=[{name:"APPLICATION_CHANSPY_OPTION_b",value:"b"},{name:"APPLICATION_CHANSPY_OPTION_B",value:"B"},{name:"APPLICATION_CHANSPY_OPTION_E",value:"E"},{name:"APPLICATION_CHANSPY_OPTION_o",value:"o"},{name:"APPLICATION_CHANSPY_OPTION_q",value:"q"},{name:"APPLICATION_CHANSPY_OPTION_s",value:"s"},{name:"APPLICATION_CHANSPY_OPTION_S",value:"S"},{name:"APPLICATION_CHANSPY_OPTION_w",value:"w"},{name:"APPLICATION_CHANSPY_OPTION_W",value:"W"}],a.getChanSpy=function(){return e.get({id:c.id}).$promise.then(function(b){b.options=b.options.split(""),a.chanspy=b})["catch"](function(a){d.show(a.data.message,"danger")})},a.updateChanSpy=function(){var f=angular.copy(a.chanspy);return f.options=f.options.join(""),e.update({id:c.id},f).$promise.then(function(){d.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.chanspy.view",{url:"/view/:id",templateUrl:"app/channels/voice/chanspy/view/view.html",controller:"ChanSpyViewCtrl",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.channels.voice.chanspy.view.settings",{url:"/settings",templateUrl:"app/channels/voice/chanspy/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("VoiceContext",["$resource",function(a){return a("/api/voice/contexts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.contexts",{url:"/contexts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceContextListCtrl",["$scope","VoiceContext","gridOptions","$uibModal","xAlert","$translate",function(a,b,c,d,e,f){a.initView=function(){var d={exporterCsvFilename:"voice_contexts.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:170,buttons:[{"class":"{{row.entity.defaultEntry ? 'blue-hoki disabled' : 'blue-hoki'}}",href:"/channels/voice/contexts/view/{{row.entity.id}}/settings",name:"settings"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){var c=d.open({animation:!0,templateUrl:"app/channels/voice/context/list/create.modal.html",controller:["$scope","$uibModalInstance",function(a,b){a.form={},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]});c.result.then(function(c){return b.save(c).$promise.then(function(){a.gridOptions.getPage(),e.show(f.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){e.show(a.data.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.contexts.list",{url:"/list",templateUrl:"app/channels/voice/context/list/list.html",controller:"VoiceContextListCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceContextViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getContext=function(){b.get("/api/voice/contexts/"+e.id).success(function(b){a.context=b}).error(function(a){console.error(a),f.path("/voice/contexts/list")})},a.updateVoiceContext=function(){var f=angular.copy(a.context);b.put("/api/voice/contexts/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.context=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.contexts.view",{url:"/view/:id",templateUrl:"app/channels/voice/context/view/view.html",controller:"VoiceContextViewCtrl",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.channels.voice.contexts.view.settings",{url:"/settings",templateUrl:"app/channels/voice/context/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("VoiceMohListCtrl",["$scope","gridOptions","VoiceMoh","$uibModal","xAlert","$translate",function(a,b,c,d,e,f){a.initView=function(){var d={exporterCsvFilename:"voice_mohs.csv",columnDefs:[{name:"name"},{name:"directory"},{name:"sort"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/voice/mohs/view/{{row.entity.id}}/settings",name:"settings"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a)},a.createItem=function(){var b=d.open({animation:!0,templateUrl:"app/channels/voice/moh/list/create.modal.html",controller:["$scope","$uibModalInstance",function(a,b){a.form={},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]});b.result.then(function(b){return c.save(b).$promise.then(function(){a.gridOptions.getPage(),e.show(f.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.mohs.list",{url:"/list",templateUrl:"app/channels/voice/moh/list/list.html",controller:"VoiceMohListCtrl",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").factory("VoiceMoh",["$resource",function(a){return a("/api/voice/musiconholds/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.mohs",{url:"/mohs",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceMohViewCtrl",["$scope","$http","xAlert","$translate","VoiceMoh","$stateParams","socket","Modal","$sce","$location","Sound",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=d,a.audioSources={},a.sortOptions=[{value:"random",name:"APPLICATION_RANDOM"},{value:"alpha",name:"APPLICATION_ALPHABETICAL"}],a.getMoh=function(){return e.get({id:f.id}).$promise.then(function(b){delete b.stamp,a.moh=b})["catch"](function(a){c.show(a.message,"danger")})},a.updateVoiceMoh=function(){return console.log("update"),e.update({id:f.id},a.moh).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){c.show(a.message,"danger")})},a.addMohs=function(){return e.save({id:f.id,controller:"files"},a.item).$promise.then(function(){j.path("/channels/voice/mohs/view/"+f.id+"/audios")})["catch"](function(a){c.show(a.message,"danger")})},a.getAudioFiles=function(){return e.get({id:f.id,controller:"files"}).$promise.then(function(b){a.audioFiles=b.files,a.mohPath=b.path,a.audioFiles.forEach(function(a){l(a)})})["catch"](function(a){c.show(a.message,"danger")})},a.getSecureSrc=function(a){return i.trustAsResourceUrl(a)},a.getSounds=function(){return a.item={sounds:[]},k.get().$promise.then(function(b){a.soundList=b.rows})["catch"](function(a){c.show(a.message,"danger")})};var l=function(c){b.get("/api/voice/musiconholds/stream",{params:{path:encodeURI(a.mohPath+"/"+c)}}).success(function(b){a.audioSources[c]="data:audio/ogg;base64,"+b}).error(function(a){console.error(a)})};a.deleteItem=h.confirm["delete"](function(e){b["delete"]("/api/voice/musiconholds/"+f.id+"/files",{params:{filename:e}}).success(function(){_.remove(a.audioFiles,function(a){return a===e}),c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){c.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.mohs.view",{url:"/view/:id",templateUrl:"app/channels/voice/moh/view/view.html",controller:"VoiceMohViewCtrl",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.channels.voice.mohs.view.settings",{url:"/settings",templateUrl:"app/channels/voice/moh/view/view.settings.html"}).state("main.channels.voice.mohs.view.audios",{url:"/audios",templateUrl:"app/channels/voice/moh/view/view.audios.html",cache:!1}).state("main.channels.voice.mohs.view.add",{url:"/add",templateUrl:"app/channels/voice/moh/view/view.addFiles.html",cache:!1})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueListCtrl",["$scope","$rootScope","VoiceQueue","gridOptions","$uibModal",function(a,b,c,d,e){a.initView=function(){var b={exporterCsvFilename:"voice_queues.csv",primaryKey:"name",columnDefs:[{name:"name"},{name:"strategy"},{name:"description"},{name:"action",width:200,buttons:[{"class":"blue-hoki",href:"/channels/voice/queues/view/{{row.entity.name}}/settings",name:"settings"},{"class":"green-meadow",href:"/channels/voice/queues/view/{{row.entity.name}}/agents",name:"agents"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.name)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var b=e.open({animation:!0,templateUrl:"app/channels/voice/queue/list/list.create.modal.html",controller:"VoiceQueueListCreateCtrl"});b.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("VoiceQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","VoiceQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return e.save(a.item).$promise.then(function(a){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.queues.list",{url:"/list",templateUrl:"app/channels/voice/queue/list/list.html",controller:"VoiceQueueListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("ReportQueue",["$resource",function(a){return a("/api/report/queues/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","VoiceQueue","VoiceContext","Team",function(a,b,c,d,e,f,g,h,i,j){a.penalty=0,a.binaryChoices=[{name:"Yes",value:1},{name:"No",value:0}],a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.monitorFormats=[{name:"wav",value:"wav"},{name:"gsm",value:"gsm"},{name:"Inactive",value:""}],a.queueAnnounces=[{display_name:"Default",value:null},{display_name:"Disabled",value:""}];var k=function(){return{select:function(b){return h.save({id:a.queue.name,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})},deselect:function(b){return h["delete"]({id:a.queue.name,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})}}};a.getQueue=function(){return h.get({id:e.id}).$promise.then(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(","),b.penalty=0,a.queue=b})["catch"](function(a){g.path("/channels/voice/queues/list")})},a.updateVoiceQueue=function(){var b=angular.copy(a.queue);return b.joinempty=b.joinempty.join(","),b.leavewhenempty=b.leavewhenempty.join(","),
-b.periodic_announce=b.periodic_announce.join(","),b.context||(b.context=null),h.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(d.instant(a.data.message),"danger")})},a.getTeams=function(){return j.get().$promise.then(function(b){return a.teams=b.rows,h.query({id:e.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindQueue(a.teams,_.map(b,function(a){return{id:a.id,penalty:a.UserHasVoiceQueue.penalty}}),k)})["catch"](function(a){console.error(a)})},a.getContexts=function(){return i.get().$promise.then(function(b){a.voiceContexts=b.rows})["catch"](function(a){c.show(d.instant(data.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/sounds").success(function(b){a.queueAnnounces=a.queueAnnounces.concat(b),a.periodicAnnounces=angular.copy(b.rows),b.rows.unshift({display_name:"None",converted_path:null,value:""}),a.sounds=b.rows,f.syncUpdates("sound",a.sounds)}).error(function(a){console.error(a)})},a.returnAnnouncePath=function(a){return 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.channels.voice.queues.view",{url:"/view/:id",templateUrl:"app/channels/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.channels.voice.queues.view.settings",{url:"/settings",templateUrl:"app/channels/voice/queue/view/view.settings.html"}).state("main.channels.voice.queues.view.agents",{url:"/agents",templateUrl:"app/channels/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/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").factory("VoiceQueue",["$resource",function(a){return a("/api/voice/queues/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","VoiceQueue","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){return k.spin("spinner-grid"),g.get(s).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){p(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function o(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});if(c){var d=a.gridOptions.data.indexOf(c);a.gridOptions.data[d].online=b.online,a.gridOptions.data[d].lastLoginAt=b.lastLoginAt,a.gridOptions.data[d].pause=b.voicePause,a.gridOptions.data[d].pauseType=b.pauseType,a.gridOptions.data[d].lastPauseAt=b.lastPauseAt,a.gridOptions.data[d].status=b.status,a.gridOptions.data[d].statusAt=b.statusAt,a.gridOptions.data[d].queueStatus=b.queueStatus,a.gridOptions.data[d].queueStatusAt=b.queueStatusAt,a.gridOptions.data[d].lastQueue=b.lastQueue,a.gridOptions.data[d].ipaddr=b.ipaddr,a.gridOptions.data[d].port=b.port,a.gridOptions.data[d].fullcontact=b.fullcontact,a.gridOptions.data[d].useragent=b.useragent,a.gridOptions.data[d].lastms=b.lastms,a.gridOptions.data[d].internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)})}}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_voice_queue:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.UserId,queue:b.queue});if(!c&&b.logged){var d=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0}),e=a.gridOptions.data.indexOf(d);a.gridOptions.data.splice(e+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,agent:b.membername,callstaken:b.callstaken?b.callstaken:0,online:d.online})}else c&&!b.logged?_.remove(a.gridOptions.data,{agentId:b.UserId,queue:b.queue}):c&&b.logged&&(c.callstaken=b.callstaken?b.callstaken:0)}),e.socket.on("user_has_voice_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queue:b.queue})})}function p(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.voicePause,pauseType:b.pauseType,status:b.status||"UNKNOWN",statusAt:b.statusAt,queueStatus:b.queueStatus||"READY",queueStatusAt:b.queueStatusAt,lastQueue:b.lastQueue,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.VoiceQueues.forEach(function(c){c.UserHasVoiceQueue.logged&&a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,agent:b.name,callstaken:c.UserHasVoiceQueue.callstaken?c.UserHasVoiceQueue.callstaken:0,online:b.online})})}function q(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function r(){return j.get().$promise.then(function(b){a.voiceQueues=b.rows,e.syncUpdates("voice_queue",a.voiceQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.voiceQueues=[];var s={offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.isAgent">{{row.entity.agent}} &lt;{{row.entity.internal}}&gt;</div>'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.online != null && row.entity.isAgent"><i class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i> <span data-ng-if="row.entity.online" class="left-margin">(<timer start-time="grid.appScope.moment(row.entity.lastLoginAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"status",displayName:"APPLICATION_PHONE_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div data-ng-if=\"row.entity.isAgent\">{{'APPLICATION_'+row.entity.status | translate}} <span data-ng-if=\"row.entity.statusAt && (row.entity.status === 'BUSY' || row.entity.status === 'ONHOLD' || row.entity.status === 'INUSE')\">(<timer start-time=\"grid.appScope.moment(row.entity.statusAt).unix()*1000\">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></span></div>",filter:{type:m.filter.SELECT,selectOptions:[{value:"UNKNOWN",label:d.instant("APPLICATION_UNKNOWN")},{value:"NOT_INUSE",label:d.instant("APPLICATION_NOT_INUSE")},{value:"INUSE",label:d.instant("APPLICATION_INUSE")},{value:"BUSY",label:d.instant("APPLICATION_BUSY")},{value:"INVALID",label:d.instant("APPLICATION_INVALID")},{value:"UNAVAILABLE",label:d.instant("APPLICATION_UNAVAILABLE")},{value:"RINGING",label:d.instant("APPLICATION_RINGING")},{value:"RINGINUSE",label:d.instant("APPLICATION_RINGINUSE")},{value:"ONHOLD",label:d.instant("APPLICATION_ONHOLD")}]}},{name:"queueStatus",width:400,displayName:"APPLICATION_QUEUE_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.isAgent && row.entity.online" class="ui-grid-vcenter" data-ng-class="{\'paused-agent\':row.entity.pause}"><span>{{\'APPLICATION_\'+row.entity.queueStatus.toUpperCase() | translate}}</span><span data-ng-if="(row.entity.queueStatus!==\'complete\' && (row.entity.queueStatus!==\'paused\' || row.entity.pauseType === \'ACW\'))"> [{{row.entity.lastQueue}}]</span><span data-ng-if="row.entity.pause"> [{{row.entity.pauseType}}]</span><timer data-ng-if="row.entity.queueStatusAt && row.entity.queueStatus!==\'complete\'" start-time="grid.appScope.moment(row.entity.queueStatusAt).unix()*1000"> [{{hhours}}:{{mminutes}}:{{sseconds}}]</timer></span><span class="left-margin"><i data-ng-if="row.entity.pause" data-ng-click="grid.appScope.pause(row.entity.agentId,\'unpause\')" class="icon-control-play font-green pointer-cursor" title="{{\'APPLICATION_RESUME\' | translate}}"></i><i class="icon-control-pause font-yellow pointer-cursor" data-ng-click="grid.appScope.pause(row.entity.agentId,\'pause\',\'DEFAULT PAUSE\')" title="{{\'APPLICATION_DEFAULT_PAUSE\' | translate}}"></i></span><select data-ng-if="grid.appScope.pauses.length" class="pause-select pointer-cursor" data-ng-model="grid.appScope.pauseType" data-ng-change="grid.appScope.pause(row.entity.agentId,\'pause\',grid.appScope.pauseType)"><option class="pointer-cursor" data-ng-repeat="pause in grid.appScope.pauses">{{pause.name}}</option></select></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"paused",label:d.instant("APPLICATION_PAUSED")},{value:"connect",label:d.instant("APPLICATION_CONNECT")},{value:"complete",label:d.instant("APPLICATION_COMPLETE")},{value:"called",label:d.instant("APPLICATION_CALLED")}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"callstaken",displayName:"APPLICATION_CALLS_TAKEN",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.callstaken !== null">{{row.entity.callstaken}}</div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1,width:100},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><button data-ng-if="row.entity.queue" class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.leaveQueue(row.entity.agentId,row.entity.queue)"><i class="icon-ban"></i> {{\'APPLICATION_LEAVE\' | translate}}</button><button data-ng-if="row.entity.isAgent && row.treeNode.children.length < grid.appScope.voiceQueues.length" class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.joinQueue(row.entity.agentId)"><i class="icon-plus"></i> {{\'APPLICATION_JOIN_QUEUE\' | translate}}</button> <button data-ng-if="row.entity.isAgent" class="btn btn-xs blue-madison" data-ng-click="grid.appScope.showInfo(row.entity)"><i class="icon-info"></i> {{\'APPLICATION_INFO\' | translate}}</button><div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?s.order=null:s.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),n()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){s.offset=(a-1)*b,s.limit=b,n()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?s[a.name]=a.filters[0].term:delete s[a.name]}),n()})}},n(),q(),r(),o()};var t=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_voice_queue")}),a.pause=function(a,b,c){return i.save({name:b,agent:a,type:c||"DEFAULT PAUSE",data4:c||"DEFAULT PAUSE",channel:"voice"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(d.instant(a.message||a.data.message||a.translatedMessage||a.data.translatedMessage),"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/voice/realtime/view/agent/queue.modal.add.html",controller:"VoiceRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.voiceQueues,function(b){return _.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})?!0:!1})}}});g.result.then(function(a){return i.save({name:"QueueAdd",agent:e,queues:a.queues,channel:"voice",data1:e,data3:a.queues.join(","),data4:"voice"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queue:b,channel:"voice",data1:a,data3:b,data4:"voice"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/voice/realtime/view/agent/agent.modal.info.html",controller:"VoiceRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/voice/realtime/view/agent/agent.html",controller:"VoiceRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},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/channels/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/channels/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/channels/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.channels.voice.realtime.view.agents"},{name:"View2",link:"main.channels.voice.realtime.view.areports"}],a.queues=[{name:"View1",link:"main.channels.voice.realtime.view.queues"},{name:"View2",link:"main.channels.voice.realtime.view.qreports"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime.view",{url:"/view",templateUrl:"app/channels/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"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRecordingListCtrl",["$scope","$translate","$sce","Recording","gridOptions","xAlert","uiGridConstants",function(a,b,c,d,e,f,g){a.Recording=d;a.updateRating=function(a,c){d.patch({id:a,rating:c}).$promise.then(function(){f.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.initView=function(){var b={exporterCsvFilename:"recordings.csv",rowHeight:30,columnDefs:[{name:"uniqueid"},{name:"calleridnum"},{name:"calleridname"},{name:"connectedlinenum"},{name:"connectedlinename"},{name:"rating",filter:{type:g.filter.SELECT,selectOptions:[{value:1,label:"1"},{value:2,label:"2"},{value:3,label:"3"},{value:4,label:"4"},{value:5,label:"5"}]},cellClass:"ui-grid-vcenter",width:"100",cellTemplate:'<div><uib-rating data-ng-model="row.entity.rating" data-ng-click="grid.appScope.updateRating(row.entity.uniqueid, row.entity.rating)" aria-labelledby="default-rating"></uib-rating></div>'},{name:"audio",displayName:"",width:225,enableSorting:!1,enableFiltering:!1,buttons:[{directive:'<audio-file-download params="{id:row.entity.uniqueid,controller:\'stream\'}" resource="grid.appScope.Recording"></audio-file-download>'}]},{name:"action",width:150,buttons:[{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.uniqueid, row.entity.uniqueid)"},{directive:'<motion-file-download params="{id:row.entity.uniqueid,controller:\'stream\'}" resource="grid.appScope.Recording" mimetype="audio/wav" btnclass="btn btn-xs blue-hoki" filename="row.entity.uniqueid+\'.wav\'"></motion-file-download>'}]}]};a.gridOptions=e.gridOptions(d,b,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.recordings.list",{url:"/list",templateUrl:"app/channels/voice/recording/list/list.html",controller:"VoiceRecordingListCtrl",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").factory("Recording",["$resource",function(a){return a("/api/voice/recordings/:id/:controller",{id:"@id"},{update:{method:"PUT"},patch:{method:"PATCH"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.recordings",{url:"/recordings",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.inbound",{url:"/inbound",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundListCreateCtrl",["$scope","$uibModalInstance","Route","application","xAlert","$location","$translate",function(a,b,c,d,e,f,g){a.$application=d.application,a.forms={route:void 0},a.item={type:"inbound",appdata:"Inbound Call",context:"from-voip-provider"},a.ok=function(){return a.item.exten=a.$application.checkUnderscore(a.item.exten),c.save(a.item).$promise.then(function(a){b.close(a),f.path("/channels/voice/routes/inbound/view/"+a.id+"/applications")})["catch"](function(a){console.log(a),e.show(g.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource","gridOptions","Route","$uibModal","$location","$log",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.initView=function(){var b={exporterCsvFilename:"InboundRoutes.csv",columnDefs:[{name:"exten",displayName:"APPLICATION_PHONE_NUMBER"},{name:"description"},{name:"applications",cellClass:"ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.Applications.length"><span data-ng-repeat="app in row.entity.Applications | limitTo:2">{{app.app}}({{app.appdata[0]}}), </span>...</div><div data-ng-if="!row.entity.Applications.length">{{\'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate}}</div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",width:170,buttons:[{"class":"blue-hoki",href:"/channels/voice/routes/inbound/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.exten, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(j,b,a,{type:"inbound"})},a.create=function(){k.open({animation:!0,templateUrl:"app/channels/voice/route/inbound/list/create.modal.html",controller:"VoiceRouteInboundListCreateCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.inbound.list",{url:"/list",templateUrl:"app/channels/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","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval","Route","VoiceQueue","Sound","SquareProject","VoiceContext","Interval","VoiceMail",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){function r(b){var c,d;if("always"===b.intType)c=null,d="*,*,*,*";else if("list"===b.intType)d=b.IntervalId?_.find(a.Intervals,{id:b.IntervalId}).name:"*,*,*,*",c=b.IntervalId||null;else if("custom"===b.intType){c=null;var e,f,g,h;e=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(f=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(f+="-"+b.wd_to)):f="*",b.md_from&&"always"!==b.md_from?(g=b.md_from,b.md_to&&"always"!==b.md_to&&(g+="-"+b.md_to)):g="*",b.m_from&&"always"!==b.m_from?(h=b.m_from,b.m_to&&"always"!==b.m_to&&(h+="-"+b.m_to)):h="*",d=e+","+f+","+g+","+h}void 0===a.selectedApp?(a.application.interval=d,a.application.IntervalId=c):(a.route.Applications[a.selectedApp].interval=d,a.route.Applications[a.selectedApp].IntervalId=c)}function s(){if(a.interval.intType=a.route.Applications[a.selectedApp].IntervalId?"list":"*,*,*,*"===a.route.Applications[a.selectedApp].interval?"always":"custom",a.interval.IntervalId=a.route.Applications[a.selectedApp].IntervalId,!a.route.Applications[a.selectedApp].IntervalId){var b,c=a.route.Applications[a.selectedApp].interval?a.route.Applications[a.selectedApp].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.interval.t_from=moment(b[0],"HH:mm"),a.interval.t_to=moment(b[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:"*"!==c?(b=c.split("-"),a.interval.wd_from=b[0],a.interval.wd_to=b[1]?b[1]:"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.interval.md_from=b[0],a.interval.md_to=b[1]?b[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.interval.m_from=b[0],a.interval.m_to=b[1]?b[1]:"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}a.$translate=b,a.$application=i.application,a.$interval=j.interval,a.gridOptions={rowTemplate:'<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',columnDefs:[{name:"app",displayName:"APPLICATION_APPLICATION",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"appdata",displayName:"APPLICATION_ARGUMENTS",headerCellFilter:"translate",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{row.entity.appdata.join(',')}}</div>",enableSorting:!1,enableColumnMenu:!1},{name:"interval",displayName:"APPLICATION_TIME",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"action",enableSorting:!1,enableColumnMenu:!1,displayName:"APPLICATION_ACTION",headerCellFilter:"translate",width:125,cellTemplate:'<a class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.openApplication(grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_SETTINGS\' | translate}}</a><a class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.deleteApp(row.entity.app+\' application\', grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_DELETE\' | translate}}</a>'}],onRegisterApi:function(b){b.draggableRows.on.rowDropped(a,function(b,c){a.updateRoute()})}},a.initApplication=function(b){b&&(a.selectedApp=void 0),a.forms={settings:void 0,interval:void 0},a.application={},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.$watch("interval",function(a){a&&r(a)},!0),a.updateSetAppdata=function(){a.application.variable&&a.application.value&&"Set"===a.main.app?a.application.appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.updateSetAppdataSettings=function(){a.application.variable&&a.application.value&&"Set"===a.main.app?a.route.Applications[a.selectedApp].appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.$watch("main.app",function(d){if(d){var e,f;switch(c.appId||(a.application={app:d,interval:a.application.interval||"*,*,*,*",appdata:[]}),d){case"Queue":e=l,f=m;break;case"Playback":e=m;break;case"AGI":e=n;break;case"Goto":e=o;break;case"Voicemail":e=q;break;default:e=null,f=null}if(e)return e.get().$promise.then(function(b){a.items=b.rows}).then(function(){return f?f.get().$promise:void 0}).then(function(b){b&&(a.items2=b.rows)})["catch"](function(a){h.show(b.instant(a.message),"danger")})}},!0),a.deselectAndRedirect=function(b){a.selectedApp=void 0,e.path(b)},a.getIntervals=function(){return p.get().$promise.then(function(b){a.Intervals=b.rows,d.syncUpdates("interval",a.Intervals)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.getRoute=function(){return k.get({id:c.id}).$promise.then(function(b){a.route=b,a.gridOptions.data=b.Applications})["catch"](function(a){e.path("/channels/voice/routes/inbound/list")})},a.getApplication=function(){void 0===a.selectedApp&&e.path("/channels/voice/routes/inbound/list");var b=_.find(a.$application.applications,{value:a.route.Applications[a.selectedApp].app});if(a.main.app=b?b.value:"custom","Set"===a.main.app){var c=a.route.Applications[a.selectedApp].appdata[0].split("=");a.application.variable=c[0],a.application.value=c[1]}if(!b){var d=a.route.Applications[a.selectedApp].appdata.join(",");a.route.Applications[a.selectedApp].appdata=[d]}s()},a.openApplication=function(b){a.selectedApp=b,e.path("/channels/voice/routes/inbound/view/"+c.id+"/applications/settings")},a.updateRoute=function(d){return a.selectedApp=void 0,a.route.exten=a.$application.checkUnderscore(a.route.exten),k.update({id:a.route.id},a.route).$promise.then(function(a){h.show(b.instant("MESSAGE_WELL_DONE")+"!","success"),d&&e.path("/channels/voice/routes/inbound/view/"+c.id+"/"+d)})["catch"](function(a){console.log(a),h.show(b.instant(a.data.translatedMessage),"danger")})},a.getContexts=function(){return o.get().$promise.then(function(b){a.voiceContexts=b.rows,d.syncUpdates("voice_context",a.voiceContexts)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.deleteApp=g.confirm["delete"](function(b){console.log(b),console.log(a.route.Applications[b]),a.route.Applications.splice(b,1)}),a.addApplication=function(){a.route.Applications.push(a.application),a.updateRoute("applications")},a.goNext=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){d.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.inbound.view",{url:"/view/:id",templateUrl:"app/channels/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.channels.voice.routes.inbound.view.settings",{url:"/settings",templateUrl:"app/channels/voice/route/inbound/view/view.settings.html"}).state("main.channels.voice.routes.inbound.view.applications",{url:"/applications",templateUrl:"app/channels/voice/route/inbound/view/view.applications.html"}).state("main.channels.voice.routes.inbound.view.application",{url:"/application",templateUrl:"app/channels/voice/route/view.application.html"}).state("main.channels.voice.routes.inbound.view.applications.settings",{url:"/settings",templateUrl:"app/channels/voice/route/view.applicationSettings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.internal",{url:"/internal",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalListCreateCtrl",["$scope","$uibModalInstance","Route","application","$location","$translate","xAlert",function(a,b,c,d,e,f,g){a.$application=d.application,a.forms={route:void 0},a.item={type:"internal",appdata:"Internal Call",context:"from-sip"},a.ok=function(){return a.item.exten=a.$application.checkUnderscore(a.item.exten),c.save(a.item).$promise.then(function(a){b.close(a),e.path("/channels/voice/routes/internal/view/"+a.id+"/applications")})["catch"](function(a){g.show(f.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource","gridOptions","Route","$uibModal","$location","$log",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.initView=function(){var b={exporterCsvFilename:"InternalRoutes.csv",columnDefs:[{name:"exten",displayName:"APPLICATION_PHONE_NUMBER"},{name:"description"},{name:"applications",cellClass:"ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.Applications.length"><span data-ng-repeat="app in row.entity.Applications | limitTo:2">{{app.app}}({{app.appdata[0]}}),</span>...</div><div data-ng-if="!row.entity.Applications.length">{{\'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate}}</div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",width:170,buttons:[{"class":"blue-hoki",href:"/channels/voice/routes/internal/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.exten, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(j,b,a,{type:"internal"})},a.create=function(){k.open({animation:!0,templateUrl:"app/channels/voice/route/internal/list/create.modal.html",controller:"VoiceRouteInternalListCreateCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.internal.list",{url:"/list",templateUrl:"app/channels/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","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval","Route","VoiceQueue","Sound","SquareProject","VoiceContext","Interval","VoiceMail",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){function r(b){var c,d;if("always"===b.intType)c=null,d="*,*,*,*";else if("list"===b.intType)d=b.IntervalId?_.find(a.Intervals,{id:b.IntervalId}).name:"*,*,*,*",c=b.IntervalId||null;else if("custom"===b.intType){c=null;var e,f,g,h;e=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(f=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(f+="-"+b.wd_to)):f="*",b.md_from&&"always"!==b.md_from?(g=b.md_from,b.md_to&&"always"!==b.md_to&&(g+="-"+b.md_to)):g="*",b.m_from&&"always"!==b.m_from?(h=b.m_from,b.m_to&&"always"!==b.m_to&&(h+="-"+b.m_to)):h="*",d=e+","+f+","+g+","+h}void 0===a.selectedApp?(a.application.interval=d,a.application.IntervalId=c):(a.route.Applications[a.selectedApp].interval=d,a.route.Applications[a.selectedApp].IntervalId=c)}function s(){if(a.interval.intType=a.route.Applications[a.selectedApp].IntervalId?"list":"*,*,*,*"===a.route.Applications[a.selectedApp].interval?"always":"custom",a.interval.IntervalId=a.route.Applications[a.selectedApp].IntervalId,!a.route.Applications[a.selectedApp].IntervalId){var b,c=a.route.Applications[a.selectedApp].interval?a.route.Applications[a.selectedApp].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.interval.t_from=moment(b[0],"HH:mm"),a.interval.t_to=moment(b[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:"*"!==c?(b=c.split("-"),a.interval.wd_from=b[0],a.interval.wd_to=b[1]?b[1]:"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.interval.md_from=b[0],a.interval.md_to=b[1]?b[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.interval.m_from=b[0],a.interval.m_to=b[1]?b[1]:"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}a.$translate=b,a.selectedApp=void 0,a.$application=i.application,a.$interval=j.interval,a.gridOptions={rowTemplate:'<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',columnDefs:[{name:"app",displayName:"APPLICATION_APPLICATION",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"appdata",displayName:"APPLICATION_ARGUMENTS",headerCellFilter:"translate",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{row.entity.appdata.join(',')}}</div>",enableSorting:!1,enableColumnMenu:!1},{name:"interval",displayName:"APPLICATION_TIME",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"action",displayName:"APPLICATION_ACTION",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1,width:125,cellTemplate:'<a class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.openApplication(grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_SETTINGS\' | translate}}</a><a class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.deleteApp(row.entity.app+\' application\', grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_DELETE\' | translate}}</a>'}],onRegisterApi:function(b){b.draggableRows.on.rowDropped(a,function(b,c){a.updateRoute()})}},a.initApplication=function(b){b&&(a.selectedApp=void 0),a.forms={settings:void 0,interval:void 0},a.application={},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.$watch("interval",function(a){a&&r(a)},!0),a.updateSetAppdata=function(){a.application.variable&&a.application.value&&"Set"===a.main.app?a.application.appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.updateSetAppdataSettings=function(){a.application.variable&&a.application.value&&"Set"===a.main.app?a.route.Applications[a.selectedApp].appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.$watch("main.app",function(d){if(d){var e,f;switch(c.appId||(a.application={app:d,interval:a.application.interval||"*,*,*,*",appdata:[]}),d){case"Queue":e=l,f=m;break;case"Playback":e=m;break;case"AGI":e=n;break;case"Goto":e=o;break;case"Voicemail":e=q;break;default:e=null,f=null}if(e)return e.get().$promise.then(function(b){a.items=b.rows}).then(function(){return f?f.get().$promise:void 0}).then(function(b){b&&(a.items2=b.rows)})["catch"](function(a){h.show(b.instant(a.message),"danger")})}},!0),a.deselectAndRedirect=function(b){a.selectedApp=void 0,e.path(b)},a.getIntervals=function(){return p.get().$promise.then(function(b){a.Intervals=b.rows,d.syncUpdates("interval",a.Intervals)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.getRoute=function(){return k.get({id:c.id}).$promise.then(function(b){a.route=b,a.gridOptions.data=b.Applications})["catch"](function(a){e.path("/channels/voice/routes/internal/list")})},a.getApplication=function(){console.log(a.selectedApp),void 0===a.selectedApp&&e.path("/channels/voice/routes/internal/list");var b=_.find(a.$application.applications,{value:a.route.Applications[a.selectedApp].app});if(a.main.app=b?b.value:"custom","Set"===a.main.app){var c=a.route.Applications[a.selectedApp].appdata[0].split("=");a.application.variable=c[0],a.application.value=c[1]}if(!b){var d=a.route.Applications[a.selectedApp].appdata.join(",");a.route.Applications[a.selectedApp].appdata=[d]}s()},a.openApplication=function(b){a.selectedApp=b,e.path("/channels/voice/routes/internal/view/"+c.id+"/applications/settings")},a.updateRoute=function(d){return a.selectedApp=void 0,a.route.exten=a.$application.checkUnderscore(a.route.exten),k.update({id:a.route.id},a.route).$promise.then(function(a){h.show(b.instant("MESSAGE_WELL_DONE")+"!","success"),d&&e.path("/channels/voice/routes/internal/view/"+c.id+"/"+d)})["catch"](function(a){h.show(b.instant(a.data.translatedMessage),"danger")})},a.getContexts=function(){return o.get().$promise.then(function(b){a.voiceContexts=b.rows,d.syncUpdates("voice_context",a.voiceContexts)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.deleteApp=g.confirm["delete"](function(b){a.route.Applications.splice(b,1),a.updateRoute()}),a.addApplication=function(){a.route.Applications.push(a.application),a.updateRoute("applications")},a.goNext=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){d.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.internal.view",{url:"/view/:id",templateUrl:"app/channels/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.channels.voice.routes.internal.view.settings",{url:"/settings",templateUrl:"app/channels/voice/route/internal/view/view.settings.html"}).state("main.channels.voice.routes.internal.view.applications",{url:"/applications",templateUrl:"app/channels/voice/route/internal/view/view.applications.html"}).state("main.channels.voice.routes.internal.view.application",{url:"/application",templateUrl:"app/channels/voice/route/view.application.html"}).state("main.channels.voice.routes.internal.view.applications.settings",{url:"/settings",templateUrl:"app/channels/voice/route/view.applicationSettings.html"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundListCreateCtrl",["$scope","$uibModalInstance","Route","application","xAlert","$translate","$location","Tag",function(a,b,c,d,e,f,g,h){a.$application=d.application,a.forms={route:void 0},a.item={type:"outbound",appdata:"Outbound Call",context:"from-sip"},a.getTags=function(){return h.get().$promise.then(function(b){b.rows.unshift({name:"--"}),a.tags=b.rows})["catch"](function(a){e.show(f.instant(a.data.translatedMessage),"danger")})},a.ok=function(){return a.item.exten=a.$application.checkUnderscore(a.item.exten),c.save(a.item).$promise.then(function(a){b.close(a),g.path("/channels/voice/routes/outbound/view/"+a.id+"/routes")})["catch"](function(a){e.show(f.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource","gridOptions","Route","$uibModal","$location","$log",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.initView=function(){var b={exporterCsvFilename:"OutboundRoutes.csv",columnDefs:[{name:"exten",displayName:"APPLICATION_DESTINATION_PATTERN"},{name:"description"},{name:"applications",cellClass:"ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.Applications.length"><span data-ng-repeat="app in row.entity.Applications | limitTo:2">{{app.app}}({{app.appdata[0]}}),</span>...</div><div data-ng-if="!row.entity.Applications.length">{{\'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate}}</div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",width:170,buttons:[{"class":"blue-hoki",href:"/channels/voice/routes/outbound/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.exten, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(j,b,a,{type:"outbound"})},a.create=function(){k.open({animation:!0,templateUrl:"app/channels/voice/route/outbound/list/create.modal.html",controller:"VoiceRouteOutboundListCreateCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.outbound.list",{url:"/list",templateUrl:"app/channels/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.channels.voice.routes.outbound",{url:"/outbound",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundViewCtrl",["$scope","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","application","interval","Route","Trunk","VoiceContext","Interval","Tag",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){function p(b){var c,d;if("always"===b.intType)c=null,d="*,*,*,*";else if("list"===b.intType)d=b.IntervalId?_.find(a.Intervals,{id:b.IntervalId}).name:"*,*,*,*",c=b.IntervalId||null;else if("custom"===b.intType){c=null;var e,f,g,h;e=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(f=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(f+="-"+b.wd_to)):f="*",b.md_from&&"always"!==b.md_from?(g=b.md_from,b.md_to&&"always"!==b.md_to&&(g+="-"+b.md_to)):g="*",b.m_from&&"always"!==b.m_from?(h=b.m_from,b.m_to&&"always"!==b.m_to&&(h+="-"+b.m_to)):h="*",d=e+","+f+","+g+","+h}void 0===a.selectedApp?(a.application.interval=d,a.application.IntervalId=c):(a.route.Applications[a.selectedApp].interval=d,a.route.Applications[a.selectedApp].IntervalId=c)}function q(){if(a.interval.intType=a.route.Applications[a.selectedApp].IntervalId?"list":"*,*,*,*"===a.route.Applications[a.selectedApp].interval?"always":"custom",a.interval.IntervalId=a.route.Applications[a.selectedApp].IntervalId,!a.route.Applications[a.selectedApp].IntervalId){var b,c=a.route.Applications[a.selectedApp].interval?a.route.Applications[a.selectedApp].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.interval.t_from=moment(b[0],"HH:mm"),a.interval.t_to=moment(b[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:"*"!==c?(b=c.split("-"),a.interval.wd_from=b[0],a.interval.wd_to=b[1]?b[1]:"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.interval.md_from=b[0],a.interval.md_to=b[1]?b[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.interval.m_from=b[0],a.interval.m_to=b[1]?b[1]:"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}a.$translate=c,a.$application=i.application,a.$interval=j.interval,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.gridOptions={rowTemplate:'<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',columnDefs:[{name:"app",displayName:"APPLICATION_APPLICATION",cellClass:"ui-grid-vcenter",cellTemplate:"<div><span data-ng-if=\"row.entity.app === 'Dial'\">Default</span><span data-ng-if=\"row.entity.app !== 'Dial'\">{{row.entity.app}}</span></div>",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"appdata",displayName:"APPLICATION_ARGUMENTS",headerCellFilter:"translate",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{row.entity.appdata.join(',')}}</div>",enableSorting:!1,enableColumnMenu:!1},{name:"interval",displayName:"APPLICATION_TIME",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"action",displayName:"APPLICATION_ACTION",enableSorting:!1,enableColumnMenu:!1,headerCellFilter:"translate",width:125,cellTemplate:'<a class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.openApplication(grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_SETTINGS\' | translate}}</a><a class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.deleteApp(row.entity.app+\' application\', grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_DELETE\' | translate}}</a>'}],onRegisterApi:function(b){b.draggableRows.on.rowDropped(a,function(b,c){a.updateRoute()})}},a.initApplication=function(b){b&&(a.selectedApp=void 0),a.forms={info:void 0,interval:void 0},a.application={},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:"Default",value:"Dial"},{name:"Custom",value:"custom"}]},a.$watch("interval",function(a){a&&p(a)},!0),a.$watch("main.app",function(e){if(e){var f,g;switch(d.appId||(a.application={app:e,interval:a.application.interval||"*,*,*,*",appdata:[]}),e){case"Dial":f=l,g=m;break;default:f=null,g=null}if(f)return f.get().$promise.then(function(b){a.items=b.rows}).then(function(){return g?g.get().$promise:void 0}).then(function(b){b&&(a.items2=b.rows)})["catch"](function(a){b.show(c.instant(a.message),"danger")})}},!0),a.deselectAndRedirect=function(b){a.selectedApp=void 0,f.path(b)},a.getIntervals=function(){return n.get().$promise.then(function(b){a.Intervals=b.rows,e.syncUpdates("interval",a.Intervals)})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.getRoute=function(){return k.get({id:d.id}).$promise.then(function(b){a.route=b,a.gridOptions.data=b.Applications})["catch"](function(a){f.path("/channels/voice/routes/outbound/list")})},a.getApplication=function(){void 0===a.selectedApp&&f.path("/channels/voice/routes/outbound/list");var b=_.find(a.applications,{value:a.route.Applications[a.selectedApp].app});if(a.main.app=b?b.value:"custom",!b){var c=a.route.Applications[a.selectedApp].appdata.join(",");a.route.Applications[a.selectedApp].appdata=[c]}q()},a.openApplication=function(b){a.selectedApp=b,f.path("/channels/voice/routes/outbound/view/"+d.id+"/routes/settings")},a.updateRoute=function(e){return a.selectedApp=void 0,a.route.exten=a.$application.checkUnderscore(a.route.exten),k.update({id:a.route.id},a.route).$promise.then(function(a){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),e&&f.path("/channels/voice/routes/outbound/view/"+d.id+"/"+e)})["catch"](function(a){b.show(c.instant(a.data.translatedMessage),"danger")})},a.getContexts=function(){return m.get().$promise.then(function(b){a.voiceContexts=b.rows,e.syncUpdates("voice_context",a.voiceContexts)})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.getTags=function(){return o.get().$promise.then(function(b){b.rows.unshift({name:"--"}),a.tags=b.rows})["catch"](function(a){b.show(c.instant(a.data.translatedMessage),"danger")})},a.deleteApp=h.confirm["delete"](function(b){a.route.Applications.splice(b,1),a.updateRoute()}),a.addApplication=function(){a.route.Applications.push(a.application),a.updateRoute("routes")},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.channels.voice.routes.outbound.view",{url:"/view/:id",templateUrl:"app/channels/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.channels.voice.routes.outbound.view.settings",{url:"/settings",templateUrl:"app/channels/voice/route/outbound/view/view.settings.html"}).state("main.channels.voice.routes.outbound.view.routes",{url:"/routes",templateUrl:"app/channels/voice/route/outbound/view/view.routes.html"}).state("main.channels.voice.routes.outbound.view.route",{url:"/route",templateUrl:"app/channels/voice/route/outbound/view/view.route.html"}).state("main.channels.voice.routes.outbound.view.routes.settings",{url:"/settings",templateUrl:"app/channels/voice/route/outbound/view/view.routeSettings.html"})}]),angular.module("xCallyShuttleApp").factory("Route",["$resource",function(a){return a("/api/voice/extensions/:id",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes",{url:"/routes",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice",{url:"/voice",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailListCtrl",["$scope","VoiceMail","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"voice_mails.csv",primaryKey:"uniqueid",columnDefs:[{name:"mailbox"},{name:"fullname"},{name:"email"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/voice/voicemails/view/{{row.entity.uniqueid}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.mailbox, row.entity.uniqueid)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails.list",{url:"/list",templateUrl:"app/channels/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","VoiceMail","VoiceMailMessage","VoiceContext","$http","xAlert","$translate","$stateParams","socket","$sce","Modal","$location","gridOptions",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){var b={exporterCsvFilename:"voice_mail_messages.csv",primaryKey:"id",columnDefs:[{name:"callerid"},{name:"stamp",displayName:"APPLICATION_DATE",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{grid.appScope.moment(row.entity.stamp).format('YYYY-MM-DD HH:mm:ss')}}</div>"},{name:"duration",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{row.entity.duration*1000 | date:'mm:ss'}}</div>"},{name:"audio",displayName:"",width:225,enableSorting:!1,enableFiltering:!1,buttons:[{directive:'<audio-file-download params="{id:row.entity.id,controller:\'download\'}" resource="grid.appScope.VoiceMailMessage"></audio-file-download>'}]},{name:"action",width:150,buttons:[{directive:'<motion-file-download params="{id:row.entity.id,controller:\'download\'}" resource="grid.appScope.VoiceMailMessage" mimetype="audio/wav" btnclass="btn btn-xs blue-hoki" filename="row.entity.msg_id+\'.wav\'"></motion-file-download>'},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.id, row.entity.id)"}]}]};a.gridOptions=m.gridOptions(c,b,a,{mailbox:a.voicemail.mailbox,context:a.voicemail.context})}a.moment=moment,a.VoiceMailMessage=c,a.getVoicemail=function(){return b.get({id:h.uniqueid}).$promise.then(function(b){delete b.password,delete b.stamp,a.voicemail=b})["catch"](function(a){l.path("/voice/voicemails/list")})},a.updateVoiceVoicemail=function(){return b.update({id:h.uniqueid},a.voicemail).$promise.then(function(){f.show(g.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(g.instant(a.message),"danger")})},a.getContexts=function(){return d.get().$promise.then(function(b){a.voiceContexts=b.rows})["catch"](function(a){f.show(a.message,"danger")})},a.getMessages=function(){return a.voicemail?void n():b.get({id:h.uniqueid}).$promise.then(function(b){delete b.password,delete b.stamp,a.voicemail=b,n()})["catch"](function(a){l.path("/voice/voicemails/view/"+h.uniqueid+"/settings")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails.view",{url:"/view/:uniqueid",templateUrl:"app/channels/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.channels.voice.voicemails.view.settings",{url:"/settings",templateUrl:"app/channels/voice/voicemail/view/view.settings.html"}).state("main.channels.voice.voicemails.view.messages",{url:"/messages",templateUrl:"app/channels/voice/voicemail/view/view.messages.html"})}]),angular.module("xCallyShuttleApp").factory("VoiceMail",["$resource",function(a){return a("/api/voice/voicemails/:id/:controller",{uniqueid:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails",{url:"/voicemails",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("VoiceMailMessage",["$resource",function(a){return a("/api/voice/voicemails/messages/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailWizardCtrl",["$scope","VoiceMail","xAlert","WizardHandler","$location","Setting",function(a,b,c,d,e,f){a.initWizard=function(){a.form={},a.item={context:"from-voicemail"}},a.next=function(){d.wizard().next()},a.previous=function(){d.wizard().previous()},a.exitValidation=function(a){return a},a.getFirstFreeMailbox=function(){f.get({controller:"mailbox"}).$promise.then(function(b){a.item.mailbox=b.value})["catch"](function(a){c.show(a.data.message,"danger")})},a.createItem=function(){return a.item.customer_id=a.item.mailbox,b.save(a.item).$promise.then(function(){e.path("/channels/voice/voicemails/list")})["catch"](function(a){c.show(data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails.wizard",{url:"/wizard",templateUrl:"app/channels/voice/voicemail/wizard/wizard.html",controller:"VoiceVoicemailWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("VoiceQueue",["$resource",function(a){return a("/api/voice/queues/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("Company",["$resource",function(a){return a("/api/contactmanager/companies/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies",{url:"/companies",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("CompanyListCreateModalCtrl",["$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("ContactManagerCompanyListCtrl",["$scope","$http","$translate","xAlert","Modal","$uibModal","$log","Company","gridOptions","$location",function(a,b,c,d,e,f,g,h,i,j){a.initView=function(){var b={exporterCsvFilename:"Companies.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",name:"profile",href:"/contactmanager/companies/view/{{row.entity.id}}/settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(h,b,a)},a.create=function(){var a=f.open({animation:!0,templateUrl:"app/contactmanager/company/list/create.modal.html",controller:"CompanyListCreateModalCtrl"});a.result.then(function(a){b.post("/api/contactmanager/companies",a).then(function(a){j.path("/contactmanager/companies/view/"+a.id+"/settings")})["catch"](function(a){d.show(a.data.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies.list",{url:"/list",templateUrl:"app/contactmanager/company/list/list.html",controller:"ContactManagerCompanyListCtrl",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("ContactManagerCompanyViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getCompany=function(){b.get("/api/contactmanager/companies/"+e.id).success(function(b){a.company=b}).error(function(a){f.path("/contactmanager/companies/list")})},a.updateCompany=function(){var f=angular.copy(a.company);b.put("/api/contactmanager/companies/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.company=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies.view",{url:"/view/:id",templateUrl:"app/contactmanager/company/view/view.html",controller:"ContactManagerCompanyViewCtrl",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.contactmanager.companies.view.settings",{url:"/settings",templateUrl:"app/contactmanager/company/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("Contact",["$resource",function(a){return a("/api/contactmanager/contacts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.contacts",{url:"/contacts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ContactManagerListImportModalCtrl",["$scope","$uibModalInstance","indexes","csv","xAlert","socket","Service","Contact","$translate",function(a,b,c,d,e,f,g,h,i){function j(b){if(b>=a.csvLength||a.stopped)return void(a.importing=!1);var c={Phones:[],Emails:[],customFields:{}};return _.forOwn(a.item,function(e,f){switch(f){case"tags":c.tags=[],a.item.tags.forEach(function(a){""!==d[b][a]&&c.tags.push(d[b][a])});break;default:c[f]=d[b][e]}}),c.tags=c.tags?c.tags.join(","):void 0,c.ServiceId=a.item.ServiceId,c.CompanyId=a.item.CompanyId||null,h.save(c).$promise.then(function(c){a["import"].success+=k,a["import"].succeeded+=1,j(b+1)})["catch"](function(c){a["import"].fail+=k,a["import"].failed+=1,j(b+1)})}a.indexes=c,a.importing=!1,a.submitted=!1,a.stopped=!1,a["import"]={success:0,fail:0,succeeded:0,failed:0},a.csvLength=d.length;var k=100/a.csvLength;a.forms={dashboard:void 0},a.item={},a.start=function(){a.importing=!0,a.submitted=!0,j(0)},a.getServices=function(){return g.get().$promise.then(function(b){a.services=b.rows,a.item.ServiceId=1,a.getCustomFields()})["catch"](function(a){e.show(i.instant(a.message)+"!","danger")})},a.getCustomFields=function(){return g.get({serviceId:a.item.ServiceId,controller:"customfields"}).$promise.then(function(b){b.rows.forEach(function(a){a.values=JSON.parse(a.values)}),a.customFields=b.rows,f.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),f.socket.on("custom_field:save",function(b){if(b.ServiceId===a.item.ServiceId){var c=_.find(a.customFields,{id:b.id});c||("string"==typeof b.values&&(b.values=JSON.parse(b.values)),a.customFields.push(b))}})})["catch"](function(a){console.error(a),e.show(a.message,"danger")})},a.close=function(){b.close()},a.stop=function(){a.stopped=!0}}]),angular.module("xCallyShuttleApp").controller("ContactManagerContactListCtrl",["$scope","$translate","Modal","FileUploader","Papa","$uibModal","$log","Contact","gridOptions","Service","uiGridConstants","xAlert","socket",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.initView=function(){return j.get().$promise.then(function(b){a.services=[],b.rows.forEach(function(b,c){a.services.push({value:b.id,label:b.name})})}).then(function(){var b={exporterCsvFilename:"Contacts.csv",columnDefs:[{name:"firstName"},{name:"lastName"},{name:"phone"},{name:"mobile"},{name:"email"},{name:"ServiceId",displayName:"APPLICATION_SERVICE",field:"Service.name",filter:{type:k.filter.SELECT,selectOptions:a.services}},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",name:"profile",onClick:"grid.appScope.openContactTab(row.entity)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(h,b,a)})["catch"](function(a){l.show(b.instant(a.message)+"!","danger")})},d.FileSelect.prototype.isEmptyAfterSelection=function(){return!0};var n=a.uploader=new d({queueLimit:1,clearInputAfterAddedToQueue:!0});n.onAfterAddingFile=function(b){console.log("fileadded"),e.parse(b._file,{header:!0,complete:function(b){a.uploader.clearQueue(),a["import"](b.data)},error:function(a){console.log(a)}})},a["import"]=function(b){var c=f.open({animation:!0,size:"lg",backdrop:"static",keyboard:!1,templateUrl:"app/contactmanager/contact/list/import.modal.html",controller:"ContactManagerListImportModalCtrl",resolve:{indexes:function(){return _.keys(b[0])},csv:function(){return b}}});c.result.then(function(b){a.gridOptions.getPage()},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.contacts.list",{url:"/list",templateUrl:"app/contactmanager/contact/list/list.html",controller:"ContactManagerContactListCtrl",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.contactmanager",{url:"/contactmanager",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("ContactManagerServiceListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerServiceListCtrl",["$scope","$http","$translate","Modal","xAlert","$uibModal","$log","Service","gridOptions",function(a,b,c,d,e,f,g,h,i){a.initView=function(){var b={exporterCsvFilename:"Services.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",name:"settings",href:"/contactmanager/services/view/{{row.entity.id}}/settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(h,b,a)},a.create=function(){var d=f.open({animation:!0,templateUrl:"app/contactmanager/service/list/create.modal.html",controller:"ContactManagerServiceListCreateModalCtrl"});d.result.then(function(d){b.post("/api/contactmanager/services/",d).then(function(b){a.gridOptions.getPage(),e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.services.list",{url:"/list",templateUrl:"app/contactmanager/service/list/list.html",controller:"ContactManagerServiceListCtrl",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").factory("Service",["$resource",function(a){return a("/api/contactmanager/services/:serviceId/:controller/:id",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.services",{url:"/services",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ContactManagerServiceCustomFieldViewCreateModalCtrl",["$scope","$uibModalInstance","$translate",function(a,b,c){a.$translate=c,a.forms={dashboard:void 0},a.item={},a.choices=[{value:""}],a.addField=function(){a.choices.push({})},a.removeField=function(b){a.choices.splice(b,1)},a.types=[{name:"APPLICATION_TEXT",value:"text"},{name:"APPLICATION_SELECT",value:"select"}],a.ok=function(){"select"===a.item.type&&(a.item.values=angular.toJson(a.choices)),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerServiceViewCtrl",["$scope","xAlert","$translate","$stateParams","socket","$location","$uibModal","$log","Modal","Service","Team","gridOptions",function(a,b,c,d,e,f,g,h,i,j,k,l){var m=function(){return{select:function(b){return j.save({serviceId:a.service.id,controller:"agents"},{agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})},deselect:function(b){return j["delete"]({serviceId:a.service.id,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})}}};a.getService=function(){return j.get({serviceId:d.id}).$promise.then(function(b){a.service=b})["catch"](function(a){f.path("/contactmanager/services/list")})},a.updateService=function(){return j.update({serviceId:d.id},a.service).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.getTeams=function(){return k.get().$promise.then(function(b){return a.teams=b.rows,j.query({serviceId:d.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindQueue(a.teams,_.map(b,function(a){return{id:a.id}}),m)})["catch"](function(a){console.error(a)})},a.initCustomFields=function(){var b={exporterCsvFilename:"customfields.csv",primaryKey:"id",columnDefs:[{name:"alias",displayName:"APPLICATION_NAME"},{name:"type"},{name:"description"},{name:"action",width:200,buttons:[{"class":"blue-hoki",href:"/contactmanager/services/view/{{grid.appScope.$stateParams.id}}/customfields/settings/{{row.entity.id}}",name:"settings"},{"class":"red-sunglo",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)",name:"delete"}]}]};a.gridOptions=l.gridOptions(j,b,a,{serviceId:d.id,controller:"customfields"})},a.create=function(){var e=g.open({animation:!0,templateUrl:"app/contactmanager/service/view/create.modal.html",controller:"ContactManagerServiceCustomFieldViewCreateModalCtrl"});e.result.then(function(e){return j.save({serviceId:d.id,controller:"customfields"},e).$promise.then(function(d){a.gridOptions.getPage(),b.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(a.message||a.data.message,"danger")})},function(){h.info("Modal dismissed at: "+new Date)})},a.getCustomField=function(){return j.get({serviceId:d.id,controller:"customfields",id:d.cfId}).$promise.then(function(b){console.log(b),a.customField=b,"select"===a.customField.type&&(a.choices=JSON.parse(a.customField.values))})["catch"](function(a){console.error(a),f.path("/contactmanager/customfields/list")})},a.updateCustomField=function(){var e=angular.copy(a.customField);return"select"===e.type&&(e.values=angular.toJson(a.choices)),j.update({serviceId:d.id,controller:"customfields",id:d.cfId},e).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.addField=function(){a.choices.push({})},a.removeField=function(b){a.choices.splice(b,1)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.services.view",{url:"/view/:id",templateUrl:"app/contactmanager/service/view/view.html",controller:"ContactManagerServiceViewCtrl",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.contactmanager.services.view.settings",{url:"/settings",templateUrl:"app/contactmanager/service/view/view.settings.html"}).state("main.contactmanager.services.view.agents",{url:"/agents",templateUrl:"app/contactmanager/service/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/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}}).state("main.contactmanager.services.view.customfields",{url:"/customfields",templateUrl:"app/contactmanager/service/view/view.customFields.html"}).state("main.contactmanager.services.view.customfields.settings",{url:"/settings/:cfId",templateUrl:"app/contactmanager/service/view/view.customFieldSettings.html",controller:"ContactManagerServiceViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("DashboardCtrl",["$scope","$translate",function(a,b){a.voice=[{name:b.instant("APPLICATION_QUEUE"),link:"main.dashboard.voice"}],a.mail=[{name:b.instant("APPLICATION_QUEUE"),link:"main.dashboard.mail"}]}]),angular.module("xCallyShuttleApp").factory("Dashboard",["$resource",function(a){return a("/api/dashboards/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.dashboard",{"abstract":!0,url:"/dashboard",templateUrl:"app/dashboard/dashboard.html",controller:"DashboardCtrl"}).state("main.dashboard.voice",{url:"/voice",controller:"DashboardVoiceCtrl",templateUrl:"app/dashboard/voice/voice.html"}).state("main.dashboard.mail",{url:"/mail",controller:"DashboardMailCtrl",templateUrl:"app/dashboard/mail/mail.html"})}]),angular.module("xCallyShuttleApp").controller("DashboardMailCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").controller("DashboardVoiceCtrl",["$scope","Auth","ReportQueue","ReportCall","socket",function(a,b,c,d,e){a.Auth=b,a.initWaiting=function(){return c.get({id:"waiting"}).$promise.then(function(b){a.waiting=b.value,e.socket.on("dashboard:waiting",function(b){a.waiting=b.value})})["catch"](function(a){console.error(a)})},a.initActive=function(){return c.get({id:"active"}).$promise.then(function(b){a.active=b.value,e.socket.on("dashboard:active",function(b){a.active=b.value})})["catch"](function(a){console.error(a)})},a.initAnswered=function(){return c.get({id:"answered"}).$promise.then(function(b){a.answered=b.value,e.socket.on("dashboard:answered",function(b){a.answered=b.value})})["catch"](function(a){console.error(a)})},a.initAbandoned=function(){return c.get({id:"abandoned"}).$promise.then(function(b){a.abandoned=b.value,e.socket.on("dashboard:abandoned",function(b){a.abandoned=b.value})})["catch"](function(a){console.error(a)})},a.initAvgAnswerTime=function(){return c.get({id:"avganswertime"}).$promise.then(function(b){a.avganswertime=b.value,e.socket.on("dashboard:avganswertime",function(b){a.avganswertime=b.value})})["catch"](function(a){console.error(a)})},a.initAvgTalkTime=function(){return c.get({id:"avgtalktime"}).$promise.then(function(b){a.avgtalktime=b.value,e.socket.on("dashboard:avgtalktime",function(b){a.avgtalktime=b.value})})["catch"](function(a){console.error(a)})},a.initAnswerRate=function(){return c.get({id:"answerrate"}).$promise.then(function(b){a.answerrate=b.value,e.socket.on("dashboard:answerrate",function(b){a.answerrate=b.value})})["catch"](function(a){console.error(a)})},a.initTotalOffered=function(){return c.get({id:"totaloffered"}).$promise.then(function(b){a.totaloffered=b.value,e.socket.on("dashboard:totaloffered",function(b){a.totaloffered=b.value})})["catch"](function(a){console.error(a)})},a.initUnmanaged=function(){return c.get({id:"unmanaged"}).$promise.then(function(b){a.unmanaged=b.value,e.socket.on("dashboard:unmanaged",function(b){a.unmanaged=b.value})})["catch"](function(a){console.error(a)})},a.initAbandonRate=function(){return c.get({id:"abandonrate"}).$promise.then(function(b){a.abandonrate=b.value,e.socket.on("dashboard:abandonrate",function(b){a.abandonrate=b.value})})["catch"](function(a){console.error(a)})},a.initManualOutbound=function(){return d.get({id:"manualoutbound"}).$promise.then(function(b){a.manualoutbound=b.value,e.socket.on("dashboard:manualoutbound",function(b){a.manualoutbound=b.value})})["catch"](function(a){console.error(a)})},a.initManualOutboundGlobalDuration=function(){return d.get({id:"manualoutboundglobalduration"}).$promise.then(function(b){a.manualoutboundglobalduration=b.value,e.socket.on("dashboard:manualoutboundglobalduration",function(b){a.manualoutboundglobalduration=b.value})})["catch"](function(a){console.error(a)})},a.initManualOutboundAvgDuration=function(){return d.get({id:"manualoutboundavgduration"}).$promise.then(function(b){a.manualoutboundavgduration=b.value,e.socket.on("dashboard:manualoutboundavgduration",function(b){a.manualoutboundavgduration=b.value})})["catch"](function(a){console.error(a)})},a.initManualOutboundAnswered=function(){return d.get({id:"manualoutboundanswered"}).$promise.then(function(b){a.manualoutboundanswered=b.value,e.socket.on("dashboard:manualoutboundanswered",function(b){a.manualoutboundanswered=b.value})})["catch"](function(a){console.error(a)})},a.initManualOutboundAnswerRate=function(){return d.get({id:"manualoutboundanswerrate"}).$promise.then(function(b){a.manualoutboundanswerrate=b.value,e.socket.on("dashboard:manualoutboundanswerrate",function(b){a.manualoutboundanswerrate=b.value})})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk",{url:"/desk",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("DeskAccount",["$resource",function(a){return a("/api/desk/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("DeskListCtrl",["$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(_.map(a.displayedDeskAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedDeskAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("desk_account"),b.url="/api/desk/accounts",h.getPage(b).then(function(d){a.displayedDeskAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedDeskAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedDeskAccounts.length)}),f.socket.on("desk_account:save",function(){a.initList(b)}),f.socket.on("desk_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/desk/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/desk/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/desk/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.desk.list",{url:"/list",templateUrl:"app/desk/list/list.html",controller:"DeskListCtrl",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("DeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal","desk_com",function(a,b,c,d,e,f,g,h,i,j){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("desk_configuration"),g.unsyncUpdates("desk_field")}),a.initView=function(){b.get("/api/desk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){h.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/desk/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/desk/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,g.socket.on("desk_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/desk/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.AccountId=c.id,b.post("api/desk/configurations",a.configuration).success(function(a){e.path("desk/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/desk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=j.fields.concat(b)}).error(function(a){h.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/desk/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("desk_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/desk/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/desk/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/desk/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/desk/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/desk/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){if(b.content="",b.idField){var c=_.find(a.accountFields,"id",b.idField);c&&(b.customField=_.result(c,"custom",!0))}a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"id",b);return c?c.data.choices?c.data.choices:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.view",{url:"/view/:id",templateUrl:"app/desk/view/view.html",controller:"DeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.desk.view.account",{url:"/account",templateUrl:"app/desk/view/view.account.html"}).state("main.desk.view.configurations",{url:"/configurations",templateUrl:"app/desk/view/view.configurations.html"}).state("main.desk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/desk/view/view.configurationSettings.html",controller:"DeskViewCtrl"}).state("main.desk.view.configuration",{url:"/configuration",templateUrl:"app/desk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("DeskWizardCtrl",["$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.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/desk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/desk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.wizard",{url:"/wizard",templateUrl:"app/desk/wizard/wizard.html",controller:"DeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk",{url:"/freshdesk",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("FreshdeskAccount",["$resource",function(a){return a("/api/freshdesk/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("FreshdeskListCtrl",["$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(_.map(a.displayedFreshdeskAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedFreshdeskAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("freshdesk_account"),b.url="/api/freshdesk/accounts",h.getPage(b).then(function(d){a.displayedFreshdeskAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedFreshdeskAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedFreshdeskAccounts.length)}),f.socket.on("freshdesk_account:save",function(){a.initList(b)}),f.socket.on("freshdesk_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/freshdesk/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/freshdesk/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/freshdesk/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.freshdesk.list",{url:"/list",templateUrl:"app/freshdesk/list/list.html",controller:"FreshdeskListCtrl",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("FreshdeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","$filter","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i,j){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(){g.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){h.unsyncUpdates("freshdesk_configuration"),h.unsyncUpdates("freshdesk_field")}),a.initView=function(){b.get("/api/freshdesk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){i.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/freshdesk/accounts/"+c.id,a.account).success(function(){i.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/freshdesk/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,h.socket.on("freshdesk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.deleteConfiguration=j.confirm["delete"](function(a){b["delete"]("api/freshdesk/configurations/"+a).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/freshdesk/configurations",a.configuration).success(function(a){e.path("freshdesk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){i.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/freshdesk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=[],b=f("freshdesk")(b),_.forEach(b,function(b){
-a.accountFields.push(b.ticket_field)})}).error(function(a){i.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/freshdesk/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,h.socket.on("freshdesk_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){i.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){i.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/freshdesk/fields/"+a.id).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/freshdesk/fields/"+a.id,a).success(function(){}).error(function(){i.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){if(b.content="",b.idField){var c=_.find(a.accountFields,"name",b.idField);c&&(b.customField=!_.result(c,"default",!0))}a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);return c?c.choices.length>0?c.choices:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.view",{url:"/view/:id",templateUrl:"app/freshdesk/view/view.html",controller:"FreshdeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.freshdesk.view.account",{url:"/account",templateUrl:"app/freshdesk/view/view.account.html"}).state("main.freshdesk.view.configurations",{url:"/configurations",templateUrl:"app/freshdesk/view/view.configurations.html"}).state("main.freshdesk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/freshdesk/view/view.configurationSettings.html",controller:"FreshdeskViewCtrl"}).state("main.freshdesk.view.configuration",{url:"/configuration",templateUrl:"app/freshdesk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("FreshdeskWizardCtrl",["$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.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/freshdesk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/freshdesk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.wizard",{url:"/wizard",templateUrl:"app/freshdesk/wizard/wizard.html",controller:"FreshdeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations",{url:"/integrations",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("Integration",["$resource",function(a){return a("/api/integrations/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").controller("IntegrationListCtrl",["$scope","Modal","socket","FileUploader","Integration","xAlert",function(a,b,c,d,e,f){a.integrationsByPage=10;var g=a.uploader=new d({url:"api/integrations",autoUpload:!0,removeAfterUpload:!0});g.filters.push({name:"zipFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|zip|".indexOf(b)}}),g.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),f.show(b.name,"success")},g.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),b.errors.forEach(function(a){f.show(a.message,"danger")})},a.deleteItem=b.confirm["delete"](function(a){e["delete"]({id:a},function(){f.show("Integration Removed","success")},function(a){f.show(a.data.errors,"danger")})}),a.initList=function(){a.integrations=e.query({},function(a){c.syncUpdates("integration",a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations.list",{url:"/list",templateUrl:"app/integration/list/list.html",controller:"IntegrationListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty",{url:"/jscripty",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("JscriptyProject",["$resource",function(a){return a("/api/jscripty/projects/:id/:controller/:action/:action2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectListCtrl",["$scope","$uibModal","JscriptyProject","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"jscriptyProjects.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:300,buttons:[{"class":"blue-hoki",href:"/jscripty/projects/view/{{row.entity.id}}",name:"settings"},{"class":"green",name:"start",onClick:"grid.appScope.openJscriptyTab(row.entity)"},{"class":"purple",href:"/jscripty/projects/report/{{row.entity.id}}/sessions",name:"report"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/jscripty/project/list/list.create.modal.html",controller:"JscriptyProjectListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectListCreateCtrl",["$scope","$translate","$uibModalInstance","JscriptyProject","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){console.log(a),e.show(b.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.list",{url:"/list",templateUrl:"app/jscripty/project/list/list.html",controller:"JscriptyProjectListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects",{url:"/projects",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectReportCtrl",["$scope","$http","$state","$stateParams","socket","Auth","Modal","xAlert","$translate","$rootScope","gridOptions","JscriptyProject","$location",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.projectStats={started:0,incomplete:0,completed:0},a.projectId=d.id,a.initView=function(){return l.get({id:d.id,controller:"sessions"}).$promise.then(function(b){a.projectId=d.id,console.log(a.projectId);var c=_.groupBy(b.rows,"status");a.projectStats.started=c.started?c.started.length:0,a.projectStats.completed=c.completed?c.completed.length:0,a.projectStats.incomplete=c.incomplete?c.incomplete.length:0})["catch"](function(a){h.show(a.message,"danger")})},a.getProjectSessions=function(){var b={exporterCsvFilename:"jscriptyProjects.csv",columnDefs:[{name:"projectId",displayName:"APPLICATION_PROJECTID"},{name:"session_id",displayName:"APPLICATION_SESSIONID"},{name:"createdAt",displayName:"APPLICATION_STARTEDAT"},{name:"completedAt",displayName:"APPLICATION_COMPLETEDAT"},{name:"status",displayName:"APPLICATION_STATUS"},{name:"last_question_id",displayName:"APPLICATION_LASTQUESTIONID"},{name:"action",width:100,buttons:[{"class":"blue-hoki",href:"/jscripty/projects/report/{{row.entity.projectId}}/session/{{row.entity.session_id}}",name:"Detail"}]}]};a.gridOptions=k.gridOptions(l,b,a,{id:d.id,controller:"sessions"})},a.getSessionDetails=function(){console.log(d.sessionId),b.get("/api/jscripty/projects/"+d.id+"/sessions/"+d.sessionId).success(function(b){a.sessionQuestions=b[0],console.log("session",a.sessionQuestions)})["catch"](function(a){h.show(a.message,"danger")})},a.getQuestionSummary=function(){var b={exporterCsvFilename:"jscriptyProjects.csv",columnDefs:[{name:"question_id",width:150,displayName:"APPLICATION_QUESTIONID"},{name:"question_type",width:150,displayName:"APPLICATION_QUESTIONTYPE"},{name:"question_label",width:200,displayName:"APPLICATION_QUESTIONLABEL"},{name:"question_text",displayName:"APPLICATION_QUESTION"},{name:"count",width:100,displayName:"APPLICATION_COUNT"}]};a.gridOptions=k.gridOptions(l,b,a,{id:d.id,controller:"questions",action:"summary"})},a.getQuestionDetail=function(){b.get("/api/jscripty/projects/"+d.id+"/questions/detail").success(function(b){var c=_.groupBy(b,"question_id");_.forEach(c,function(a,b){c[b]=_.groupBy(a,"question_label"),_.forEach(c[b],function(a,d){c[b][d]=_.groupBy(a,"question_text")})}),a.questionDetail=c,console.log("detail",a.questionDetail)})["catch"](function(a){h.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.report",{url:"/report/:id",templateUrl:"app/jscripty/project/report/report.html",controller:"JscriptyProjectReportCtrl"}).state("main.jscripty.projects.report.sessions",{url:"/sessions",templateUrl:"app/jscripty/project/report/report.sessions.html"}).state("main.jscripty.projects.report.summary",{url:"/summary",templateUrl:"app/jscripty/project/report/report.summary.html"}).state("main.jscripty.projects.report.detail",{url:"/detail",templateUrl:"app/jscripty/project/report/report.detail.html"}).state("main.jscripty.projects.report.sessionDetail",{url:"/session/:sessionId",controller:"JscriptyProjectReportCtrl",templateUrl:"app/jscripty/project/report/report.session.detail.html"})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectViewCtrl",["$scope","$http","$state","$stateParams","socket","Auth","Modal","xAlert","$translate","$rootScope",function(a,b,c,d,e,f,g,h,i,j){a.jscriptyProject={},a.getProject=function(){b.get("/api/jscripty/projects/"+d.id).success(function(b){a.jscriptyProject=b,angular.element(document).ready(function(){window.onerror=function(a,b,c){try{if(null!=a&&-1!=a.indexOf("Script error."));else{var d=new Image;d.src="assets/plugins/mxgraph/images/1x1.png?msg="+encodeURIComponent(a)+"&url="+encodeURIComponent(b)+"&lnum="+encodeURIComponent(c)}}catch(e){}},b.token=f.getToken();var a=new EditorUi(new Editor);a.openString(b.draft,b.name,b),a.editor.graphChangeListener=function(a,b){var c=b.properties.rtChange||!1;c||(this.modified=!0)}}),e.syncUpdates("jscripty_project",[b],function(a,c,d){c.id===b.id})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.view",{url:"/view/:id",templateUrl:"app/jscripty/project/view/view.html",controller:"JscriptyProjectViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",serie:!0,cache:!1,files:["assets/plugins/mxgraph/css/common.css","assets/plugins/mxgraph/css/explorer.css","assets/plugins/mxgraph/styles/grapheditor.css","assets/plugins/mxgraph/styles/custom.css","assets/plugins/jscripty/js/custom.js","assets/plugins/mxgraph/js/mxClient.js","assets/plugins/jscripty/js/Editor.js","assets/plugins/jscripty/js/Graph.js","assets/plugins/jscripty/js/EditorUi.js","assets/plugins/jscripty/js/Actions.js","assets/plugins/jscripty/js/Menus.js","assets/plugins/jscripty/js/Sidebar.js","assets/plugins/jscripty/js/Toolbar.js","assets/plugins/jscripty/js/Dialogs.js"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("LoginCtrl",["$scope","Auth","$location","$window","$rootScope",function(a,b,c,d,e){a.year=moment().year(),a.userLogin={},a.userSignUp={},a.loginSubmitted=!1,a.signupSubmitted=!1,a.errorLogin=!1,a.errorSignup=!1,a.errorLog="",a.flagLogin1=!1,a.toogleLogin=function(){a.flagLogin1=!a.flagLogin1},e.bodyLayout="login",a.$on("$viewContentLoaded",function(){Metronic.init(),Layout.init()}),a.login=function(d){a.loginSubmitted=!0,d.$valid?b.login({name:a.userLogin.name,password:a.userLogin.password,remember:a.userLogin.remember}).then(function(){c.path("/dashboard/voice")})["catch"](function(b){a.errorLog=b.message,a.errorLogin=!0}):a.errorLogin=!0},a.signup=function(d){a.signupSubmitted=!0,d.$valid?b.createUser({email:a.userSignUp.email,fullname:a.userSignUp.fullname,name:a.userSignUp.name,password:a.userSignUp.password,role:a.userSignUp.role,online:!0}).then(function(){c.path("/")})["catch"](function(b){a.errorLog=b.message,a.errorSignup=!0}):a.errorSignup=!0},a.loginOauth=function(a){d.location.href="/auth/"+a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("login",{url:"/login",templateUrl:"app/login/login.html",controller:"LoginCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/login.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Action",["$resource",function(a){return a("/api/actions/:name/:controller",{name:"@name"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").directive("actionBuilderTemplate",["$compile","xAlert","$http","$timeout","Template","$translate",function(a,b,c,d,e,f){return{restrict:"E",scope:{element:"=",form:"="},templateUrl:"app/main/template/actionBuilder/template.actionBuilderTemplate.html",compile:function(c,g){var h,i;return h=c.contents().remove(),function(c,g,j){function k(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}c.randomName=k(),d(function(){return e.get().$promise.then(function(a){c.templates=a.rows})["catch"](function(a){b.show(f.instant(a.message),"danger")})}),i||(i=a(h)),g.append(i(c,function(a){return a}))}}}}]).directive("actionBuilderIntegration",["$compile","xAlert","$http","$timeout","Integration","$translate","ZendeskAccount","DeskAccount","SalesforceAccount","FreshdeskAccount","SugarcrmAccount",function(a,b,c,d,e,f,g,h,i,j,k){return{restrict:"E",scope:{element:"=",form:"="},templateUrl:"app/main/template/actionBuilder/template.actionBuilderIntegration.html",compile:function(c,l){var m,n;return m=c.contents().remove(),function(c,l,o){function p(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}c.randomName=p(),d(function(){return e.get({active:1}).$promise.then(function(a){c.integrations=a.rows,c.element.data1&&q()})["catch"](function(a){b.show(f.instant(a.message),"danger")})});var q=function(){var a;switch(c.element.data1){case"zendesk":a=g;break;case"desk":a=h;break;case"salesforce":a=i;break;case"freshdesk":a=j;break;case"sugarcrm":a=k}return a.get().$promise.then(function(a){c.accounts=a.rows,c.element.data2&&r()})["catch"](function(a){b.show(f.instant(a.message),"danger")})},r=function(){c.configurations=_.find(c.accounts,{id:Number(c.element.data2)}).Configurations};c.changeIntegration=function(){c.element.data2="",q()},c.changeAccount=function(){c.element.data3="",r()},n||(n=a(m)),l.append(n(c,function(a){return a}))}}}}]).directive("actionBuilderStatus",["$compile","xAlert","$http","$timeout","$translate",function(a,b,c,d,e){return{restrict:"E",scope:{element:"=",form:"="},templateUrl:"app/main/template/actionBuilder/template.actionBuilderStatus.html",compile:function(b,c){var d,e;return d=b.contents().remove(),function(b,c,f){function g(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}b.randomName=g(),b.states=[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],e||(e=a(d)),c.append(e(b,function(a){return a}))}}}}]),angular.module("xCallyShuttleApp").factory("Ami",["$resource",function(a){return a("/api/ami/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("ChooseContactModalCtrl",["$scope","$uibModalInstance","eventId","$http","xAlert","$translate",function(a,b,c,d,e,f){a.open=function(a){b.close(a)},a.getContacts=function(){d.get("/api/contactmanager/contacts/"+c+"/checkevent").success(function(b){a.contacts=b}).error(function(a){e.show(f.instant(a.message)+"!","danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("CloseEditedTabModalCtrl",["$scope","$uibModalInstance",function(a,b){a.close=function(){b.close()},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").factory("gridOptions",["Modal","xAlert","$translate","$interval","$q","usSpinnerService",function(a,b,c,d,e,f){return{gridOptions:function(d,g,h,i,j,k){h.id=[];var l=k?"gridOptions"+k:"gridOptions",m={offset:0,limit:10};g.draggable&&(g.rowTemplate='<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',g.useExternalPagination=!1,g.enablePaginationControls=!1,g.showGridFooter=!1);var n=function(a){var b=a?30*a+120:177;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px")},o=function(){return h[l].enablePaginationControls||(delete m.offset,delete m.limit),f.spin("spinner-grid"),d.get(i?_.merge(m,i):m).$promise.then(function(a){h[l].totalItems=a.count,h[l].data=a.rows,n(a.rows.length)})["catch"](function(a){console.error(a)})["finally"](function(){f.stop("spinner-grid")})};return h.deleteItem=a.confirm["delete"](function(a){var e=i?angular.copy(i):{};return _.merge(e,{id:a}),d.remove(e).$promise.then(function(){o(),b.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),h.gridApi.selection.clearSelectedRows(),h.id=[]})["catch"](function(a){b.show(a.message?a.message:a.data.message,"danger")})}),h.deleteItems=a.confirm["delete"](function(){var a=i?angular.copy(i):{};return _.merge(a,{ids:h.id}),d["delete"](a).$promise.then(function(){o(),b.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),h.gridApi.selection.clearSelectedRows(),h.id=[]})["catch"](function(a){b.show(a.message?a.message:a.data.message,"danger")})}),g.columnDefs.forEach(function(a){a.hasOwnProperty("displayName")||(a.displayName="APPLICATION_"+a.name.toUpperCase()),a.headerCellFilter="translate",a.hasOwnProperty("buttons")&&(a.displayName="",a.cellClass="ui-grid-vcenter",a.enableSorting=!1,a.enableFiltering=!1,a.enableColumnMenu=!1,a.cellTemplate="<div>",a.buttons.forEach(function(b){b.directive?a.cellTemplate+=b.directive:(a.cellTemplate+="<a",a.cellTemplate+=b.hide?' data-ng-hide="true" ':" ",a.cellTemplate+=b["class"]?' class="btn btn-xs '+b["class"]+'" ':" ",a.cellTemplate+=b.href?' data-ng-href="'+b.href+'" ':" ",a.cellTemplate+=b.onClick?' data-ng-click="'+b.onClick+'" ':" ",a.cellTemplate+=b.title?' title="'+b.title+'"':"",a.cellTemplate+=">",a.cellTemplate+=b.icon?'<i class="'+b.icon+'"></i>':"",a.cellTemplate+=b.displayName||b.name?"{{'"+(b.displayName||"APPLICATION_"+b.name.toUpperCase())+"' | translate}}":"",a.cellTemplate+="</a> ")}),a.cellTemplate+="<div>",delete a.buttons)}),_.merge({enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableRowSelection:!0,enableSelectAll:!0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,getPage:o,gridMenuTitleFilter:function(a){var b=e.defer();return b.resolve(c.instant(a)),b.promise},onRegisterApi:function(a){h.gridApi=a,h.gridApi.selection.on.rowSelectionChanged(h,function(a){a.isSelected?h.id.push(h.gridApi.grid.options.primaryKey?a.entity[h.gridApi.grid.options.primaryKey]:a.entity.id):_.pull(h.id,h.gridApi.grid.options.primaryKey?a.entity[h.gridApi.grid.options.primaryKey]:a.entity.id)}),h.gridApi.selection.on.rowSelectionChangedBatch(h,function(a){a[0].isSelected?h.id=_.union(h.id,_.map(a,h.gridApi.grid.options.primaryKey?"entity."+h.gridApi.grid.options.primaryKey:"entity.id")):_.map(a,h.gridApi.grid.options.primaryKey?"entity."+h.gridApi.grid.options.primaryKey:"entity.id").forEach(function(a){_.pull(h.id,a)})}),h.gridApi.core.on.sortChanged(h,function(a,b){0===b.length?m.order=null:m.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),o()}),h.gridApi.pagination.on.paginationChanged(h,function(a,b){m.offset=(a-1)*b,m.limit=b,o()}),h.gridApi.core.on.filterChanged(h,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?m[a.name]=a.filters[0].term:delete m[a.name]}),o()}),h.gridApi.draggableRows.on.rowDropped(h,function(a){a.fromIndex!==a.toIndex&&d.update(i,h[l].data).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(a.message,"danger")})}),j||o()}},g)}}}]),angular.module("xCallyShuttleApp").controller("MainCtrl",["$scope","$rootScope","$translate","socket","Auth","xAlert","$uibModal","$log","$state","Contact",function(a,b,c,d,e,f,g,h,i,j){a.awesomeThings=[],a.isLoggedIn=e.isLoggedIn,a.isAdmin=e.isAdmin,a.getCurrentUser=e.getCurrentUser,a.workspaces=[],a.mainTab={active:!0},a.closeTab=function(b){if(a.workspaces[b].edited){var c=g.open({animation:!0,templateUrl:"app/main/closeEditedTab.modal.html",controller:"CloseEditedTabModalCtrl"});c.result.then(function(c){a.workspaces.splice(b,1)},function(){h.info("Modal dismissed at: "+new Date)})}else a.workspaces.splice(b,1)},a.createContact=function(b,d){return d.tags=d.tags?d.tags.join(","):void 0,j.save(d).$promise.then(function(d){a.workspaces.splice(b,1);var e=d.firstName;d.lastName&&(e+=" "+d.lastName),a.openContactTab({fullname:e,id:d.id}),f.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){f.show(a.message,"danger")})};var k=function(b){var c=g.open({animation:!0,templateUrl:"app/main/chooseContact.modal.html",controller:"ChooseContactModalCtrl",resolve:{eventId:function(){return b.id}}});c.result.then(function(c){c?a.openContactTab(c):a.newContact(b)},function(){h.info("Modal dismissed at: "+new Date)})};a.updateContact=function(b,d){var e=angular.copy(d);return e.tags=e.tags?e.tags.join(","):void 0,e.CompanyId||(e.CompanyId=null),j.update({id:e.id},e).$promise.then(function(){a.workspaces[b].edited=!1,f.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){f.show(c.instant(a.message)+"!","danger")})},d.socket.on("report_integration:contactmanager",function(a){console.log("choosecontact"),k(a)}),a.openContactTab=function(b){var c=_.find(a.workspaces,{contactID:b.id});if(c)c.active=!0;else{var d=b.firstName;b.lastName&&(d+=" "+b.lastName),a.workspaces.push({name:d,type:"contact",contactID:b.id,active:!0,eventData:b.uniqueid?b:null})}},a.openJscriptyTab=function(b){a.workspaces.push({name:b.name,type:"jscripty",active:!0,data:b})},a.newContact=function(b){a.workspaces.push({name:"New Contact",type:"newContact",active:!0,data:b||null,eventData:b&&b.uniqueid?b:""})},a.$on("$viewContentLoaded",function(){Metronic.init()}),b.language=c.use(),a.changeLanguage=function(a){c.use(a).then(function(a){b.language=a,("main.jscripty.projects.view"===i.current.name||"main.square.projects.view"===i.current.name)&&i.go(i.current,{},{reload:!0})})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").directive("ngSpinnerBar",["$rootScope",function(a){return{link:function(b,c){c.addClass("hide"),a.$on("$stateChangeStart",function(){"spinner-page"===c[0].id&&c.removeClass("hide")}),a.$on("$stateChangeSuccess",function(){"spinner-page"===c[0].id&&(c.addClass("hide"),$("body").removeClass("page-on-load"),Layout.setSidebarMenuActiveLink("match"),setTimeout(function(){Metronic.scrollTop()},1e3))}),a.$on("$spinnerStart",function(){"spinner-request"===c[0].id&&c.removeClass("hide")}),a.$on("$spinnerStop",function(){"spinner-request"===c[0].id&&c.addClass("hide")}),a.$on("$stateNotFound",function(){"spinner-page"===c[0].id&&c.addClass("hide")}),a.$on("$stateChangeError",function(){"spinner-page"===c[0].id&&c.addClass("hide")})}}}]).directive("a",function(){return{restrict:"E",link:function(a,b,c){(c.ngClick||""===c.href||"#"===c.href)&&b.on("click",function(a){a.preventDefault()})}}}).directive("nxEqual",function(){return{require:"ngModel",link:function(a,b,c,d){return c.nxEqual?(a.$watch(c.nxEqual,function(a){d.$setValidity("nxEqual",a===d.$viewValue)}),void d.$parsers.push(function(b){var e=b===a.$eval(c.nxEqual);return d.$setValidity("nxEqual",e),e?b:void 0})):void console.error("nxEqual expects a model as an argument!")}}}).directive("ngEnter",function(){return function(a,b,c){b.bind("keydown keypress",function(b){13===b.which&&(a.$apply(function(){a.$eval(c.ngEnter)}),b.preventDefault())})}}).directive("dropdownMenuHover",function(){return{link:function(a,b){b.dropdownHover()}}}).directive("uiSelectRequired",function(){return{require:"ngModel",link:function(a,b,c,d){d.$validators.uiSelectRequired=function(a){return a&&a.length}}}}).directive("rpattern",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){function e(a,b){return null==b||""===b||!h||a.test(b)?(d.$setValidity("pattern",!0),b):void d.$setValidity("pattern",!1)}var f,g=c.rpattern,h=!0;g&&(g.match(/^\/(.*)\/$/)?(g=new RegExp(g.substr(1,g.length-2)),f=function(a){return e(g,a)}):f=function(b){var c=a.$eval(g);if(!c||!c.test)throw new Error("Expected "+g+" to be a RegExp but was "+c);return e(c,b)}),d.$formatters.push(f),d.$parsers.push(f),c.$observe("required",function(a){h=a,f(d.$viewValue)})}}}).directive("conditionBuilder",["$compile","xAlert","$timeout",function(a,b,c){return{restrict:"E",scope:{element:"=",serviceindex:"=",service:"=",form:"="},templateUrl:"app/main/template/template.conditionBuilder.html",compile:function(d,e){var f,g;return f=d.contents().remove(),function(d,e,h){function i(a){var c=_.find(d.service.services[d.serviceindex].conditions,{value:a});if(c)if(d.elementType=c.type,c.arr)d.values=c.arr;else if(c.resource)return c.resource.get().$promise.then(function(a){d.values=_.map(a.rows,function(a){return{name:a[c.resValue],value:a[c.resValue]}})})["catch"](function(a){b.show($translate.instant(a.message),"danger")})}function j(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}d._=_,d.randomName=j(),c(function(){d.element.field&&i(d.element.field)}),d.checkCondition=function(a){d.element.value="",d.element.operator="",i(a)},g||(g=a(f)),e.append(g(d,function(a){return a}))}}}}]).directive("newContact",["$compile","xAlert","socket","$translate","$timeout","Service","Tag","Company",function(a,b,c,d,e,f,g,h){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template/template.contactTab.html",compile:function(a,i){return function(a,i,j){function k(){a.$watch("contact",function(b,c){angular.equals(b,c)||(a.workspace.edited=!0)},!0)}a.forms={general:{}},a.firstLoad=!0,a.detail={tab:"main"},a.contact={},a.submitButtonLabel=d.instant("APPLICATION_CONFIRM"),a.init=function(){a.workspace.data&&(a.contact.firstName=a.workspace.data.calleridname?a.workspace.data.calleridname:a.workspace.data.messageId?a.workspace.data.messageId:a.workspace.data.uniqueid?a.workspace.data.uniqueid:"",a.workspace.data.calleridnum&&(a.contact.phone=a.workspace.data.calleridnum),a.workspace.data.from&&(a.contact.email=a.workspace.data.from)),a.getTags(),a.getCompanies(),a.getServices()},a.getServices=function(){return f.get().$promise.then(function(b){a.services=b.rows,c.syncUpdates("service",a.services),a.contact.ServiceId=1,a.getCustomFields()})["catch"](function(a){b.show(d.instant(a.message)+"!","danger")})},a.getCustomFields=function(){return f.get({serviceId:a.contact.ServiceId,controller:"customfields"}).$promise.then(function(b){a.customFields=b.rows,a.customFields.forEach(function(a){a.values=JSON.parse(a.values)}),c.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),c.socket.on("custom_field:save",function(b){if(b.ServiceId===a.contact.ServiceId){var c=_.find(a.customFields,{id:b.id});c||("string"==typeof b.values&&(b.values=JSON.parse(b.values)),a.customFields.push(b))}}),!a.firstLoad||a.workspace.data?(a.workspace.edited=!0,a.firstLoad=!1):(a.firstLoad=!1,k())})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},a.getTags=function(){return g.get().$promise.then(function(b){a.tags=_.map(b.rows,"name")})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},a.getCompanies=function(){return h.get().$promise.then(function(b){a.companies=b.rows,c.syncUpdates("company",a.companies)})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},e(function(){a.init()})}}}}]).directive("contact",["$compile","xAlert","socket","$timeout","Service","Tag","Company","Contact","$translate","gridOptions",function(a,b,c,d,e,f,g,h,i,j){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template/template.contactTab.html",compile:function(a,k){return function(a,k,l){function m(b){var c={exporterCsvFilename:b+".csv",columnDefs:[{name:a.columns[a.log[b].show][a.log[b].detail].indexes[0],displayName:a.columns[a.log[b].show][a.log[b].detail].header[0],headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:a.columns[a.log[b].show][a.log[b].detail].indexes[1],displayName:a.columns[a.log[b].show][a.log[b].detail].header[1],headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:a.columns[a.log[b].show][a.log[b].detail].indexes[2],displayName:a.columns[a.log[b].show][a.log[b].detail].header[2],headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1}]};a["gridOptions"+b]=j.gridOptions(h,c,a,_.merge({id:a.workspace.contactID,controller:"log",logType:b},a.log[b]),!0,b),a["gridOptions"+b].getPage()}a.moment=moment,a.submitButtonLabel=i.instant("APPLICATION_UPDATE"),a.forms={general:{}},a.detail={tab:"main"},a.log={journal:{show:"phone",type:"inbound",detail:"general"},history:{show:"phone",type:"inbound",detail:"general"}},a.columns={phone:{general:{header:["APPLICATION_SOURCE","APPLICATION_DESTINATION","APPLICATION_DATE"],
-indexes:["source","destination","createdAt"]},queue:{header:["APPLICATION_CALLERID","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["calleridnum","queue","createdAt"]},agent:{header:["APPLICATION_AGENT","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["membername","queue","agentcalledAt"]}},email:{general:{header:["APPLICATION_FROM","APPLICATION_TO","APPLICATION_DATE"],indexes:["from","to","createdAt"]}}},a.updateLog=function(b,c,d,e){c&&(a.log[b].show=c),d&&(a.log[b].detail=d),e&&(a.log[b].type=e),m(b)},a.getContact=function(){return h.get({id:a.workspace.contactID}).$promise.then(function(b){b.tags=b.tags?b.tags.split(","):[],a.contact=b,a.getCustomFields(b.ServiceId),a.updateLog("journal"),a.updateLog("history")})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},a.getTags=function(){return f.get().$promise.then(function(b){a.tags=_.map(b.rows,"name")})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},a.getCompanies=function(){return g.get().$promise.then(function(b){a.companies=b.rows,c.syncUpdates("company",a.companies)})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},a.getCustomFields=function(d){return e.get({serviceId:d,controller:"customfields"}).$promise.then(function(b){a.customFields=b.rows,a.customFields.forEach(function(a){a.values=JSON.parse(a.values)}),c.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),c.socket.on("custom_field:save",function(b){if(b.ServiceId===d){var c=_.find(a.customFields,{id:b.id});c||("string"==typeof b.values&&(b.values=JSON.parse(b.values)),a.customFields.push(b))}})})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},d(function(){a.getTags(),a.getCompanies(),a.getContact()})}}}}]).directive("jscripty",["$compile","xAlert","$http","socket",function(a,b,c,d){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template/template.jscriptyTab.html",compile:function(a,d){return function(a,d,e){a.count=0,a.questions=[];var f=0,g=a.workspace.data.id;c.get("/api/jscripty/projects/"+g+"/download").success(function(b){if(b){c.post("/api/jscripty/projects/"+g+"/sessions",{projectId:g,status:"started"}).success(function(a){f=a.session_id,console.log(a)});var d=mxUtils.parseXml(b),e=new mxCodec(d);a.decObj=e.decode(d.documentElement);a.questions[a.count]=a.currentQuestion=_.find(a.decObj.cells,function(a){return a.vertex&&"start"==a.value.nodeName})}else console.log("No project published!"),alert("No project published!"),a.submit({index:a.index})}),a.next=function(b,c){a.currentQuestion.answer&&a.currentQuestion.answer!=c&&(a.questions=_.take(a.questions,a.count+1)),a.currentQuestion.answer=c,a.questions[a.count]=a.currentQuestion;var d=[];_.forEach(b.edges,function(a,c){if(a.source.id==b.id&&a.value){var e=a.value.split(",");e.length>1&&(_.forEach(e,function(c,d){var e=Object.create(a);e.setValue(c),b.edges.push(e)}),d.push(a))}}),_.forEach(d,function(a){_.remove(b.edges,function(b){return b.value==a.value&&b.id==a.id})}),a.currentQuestion=b,a.count++,a.questions[a.count]=b,a.saveQuestions()},a.end=function(){var d="completed";if("end"!=a.questions[a.questions.length-1].value.nodeName){var d="incomplete";a.saveQuestions()}c.put("/api/jscripty/projects/"+g+"/sessions/"+f,{status:d,completedAt:Date(),last_question_id:a.currentQuestion.id}).success(function(c){b.show("Project Ended","success"),a.submit({index:a.index})})},a.back=function(){a.count--,a.currentQuestion=a.questions[a.count]},a.setCurrentQuestion=function(b){a.count=b,a.currentQuestion=a.questions[a.count]},a.saveQuestions=function(){var b=[],d=[];_.forEach(a.questions,function(a,c){a.children&&_.forEach(a.children,function(a,b){d[b]={input_id:a.id,input_type:a.getAttribute("type",""),input_label:a.getAttribute("label",""),input_value:"checkbox"!=a.getAttribute("type","")||a.answer?a.answer:"Not selected"}}),b[c]={sessionId:f,projectId:g,question_id:a.id,question_type:a.value.nodeName,question_label:a.getAttribute("label",""),question_text:a.getAttribute("question",""),question_other_label:a.getAttribute("other"),question_other_answer:a.otheranswer,question_answer:a.answer,ReportJscriptyInputs:d},d=[]}),c.post("/api/jscripty/projects/"+g+"/sessions/"+f+"/questions/",b).success(function(a){})}}}}}]).directive("reportBuilder",["$compile",function(a){return{restrict:"E",scope:{group:"=",fields:"=",forms:"=",firstCall:"="},templateUrl:"app/main/template/template.reportBuilderView.html",compile:function(b,c){var d,e;return d=b.contents().remove(),function(b,c,f){b.operators=[{name:"AND"},{name:"OR"}],b.conditions=[{name:"="},{name:"!="},{name:"<"},{name:"<="},{name:">"},{name:">="},{name:"LIKE"}],b.addCondition=function(){b.group.rules.push({condition:"=",field:"",value:""})},b.removeCondition=function(a){b.group.rules.splice(a,1)},b.addGroup=function(){b.group.rules.push({group:{operator:"AND",rules:[{condition:"=",field:"",value:""}]}})},b.randomName=function(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")},b.removeGroup=function(){b.$parent.group&&b.$parent.group.rules.splice(b.$parent.$index,1)},e||(e=a(d)),c.append(e(b,function(a){return a}))}}}}]).directive("dynamicName",["$compile",function(a){return{restrict:"A",terminal:!0,priority:1e3,link:function(b,c,d){c.attr("name",b.$eval(d.dynamicName)),c.removeAttr("dynamic-name"),a(c)(b)}}}]).directive("onReadFile",["$parse",function(a){return{restrict:"A",scope:!1,link:function(b,c,d){var e=a(d.onReadFile);c.on("change",function(a){var c=new FileReader;c.onload=function(a){b.$apply(function(){e(b,{$fileContent:a.target.result})})},c.readAsText((a.srcElement||a.target).files[0])})}}}]).directive("motionFileDownload",["xAlert","$translate","$timeout","$location","FileSaver","$compile",function(a,b,c,d,e,f){return{restrict:"E",template:'<a uib-tooltip=\'{{tooltiptext}}\' class="{{btnclass || \'btn default btn-xs blue-hoki\'}}" href="" data-ng-click="download()" ng-bind-html="btncontent || (\'APPLICATION_DOWNLOAD\' | translate)"></a>',scope:{mimetype:"=",filename:"=",resource:"=",params:"=",btnclass:"@",btncontent:"@",tooltiptext:"@"},link:function(c,d,f){var g=d.children()[0];c.$on("download-start",function(){$(g).attr("disabled","disabled")}),c.$on("downloaded",function(a,b){var d=base64ToBlob(b,c.mimetype);e.saveAs(d,c.filename),$(g).attr("disabled",!1)}),c.download=function(){return c.$emit("download-start"),c.resource.get(c.params).$promise.then(function(a){c.$emit("downloaded",a.downloadString)})["catch"](function(d){a.show(b.instant(d.translatedMessage||d.data.translatedMessage||d.message||d.data.message),"danger"),c.download=function(){}})}}}}]).directive("audioFileDownload",["xAlert","$translate","$sce",function(a,b,c){return{restrict:"E",template:'<button type="button" class="btn default btn-xs blue-hoki" data-ng-click="download()"><i class="icon-control-play"></i> {{ \'APPLICATION_PREVIEW\' | translate}}</button>',scope:{resource:"=",params:"="},link:function(d,e,f){var g=e.children()[0];d.$on("download-start",function(a,b){$(g).attr("disabled","disabled").html('<i class="icon-refresh"></i> Loading...')}),d.$on("downloaded",function(a,b){var d=new Audio(c.trustAsResourceUrl("data:audio/ogg;base64,"+b));d.controls=!0,$(g).remove(),e.append(d),d.play()}),d.$on("error",function(a,b){$(g).removeClass("blue-stripe").addClass("red-stripe").html('<i class="icon-ban"></i> Error!')}),d.download=function(){return d.$emit("download-start"),d.resource.get(d.params).$promise.then(function(a){d.$emit("downloaded",a.downloadString)})["catch"](function(c){a.show(b.instant(c.translatedMessage||c.data.translatedMessage||c.message||c.data.message),"danger")})}}}}]).directive("uiRequired",function(){return{require:"ngModel",link:function(a,b,c,d){d.$validators.required=function(a,b){return!(b&&0===b.length&&"true"===c.uiRequired)},c.$observe("uiRequired",function(){d.$setValidity("required",!("true"===c.uiRequired&&d.$viewValue&&0===d.$viewValue.length))})}}}),angular.module("xCallyShuttleApp").filter("propsFilter",function(){return function(a,b){var c=[];return angular.isArray(a)?a.forEach(function(a){for(var d=!1,e=Object.keys(b),f=0;f<e.length;f++){var g=e[f],h=b[g].toLowerCase();if(-1!==a[g].toString().toLowerCase().indexOf(h)){d=!0;break}}d&&c.push(a)}):c=a,c}}).filter("capitalize",function(){return function(a){return a?a.replace(/([^\W_]+[^\s-]*) */g,function(a){return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase()}):""}}).filter("salesforce",function(){var a=["CallDisposition","CallDurationInSeconds","CallObject","CallType","IsArchived","Priority","Status","Type"];return function(b){return _.remove(b,function(b){return b.custom===!1&&a.indexOf(b.name)<0}),b}}).filter("sugarcrm",function(){var a=["account_id","account_name","account_name1","assigned_user_name","assigned_user_id","case_number","created_by","created_by_name","date_entered","date_modified","deleted","description","id","modified_by_name","modified_user_id","name"];return function(b){return _.remove(b,function(b){return a.indexOf(b.name)>=0}),b}}).filter("freshdesk",function(){var a=["requester","subject","agent","description"];return function(b){return _.remove(b,function(b){return a.indexOf(b.ticket_field.name)>=0}),b}}).filter("zendesk",function(){var a=["subject","assignee","description"];return function(b){return _.remove(b,function(b){return a.indexOf(b.type)>=0}),b}}),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main",{"abstract":!0,templateUrl:"app/main/main.html",controller:"MainCtrl",resolve:{authorization:["$q","Auth","$state","$timeout","$location",function(a,b,c,d,e){return b.getToken()?a.when():(d(function(){e.path("/login")}),a.reject())}],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","assets/plugins/mxgraph/js/mxClient.js"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("xAlert",["$translate","Notification",function(a,b){return{show:function(c,d){switch(d){case"success":b.success({message:c,title:'<i class="glyphicon glyphicon-ok"></i> <strong>'+a.instant("MESSAGE_SUCCESS")+"!</strong>",delay:5e3});break;case"info":b.info({message:c,title:'<i class="glyphicon glyphicon-info-sign"></i> <strong>'+a.instant("MESSAGE_INFO")+"!</strong>",delay:5e3});break;case"danger":b.error({message:c,title:'<i class="glyphicon glyphicon-exclamation-sign"></i> <strong>'+a.instant("MESSAGE_ERROR")+"!</strong>",delay:1e4});break;case"warning":b.warning({message:c,title:'<i class="glyphicon glyphicon-warning-sign"></i> <strong>'+a.instant("MESSAGE_WARNING")+"!</strong>",delay:1e4});break;default:b.info(c)}}}}]).factory("stResource",["$q","$filter","$timeout","$rootScope","$http","$translate","xAlert",function(a,b,c,d,e,f,g){return{getPage:function(b){var c={page:Math.ceil(b.pagination.start/b.pagination.number),per_page:b.pagination.number};b.sort.predicate&&(c.sort_by=b.sort.predicate,c.sort_order=b.sort.reverse?"DESC":"ASC"),_.forIn(b.search.predicateObject,function(a,b){c[b]=a}),b.search.params&&(c.clientQuery={},_.forIn(b.search.params,function(a,b){c.clientQuery[b]=a})),d.$broadcast("$spinnerStart"),e.get(b.url,{params:c}).success(function(a){h.resolve(a),d.$broadcast("$spinnerStop")}).error(function(a){g.show(f.instant(a.message),"danger"),d.$broadcast("$spinnerStop")});var h=a.defer();return h.promise}}}]),angular.module("xCallyShuttleApp").factory("Widget",["$resource",function(a){return a("/api/widgets/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("MarketCtrl",["$scope","$http","$translate","socket","xAlert","Modal","$timeout",function(a,b,c,d,e,f,g){function h(a,b){return Math.floor(Math.random()*(b-a+1))+a}a.initView=function(){b.get("/api/integrations").success(function(b){a.integrations=b.rows,a.groupedIntegration=_.chunk(a.integrations,4),d.syncUpdates("integration",a.integrations,function(){a.groupedIntegration=_.chunk(a.integrations,4)})}).error(function(a){e.show(a.message,"danger")})},a.isProgressing=!1,a.$on("$destroy",function(){d.unsyncUpdates("integration")}),a.installIntegration=function(d){a.status="Downloading",a.percentage=h(1,50),a.isProgressing=!0,d.downloading=!0,b.put("/api/integrations/"+d.id,{active:!0}).success(function(){g(function(){a.percentage=h(51,99),a.status="Installing"},2500),g(function(){a.percentage=100,a.isProgressing=!1,a.status="Completed!",d.downloading=!1,e.show(c.instant("MESSAGE_WELL_DONE")+".","success")},5e3)}).error(function(){d.downloading=!1,a.percentage=0,a.isProgressing=!1,e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.uninstallIntegration=function(d){a.status="Uninstalling",a.percentage=h(1,99),a.isProgressing=!0,d.downloading=!0,b.put("/api/integrations/"+d.id,{active:!1}).success(function(){g(function(){a.percentage=100,a.isProgressing=!1,a.status="Completed!",d.downloading=!1,e.show(c.instant("MESSAGE_WELL_DONE")+".","success")},5e3)}).error(function(){d.downloading=!1,a.percentage=0,a.isProgressing=!1,e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.market",{url:"/market",templateUrl:"app/market/market.html",controller:"MarketCtrl",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("MotionbarCtrl",["$scope","$stateParams","$cookieStore","settings","Auth",function(a,b,c,d,e){e.loginWithToken(b.token,b.userId,b.name),a.getCurrentUser=e.getCurrentUser,d.layout.pageQuickSidebarOpened=!0}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("motionbar",{url:"/motionbar",template:"<div ui-view></div>","abstract":!0}).state("motionbar.chat",{url:"/chat?token&userId&name",templateUrl:"app/motionbar/motionbar.chat.html",controller:"MotionbarCtrl"})}]),angular.module("xCallyShuttleApp").controller("SalesforceListCtrl",["$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(_.map(a.displayedSalesforceAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedSalesforceAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("salesforce_account"),b.url="/api/salesforce/accounts",h.getPage(b).then(function(d){a.displayedSalesforceAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedSalesforceAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedSalesforceAccounts.length)}),f.socket.on("salesforce_account:save",function(){a.initList(b)}),f.socket.on("salesforce_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/salesforce/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/salesforce/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/salesforce/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.salesforce.list",{url:"/list",templateUrl:"app/salesforce/list/list.html",controller:"SalesforceListCtrl",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.salesforce",{url:"/salesforce",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("SalesforceAccount",["$resource",function(a){return a("/api/salesforce/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SalesforceViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal","$filter",function(a,b,c,d,e,f,g,h,i,j){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("salesforce_configuration"),g.unsyncUpdates("salesforce_field")}),a.initView=function(){b.get("/api/salesforce/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){h.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/salesforce/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/salesforce/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,g.socket.on("salesforce_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/salesforce/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.AccountId=c.id,b.post("api/salesforce/configurations",a.configuration).success(function(a){e.path("salesforce/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/salesforce/accounts/"+c.id+"/fields").success(function(b){a.accountFields=_.sortByOrder(j("salesforce")(b),"name","asc")}).error(function(a){h.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/salesforce/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("salesforce_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/salesforce/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/salesforce/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/salesforce/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/salesforce/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/salesforce/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,"name",b);if(c)switch(c.type){case"picklist":return c.picklistValues;default:return}}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.view",{url:"/view/:id",templateUrl:"app/salesforce/view/view.html",controller:"SalesforceViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.salesforce.view.account",{url:"/account",templateUrl:"app/salesforce/view/view.account.html"}).state("main.salesforce.view.configurations",{url:"/configurations",templateUrl:"app/salesforce/view/view.configurations.html"}).state("main.salesforce.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/salesforce/view/view.configurationSettings.html",controller:"SalesforceViewCtrl"}).state("main.salesforce.view.configuration",{url:"/configuration",templateUrl:"app/salesforce/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("SalesforceWizardCtrl",["$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.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/salesforce/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/salesforce/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.wizard",{url:"/wizard",templateUrl:"app/salesforce/wizard/wizard.html",controller:"SalesforceWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("License",["$resource",function(a){return a("/api/licenses/:id/:controller",{id:"@id"},{request:{method:"POST",params:{id:"request"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.license",{url:"/license",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("LicenseViewCtrl",["$scope","$rootScope","$translate","License","xAlert",function(a,b,c,d,e){a.initView=function(){d.get(function(b){a.item=b.license})},a.submitRequest=function(){d.request(a.item,function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")},function(a){switch(a.status){case 304:e.show(a.statusText,"info");break;default:e.show(a.statusText,"danger")}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.license.view",{url:"/view",templateUrl:"app/setting/license/view/view.html",controller:"LicenseViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/pricing-tables.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting",{url:"/setting",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("Setting",["$resource",function(a){return a("/api/settings/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("Smtp",["$resource",function(a){return a("/api/mail/servers/out/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.smtp",{url:"/smtp",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SmtpViewCtrl",["$scope","$stateParams","$translate","MailServerOut","xAlert","usSpinnerService",function(a,b,c,d,e,f){a.initView=function(){a.item={},d.get({id:"service"}).$promise.then(function(b){a.item=b})["catch"](function(a){e.show(a.message,"danger")})},a.updateItem=function(){return a.item.id?d.update({id:a.item.id},a.item).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")}):(a.item.service=!0,d.save(a.item).$promise.then(function(b){a.item=b,e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")}))},a.test=function(){return f.spin("spinner-grid"),d.test({id:a.item.id,controller:"test"}).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})["finally"](function(){f.stop("spinner-grid")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.smtp.view",{url:"/view",templateUrl:"app/setting/smtp/view/view.html",controller:"SmtpViewCtrl",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"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("UpdateListCtrl",["$scope","gridOptions","$uibModal","$location","Update",function(a,b,c,d,e){a.initCounter=function(){a.$on("timer-stopped",function(a,b){console.log("Timer Stopped - data = ",b),d.path("/dashboard/voice")})},a.initView=function(){var c={exporterCsvFilename:"updates.csv",enableFiltering:!1,enableSorting:!1,enablePaginationControls:!1,enableSelectAll:!1,columnDefs:[{name:"message"},{width:125,name:"version",cellClass:"text-center ui-grid-vcenter"},{width:125,name:"createdAt",displayName:"APPLICATION_UPDATED_AT",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><span am-time-ago="row.entity.createdAt"></span></div>'}]};a.gridOptions=b.gridOptions(e,c,a)},a.pull=function(){c.open({animation:!0,templateUrl:"app/setting/update/list/list.pull.html",controller:"UpdateListPullCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.updates.list",{url:"/list",templateUrl:"app/setting/update/list/list.html",controller:"UpdateListCtrl"}).state("main.setting.updates.landing",{url:"/landing",templateUrl:"app/setting/update/list/landing.html",controller:"UpdateListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/error.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("UpdateListPullCtrl",["$scope","$uibModalInstance","$translate","$location","Update",function(a,b,c,d,e){a.modal={dismissable:!0,title:"Confirm Checkout",html:"Are you sure you want to checkout?",buttons:[{classes:"btn btn-success",text:"Checkout",click:function(){return e.pull().$promise["finally"](function(){b.dismiss("close"),d.path("/setting/updates/landing")})}},{classes:"btn default",text:"Cancel",click:function(){b.dismiss("cancel")}}]}}]),angular.module("xCallyShuttleApp").factory("Update",["$resource",function(a){return a("/api/updates/:id/:controller",{id:"@id"},{pull:{method:"GET",params:{id:"pull"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.updates",{url:"/updates",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcListCtrl",["$scope","$uibModal","$translate","SquareOdbc","gridOptions","xAlert",function(a,b,c,d,e,f){a.initView=function(){var b={exporterCsvFilename:"odbc.csv",columnDefs:[{name:"name"},{name:"dsn",displayName:"APPLICATION_ODBC"},{name:"description"},{name:"action",width:250,buttons:[{"class":"blue-hoki",href:"/square/odbc/view/{{row.entity.id}}/settings",name:"settings"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK_CONNECTION",onClick:"grid.appScope.checkConnection(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=e.gridOptions(d,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/square/odbc/list/list.create.modal.html",controller:"SquareOdbcListCreateCtrl"});c.result.then(function(){a.gridOptions.getPage()})},a.checkConnection=function(a){return d.get({id:a,controller:"check"}).$promise.then(function(){f.show(c.instant("MESSAGE_CONNECTION_VERIFIED"),"success")})["catch"](function(){f.show(c.instant("MESSAGE_CONNECTION_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").controller("SquareOdbcListCreateCtrl",["$scope","$translate","$uibModalInstance","SquareOdbc","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.item.dsn||(a.item.dsn="DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion"),a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbc.list",{url:"/list",templateUrl:"app/square/odbc/list/list.html",controller:"SquareOdbcListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbc",{url:"/odbc",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("SquareOdbc",["$resource",function(a){return a("/api/square/odbc/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcViewCtrl",["$scope","$translate","$stateParams","SquareOdbc","xAlert",function(a,b,c,d,e){a.odbc={},a.getOdbc=function(){return d.get({id:c.id}).$promise.then(function(b){a.odbc=b})["catch"](function(a){e.show(a.data.message,"danger")})},a.updateOdbc=function(){var f=angular.copy(a.odbc);return d.update({id:c.id},f).$promise.then(function(){e.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbc.view",{url:"/view/:id",templateUrl:"app/square/odbc/view/view.html",controller:"SquareOdbcViewCtrl",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.square.odbc.view.settings",{url:"/settings",templateUrl:"app/square/odbc/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("SquareProjectListCtrl",["$scope","$uibModal","SquareProject","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"projects.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/square/projects/view/{{row.entity.id}}",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/square/project/list/list.create.modal.html",controller:"SquareProjectListCreateCtrl"});c.result.then(function(b){
-console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("SquareProjectListCreateCtrl",["$scope","$translate","$uibModalInstance","SquareProject","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.list",{url:"/list",templateUrl:"app/square/project/list/list.html",controller:"SquareProjectListCtrl",authenticate:!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects",{url:"/projects",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("SquareProject",["$resource",function(a){return a("/api/square/projects/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SquareProjectViewCtrl",["$scope","$stateParams","Auth","xAlert","SquareProject",function(a,b,c,d,e){a.squareProject={},a.getProject=function(){return e.get({id:b.id}).$promise.then(function(b){a.squareProject=b,angular.element(document).ready(function(){window.onerror=function(a,b,c){try{if(null!==a&&-1!==a.indexOf("Script error."));else{var e=new Image;e.src="assets/plugins/mxgraph/images/1x1.png?msg="+encodeURIComponent(a)+"&url="+encodeURIComponent(b)+"&lnum="+encodeURIComponent(c)}}catch(f){d.show(f,"danger")}},b.token=c.getToken();var a=new EditorUi(new Editor);a.openString(b.preproduction,b.name,b),a.editor.graphChangeListener=function(a,b){var c=b.properties.rtChange||!1;c||(this.modified=!0)}})})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.view",{url:"/view/:id",templateUrl:"app/square/project/view/view.html",controller:"SquareProjectViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",serie:!0,cache:!1,files:["assets/plugins/mxgraph/css/common.css","assets/plugins/mxgraph/css/explorer.css","assets/plugins/mxgraph/styles/grapheditor.css","assets/plugins/mxgraph/styles/custom.css","assets/plugins/square/js/custom.js","assets/plugins/mxgraph/js/mxClient.js","assets/plugins/square/js/Editor.js","assets/plugins/square/js/Graph.js","assets/plugins/square/js/EditorUi.js","assets/plugins/square/js/Actions.js","assets/plugins/square/js/Menus.js","assets/plugins/square/js/Sidebar.js","assets/plugins/square/js/Toolbar.js","assets/plugins/square/js/Dialogs.js"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square",{url:"/square",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("Agent",["$resource",function(a){return a("/api/agents/:id/:controller",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},update:{method:"PUT"},patch:{method:"PATCH"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents",{url:"/agents",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AgentListCtrl",["$scope","Agent","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"agents.csv",columnDefs:[{name:"fullname"},{name:"name",displayName:"APPLICATION_USERNAME"},{name:"internal"},{name:"email"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/staff/agents/view/{{row.entity.id}}/account",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents.list",{url:"/list",templateUrl:"app/staff/agent/list/list.html",controller:"AgentListCtrl",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("AgentViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$cookieStore","Agent","FileUploader","Auth","User",function(a,b,c,d,e,f,g,h,i,j){a.Auth=i,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.updatePassword=function(){var b={newPassword:a.agent.newPwd};return i.isAdmin()?b.id=e.id:b.oldPassword=a.agent.currentPwd,j.changePassword(b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.message,"danger")})};var k=a.uploader=new h({url:"api/users/"+e.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+f.get("token")}});k.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),k.onSuccessItem=function(b,e){a.agent.userpic=e.userpic,a.agent.id===i.getCurrentUser().id&&(i.getCurrentUser().userpic=e.userpic),c.show(d.instant("MESSAGE_WELL_DONE"),"success")},k.onErrorItem=function(){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},k.onCompleteAll=function(){k.clearQueue()},a.initView=function(){return g.get({id:e.id}).$promise.then(function(b){a.agent=b,a.agent.transport=a.agent.transport?a.agent.transport.split(","):[],a.agent.allow=a.agent.allow?a.agent.allow.split(";"):[],a.agent.nat=a.agent.nat?a.agent.nat.split(","):[]})["catch"](function(a){c.show(a.message,"danger")})},a.patchItem=function(){return g.patch({id:e.id},{chatCapacity:a.agent.chatCapacity,mailCapacity:a.agent.mailCapacity,faxCapacity:a.agent.faxCapacity}).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.agent);return delete b.password,delete b.md5secret,b.transport=b.transport.join(","),b.allow=b.allow.join(";"),b.nat=b.nat.join(","),g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents.view",{url:"/view/:id",templateUrl:"app/staff/agent/view/view.html",controller:"AgentViewCtrl",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.staff.agents.view.account",{url:"/account",templateUrl:"app/staff/agent/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}}).state("main.staff.agents.view.voice",{url:"/voice",templateUrl:"app/staff/agent/view/view.voice.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.agents.view.chat",{url:"/chat",templateUrl:"app/staff/agent/view/view.chat.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.agents.view.mail",{url:"/mail",templateUrl:"app/staff/agent/view/view.mail.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.agents.view.fax",{url:"/fax",templateUrl:"app/staff/agent/view/view.fax.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.agents.view.phonebar",{url:"/phonebar",templateUrl:"app/staff/agent/view/view.phonebar.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("AgentWizardCtrl",["$scope","$rootScope","Agent","Setting","xAlert","$location","$translate","$http","WizardHandler",function(a,b,c,d,e,f,g,h,i){a.forms={info:void 0,voice:void 0},a.item={role:"agent",allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},a.next=function(){i.wizard().next()},a.exitValidation=function(a){return a},a.getFirstFreeInternal=function(){return d.get({controller:"internal"}).$promise.then(function(b){a.item.internal=b.value})["catch"](function(a){e.show(a.data.message,"danger")})},a.createItem=function(){var b=angular.copy(a.item);return b.transport&&(b.transport=b.transport.join(",")),a.item.allow&&(b.allow=b.allow.join(";")),c.save(b).$promise.then(function(){f.path("/staff/agents/list")})["catch"](function(a){e.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents.wizard",{url:"/wizard",templateUrl:"app/staff/agent/wizard/wizard.html",controller:"AgentWizardCtrl",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff",{url:"/staff",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TeamCreateCtrl",["$scope","$uibModalInstance","Team","xAlert",function(a,b,c,d){a.form={},a.item={},a.ok=function(){return c.save(a.item).$promise.then(function(){b.close(a.item)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("TeamListCtrl",["$scope","Team","gridOptions","$uibModal",function(a,b,c,d){a.initView=function(){var d={exporterCsvFilename:"teams.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"{{row.entity.defaultEntry ? 'blue-hoki disabled' : 'blue-hoki'}}",href:"/staff/teams/view/{{row.entity.id}}/settings",name:"profile"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){d.open({animation:!0,templateUrl:"app/staff/team/list/create.modal.html",controller:"TeamCreateCtrl"}).result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.teams.list",{url:"/list",templateUrl:"app/staff/team/list/list.html",controller:"TeamListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Team",["$resource",function(a){return a("/api/teams/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.teams",{url:"/teams",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("TeamViewCtrl",["$scope","$http","$stateParams","$translate","Team","Agent","xAlert",function(a,b,c,d,e,f,g){var h=function(){return{select:function(b){return console.log("agents",b),e.save({id:a.team.id,controller:"agents"},{agents:b})},deselect:function(b){return e["delete"]({id:a.team.id,controller:"agents",agents:b})}}};a.initView=function(){return e.get({id:c.id}).$promise.then(function(b){a.team=b})["catch"](function(a){g.show(a.message,"danger")})},a.initAgents=function(){return f.get().$promise.then(function(b){return a.agents=b.rows,e.query({id:c.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindTeam(_.map(b,"id"),_.map(a.agents,function(a){return{id:a.id,name:a.name,fullname:a.fullname,internal:a.internal}}),h)})["catch"](function(a){g.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.team);return e.update({id:c.id},b).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.teams.view",{url:"/view/:id",templateUrl:"app/staff/team/view/view.html",controller:"TeamViewCtrl",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.staff.teams.view.agents",{url:"/agents",templateUrl:"app/staff/team/view/view.agents.html",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/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]}])}]}}).state("main.staff.teams.view.settings",{url:"/settings",templateUrl:"app/staff/team/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TelephoneListCtrl",["$scope","Telephone","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"telephones.csv",columnDefs:[{name:"fullname"},{name:"name"},{name:"accountcode"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/staff/telephones/view/{{row.entity.id}}/account",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones.list",{url:"/list",templateUrl:"app/staff/telephone/list/list.html",controller:"TelephoneListCtrl",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").factory("Telephone",["$resource",function(a){return a("/api/telephones/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones",{url:"/telephones",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("TelephoneViewCtrl",["$scope","$http","$stateParams","$translate","$cookieStore","Auth","xAlert","Telephone",function(a,b,c,d,e,f,g,h){a.initView=function(){a.Auth=f,a.forms={},h.get({id:c.id}).$promise.then(function(b){delete b.password,a.item=b,a.item.transport=a.item.transport?a.item.transport.split(","):[],a.item.allow=a.item.allow?a.item.allow.split(";"):[]})["catch"](function(a){g.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.item);b.transport=b.transport.join(","),b.allow=b.allow.join(";"),h.update(b).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones.view",{url:"/view/:id",templateUrl:"app/staff/telephone/view/view.html",controller:"TelephoneViewCtrl",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.staff.telephones.view.account",{url:"/account",templateUrl:"app/staff/telephone/view/view.account.html",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","assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("TelephoneWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert","$translate","Telephone",function(a,b,c,d,e,f,g){a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.initWizard=function(){return a.forms={},a.item={allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},g.get({id:"internal"}).$promise.then(function(b){a.item.internal=b.internal})["catch"](function(a){console.error(a)})},a.createItem=function(){var b=angular.copy(a.item);return b.transport&&(b.transport=b.transport.join(",")),a.item.allow&&(b.allow=b.allow.join(";")),g.save(b).$promise.then(function(){c.path("/staff/telephones/list")})["catch"](function(a){e.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones.wizard",{url:"/wizard",templateUrl:"app/staff/telephone/wizard/wizard.html",controller:"TelephoneWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("UserListCtrl",["$scope","User","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"users.csv",columnDefs:[{name:"fullname"},{name:"name",displayName:"APPLICATION_USERNAME"},{name:"email"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/staff/users/view/{{row.entity.id}}/account",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users.list",{url:"/list",templateUrl:"app/staff/user/list/list.html",controller:"UserListCtrl"})}]),angular.module("xCallyShuttleApp").factory("User",["$resource",function(a){return a("/api/users/:id/:controller",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},update:{method:"PUT"},me:{method:"GET",params:{id:"me"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users",{url:"/users",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("UserViewCtrl",["$scope","$stateParams","$cookieStore","$translate","FileUploader","User","Auth","xAlert",function(a,b,c,d,e,f,g,h){a.Auth=g,a.initView=function(){return f.get({id:b.id}).$promise.then(function(b){a.user=b,a.user.transport=a.user.transport?a.user.transport.split(","):[],a.user.allow=a.user.allow?a.user.allow.split(";"):[]})["catch"](function(a){h.show(a.message,"danger")})},a.updateItem=function(){var c=angular.copy(a.user);return delete c.password,delete c.md5secret,c.transport=c.transport.join(","),c.allow=c.allow.join(";"),f.update({id:b.id},c).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})},a.updatePassword=function(){var c={newPassword:a.user.newPwd};return g.isAdmin()?c.id=b.id:c.oldPassword=a.user.currentPwd,f.changePassword(c).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})};var i=a.uploader=new e({url:"api/users/"+b.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+c.get("token")}});i.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),i.onSuccessItem=function(b,c){a.user.userpic=c.userpic,a.user.id===g.getCurrentUser().id&&(g.getCurrentUser().userpic=c.userpic),h.show(d.instant("MESSAGE_WELL_DONE"),"success")},i.onErrorItem=function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},i.onCompleteAll=function(){i.clearQueue()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users.view",{url:"/view/:id",templateUrl:"app/staff/user/view/view.html",controller:"UserViewCtrl",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.staff.users.view.account",{url:"/account",templateUrl:"app/staff/user/view/view.account.html",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","assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("UserWizardCtrl",["$scope","$location","WizardHandler","xAlert","$translate","User",function(a,b,c,d,e,f){a.forms={info:void 0,voice:void 0},a.item={role:"user",host:"dynamic",context:"from-sip"},a.next=function(){c.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){return f.save(a.item).$promise.then(function(){b.path("/staff/users/list")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users.wizard",{url:"/wizard",templateUrl:"app/staff/user/wizard/wizard.html",controller:"UserWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("SugarcrmListCtrl",["$scope","SugarcrmAccount","gridOptions","xAlert","$translate","Modal",function(a,b,c,d,e,f){a.initView=function(){var d={exporterCsvFilename:"sugarcrm_account.csv",columnDefs:[{name:"name",displayName:"APPLICATION_NAME"},{name:"username"},{name:"remoteUri",displayName:"APPLICATION_REMOTE_ADDRESS"},{name:"action",width:250,buttons:[{"class":"blue-hoki",href:"/sugarcrm/view/{{row.entity.id}}/account",name:"profile"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK_CONNECTION",onClick:"grid.appScope.checkAccount(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.checkAccount=function(a){return b.get({id:a,controller:"check"}).$promise.then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(a){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.list",{url:"/list",templateUrl:"app/sugarcrm/list/list.html",controller:"SugarcrmListCtrl",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.sugarcrm",{url:"/sugarcrm",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("SugarcrmAccount",["$resource",function(a){return a("/api/sugarcrm/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("SugarcrmConfiguration",["$resource",function(a){return a("/api/sugarcrm/configurations/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("SugarcrmField",["$resource",function(a){return a("/api/sugarcrm/fields/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SugarcrmViewCtrl",["$scope","$http","$stateParams","$translate","$location","$filter","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i,j){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(){g.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){h.unsyncUpdates("sugarcrm_configuration"),h.unsyncUpdates("sugarcrm_field")}),a.initView=function(){b.get("/api/sugarcrm/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){i.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/sugarcrm/accounts/"+c.id,a.account).success(function(){i.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/sugarcrm/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,h.socket.on("sugarcrm_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.deleteConfiguration=j.confirm["delete"](function(a){b["delete"]("api/sugarcrm/configurations/"+a).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/sugarcrm/configurations",a.configuration).success(function(a){e.path("sugarcrm/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){i.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/sugarcrm/accounts/"+c.id+"/fields").success(function(b){a.accountFields=_.sortByOrder(f("sugarcrm")(_.toArray(b)),"name","asc"),_.forEach(b,function(a){a.options=_.toArray(a.options)})}).error(function(a){i.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/sugarcrm/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,h.socket.on("sugarcrm_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){i.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){i.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/sugarcrm/fields/"+a.id).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/sugarcrm/fields/"+a.id,a).success(function(){}).error(function(){i.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,"name",b);return c?c.options.length>0?c.options:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.view",{url:"/view/:id",templateUrl:"app/sugarcrm/view/view.html",controller:"SugarcrmViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.sugarcrm.view.account",{url:"/account",templateUrl:"app/sugarcrm/view/view.account.html"}).state("main.sugarcrm.view.configurations",{url:"/configurations",templateUrl:"app/sugarcrm/view/view.configurations.html"}).state("main.sugarcrm.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/sugarcrm/view/view.configurationSettings.html",controller:"SugarcrmViewCtrl"}).state("main.sugarcrm.view.configuration",{url:"/configuration",templateUrl:"app/sugarcrm/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("SugarcrmkWizardCtrl",["$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.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/sugarcrm/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/sugarcrm/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.wizard",{url:"/wizard",templateUrl:"app/sugarcrm/wizard/wizard.html",controller:"SugarcrmkWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("CannedAnswer",["$resource",function(a){return a("/api/answers/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.answers",{url:"/answers",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AnswerListCtrl",["$scope","$uibModal","CannedAnswer","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"answers.csv",columnDefs:[{name:"key",displayName:"APPLICATION_NAME"},{name:"value"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/answers/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.key, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){b.open({animation:!0,templateUrl:"app/tools/answer/list/list.create.modal.html",controller:"AnswerListCreateCtrl"}).result.then(function(b){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("AnswerListCreateCtrl",["$scope","$translate","$uibModalInstance","CannedAnswer","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.answers.list",{url:"/list",templateUrl:"app/tools/answer/list/list.html",controller:"AnswerListCtrl"})}]),angular.module("xCallyShuttleApp").controller("AnswerViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","CannedAnswer",function(a,b,c,d,e,f,g){a.getAnswer=function(){return g.get({id:e.id}).$promise.then(function(b){a.answer=b})["catch"](function(a){c.show(a.data.message,"danger")})},a.updateAnswer=function(){var b=angular.copy(a.answer);return g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.answers.view",{url:"/view/:id",templateUrl:"app/tools/answer/view/view.html",controller:"AnswerViewCtrl",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.tools.answers.view.settings",{
-url:"/settings",templateUrl:"app/tools/answer/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("Automation",["$resource",function(a){return a("/api/automations/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations",{url:"/automations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AutomationListCtrl",["$scope","$http","$translate","xAlert","Automation","gridOptions",function(a,b,c,d,e,f){a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initView=function(){var b={exporterCsvFilename:"Automations.csv",columnDefs:[{name:"name"},{name:"description"},{name:"channel"},{name:"status",cellTemplate:'<div class="centered-uigrid-td"><input data-ng-change="grid.appScope.updateItem(row.entity)", bs-switch ng-model="row.entity.status" type="checkbox" switch-active="{{ grid.appScope.isActive }}" switch-on-text="{{ grid.appScope.onText }}" switch-off-text="{{ grid.appScope.offText }}" switch-on-color="{{ grid.appScope.onColor }}" switch-off-color="{{ grid.appScope.offColor }}" switch-animate="{{ grid.appScope.animate }}" switch-size="{{ grid.appScope.size }}" switch-label="{{ grid.appScope.label }}" switch-icon="{{ grid.appScope.icon }}" switch-radio-off="{{ grid.appScope.radioOff }}" switch-label-width="{{ grid.appScope.labelWidth }}" switch-handle-width="{{ grid.appScope.handleWidth }}"></div>',width:100,enableFiltering:!1},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/automations/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=f.gridOptions(e,b,a)},a.updateItem=function(a){return e.update({id:a.id},a).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations.list",{url:"/list",templateUrl:"app/tools/automation/list/list.html",controller:"AutomationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("AutomationViewCtrl",["$scope","$stateParams","$http","$translate","xAlert","automations","Automation","$location",function(a,b,c,d,e,f,g,h){a.$automations=f,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.forms={general:{}},a.addCondition=function(b){a.automation[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.automation[b].splice(c,1)},a.addAction=function(){a.automation.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.automation.Actions.splice(b,1)},a.initView=function(){return g.get({id:b.id}).$promise.then(function(b){a.automation=b})["catch"](function(a){e.show(a.message,"danger"),h.path("/tools/automations/list")})},a.updateAutomation=function(){return g.update({id:b.id},a.automation).$promise.then(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),e.show(a.message,"danger")})},a.exitValidation=function(b){return console.log(b&&(a.automation.All.length||a.automation.Any.length)&&a.automation.Actions.length),b&&(a.automation.All.length||a.automation.Any.length)&&a.automation.Actions.length?!0:!1}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations.view",{url:"/view/:id",templateUrl:"app/tools/automation/view/view.html",controller:"AutomationViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.tools.automations.view.settings",{url:"/settings",templateUrl:"app/tools/automation/view/view.settings.html"}).state("main.tools.automations.view.routes",{url:"/routes",templateUrl:"app/tools/automation/view/view.routes.html"}).state("main.tools.automations.view.application",{url:"/application",templateUrl:"app/tools/automation/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("AutomationWizardCtrl",["$scope","$http","$location","xAlert","automations","WizardHandler","Automation",function(a,b,c,d,e,f,g){a.$automations=e,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={All:[],Any:[],Actions:[]},a.forms={general:void 0,settings:void 0},a.addCondition=function(b){a.item[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.item[b].splice(c,1)},a.addAction=function(){a.item.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.item.Actions.splice(b,1)},a.$watch("item.channel",function(b,c){c&&(a.tempData[c].All=_.clone(a.item.All,!0),a.tempData[c].Any=_.clone(a.item.Any,!0),a.tempData[c].Actions=_.clone(a.item.Actions,!0)),a.item.All=a.tempData[b].All?a.tempData[b].All:[],a.item.Any=a.tempData[b].Any?a.tempData[b].Any:[],a.item.Actions=a.tempData[b].Actions?a.tempData[b].Actions:[]},!0),a.item.channel="voice",a.createItem=function(){return g.save(a.item).$promise.then(function(){c.path("/tools/automations/list")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a},a.exitSettingsValidation=function(b){return b&&(a.item.All.length||a.item.Any.length)&&a.item.Actions.length?!0:!1}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations.wizard",{url:"/wizard",templateUrl:"app/tools/automation/wizard/wizard.html",controller:"AutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("Interval",["$resource",function(a){return a("/api/intervals/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.intervals",{url:"/intervals",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("IntervalListCtrl",["$scope","$uibModal","Interval","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"intervals.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/intervals/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/tools/interval/list/list.create.modal.html",controller:"IntervalListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("IntervalListCreateCtrl",["$scope","$translate","$uibModalInstance","Interval","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(b.instant(a.data.message),"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.intervals.list",{url:"/list",templateUrl:"app/tools/interval/list/list.html",controller:"IntervalListCtrl"})}]),angular.module("xCallyShuttleApp").controller("IntervalViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","interval",function(a,b,c,d,e,f,g,h,i,j){function k(b){console.log(b);var c,d,e,f;c=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(d=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(d+="-"+b.wd_to)):d="*",b.md_from&&"always"!==b.md_from?(e=b.md_from,b.md_to&&"always"!==b.md_to&&(e+="-"+b.md_to)):e="*",b.m_from&&"always"!==b.m_from?(f=b.m_from,b.m_to&&"always"!==b.m_to&&(f+="-"+b.m_to)):f="*",void 0!==a.selectedSubInterval?a.interval.SubIntervals[a.selectedSubInterval].interval=c+","+d+","+e+","+f:a.subinterval.interval=c+","+d+","+e+","+f}a.$translate=d,a.$interval=j.interval,a.selectedSubInterval=void 0,a.gridOptions={columnDefs:[{name:"name",displayName:"APPLICATION_NAME",headerCellFilter:"translate"},{name:"interval",displayName:"APPLICATION_INTERVAL",headerCellFilter:"translate"},{name:"action",displayName:"APPLICATION_ACTION",headerCellFilter:"translate",width:125,cellTemplate:'<a class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.openSubInterval(grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_SETTINGS\' | translate}}</a><a class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.deleteSubInterval(row.entity.name+\' interval\', gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_DELETE\' | translate}}</a>'}]},a.forms={subinterval:void 0,general:void 0},a.initSubInterval=function(b){b&&(a.selectedSubInterval=void 0),a.subinterval={},a.splittedInterval={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.next=function(){h.wizard().next()},a.previous=function(){h.wizard().previous()},a.exitValidation=function(a){return a},a.deselectAndRedirect=function(b){a.selectedSubInterval=void 0,g.path(b)},a.getInterval=function(){b.get("/api/intervals/"+e.id).success(function(b){a.interval=b,a.gridOptions.data=b.SubIntervals}).error(function(a){console.error(a),g.path("/tools/intervals/list")})},a.openSubInterval=function(b){a.selectedSubInterval=b,g.path("/tools/intervals/view/"+e.id+"/subintervals/settings")},a.updateInterval=function(f){a.selectedSubInterval=void 0,b.put("/api/intervals/"+e.id,a.interval).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),f&&g.path("/tools/intervals/view/"+e.id+"/"+f)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getSubInterval=function(){void 0===a.selectedSubInterval&&g.path("/tools/intervals/list"),a.splittedInterval={t_from:moment(new Date),t_to:moment(new Date)};var b,c=a.interval.SubIntervals[a.selectedSubInterval]?a.interval.SubIntervals[a.selectedSubInterval].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.splittedInterval.t_from=moment(b[0],"HH:mm"),a.splittedInterval.t_to=moment(b[1],"HH:mm"),a.splittedInterval.alwaysTime=!1):(a.splittedInterval.t_from=moment(new Date),a.splittedInterval.t_to=moment(new Date),a.splittedInterval.alwaysTime=!0);break;case 1:"*"!==c?(b=c.split("-"),a.splittedInterval.wd_from=b[0],a.splittedInterval.wd_to=b[1]?b[1]:"always"):(a.splittedInterval.wd_from="always",a.splittedInterval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.splittedInterval.md_from=b[0],a.splittedInterval.md_to=b[1]?b[1]:"always"):(a.splittedInterval.md_from="always",a.splittedInterval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.splittedInterval.m_from=b[0],a.splittedInterval.m_to=b[1]?b[1]:"always"):(a.splittedInterval.m_from="always",a.splittedInterval.m_to="always")}})},a.$watch("splittedInterval",function(a){a&&k(a)},!0),a.addSubInterval=function(){a.interval.SubIntervals.push(a.subinterval),a.updateInterval("subintervals")},a.deleteSubInterval=i.confirm["delete"](function(b){a.interval.SubIntervals.splice(b,1),a.updateInterval()})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.intervals.view",{url:"/view/:id",templateUrl:"app/tools/interval/view/view.html",controller:"IntervalViewCtrl",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.tools.intervals.view.settings",{url:"/settings",templateUrl:"app/tools/interval/view/view.settings.html"}).state("main.tools.intervals.view.subintervals",{url:"/subintervals",templateUrl:"app/tools/interval/view/view.subintervals.html"}).state("main.tools.intervals.view.subinterval",{url:"/subinterval",templateUrl:"app/tools/interval/view/view.subinterval.html"}).state("main.tools.intervals.view.subintervals.settings",{url:"/settings",templateUrl:"app/tools/interval/view/view.subintervalSettings.html"})}]),angular.module("xCallyShuttleApp").controller("PauseListCtrl",["$scope","$log","$uibModal","$translate","Pause","gridOptions",function(a,b,c,d,e,f){a.initView=function(){var b={exporterCsvFilename:"pauses.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/pauses/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=f.gridOptions(e,b,a)},a.createItem=function(){var b=c.open({animation:!0,templateUrl:"app/tools/pause/list/list.create.modal.html",controller:"PauseListCreateCtrl"});b.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("PauseListCreateCtrl",["$scope","$translate","$uibModalInstance","Pause","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.pauses.list",{url:"/list",templateUrl:"app/tools/pause/list/list.html",controller:"PauseListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Pause",["$resource",function(a){return a("/api/pauses/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.pauses",{url:"/pauses",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("PauseViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","Pause",function(a,b,c,d,e,f,g){a.getPause=function(){return g.get({id:e.id}).$promise.then(function(b){a.pause=b})["catch"](function(a){c.show(a.data.message,"danger")})},a.updatePause=function(){var b=angular.copy(a.pause);return g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.pauses.view",{url:"/view/:id",templateUrl:"app/tools/pause/view/view.html",controller:"PauseViewCtrl",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.tools.pauses.view.settings",{url:"/settings",templateUrl:"app/tools/pause/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("SoundListCtrl",["$scope","$http","socket","Modal","$q","FileUploader","$translate","xAlert","$cookieStore","$sce","Sound",function(a,b,c,d,e,f,g,h,i,j,k){a.Sound=k,a.isCollapsed=!0,a.downloadButtonContent='<i class="icon-cloud-download"></i>',a.downloadButtonClass="btn btn-xs blue-hoki",a["delete"]=d.confirm["delete"](function(a){b["delete"]("/api/sounds/"+a).success(function(a){}).error(function(a){console.log(a)})}),a.updateAudio=function(a,c){var d=e.defer();return b.put("/api/sounds/"+a,c).success(function(a){d.resolve()}).error(function(a){console.log(a.message),d.reject(a.message)}),d.promise},a.$on("$destroy",function(){c.unsyncUpdates("sound")}),a.initList=function(){b.get("/api/sounds").success(function(b){a.sounds=b.rows,b.rows.length||(a.isCollapsed=!1),c.syncUpdates("sound",a.sounds,function(){a.sounds.length||(a.isCollapsed=!1)})}).error(function(a){})};var l=a.uploader=new f({url:"/api/sounds",withCredentials:!0,headers:{Authorization:"Bearer "+i.get("token")}});l.filters.push({name:"customFilter",fn:function(a,b){return this.queue.length<10}}),l.onWhenAddingFileFailed=function(a,b,c){console.info("onWhenAddingFileFailed",a,b,c)},l.onAfterAddingFile=function(a){console.info("onAfterAddingFile",a)},l.onAfterAddingAll=function(a){console.info("onAfterAddingAll",a)},l.onBeforeUploadItem=function(a){console.info("onBeforeUploadItem",a)},l.onProgressItem=function(a,b){console.info("onProgressItem",a,b),a.isUploading=!0},l.onProgressAll=function(a){console.info("onProgressAll",a)},l.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),a.isUploading=!1},l.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),a.responseMessage=b,a.isUploading=!1},l.onCancelItem=function(a,b,c,d){console.info("onCancelItem",a,b,c,d),a.isUploading=!1},l.onCompleteItem=function(a,b,c,d){console.info("onCompleteItem",a,b,c,d),a.isUploading=!1},l.onCompleteAll=function(){console.info("onCompleteAll")},console.info("uploader",l)}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.sounds.list",{url:"/list",templateUrl:"app/tools/sound/list/list.html",controller:"SoundListCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").factory("Sound",["$resource",function(a){return a("/api/sounds/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.sounds",{url:"/sounds",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TagListCtrl",["$scope","$uibModal","Tag","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"tag.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/tags/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/tools/tag/list/list.create.modal.html",controller:"TagListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("TagListCreateCtrl",["$scope","$translate","$uibModalInstance","Tag","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.tags.list",{url:"/list",templateUrl:"app/tools/tag/list/list.html",controller:"TagListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Tag",["$resource",function(a){return a("/api/tags/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.tags",{url:"/tags",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TagViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","Tag",function(a,b,c,d,e,f,g){a.getTag=function(){return g.get({id:e.id}).$promise.then(function(b){a.tag=b})["catch"](function(a){c.show(a.data.message,"danger")})},a.updateTag=function(){var b=angular.copy(a.tag);return g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.tags.view",{url:"/view/:id",templateUrl:"app/tools/tag/view/view.html",controller:"TagViewCtrl",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.tools.tags.view.settings",{url:"/settings",templateUrl:"app/tools/tag/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TemplateListCtrl",["$scope","Template","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"templates.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/tools/templates/view/{{row.entity.id}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates.list",{url:"/list",templateUrl:"app/tools/template/list/list.html",controller:"TemplateListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Template",["$resource",function(a){return a("/api/mail/templates/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates",{url:"/templates",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TemplateViewCtrl",["$scope","$http","$translate","$stateParams","xAlert","Template",function(a,b,c,d,e,f){a.initItem=function(){a.form={},a.item={},a.groups=[{title:"Voice",variables:[]},{title:"Chat",variables:["username","email","text","chatWebsite"]},{title:"Mail",variables:[]},{title:"Fax",variables:[]}],a.item=f.get({id:d.id})},a.updateItem=function(){f.update(a.item).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates.view",{url:"/view/:id",templateUrl:"app/tools/template/view/view.html",controller:"TemplateViewCtrl",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.tools.templates.view.settings",{url:"/settings",templateUrl:"app/tools/template/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TemplateWizardCtrl",["$scope","$location","$http","WizardHandler","xAlert","Template",function(a,b,c,d,e,f){a.initWizard=function(){a.item={},a.form={},a.groups=[{title:"Voice",variables:[]},{title:"Chat",variables:["username","email","text","chatWebsite"]},{title:"Mail",variables:[]},{title:"Fax",variables:[]}]},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){return f.save({name:a.item.name,description:a.item.description,subject:a.item.subject||null,html:a.item.html||null,text:a.item.text||null}).$promise.then(function(){b.path("/tools/templates/list")})["catch"](function(a){e.show(data.err.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates.wizard",{url:"/wizard",templateUrl:"app/tools/template/wizard/wizard.html",controller:"TemplateWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools",{url:"/tools",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("TriggerListCtrl",["$scope","$http","$translate","Modal","xAlert","Trigger","gridOptions",function(a,b,c,d,e,f,g){a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initView=function(){var b={exporterCsvFilename:"Triggers.csv",columnDefs:[{name:"name"},{name:"description"},{name:"channel"},{name:"status",cellTemplate:'<div class="centered-uigrid-td"><input data-ng-change="grid.appScope.updateItem(row.entity)", bs-switch ng-model="row.entity.status" type="checkbox" switch-active="{{ grid.appScope.isActive }}" switch-on-text="{{ grid.appScope.onText }}" switch-off-text="{{ grid.appScope.offText }}" switch-on-color="{{ grid.appScope.onColor }}" switch-off-color="{{ grid.appScope.offColor }}" switch-animate="{{ grid.appScope.animate }}" switch-size="{{ grid.appScope.size }}" switch-label="{{ grid.appScope.label }}" switch-icon="{{ grid.appScope.icon }}" switch-radio-off="{{ grid.appScope.radioOff }}" switch-label-width="{{ grid.appScope.labelWidth }}" switch-handle-width="{{ grid.appScope.handleWidth }}"></div>',width:100,enableFiltering:!1},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/triggers/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=g.gridOptions(f,b,a)},a.updateItem=function(a){return f.update({id:a.id},a).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers.list",{url:"/list",templateUrl:"app/tools/trigger/list/list.html",controller:"TriggerListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Trigger",["$resource",function(a){return a("/api/triggers/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers",{url:"/triggers",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TriggerViewCtrl",["$scope","$stateParams","$translate","xAlert","triggers","Trigger","$location",function(a,b,c,d,e,f,g){a.$triggers=e,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.forms={general:{}},a.addCondition=function(b){a.trigger[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.trigger[b].splice(c,1)},a.addAction=function(){a.trigger.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.trigger.Actions.splice(b,1)},a.initView=function(){return f.get({id:b.id}).$promise.then(function(b){a.trigger=b})["catch"](function(a){d.show(a.message,"danger"),g.path("/tools/triggers/list")})},a.updateTrigger=function(){return f.update({id:b.id},a.trigger).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},a.exitValidation=function(b){return console.log(b&&(a.trigger.All.length||a.trigger.Any.length)&&a.trigger.Actions.length),b&&(a.trigger.All.length||a.trigger.Any.length)&&a.trigger.Actions.length?!0:!1}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers.view",{url:"/view/:id",templateUrl:"app/tools/trigger/view/view.html",controller:"TriggerViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.tools.triggers.view.settings",{url:"/settings",templateUrl:"app/tools/trigger/view/view.settings.html"}).state("main.tools.triggers.view.routes",{url:"/routes",templateUrl:"app/tools/trigger/view/view.routes.html"}).state("main.tools.triggers.view.application",{url:"/application",templateUrl:"app/tools/trigger/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("TriggerWizardCtrl",["$scope","$http","$location","xAlert","triggers","WizardHandler","Trigger",function(a,b,c,d,e,f,g){a.$triggers=e,a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={All:[],Any:[],Actions:[]},a.forms={general:void 0,settings:void 0},a.addCondition=function(b){a.item[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.item[b].splice(c,1)},a.addAction=function(){a.item.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.item.Actions.splice(b,1)},a.$watch("item.channel",function(b,c){c&&(a.tempData[c].All=_.clone(a.item.All,!0),a.tempData[c].Any=_.clone(a.item.Any,!0),a.tempData[c].Actions=_.clone(a.item.Actions,!0)),a.item.All=a.tempData[b].All?a.tempData[b].All:[],a.item.Any=a.tempData[b].Any?a.tempData[b].Any:[],a.item.Actions=a.tempData[b].Actions?a.tempData[b].Actions:[]},!0),a.item.channel="voice",a.createItem=function(){return g.save(a.item).$promise.then(function(){c.path("/tools/triggers/list")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a},a.exitSettingsValidation=function(b){return b&&(a.item.All.length||a.item.Any.length)&&a.item.Actions.length?!0:!1}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers.wizard",{url:"/wizard",templateUrl:"app/tools/trigger/wizard/wizard.html",controller:"TriggerWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("TrunkListCtrl",["$scope","Trunk","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"Trunks.csv",columnDefs:[{name:"name"},{name:"host"},{name:"context"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/trunks/view/{{row.entity.name}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.name)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks.list",{url:"/list",templateUrl:"app/tools/trunk/list/list.html",controller:"TrunkListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Trunk",["$resource",function(a){return a("/api/trunks/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks",{url:"/trunks",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TrunkViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","Trunk","VoiceContext",function(a,b,c,d,e,f,g,h,i){a.initView=function(){return h.get({id:e.id}).$promise.then(function(b){b.nat=b.nat?b.nat.split(","):[],b.allow=b.allow?b.allow.split(";"):[],b.insecure=b.insecure?b.insecure.split(","):[],b.transport=b.transport?b.transport.split(","):[],a.trunk=b})["catch"](function(a){console.error(a),g.path("/tools/trunks/list")})},a.updateTrunk=function(){""===a.trunk.password&&delete a.trunk.password;var b=angular.copy(a.trunk);
-return b.nat=b.nat.join(","),b.allow=b.allow.join(";"),b.insecure=b.insecure.join(","),b.transport=b.transport.join(","),h.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){c.show(a.data.message,"danger")})},a.getContexts=function(){return i.get().$promise.then(function(b){a.voiceContexts=b.rows})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks.view",{url:"/view/:id",templateUrl:"app/tools/trunk/view/view.html",controller:"TrunkViewCtrl",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.tools.trunks.view.settings",{url:"/settings",templateUrl:"app/tools/trunk/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TrunkWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.initWizard=function(){a.forms={},a.item={context:"from-voip-provider"}},a.next=function(d){d?b.post("/api/trunks/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_TRUNK"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")}):c.wizard().next()},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/trunks/",a.item).success(function(){d.path("/tools/trunks/list")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks.wizard",{url:"/wizard",templateUrl:"app/tools/trunk/wizard/wizard.html",controller:"TrunkWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VariableListCtrl",["$scope","$uibModal","Variable","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"variables.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/variables/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/tools/variable/list/list.create.modal.html",controller:"VariableListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("VariableListCreateCtrl",["$scope","$translate","$uibModalInstance","Variable","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.variables.list",{url:"/list",templateUrl:"app/tools/variable/list/list.html",controller:"VariableListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Variable",["$resource",function(a){return a("/api/variables/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.variables",{url:"/variables",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VariableViewCtrl",["$scope","$translate","$stateParams","xAlert","Variable",function(a,b,c,d,e){a.getVariable=function(){return e.get({id:c.id}).$promise.then(function(b){a.variable=b})["catch"](function(a){d.show(a.data.message,"danger")})},a.updateVariable=function(){return e.update({id:c.id},a.variable).$promise.then(function(){d.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.variables.view",{url:"/view/:id",templateUrl:"app/tools/variable/view/view.html",controller:"VariableViewCtrl",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.tools.variables.view.settings",{url:"/settings",templateUrl:"app/tools/variable/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCloneModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),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","$translate","xAlert","Modal","$uibModal","$log","YourDashboard","gridOptions",function(a,b,c,d,e,f,g,h,i){a.initView=function(){var b={exporterCsvFilename:"voice_contexts.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:220,buttons:[{"class":"green",href:"/tools/yourdashboards/show/{{row.entity.id}}",name:"view"},{"class":"blue-hoki",href:"/tools/yourdashboards/view/{{row.entity.id}}/settings",name:"settings"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"},{"class":"purple",name:"clone",onClick:"grid.appScope.clone(row.entity.id)"}]}]};a.gridOptions=i.gridOptions(h,b,a)},a.create=function(){var b=f.open({animation:!0,templateUrl:"app/tools/yourdashboard/list/create.modal.html",controller:"YourdashboardListCreateModalCtrl"});b.result.then(function(b){return h.save(b).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),a.gridOptions.getPage()})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})},a.clone=function(b){var e=f.open({animation:!0,templateUrl:"app/tools/yourdashboard/list/clone.modal.html",controller:"YourdashboardListCloneModalCtrl"});e.result.then(function(e){return h.save({id:b,controller:"clone"},e).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),a.gridOptions.getPage()})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.yourdashboards.list",{url:"/list",templateUrl:"app/tools/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.getDashboard=function(){c.get("/api/dashboards/"+g.id).success(function(b){var c={name:"dashboard",structure:"4-8",enableconfirmdelete:!0,maximizable:!0,collapsible:!0};b.model=JSON.parse(b.model||'{"title":"Dashboard"}'),b.editable=f.isAdmin()&&b.editable?!0:!1,a.dashboard=_.merge(c,b)}).error(function(a){h.path("/tools/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.tools.yourdashboards.show",{url:"/show/:id",templateUrl:"app/tools/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("/tools/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.tools.yourdashboards.view",{url:"/view/:id",templateUrl:"app/tools/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.tools.yourdashboards.view.settings",{url:"/settings",templateUrl:"app/tools/yourdashboard/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("YourDashboard",["$resource",function(a){return a("/api/dashboards/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.yourdashboards",{url:"/yourdashboards",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ZendeskListCtrl",["$scope","ZendeskAccount","gridOptions","xAlert","$translate",function(a,b,c,d,e){a.initView=function(){var d={exporterCsvFilename:"zendesk_account.csv",columnDefs:[{name:"name",displayName:"APPLICATION_NAME"},{name:"username"},{name:"remoteUri",displayName:"APPLICATION_REMOTE_ADDRESS"},{name:"action",width:250,buttons:[{"class":"blue-hoki",href:"/zendesk/view/{{row.entity.id}}/account",name:"profile"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK_CONNECTION",onClick:"grid.appScope.checkAccount(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.checkAccount=function(a){return b.check({id:a}).$promise.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").config(["$stateProvider",function(a){a.state("main.zendesk.view.configurations",{url:"/configurations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewConfigurationListCtrl",["$scope","$stateParams","$translate","gridOptions","ZendeskConfiguration","$uibModal","xAlert",function(a,b,c,d,e,f,g){a.initView=function(){var c={exporterCsvFilename:"zendesk_configurations.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/zendesk/view/{{row.entity.AccountId}}/configurations/view/{{row.entity.id}}",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(e,c,a,{accountId:b.id})},a.createItem=function(){var c=f.open({animation:!0,templateUrl:"app/zendesk/view/configuration/list/create.modal.html",controller:["$scope","$uibModalInstance",function(a,b){a.form={},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]});c.result.then(function(c){return e.save({accountId:b.id},c).$promise.then(function(){a.gridOptions.getPage()})["catch"](function(a){g.show(a.data.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view.configurations.list",{url:"/list",templateUrl:"app/zendesk/view/configuration/list/list.html",controller:"ZendeskViewConfigurationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewConfigurationViewCtrl",["$scope","$stateParams","$filter","$translate","socket","ZendeskConfiguration","xAlert","variable","Variable","ZendeskAccount","Tag","ZendeskField",function(a,b,c,d,e,f,g,h,i,j,k,l){a.$on("$destroy",function(){e.unsyncUpdates("zendesk_field")}),a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:300,scrollInertia:0},a.fieldType=[{type:"string",title:"String"},{type:"variable",title:"Variable"},{type:"customVariable",title:"Custom Variable"}],a.descFieldType=[{type:"string",title:"String"},{type:"keyValue",title:"Key Value"}],a.initView=function(){a.configurationName="",a.subjectConfig=[],a.descriptionConfig=[],a.fieldConfig=[],a.selectedTags={tags:[]},a.variables=h},a.getConfiguration=function(){return f.get({accountId:b.id,id:b.configurationId}).$promise.then(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,a.selectedTags={tags:_.map(b.Tags,function(a){return a.id})},e.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})})})["catch"](function(a){g.show(a.message,"danger")})},a.getCustomVariables=function(){return i.get().$promise.then(function(b){a.customVariables=b.rows})["catch"](function(a){g.show(a.message,"danger")})},a.getFields=function(){return j.fields({id:b.id}).$promise.then(function(b){a.accountFields=c("zendesk")(b)})["catch"](function(a){g.show(a.message,"danger")})},a.getTags=function(){return k.get().$promise.then(function(b){a.tags=b.rows})["catch"](function(a){g.show(a.message,"danger")})},a.addItem=function(c){switch(c){case"subject":case"description":var d={type:"string",content:""};break;case"field":var d={content:""}}return f.save({accountId:b.id,id:b.configurationId,controller:c},d).$promise.then(function(b){switch(c){case"subject":a.subjectConfig.push(b);break;case"description":a.descriptionConfig.push(b);break;case"field":a.fieldConfig.push(b)}})["catch"](function(a){g.show(a.data.message,"danger")})},a.changeType=function(b){"variable"===b.type?(b.content="",b.variableName=""):"string"===b.type?(b.VariableId=null,b.variableName=""):"customVariable"===b.type&&(b.VariableId=null,b.content=""),a.updateField(b)},a.updateField=function(a){return l.update({accountId:b.id,configurationId:b.configurationId,id:a.id},a).$promise.then(function(){})["catch"](function(){g.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.removeItem=function(a){return l["delete"]({accountId:b.id,configurationId:b.configurationId,id:a.id}).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(){g.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.changeDescType=function(b){"keyValue"===b.type?(b.content="","string"===b.keyType?(b.VariableId=null,b.variableName=""):"variable"===b.keyType?(b.keyContent="",b.VariableId=null):"customVariable"===b.keyType&&(b.keyContent="",b.variableName="")):"string"===b.type&&(b.VariableId=null,b.variableName="",b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.variableName="",b.nameField="",b.VariableId=null,b.idField){var c=_.find(a.accountFields,"id",b.idField);c&&(c.system_field_options?(b.customField=!1,b.nameField=c.title.toLowerCase()):b.customField=!0)}a.updateField(b)},a.updateTags=function(){return f.update({accountId:b.id,id:b.configurationId,controller:"tags"},a.selectedTags.tags).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE")+".","success")})["catch"](function(a){g.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},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.configurations.view",{url:"/view/:configurationId",templateUrl:"app/zendesk/view/configuration/view/view.html",controller:"ZendeskViewConfigurationViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewCtrl",["$scope","$stateParams","$translate","xAlert","Modal","ZendeskAccount",function(a,b,c,d,e,f){a.initView=function(){return f.get({id:b.id}).$promise.then(function(b){a.account=b})["catch"](function(a){d.show(a.message,"danger")})},a.updateItem=function(){return f.update({id:b.id},a.account).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE")+".","success")})["catch"](function(){d.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),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"})}]),angular.module("xCallyShuttleApp").controller("ZendeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler","ZendeskAccount",function(a,b,c,d,e,f,g){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(){return g.save(a.item).$promise.then(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/zendesk/list")})["catch"](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").factory("ZendeskAccount",["$resource",function(a){return a("/api/zendesk/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"},fields:{params:{controller:"fields"},isArray:!0},check:{params:{controller:"check"}}})}]).factory("ZendeskConfiguration",["$resource",function(a){return a("/api/zendesk/accounts/:accountId/configurations/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]).factory("ZendeskField",["$resource",function(a){return a("/api/zendesk/accounts/:accountId/configurations/:configurationId/fields/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk",{url:"/zendesk",template:"<div ui-view></div>","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"}],checkUnderscore:function(a){return 0===a.indexOf("_")?a:"_"+a}};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("role",a.role),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("role"),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"===(e.get("role")||g.role)||"user"===(e.get("role")||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").service("automations",function(){var a={voice:{conditions:[],actions:[]},mail:{conditions:[{name:"APPLICATION_STATUS",value:"status",type:"select",arr:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",type:"input",operators:[{value:"greater_or_equal",name:"APPLICATION_GTE_TO"},{value:"less_or_equal",name:"APPLICATION_LTE_TO"},{value:"greater",name:"APPLICATION_GREATER_THAN"},{value:"less",name:"APPLICATION_LESS_THAN"}]}],actions:[{name:"APPLICATION_STATUS",value:"status"}]},chat:{conditions:[{name:"APPLICATION_STATUS",value:"status",type:"select",arr:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",type:"input",operators:[{value:"greater_or_equal",name:"APPLICATION_GTE_TO"},{value:"less_or_equal",name:"APPLICATION_LTE_TO"},{value:"greater",name:"APPLICATION_GREATER_THAN"},{value:"less",name:"APPLICATION_LESS_THAN"}]}],actions:[{name:"APPLICATION_STATUS",value:"status"}]},fax:{conditions:[{name:"APPLICATION_STATUS",value:"status",type:"select",arr:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",type:"input",operators:[{value:"greater_or_equal",name:"APPLICATION_GTE_TO"},{value:"less_or_equal",name:"APPLICATION_LTE_TO"},{value:"greater",name:"APPLICATION_GREATER_THAN"},{value:"less",name:"APPLICATION_LESS_THAN"}]}],actions:[{name:"APPLICATION_STATUS",value:"status"}]}},b=["voice","mail","chat","fax"];return{services:a,channels:b}}),angular.module("xCallyShuttleApp").service("desk_com",function(){var a=[{id:"priority",label:"Priority",custom:!1,data:{choices:[1,2,3,4,5,6,7,8,9,10]}},{id:"status",label:"Status",custom:!1,data:{choices:["new","open","pending","resolved","closed"]}},{id:"type",label:"Type",custom:!1,data:{choices:["chat","twitter","email","qna","facebook","phone"]}}];return{fields:a}}),angular.module("xCallyShuttleApp").controller("FooterController",["$scope","$http",function(a,b){a.year=moment().year(),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","MailReport","ChatReport",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){a.toggleQuickSidebar=function(){k.layout.pageQuickSidebarOpened=!k.layout.pageQuickSidebarOpened,k.layout.pageQuickSidebarOpened||m.remove("chatRoomId")},a.toogleSidebar=function(){k.layout.pageSidebarClosed=!k.layout.pageSidebarClosed,m.set("sidebarClosed",k.layout.pageSidebarClosed)},a.initHeader=function(){var c=j.load("api/xchatty/assets?resource=notification/xc_blubb.mp3"),d={};"agent"===g.getCurrentUser().role&&(i.socket.on("report_mail:save",function(a){c.play();var d=f("MAIL CHANNEL",{icon:"assets/images/media/channels/mail64.png",body:"NEW Incoming Mail Message!",delay:1e3*a.timeslot});d.$on("click",function(){return n.get({id:a.id,controller1:"accept",controller2:a.uniqueid}).$promise.then(function(){h.show("Mail properly assigned","success"),b.$broadcast("mailMessageEvent",{message:"Mail properly assigned.."})})["catch"](function(a){h.show(a.data.message,"danger")})})}),i.socket.on("report_chat:save",function(a){c.play(),d[a.uniqueid]&&(d[a.uniqueid].close(),delete d[a.uniqueid]),d[a.uniqueid]=f("CHAT CHANNEL",{icon:"assets/images/media/channels/chat64.png",body:"NEW Incoming Chat Visitor!",delay:1e3*a.timeslot}),d[a.uniqueid].$on("click",function(){return o.get({id:a.id,controller1:"accept",controller2:a.uniqueid}).$promise.then(function(){h.show("Chat properly assigned","success"),b.$broadcast("mailMessageEvent",{message:"Chat properly assigned.."})})["catch"](function(a){h.show(a.data.message,"danger")})})}),i.socket.on("chat_message:save",function(a){c.play();var d=m.get("chatRoomId");if((!d||d!==a.ChatRoomId)&&a.UserId&&a.UserId!==g.getCurrentUser().id){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",{chatRoomId:a.ChatRoomId})})}}),i.socket.on("user_has_chat_room:save",function(a){c.play(),b.$broadcast("chatGroupEvent",a)})),e({url:"/api/fax/user_has_queues",method:"GET",params:{UserId:g.getCurrentUser().id}}).success(function(b){a.faxQueues=_.map(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(){console.log(Array.prototype.slice.call(arguments));var b,d=Array.prototype.slice.call(arguments),e=d.shift();b=c({modal:{dismissable:!0,title:"Confirm Delete",html:"<p>Are you sure you want to delete"+(e?"<strong> "+e+"</strong>":" selected items")+"?</p>",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(_.map(a.selected.items,"id"),_.map(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","$interval","Auth","Agent","User","ChatRoom","ChatMessage","socket","settings","localStorageService","xAlert","$translate","QuickSidebarFactory",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){a.emojiMessage={},a.options=s.options,a.message={body:"",user:""};var t=a.currentUser=i.getCurrentUser(),u=function(b){switch(a.messagesTab=!0,o.layout.pageQuickSidebarOpened=!0,p.set("chatRoomId",b.id),p.set("messagesTab",a.messagesTab),a.chatRoom=b,b.type){case"internal":a.currentTab=0;break;case"external":a.currentTab=2,_.find(a.chatRooms,{id:b.id})||a.chatRooms.push(b)}b.Users.length>2&&(a.currentTab=3),g(function(){angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last")},1500)},v=function(a){console.error(a)};a.$on("$includeContentLoaded",function(){p.get("chatRoomId")&&l.get({id:p.get("chatRoomId")},u,v),p.get("currentTab")&&(a.currentTab=p.get("currentTab"))}),a.agents=j.get({offset:0,limit:1e3},function(){n.syncUpdates("agent",a.agents.rows)}),a.users=k.get({offset:0,limit:1e3},function(){n.syncUpdates("user",a.users.rows)}),a.currentTab=0,a.messagesTab=!1,a.chatRooms=l.me(function(b){a.chatRooms=b},function(a){console.error(a)}),n.socket.on("report_chat:assignment",function(a){a.agentid&&l.get({id:a.chatroomid},u,v)}),n.socket.on("chat_room:save",function(b){if(a.chatRoom&&a.chatRoom.id===b.id){_.merge(a.chatRoom,b);var c=_.find(a.chatRooms,{id:b.id});c&&_.merge(c,b)}}),n.socket.on("chat_message:save",function(b){a.chatRoom&&a.chatRoom.id===b.ChatRoomId&&(a.chatRoom.ChatMessages.push(b),angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last"))}),n.socket.on("user_has_chat_room:save",function(b){var c=_.findIndex(a.chatRooms,{id:b.id});c>=0?a.chatRooms[c]=b:a.chatRooms.push(b)}),b.$on("chatMessageEvent",function(a,b){l.get({id:b.chatRoomId},u,v)}),b.$on("chatGroupEvent",function(b,c){a.currentTab=3,a.messagesTab=!0,o.layout.pageQuickSidebarOpened=!0,a.chatRoom=c}),a.goToTab=function(b){a.currentTab=b,a.messagesTab=!1,a.chatRoom=null,p.set("currentTab",a.currentTab),p.set("messagesTab",a.messagesTab),p.remove("chatRoomId")},a.goToMessage=function(a,b){a?l.users({users:[t.id,a]},u,v):l.get({id:b},u,v)},a.sendMessage=function(){a.message.body.trim().length&&m.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,p.set("messagesTab",a.messagesTab),p.remove("chatRoomId")},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(){l.update({id:a,status:"CLOSED",completeReason:"agent"}).$promise.then(function(){q.show(r.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){q.show(a.data.message,"danger")})})},a.addAgent=function(b,c){var f=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}})}}});f.result.then(function(a){d.put("/api/chat/rooms/"+b+"/users",{users:a}).then(function(){q.show(r.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){q.show(a.data.message,"danger")})})};var w=function(){var b=angular.element(c),d=function(){return{h:b.height(),w:b.width()}};a.$watch(d,function(b){a.style={height:b.h-46-46-46+"px"},a.style2={height:b.h-46-46-46-180+"px"}},!0),b.bind("resize",function(){a.$apply()})};w(),a.$on("$destroy",function(){n.unsyncUpdates("agent"),n.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").factory("QuickSidebarFactory",function(){return{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"}}}}),angular.module("xCallyShuttleApp").filter("QuickSidebarFilterUsersGreaterThan",function(){return function(a,b){var c=[];return a.forEach(function(a){var d=0;a.ChatVisitor&&d++,d+=a.Users.length,d>b&&c.push(a)}),c}}).filter("QuickSidebarFilterUsersLowerThan",function(){return function(a,b){var c=[];return a.forEach(function(a){a.Users.length<b&&c.push(a)}),c}}),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<e.getCurrentUser().Modules.length;b++)if(e.getCurrentUser().Modules[b].name===a)return!0;return!1},a.getSidebarDashboards=function(){f.get("/api/dashboards").then(function(b){a.dashboards=b.data.rows,i.syncUpdates("dashboard",a.dashboards)})["catch"](function(a){g.show("Error loading your dashboards","danger")})},a.getSidebarIntegrations=function(){f.get("/api/integrations").success(function(b){a.integrations=b.rows,i.syncUpdates("integration",a.integrations)}).error(function(a){g.show(a.message,"danger")})},a.isActive=function(a){return a===d.path()},a.$on("destroy",function(){i.unsyncUpdates("dashboard"),i.unsyncUpdates("integration")})}]),angular.module("xCallyShuttleApp").factory("socket",["$rootScope","$window","socketFactory","Auth",function(a,b,c,d){var e=d.getCurrentUser(),f=io("",{query:"token="+d.getToken()+"&userId="+(e.id||d.getUserId())+"&name="+(e.name||d.getName())+"&role="+(e.role||"agent")+"&source=browser",path:"/socket.io-client"}),g=c({ioSocket:f});return a.$on("logout",function(){g&&(g.disconnect(!0),b.location.reload())}),{socket:g,syncUpdates:function(a,b,c){c=c||angular.noop,g.on(a+":save",function(a){var d=_.find(b,{id:a.id}),e=b.indexOf(d),f="created";d?(_.merge(b[e],a),f="updated"):b.unshift(a),c(f,a,b)}),g.on(a+":remove",function(a){var d="deleted";_.remove(b,{id:a.id}),c(d,a,b)})},unsyncUpdates:function(a){g.removeAllListeners(a+":save"),g.removeAllListeners(a+":remove")},syncUpdatesByAttributes:function(a,b,c,d){d=d||angular.noop,g.on(a+":save",function(a){var e=!0;if(_.forIn(b,function(b,c){return a[c]&&a[c]===b?!0:e=!1}),e){var f=_.find(c,{id:a.id}),g=c.indexOf(f),h="created";f?(_.merge(c[g],a),h="updated"):c.unshift(a),d(h,a,c)}}),g.on(a+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},syncMailMessageUpdates:function(a,b,c,d){d=d||angular.noop,g.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),g.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncMailMessageUpdates:function(a,b){g.removeAllListeners(a+":"+b+":save"),g.removeAllListeners(a+":"+b+":remove")},syncFaxMessageUpdates:function(a,b,c,d){d=d||angular.noop,g.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),g.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncFaxMessageUpdates:function(a,b){g.removeAllListeners(a+":"+b+":save"),g.removeAllListeners(a+":"+b+":remove")}}}]),angular.module("xCallyShuttleApp").service("triggers",["VoiceQueue",function(a){var b={voice:{conditions:[{name:"APPLICATION_QUEUE",value:"queue",type:"select",resource:a,resValue:"name",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_CALL_STATUS",value:"lastevent",type:"select",arr:[{name:"called",value:"called"},{name:"connect",value:"connect"},{name:"complete",value:"complete"},{name:"rejected",value:"rejected"},{name:"abandoned",value:"abandoned"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]}],actions:[{name:"APPLICATION_CONTACT_MANAGER",value:"contactManager"},{name:"APPLICATION_INTEGRATIONS",value:"integration",propertyField:"select"}]},mail:{conditions:[{name:"APPLICATION_FROM",value:"from",type:"input",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_CC",value:"cc",type:"input",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_SUBJECT",value:"subject",type:"input",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]}],actions:[{name:"APPLICATION_TEMPLATE",value:"template"},{name:"APPLICATION_CONTACT_MANAGER",value:"contactManager"}]},chat:{conditions:[],actions:[]},fax:{conditions:[],actions:[]}},c=["voice","mail","chat","fax"];return{services:b,channels:c}}]),angular.module("xCallyShuttleApp").service("variable",function(){var a=[{title:"Unique ID",name:"uniqueid",group:"voice_queue"},{title:"Caller Number",name:"calleridnum",group:"voice_queue"},{title:"Caller Name",name:"calleridname",group:"voice_queue"},{title:"Queue",name:"queue",group:"voice_queue"},{title:"Called Number",name:"destcalleridnum",group:"voice_queue"},{title:"Called Name",name:"destcalleridname",group:"voice_queue"},{title:"Hold Time",name:"holdtime",group:"voice_queue"},{title:"Talk Time",name:"talktime",group:"voice_queue"},{title:"Connected Time",name:"agentconnectAt",group:"voice_queue"},{title:"Called Time",name:"agentcalledAt",group:"voice_queue"},{title:"DNID",name:"destexten",group:"voice_queue"},{title:"Complete Time",name:"agentcompleteAt",group:"voice_queue"},{title:"No Answer Time",name:"agentringnoanswerAt",group:"voice_queue"}];return a}),function(a,b){angular.module("adf.widget.counter",["adf.provider"]).config(["dashboardProvider",function(a){a.widget("counter",{title:"Single Value",description:"Single Value for db results",templateUrl:"{widgetsPath}/counter/src/view.html",controller:"apiwidgetCounterViewCtrl",edit:{templateUrl:"{widgetsPath}/counter/src/edit.html",controller:"apiwidgetCounterEditCtrl"}})}]).service("apiServiceCounter",["Widget",function(a){return{get:function(b){return a.get({select:b.select,condition:encodeURIComponent(b.condition),table:b.report,controller:"counter"}).$promise.then(function(a){return a})["catch"](function(a){console.log(a)})}}}]).controller("apiwidgetCounterEditCtrl",["$scope",function(a){a.config.reportTables=[{name:"Agents",value:"report_agent"},{name:"Calls",value:"report_call"},{name:"Dials",value:"report_dial"},{name:"Queues",value:"report_queue"},{name:"Users",value:"users"},{name:"Chat Sessions",value:"report_chat_session"},{name:"Mail Sessions",value:"report_mail_session"}],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.select=a.config.select?a.config.select:"COUNT(*)",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.condition=a.config.condition?a.config.condition:null,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.report&&c.get(a.config).then(function(b){b?b.result&&b.result.length>1||_.keys(b.result[0]).length>1?(a.tooManyResults=!0,a.result=null):(a.tooManyResults=!1,null!==_.values(b.result[0])[0]?a.result=_.values(b.result[0])[0].toString():a.result="--"):a.result=null})},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","<form role=form><div class=form-group><label for=select>Select</label> <input type=text class=form-control id=condition ng-model=config.select placeholder=Select></div><div class=form-group><label class=control-label>From</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder=From>{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"report.value as report in config.reportTables | filter: $select.search\"><div ng-bind-html=\"report.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label for=condition>Where</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder=Where></div><div class=form-group><label for=condition>{{'APPLICATION_REFRESH_TIMEOUT' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder=\"{{'APPLICATION_REFRESH_TIMEOUT' | translate}}\" min=1></div><div class=form-group><label class=control-label>{{'APPLICATION_WIDGET_COLOR' | translate}}</label><ui-select data-ng-model=config.color name=color theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_WIDGET_COLOR' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"color.value as color in config.colors | filter: $select.search\"><div ng-bind-html=\"color.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label class=control-label>{{'APPLICATION_WIDGET_ICON' | translate}}</label><ui-select data-ng-model=config.icon name=icon theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_WIDGET_ICON' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"icon.value as icon in config.icons | filter: $select.search\"><div ng-bind-html=\"icon.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_DETAILS' | translate}}</label> <input type=text class=form-control id=details ng-model=config.details maxlength=30 placeholder=\"{{'APPLICATION_WIDGET_DETAILS' | translate}}\"></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_LINK' | translate}}</label> <input type=text class=form-control id=link ng-model=config.link placeholder=http://yourlink></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_LINK_TEXT' | translate}}</label> <input type=text class=form-control id=linkText ng-model=config.linkText maxlength=30 placeholder=\"{{'APPLICATION_WIDGET_LINK_TEXT' | translate}}\"></div></form>"),a.put("{widgetsPath}/counter/src/view.html",'<div class=dashboard-stat ng-class=config.color ng-if=result><div class=visual><i class=fa ng-class=config.icon></i></div><div class=details><div class=number>{{result}}</div><div class=desc>{{config.details}}</div></div><a class=more href={{config.link}}>{{config.linkText}} <i class="m-icon-swapright m-icon-white"></i></a></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=tooManyResults><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_TOO_MANY_RESULTS\' | translate}}</div><div class="alert alert-danger" role=alert ng-if="!result && !tooManyResults"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_QUERY_NOT_VALID\' | translate}}</div>')}])}(window),function(a,b){angular.module("adf.widget.pie-chart",["adf.provider"]).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",["Widget",function(a){return{get:function(b){return a.get({condition:encodeURIComponent(b.condition),table:b.report,fields:b.fields,controller:"piechart"}).$promise.then(function(a){return a})["catch"](function(a){console.log(a)})}}}]).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:"report_agent"},{name:"Calls",value:"report_call"},{name:"Dials",value:"report_dial"},{name:"Queues",value:"report_queue"},{name:"Users",value:"users"},{name:"Chat Sessions",value:"report_chat_session"},{name:"Mail Sessions",value:"report_mail_session"}],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&&b.result&&1===b.result.length){a.labels=[],a.data=[];for(var c in b.result[0])a.labels.push(c),a.data.push(b.result[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",'<form role=form><div class=form-group><label class=control-label>{{\'APPLICATION_REPORT\' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder="{{ \'APPLICATION_REPORT\' | translate }}">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="report.value as report in config.reportTables | filter: $select.search"><div ng-bind-html="report.name | highlight: $select.search"></div></ui-select-choices></ui-select></div><div><label class=control-label>{{\'APPLICATION_FIELDS\' | translate}}</label></div><div class=padding-bottom ng-repeat="field in config.fields"><div class=form-group><div class=input-group><input type=text class=form-control ng-model=field.column> <span class=input-group-addon>as</span> <input type=text class=form-control ng-model=field.alias> <span class=input-group-btn ng-if="config.fields.length>1"><button class="btn btn-danger" type=button data-ng-click=removeField($index)><i class="fa fa-times"></i> {{\'APPLICATION_REMOVE\' | translate}}</button></span></div></div></div><button type=button class="btn btn-sm green mbottom20" ng-click=addField()><i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}</button><div class=form-group><label for=condition>{{\'APPLICATION_CONDITION\' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder="{{\'APPLICATION_CONDITION\' | translate}}"></div><div class=form-group><label for=condition>{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder="{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}" min=1></div></form>'),a.put("{widgetsPath}/pie-chart/src/view.html",'<div ng-if=labels.length ng-style=config.style><canvas id=doughnut class="chart chart-doughnut" chart-data=data chart-labels=labels legend=true></canvas></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!labels.length><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!labels.length><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_ONE_VALID_METRIC_AND_CHECK_OTHER\' | translate}}</div>')}])}(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",'<form role=form><div class=form-group><label class=control-label>{{\'APPLICATION_REPORT\' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder="{{ \'APPLICATION_REPORT\' | translate }}">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="report.value as report in config.reportTables | filter: $select.search"><div ng-bind-html="report.name | highlight: $select.search"></div></ui-select-choices></ui-select></div><div><label class=control-label>{{\'APPLICATION_METRICS\' | translate}}</label></div><div class=padding-bottom ng-repeat="field in config.fields"><div class=form-group><div class=input-group><input type=text class=form-control ng-model=field.column> <span class=input-group-addon>as</span> <input type=text class=form-control ng-model=field.alias> <span class=input-group-btn ng-if="config.fields.length>1"><button class="btn btn-danger" type=button data-ng-click=removeField($index)><i class="fa fa-times"></i> {{\'APPLICATION_REMOVE\' | translate}}</button></span></div></div></div><button type=button class="btn btn-sm green mbottom20" ng-click=addField()><i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}</button><div class=form-group><label for=condition>{{\'APPLICATION_CONDITION\' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder="{{\'APPLICATION_CONDITION\' | translate}}"></div><div class=form-group><label for=condition>{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder="{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}" min=1></div><div class=form-group><label for=condition>{{\'APPLICATION_WIDGET_MAX_HEIGHT\' | translate}}</label> <input type=number class=form-control id=height ng-model=config.height placeholder="{{\'APPLICATION_WIDGET_MAX_HEIGHT\' | translate}}" min=350></div></form>'),a.put("{widgetsPath}/table/src/view.html",'<div ng-if=results ng-style=config.style><table st-table=results class="table table-striped table-bordered table-hover"><div class=table-responsive><thead><tr><th colspan={{config.fields.length}}><div class=row><div class=col-md-6></div><div class=col-md-6><div class="input-group input-medium pull-right"><input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class=form-control type=search> <span class=input-group-addon><i class="fa fa-search"></i></span></div></div></div></th></tr><tr><th ng-repeat="field in config.fields">{{field.alias}}</th></tr></thead><tbody><tr data-ng-repeat="result in results" class=animate-repeat><td ng-repeat="field in config.fields">{{result[field.alias]}}</td></tr><tr data-ng-hide=results.length><td colspan={{config.fields.length}} style=text-align:center;><i>{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</i></td></tr></tbody><tfoot><tr><td colspan={{config.fields.length}} class=text-center><div st-pagination class=pagination st-items-by-page=10 st-displayed-pages=3></div></td></tr></tfoot></div></table></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!results><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!results><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_ONE_VALID_FIELD_AND_CHECK_OTHER\' | translate}}</div>')}])}(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<f.length;a++){var b=f[a];b.call()}},n=function(){var a;if(c){var b;$(window).resize(function(){b!=document.documentElement.clientHeight&&(a&&clearTimeout(a),a=setTimeout(function(){m()},50),b=document.documentElement.clientHeight)})}else $(window).resize(function(){a&&clearTimeout(a),a=setTimeout(function(){m()},50)})},o=function(){$("body").on("click",".portlet > .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:'<div class="icheck_line-icon"></div>'+$(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?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><div class="block-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div></div>':a.iconOnly?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif" align=""></div>':a.textOnly?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><span>&nbsp;&nbsp;'+(a.message?a.message:"LOADING...")+"</span></div>":'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif" align=""><span>&nbsp;&nbsp;'+(a.message?a.message:"LOADING...")+"</span></div>",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('<div class="page-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>')):($(".page-loading").remove(),$("body").append('<div class="page-loading"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif"/>&nbsp;&nbsp;<span>'+(a&&a.message?a.message:"Loading...")+"</span></div>"))},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='<div id="'+b+'" class="Metronic-alerts alert alert-'+a.type+' fade in">'+(a.close?'<button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>':"")+(""!==a.icon?'<i class="fa-lg fa fa-'+a.icon+'"></i>  ':"")+a.message+"</div>";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<e.length;b++)if(c=e[b].split("="),c[0]==a)return unescape(c[1]);return null},isTouchDevice:function(){try{return document.createEvent("TouchEvent"),!0}catch(a){return!1}},getViewPort:function(){var a=window,b="inner";return"innerWidth"in window||(b="client",a=document.documentElement||document.body),{width:a[b+"Width"],height:a[b+"Height"]}},getUniqueID:function(a){return"prefix_"+Math.floor(Math.random()*(new Date).getTime())},isIE8:function(){return c},isIE9:function(){return d},isRTL:function(){return b},isAngularJsApp:function(){return"undefined"==typeof angular?!1:!0},getAssetsPath:function(){return g},setAssetsPath:function(a){g=a},setGlobalImgPath:function(a){h=a},getGlobalImgPath:function(){return g+h},setGlobalPluginsPath:function(a){i=a},getGlobalPluginsPath:function(){return g+i},getGlobalCssPath:function(){return g+j},getBrandColor:function(a){return k[a]?k[a]:""},getResponsiveBreakpoint:function(a){var b={xs:480,sm:768,md:900,lg:1200};return b[a]?b[a]:0}}}(),Layout=function(){var a="img/",b="css/",c=Metronic.getResponsiveBreakpoint("md"),d=function(){var a,b=$(".page-content"),d=$(".page-sidebar"),e=$("body");if(e.hasClass("page-footer-fixed")===!0&&e.hasClass("page-sidebar-fixed")===!1){var f=Metronic.getViewPort().height-$(".page-footer").outerHeight()-$(".page-header").outerHeight();b.height()<f&&b.attr("style","min-height:"+f+"px")}else{if(e.hasClass("page-sidebar-fixed"))a=g(),e.hasClass("page-footer-fixed")===!1&&(a-=$(".page-footer").outerHeight());else{var h=$(".page-header").outerHeight(),i=$(".page-footer").outerHeight();a=Metronic.getViewPort().width<c?Metronic.getViewPort().height-h-i:d.height()+20,a+h+i<=Metronic.getViewPort().height&&(a=Metronic.getViewPort().height-h-i)}b.attr("style","min-height:"+a+"px")}},e=function(a,b){var d=location.hash.toLowerCase(),e=$(".page-sidebar-menu");if("click"===a||"set"===a?b=$(b):"match"===a&&e.find("li > 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('<span class="selected"></span>'),1===$(this).children("ul.sub-menu").size()&&$(this).addClass("open")}),"click"===a&&Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click()}},f=function(){jQuery(".page-sidebar").on("click","li > 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<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click());if(!$(this).next().hasClass("sub-menu always-open")){var e=$(this).parent().parent(),f=$(this),g=$(".page-sidebar-menu"),h=jQuery(this).next(),i=g.data("auto-scroll"),j=parseInt(g.data("slide-speed")),k=g.data("keep-expanded");k!==!0&&(e.children("li.open").children("a").children(".arrow").removeClass("open"),e.children("li.open").children(".sub-menu:not(.always-open)").slideUp(j),e.children("li.open").removeClass("open"));var l=-200;h.is(":visible")?(jQuery(".arrow",jQuery(this)).removeClass("open"),jQuery(this).parent().removeClass("open"),h.slideUp(j,function(){i===!0&&$("body").hasClass("page-sidebar-closed")===!1&&($("body").hasClass("page-sidebar-fixed")?g.slimScroll({scrollTo:f.position().top}):Metronic.scrollTo(f,l)),d()})):b&&(jQuery(".arrow",jQuery(this)).addClass("open"),jQuery(this).parent().addClass("open"),h.slideDown(j,function(){i===!0&&$("body").hasClass("page-sidebar-closed")===!1&&($("body").hasClass("page-sidebar-fixed")?g.slimScroll({scrollTo:f.position().top}):Metronic.scrollTo(f,l)),d()})),a.preventDefault()}}}),jQuery(".page-sidebar").on("click"," li > 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<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click(),Metronic.startPageLoading();var f=$(this);$.ajax({type:"GET",cache:!1,url:b,dataType:"html",success:function(a){0===f.parents("li.open").size()&&$(".page-sidebar-menu > li.open > a").click(),Metronic.stopPageLoading(),e.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){Metronic.stopPageLoading(),e.html("<h4>Could not load the requested content.</h4>")}})}),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().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click(),$.ajax({type:"GET",cache:!1,url:b,dataType:"html",success:function(a){Metronic.stopPageLoading(),d.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){d.html("<h4>Could not load the requested content.</h4>"),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}),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(){$("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")},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('<span class="selected"></span>')}),$(".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<c)return void Metronic.destroySlimScroll(d.find(".full-height-content-body"));a=a-b.find(".portlet-title").outerHeight(!0)-parseInt(b.find(".portlet-body").css("padding-top"))-parseInt(b.find(".portlet-body").css("padding-bottom"))-2,b.hasClass("full-height-content-scrollable")?(a-=35,d.find(".full-height-content-body").css("height",a),Metronic.initSlimScroll(d.find(".full-height-content-body"))):d.css("min-height",a)}else{if(Metronic.getViewPort().width<c)return void Metronic.destroySlimScroll(b.find(".full-height-content-body"));b.hasClass("full-height-content-scrollable")?(a-=35,b.find(".full-height-content-body").css("height",a),Metronic.initSlimScroll(b.find(".full-height-content-body"))):b.css("min-height",a)}};return{initHeader:function(){k()},setSidebarMenuActiveLink:function(a,b){e(a,b)},initSidebar:function(){h(),f(),j(),Metronic.isAngularJsApp()&&e("match"),Metronic.addResizeHandler(h)},initContent:function(){n(),l(),Metronic.addResizeHandler(d),Metronic.addResizeHandler(n)},initFooter:function(){m()},init:function(){this.initHeader(),this.initSidebar(),this.initContent(),this.initFooter()},fixContentHeight:function(){d()},initFixedSidebarHoverEffect:function(){i()},initFixedSidebar:function(){h()},getLayoutImgPath:function(){return Metronic.getAssetsPath()+a},getLayoutCssPath:function(){return Metronic.getAssetsPath()+b}}}();angular.module("xCallyShuttleApp").run(["$templateCache",function(a){a.put("app/analytic/extracted/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-file-pdf-o"></i>\n                                      <a href="/analytics/extracted/list">{{ \'APPLICATION_EXTRACTED_REPORTS\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="fa fa-file-pdf-o font-green-sharp"></i>\n                                     <span class="caption-subject">{{ \'APPLICATION_EXTRACTED_REPORTS\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_METRIC\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.metric" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.name.$touched || forms.metric.$submitted) && forms.metric.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.metric.name.$touched || forms.metric.$submitted) && forms.metric.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START TABLE -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.table.$touched || forms.metric.$submitted) && forms.metric.table.$invalid}">\n      <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.table" name="table" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="table.value as table in tables | filter: $select.search">\n          <div ng-bind-html="table.name | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(forms.metric.table.$touched || forms.metric.$submitted) && forms.metric.table.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TABLE-->\n\n    <!-- START METRIC -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.metric.$touched || forms.metric.$submitted) && forms.metric.metric.$invalid}">\n      <label class="control-label">{{\'APPLICATION_METRIC\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <textarea type="text" name="metric" placeholder="{{\'APPLICATION_METRIC\' | translate}}" class="form-control" data-ng-model="item.metric" required/></textarea>\n      <span data-ng-show="(forms.metric.metric.$touched || forms.metric.$submitted) && forms.metric.metric.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END METRIC -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="metric.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.metric.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/metric/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-calculator"></i>\n                                       <a href="/analytics/metrics/list">{{ \'APPLICATION_METRICS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-calculator font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_METRICS\' | translate }}</a> </span>\n                           </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_METRIC\' | translate }}\n                                                </button>\n                                     </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getMetric()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-eye"></i>\n                                      <a href="/analytics/metrics/list">{{ \'APPLICATION_METRICS\' | translate }}</a>\n                                       <i data-ng-show="metric" class="fa fa-angle-right"></i>\n                               </li>\n                         <li data-ng-show="metric">\n                                    <a href="#">{{metric.name}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/metric.png" class="img-responsive">\n                             </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{metric.name}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.analytics.metrics.view.settings\')}">\n                                                    <a data-ng-href="/analytics/metrics/view/{{metric.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/view/view.settings.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_METRIC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                              </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateMetric()" novalidate>\n\n                                                      <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="metric.name" required/>\n                                                         <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START TABLE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.table.$touched || forms.general.$submitted) && forms.general.table.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="metric.table" name="table" theme="bootstrap" required>\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="table.value as table in tables | filter: $select.search">\n                                                                          <div ng-bind-html="table.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.general.table.$touched || forms.general.$submitted) && forms.general.table.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TABLE-->\n\n                                                   <!-- START METRIC -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.metric.$touched || forms.general.$submitted) && forms.general.metric.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_METRIC\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <textarea type="text" name="metric" placeholder="{{\'APPLICATION_METRIC\' | translate}}" class="form-control" data-ng-model="metric.metric" required/></textarea>\n                                                             <span data-ng-show="(forms.general.metric.$touched || forms.general.$submitted) && forms.general.metric.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END METRIC -->\n\n                                                 <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="metric.description"></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
-a.put("app/analytic/report/list/copy.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_COPY_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="portlet light bordered">\n    <div class="portlet-title">\n      <div class="caption font-green-sharp" style="padding-left:10px;">\n        <i class="icon-folder font-green-sharp"></i>\n        <span class="caption-subject">{{ \'APPLICATION_COPY_TO\' | translate }} </span>\n      </div>\n    </div>\n    <div class="portlet-body">\n      <div js-tree="customTreeConfig" ng-model="customTreeData" should-apply="ac()" tree="customTreeInstance" tree-events="ready:initCustomScopeTree;"></div>\n    </div>\n  </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-disabled="!customTree.get_selected(true).pop().id" ng-click="ok()" ng-disabled="forms.report.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.report" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_PATH\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_PATH\' | translate}}" class="form-control" data-ng-model="path" disabled/>\n      <span data-ng-show="(forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.report.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/extract.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_EXTRACT_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body" style="text-align:center;">\n  <form name="forms.report" class="form-inline mbottom20" novalidate>\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DATE_RANGE\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="daterange" name="dates" ranges="ranges" placeholder="{{\'APPLICATION_DATE_RANGE\' | translate}}" class="form-control" data-ng-model="dates" required/>\n    </div>\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn default green-jungle" type="button" data-ng-click="extract(\'csv\')"><i class="fa fa-file-excel-o"></i> {{ \'APPLICATION_SAVE_AS_CSV\' | translate }}</button>\n  <button class="btn default red-intense" type="button" data-ng-click="extract(\'pdf\')"><i class="fa fa-file-pdf-o"></i> {{ \'APPLICATION_SAVE_AS_PDF\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getTrees()">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-book-open"></i>\n                                        <a href="/analytics/reports/list">{{ \'APPLICATION_REPORTS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n                <div class="col-fixed">\n                       <!-- BEGIN Portlet PORTLET-->\n                 <div class="portlet light bordered">\n                          <div class="portlet-title">\n                                   <div class="caption font-green-sharp" style="padding-left:10px;">\n                                             <i class="icon-folder font-green-sharp"></i>\n                                          <span class="caption-subject">{{ \'APPLICATION_FOLDERS\' | translate }} </span>\n                                       </div>\n                                        <div class="inputs">\n                                          <div class="portlet-input input-inline input-small">\n                                                  <div class="input-icon right">\n                                                                <i class="icon-magnifier"></i>\n                                                                <input type="text" data-ng-model="searchField" data-ng-change="searchTrees()" class="form-control input-circle" placeholder="search...">\n                                                      </div>\n                                                </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <div js-tree="defaultTreeConfig" ng-model="defaultTreeData" should-apply="ac()" tree="defaultTreeInstance" tree-events="ready:initDefaultScopeTree;select_node:selectDefaultNode;"></div>\n                                     <div js-tree="customTreeConfig" ng-model="customTreeData" should-apply="ac()" tree="customTreeInstance" tree-events="ready:initCustomScopeTree;select_node:selectCustomNode;rename_node:updateCustomTree;delete_node:updateCustomTree;move_node:updateCustomTree;create_node:updateCustomTree;"></div>\n                                </div>\n                        </div>\n                        <!-- END Portlet PORTLET-->\n           </div>\n                <div class="row tree-row">\n                    <div class="col-md-12">\n                               <!-- BEGIN Portlet PORTLET-->\n                         <div class="portlet light bordered">\n                                  <div class="portlet-title">\n                                           <div class="caption font-green-sharp">\n                                                        <i class="icon-book-open font-green-sharp"></i>\n                                                       <span class="caption-subject">{{ \'APPLICATION_REPORTS\' | translate }}<span data-ng-if="selectedNode"> - {{selectedNode}}</span></span>\n                                              </div>\n                                                <div data-ng-if="!defaultTreeActive" class="actions">\n                                                 <div class="btn-group" data-ng-show="id.length">\n                                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                                           </a>\n                                                  </div>\n                                                        <div class="btn-group">\n                                                               <span class="btn default btn-file">\n                                                           <span class="fileinput-new">\n                                                          <i class="icon-cloud-upload"></i> {{\'APPLICATION_IMPORT_FROM_JSON\' | translate}}</span>\n                                                             <input type="file" on-read-file="import($fileContent)"/>\n                                                              </span>\n                                                       </div>\n                                                        <div class="btn-group">\n                                                               <button class="btn green-jungle " ng-click="create()">\n                                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_REPORT\' | translate }}\n                                                                </button>\n                                                     </div>\n                                                </div>\n                                        </div>\n                                        <div class="portlet-body">\n                                            <div ng-slide-down="gridOptions" lazy-render duration="1">\n                                            <!-- START TABLE -->\n                                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                                              </div>\n                                                <!-- END TABLE -->\n                                    </div>\n                                        </div>\n                                </div>\n                                <!-- END Portlet PORTLET-->\n                   </div>\n                </div>\n        </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/report/list/preview.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_REPORT_PREVIEW\' | translate }}</h3>\n</div>\n<div class="modal-body" style="text-align:center;">\n  <form name="forms.report" class="form-inline mbottom20" novalidate>\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DATE_RANGE\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="daterange" name="dates" ranges="ranges" placeholder="{{\'APPLICATION_DATE_RANGE\' | translate}}" class="form-control" data-ng-model="dates" data-ng-change="getPage()" required/>\n    </div>\n  </form>\n  <div ng-slide-down="showResult" lazy-render duration="1">\n    <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-exporter class="grid extract-grid">\n      <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n    </div>\n  </div>\n</div>\n<div class="modal-footer">\n<button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getReport()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-book-open"></i>\n                                        <a href="/analytics/reports/list">{{ \'APPLICATION_REPORTS\' | translate }}</a>\n                                       <i data-ng-show="report" class="fa fa-angle-right"></i>\n                               </li>\n                         <li data-ng-show="report">\n                                    <a href="#">{{report.name}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/report.png" class="img-responsive">\n                             </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{report.name}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.analytics.reports.view.settings\')}">\n                                                    <a data-ng-href="/analytics/reports/view/{{report.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/report/view/view.settings.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_REPORT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                              </div>\n                                <ul class="nav nav-tabs">\n                                     <li>\n                                          <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                                 <li class="active">\n                                           <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_BUILD\' | translate}}</a>\n                                       </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab" data-ng-click="showResult = true">{{ \'APPLICATION_TEST_PREVIEW\' | translate}}</a>\n                                      </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n\n                          <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane" id="tab_1_1">\n                                           <form name="forms.general" data-ng-submit="forms.report.$valid && forms.general.$valid && updateReport()" novalidate>\n\n\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="report.name" required/>\n                                                         <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="report.description"></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <!-- START TABLE INPUT -->\n\n\n                                                        <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n\n                                     </div>\n                                        <!-- END GENERAL TAB -->\n                                      <div class="tab-pane active" id="tab_1_2">\n                                            <form name="forms.report" data-ng-submit="forms.report.$valid && forms.general.$valid && updateReport()" novalidate>\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.report.table.$touched || forms.report.$submitted) && forms.report.table.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="report.table" name="table" theme="bootstrap" required>\n                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                              <ui-select-choices repeat="table.table as table in tables | filter: $select.search">\n                                                                  <div ng-bind-html="table.name | highlight: $select.search"></div>\n                                                             </ui-select-choices>\n                                                  </ui-select>\n                                                  <span class="help-block">\n                                                     </span>\n                                                       <span data-ng-show="(forms.report.table.$touched || forms.report.$submitted) && forms.report.table.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END TABLE INPUT-->\n                                               <div data-ng-if="report.table" class="mbottom20 pbottom20">\n                                           <div class="portlet-title tabbable-line">\n                                                     <div class="caption caption-md">\n                                                              <i class="icon-globe theme-font hide"></i>\n                                                            <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_FIELDS\' | translate}} </span>\n                                                        </div>\n                                                </div>\n                                                                <!-- START TABLE -->\n                                                          <table class="table table-striped table-bordered table-hover">\n                                                                        <thead>\n                                                                               <tr>\n                                                                                  <th>{{ \'APPLICATION_FIELD\' | translate }} / {{ \'APPLICATION_METRIC\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_ALIAS\' | translate }}</th>\n                                                                                      <th>{{ \'APPLICATION_FUNCTION\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_GROUP_BY\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_ORDER_BY\' | translate }}</th>\n                                                                                   <th></th>\n                                                                                     <th></th>\n                                                                             </tr>\n                                                                 </thead>\n                                                                              <tbody ui-sortable="sortableOptions" data-ng-model="report.Fields">\n                                                                                   <tr data-ng-repeat="field in report.Fields">\n                                                                                          <td>\n                                                                                                  <!-- START FIELD -->\n                                                                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.report.$submitted && !field.field}">\n                                                                                                             <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.field" dynamic-name="randomName()" theme="bootstrap" on-select="setMetricId($item,$index)" required>\n                                                                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}"><span ng-bind-html="$select.selected.name"></span></ui-select-match>\n                                                                                                                     <ui-select-choices repeat="tableField.value as tableField in tableFields | filter: $select.search">\n                                                                                                                           <div ng-bind-html="tableField.name | highlight: $select.search"></div>\n                                                                                                                        </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                          <span data-ng-show="forms.report.$submitted && !field.field" class="help-block help-block-error">\n                                                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                                         </span>\n                                                                                                       </div>\n                                                                                                        <!-- END FIELD-->\n                                                                                             </td>\n                                                                                         <td>\n                                                                                                  <!-- START ALIAS -->\n                                                                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.report.$submitted && !field.alias}">\n                                                                                                             <!-- <label class="control-label">{{\'APPLICATION_ALIAS\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <input type="text" dynamic-name="randomName()" placeholder="{{\'APPLICATION_ALIAS\' | translate}}" class="form-control" data-ng-model="field.alias" required/>\n                                                                                                                <span data-ng-show="forms.report.$submitted && !field.alias" class="help-block help-block-error">\n                                                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                                         </span>\n                                                                                                       </div>\n                                                                                                        <!-- END ALIAS -->\n                                                                                            </td>\n                                                                                         <td>\n                                                                                                  <!-- START FUNCTION -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.function" name="function" theme="bootstrap">\n                                                                                                                  <ui-select-match placeholder="{{\'APPLICATION_FUNCTION\' | translate}}" allow-clear>{{$select.selected.name}}</ui-select-match>\n                                                                                                                       <ui-select-choices repeat="function.value as function in functions | filter: $select.search">\n                                                                                                                         <div ng-bind-html="function.name | highlight: $select.search"></div>\n                                                                                                                  </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END FUNCTION-->\n                                                                                          </td>\n                                                                                         <td>\n                                                                                                  <!-- START GROUP_BY -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.groupBy" name="groupBy" theme="bootstrap" required>\n                                                                                                                   <ui-select-match placeholder="{{\'APPLICATION_GROUP_BY\' | translate}}">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                                                       <ui-select-choices repeat="groupBy.value as groupBy in groupByField | filter: $select.search">\n                                                                                                                                {{$translate.instant(groupBy.name)}}\n                                                                                                                  </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END GROUP_BY-->\n                                                                                          </td>\n                                                                                         <td>\n                                                                                                  <!-- START ORDER_BY -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.orderBy" name="orderBy" theme="bootstrap">\n                                                                                                                    <ui-select-match placeholder="{{\'APPLICATION_ORDER_BY\' | translate}}" allow-clear>{{$select.selected}}</ui-select-match>\n                                                                                                                    <ui-select-choices repeat="orderBy in [\'ASC\',\'DESC\'] | filter: $select.search">\n                                                                                                                           <div ng-bind-html="orderBy | highlight: $select.search"></div>\n                                                                                                                        </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END TABLE INPUT-->\n                                                                                               </td>\n                                                                                         <td class="report-field-remove">\n                                                                                                      <button class="btn red" type="button" data-ng-click="removeField($index)"><i class="fa fa-times"></i></button>\n                                                                                                </td>\n                                                                                         <td class="report-field-handle">\n                                                                                                      <!-- <img data-ng-src="assets/images/move.png" class="img-responsive"> -->\n                                                                                            </td>\n                                                                                 </tr>\n                                                                                 <tr data-ng-hide="report.Fields.length" class="unsortable">\n                                                                                           <td colspan="7" style="text-align:center;">\n                                                                                                   <i>{{ \'MESSAGE_ADD_A_FIELD\' | translate }}</i>\n                                                                                              </td>\n                                                                                 </tr>\n                                                                         </tbody>\n                                                              </table>\n                                                              <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n                                                                  <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}\n                                                          </button>\n                                                             <!-- END TABLE -->\n                                                    </div>\n                                                                <div data-ng-if="report.Fields.length" class="mbottom20 pbottom20">\n                                                                   <div class="portlet-title tabbable-line">\n                                                                             <div class="caption caption-md">\n                                                                                      <i class="icon-globe theme-font hide"></i>\n                                                                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CONDITIONS\' | translate}} </span>\n                                                                            </div>\n                                                                        </div>\n                                                                        <div class="alert alert-info">\n                                                                                        <strong>Output</strong><br>\n                                                                                   <span ng-bind-html="output"></span>\n                                                                   </div>\n\n                                                                      <report-builder group="report.conditions.group" fields="report.Fields" forms="forms" firstCall=\'true\'></report-builder>\n                                                             </div>\n                                                                <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                          </form>\n                                       </div>\n                                        <div class="tab-pane" id="tab_1_3">\n                                           <div ng-slide-down="showResult" lazy-render duration="0.5">\n                                                   <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-move-columns class="grid">\n                                                             <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                                                      </div>\n                                                </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/offline/list/list.html",'<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-login"></i>\n                                            <a href="/channels/chat/offline/list">Offline</a>\n                                     </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-question font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/offline/view/view.detail.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAIL\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body row" data-ng-init="initView()">\n                              <div class="col-md-6">\n                                        <div class="news-blocks">\n                                             <h3>\n                                                  <a href="#" class="inactive-link">{{\'APPLICATION_MESSAGE\' | translate}}</a>\n                                                 <hr>\n                                          </h3>\n                                         <div class="news-block-tags">\n                                                 <em am-time-ago="chatVisitor.ChatEnquiry.createdAt"></em>\n                                             </div>\n                                                <p>\n                                                   {{chatVisitor.ChatEnquiry.text}}\n                                              </p>\n                                  </div>\n                                </div>\n                                <div class="col-md-6">\n                                        <div class="news-blocks">\n                                             <h3>\n                                                  <a href="#" class="inactive-link">{{\'APPLICATION_VISITOR\' | translate}}</a>\n                                                 <hr>\n                                          </h3>\n                                         <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-user"></i>\n                                                     <a href="#" class="inactive-link">{{chatVisitor.fullname}}</a>\n                                                </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-envelope"></i>\n                                                 <a href="#" class="inactive-link">{{chatVisitor.email}}</a>\n                                           </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-globe"></i>\n                                                    <a href="#" class="inactive-link">{{chatVisitor.remote_address}}</a>\n                                          </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-home"></i>\n                                                     <a href="#" class="inactive-link">{{chatVisitor.referer}} - {{chatVisitor.ChatWebsite.name}}</a>\n                                              </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-cursor"></i>\n                                                   <a href="#" class="inactive-link">{{chatVisitor.browser}}</a>\n                                         </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-screen-desktop"></i>\n                                                   <a href="#" class="inactive-link">{{chatVisitor.os}}</a>\n                                              </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/offline/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-login"></i>\n                                    <a href="/channels/chat/offline/list">Offline</a>\n                             </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/enquiry.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- START USER TITLE -->\n                             <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chatVisitor.ChatEnquiry.email}}\n                                     </div>\n                                        <div class="profile-usertitle-job">\n                                           {{chatVisitor.ChatEnquiry.username}}\n                                  </div>\n                                </div>\n                                <!-- END USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.chat.offline.view.detail\')}">\n                                                  <a data-ng-href="/channels/chat/offline/view/{{chatVisitor.id}}/detail">\n                                                      <i class="icon-tag"></i>\n                                                      {{ \'APPLICATION_DETAIL\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/online/list/list.html",'<div class="row">\n       <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-login"></i>\n                                            <a href="/channels/chat/offline/list">Offline</a>\n                                     </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-question font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/online/view/view.detail.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAIL\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body row" data-ng-init="initView()">\n                              <div class="col-md-6">\n                                        <div class="news-blocks">\n                                             <h3>\n                                                  <a href="#" class="inactive-link">{{\'APPLICATION_MESSAGES\' | translate}}</a>\n                                                        <!-- <a href="#" data-ng-click="export()" data-ng-show="chatRoom.ChatMessages.length" class="btn btn-sm blue pull-right"><i class="icon-cloud-download"></i> {{\'APPLICATION_EXPORT\' | translate}} CSV </a> -->\n                                                      <a href="api/chat/rooms/{{chatRoom.id}}/export" target="_blank" data-ng-show="chatRoom.ChatMessages.length" class="btn btn-sm blue pull-right"><i class="icon-cloud-download"></i> {{\'APPLICATION_EXPORT\' | translate}} CSV </a>\n                                                    <hr>\n                                          </h3>\n                                         <div class="news-block-tags">\n                                                 <em am-time-ago="chatRoom.ChatVisitor.ChatEnquiry.createdAt"></em>\n                                            </div>\n                                                <p>\n                                                   <div ng-scrollbars ng-scrollbars-config="config">\n                                                             <ul class="chats">\n                                                                    <li data-ng-class="{\'out\': message.User, \'in\':message.ChatVisitor}" data-ng-repeat="message in chatRoom.ChatMessages | orderBy:\'createdAt\'">\n                                                                            <img class="avatar" data-ng-src="api/users/avatar/{{message.User.userpic || \'unknown_avatar\'}}">\n                                                                            <div class="message">\n                                                                                 <span class="arrow">\n                                                                                  </span>\n                                                                                       <a href="#" class="name">\n                                                                                             {{message.User ? message.User.fullname : message.ChatVisitor.fullname}}\n                                                                                       </a>\n                                                                                  <span class="datetime">\n                                                                                               at {{message.createdAt | date: \'medium\'}}\n                                                                                   </span>\n                                                                                       <span class="body">\n                                                                                           {{message.body}}\n                                                                                      </span>\n                                                                               </div>\n                                                                        </li>\n                                                         </ul>\n                                                 </div>\n                                                </div>\n                                        </div>\n                                        <div class="col-md-6">\n                                                <div class="news-blocks">\n                                                     <h3>\n                                                          <a href="#" class="inactive-link">{{\'APPLICATION_VISITOR\' | translate}}</a>\n                                                         <hr>\n                                                  </h3>\n                                                 <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-user"></i>\n                                                             <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.fullname}}</a>\n                                                       </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-envelope"></i>\n                                                         <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.email}}</a>\n                                                  </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-globe"></i>\n                                                            <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.remote_address}}</a>\n                                                 </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-home"></i>\n                                                             <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.referer}} - {{chatRoom.ChatVisitor.ChatWebsite.name}}</a>\n                                                    </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-cursor"></i>\n                                                           <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.browser}}</a>\n                                                        </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-screen-desktop"></i>\n                                                           <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.os}}</a>\n                                                     </div>\n                                                </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n'),
-a.put("app/channels/chat/online/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-login"></i>\n                                    <a href="/channels/chat/online/list">Online</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/enquiry.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- START USER TITLE -->\n                             <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chatRoom.ChatVisitor.email}}\n                                        </div>\n                                        <div class="profile-usertitle-job">\n                                           {{chatRoom.ChatVisitor.fullname}}\n                                     </div>\n                                </div>\n                                <!-- END USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.chat.online.view.detail\')}">\n                                                   <a data-ng-href="/channels/chat/online/view/{{chatRoom.id}}/detail">\n                                                  <i class="icon-tag"></i>\n                                                      {{ \'APPLICATION_DETAIL\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/preview/preview.html",'<style>\n.xc_rating {\n  text-align: center;\n}\n.xc_rating_label > input{ /* HIDE RADIO */\n  display:none;\n}\n.xc_rating_label > input + img{ /* IMAGE STYLES */\n  cursor:pointer;\n  border:2px solid transparent;\n}\n.xc_rating_label > input:checked + img{ /* (CHECKED) IMAGE STYLES */\n  /*border:2px solid #f00;*/\n  background-color: #efefef;\n}\n\n.xc_label {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 5px;\n  font-weight: bold;\n}\n\n.xc_online_message,\n.xc_offline_message,\n.xc_rating_message\n{\n  text-align: center;\n}\n\n.xc_div_group {\n  margin: 10px 0 10px 0;\n}\n.xc_footer\n{\n  text-align: center;\n  padding-bottom: 5px;\n}\n\n.xc_powered\n{\n  color: grey;\n  font: 10px/16px "Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif;\n  padding-bottom: 5px;\n}\n\n.xc_chat_container\n{\n  //width:379px;\n  //position:fixed;\n  //bottom:0;\n  //right:50px;\n  z-index:9999;\n  background-color:transparent;\n}\n\n.xc_chat_container *\n{\n  font-family:Arial,Helvetica,sans-serif;\n  font-size:13px;\n  margin:0;\n  padding:0;\n}\n\n.xc_chat_container p\n{\n  margin:5px 0;\n}\n\n.xc_signup_wrapper\n{\n  max-height:375px;\n}\n\n.xc_conversation_container\n{\n  max-height:375px;\n  list-style:none;\n  overflow:auto;\n  margin:0;\n  padding:20px 10px;\n}\n\n.xc_conversation_container a\n{\n  color:#036;\n}\n\n.xc_conversation_container a.xc_btn_style\n{\n  color:#fff;\n}\n\ndiv.xc_chat_head\n{\n  color:#fff;\n  background:{{chatWebsite.color}};\n  //border-radius: 20px 20px 0px 0px !important;\n  height:52px;\n  line-height:55px;\n  cursor:pointer;\n}\n\ndiv.xc_chat_head.rounded\n{\n  border-radius: 20px 20px 0px 0px !important;\n}\n\ndiv.xc_chat_head.squared\n{\n  //border-radius: 20px 20px 0px 0px !important;\n}\n\n.xc_chat_head-title\n{\n  margin:5px 0 0 15px;\n  color: #fff;\n}\n\n.xc_header_icon\n{\n  display:block;\n  background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n  width:21px;\n  height:16px;\n  float:right;\n  margin:20px 20px 0 0;\n}\n\n.xc_header_icon span.xc_notification_badge span\n{\n  display:block;\n  height:16px;\n  width:15px;\n  text-align:center;\n  font-size:9px;\n  color:#555;\n  position:relative;\n  top:-20px;\n  left:4px;\n  margin:0;\n  padding:0;\n}\n\n.xc_sub-head-spacer\n{\n  padding:1px;\n}\n\n.xc_conversation\n{\n  display:none;\n  margin:0 12px 0 11px;\n}\n\n.xc_chat_toggle_container\n{\n  /*background:mediumslateblue center 52px;*/\n  background: white;\n  border-style: solid;\n  border-width: 1px;\n  border-color: {{chatWebsite.color}};\n  //display:none;\n}\n\n.xc_signup_wrapper,.xc_notifications_wrapper,.xc_enquiry_wrapper,.xc_rating_wrapper\n{\n  //display:none;\n  display:block;\n  overflow:auto;\n  line-height:1;\n  padding:25px;\n}\n\n.xc_exit_chat_container\n{\n  text-align:right;\n  width:95%;\n  margin:0 auto;\n  padding:5px 1px 0 0;\n}\n\n.xc_exit_chat_container span,.xc_exit_chat_container a\n{\n  font-size:80%;\n  color:#666;\n  text-decoration:none;\n}\n\n.xc_exit_chat_container a:hover\n{\n  color:#333;\n}\n\na.xc_btn_exit_chat_confirm:hover\n{\n  color:red;\n}\n\na.xc_btn_exit_chat_cancel:hover\n{\n  color:#0c0;\n}\n\nform.xc_form_reply\n{\n  position:relative;\n}\n\n.xc_form_reply\n{\n  /*background-color:#e3e3e3;*/\n  text-align:center;\n  /*border-top:1px solid #d3d3d3;*/\n}\n\n.xc_input_message\n{\n  height:100px;\n  margin:10px auto 5px;\n}\n\n.xc_input_enquiry_message,\n.xc_input_rating_message\n{\n  height:100px;\n}\n\n.xc_form_signup,.xc_form_enquiry,.xc_form_rating\n{\n  /*text-align:center;*/\n}\n\n.xc_chat_container textarea,.xc_chat_container input[type=text]\n{\n  width:95%;\n  min-width:95%;\n  max-width:95%;\n  -webkit-box-sizing:border-box;\n  -moz-box-sizing:border-box;\n  box-sizing:border-box;\n  background-color:#fff;\n  border:1px solid #ccc;\n  -webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  -moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  -webkit-transition:border linear .2s, box-shadow linear .2s;\n  -moz-transition:border linear .2s, box-shadow linear .2s;\n  -o-transition:border linear .2s, box-shadow linear .2s;\n  transition:border linear .2s, box-shadow linear .2s;\n  display:inline-block;\n  font-size:14px;\n  line-height:20px;\n  color:#555;\n  -webkit-border-radius:4px;\n  -moz-border-radius:4px;\n  border-radius:4px;\n  vertical-align:middle;\n  margin:3px 0;\n  padding:4px 6px;\n  resize: none;\n}\n\n.xc_chat_container textarea:focus,.xc_chat_container input[type=text]:focus\n{\n  outline: {{chatWebsite.color_focus}} auto 5px;\n}\n\n.xc_chat_container input[type=text]\n{\n  height: 30px;\n}\n\n.xc_message_sending textarea, .xc_enquiry_sending textarea\n{\n  background: #fff url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/loading.gif) 98% 5px no-repeat;\n}\n\n.xc_chatrow\n{\n  display:block;\n  border-top:1px dashed #e3e3e3;\n  margin:5px 0;\n  clear: both;\n}\n\n.xc_chatrow p\n{\n  color:#444;\n  word-wrap:break-word;\n}\n\n.xc_time\n{\n  float:right;\n  font-size:80%;\n  color:#ccc;\n  padding-left:12px;\n  margin:3px;\n}\n\n.xc_submission_pending\n{\n  background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_clock.png) left center norepeat;\n}\n\n.xc_submission_confirmed\n{\n  background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_tick.png) left center norepeat;\n}\n\n.xc_fullname\n{\n  font-weight:700;\n}\n\n.xc_fullname:after\n{\n  content:":";\n}\n\n.xc_avatar\n{\n  float: left;\n  margin: 0 5px 5px 0;\n  display: inline-block;\n  width: 40px;\n  height: 40px;\n  border-radius: 5px;\n  -moz-border-radius: 5px;\n  -webkit-border-radius: 5px;\n}\n\n.xc_smilie\n{\n  background-repeat:no-repeat;\n  display:inline-block;\n  width:18px;\n  height:18px;\n  text-indent:-9999px;\n  white-space:nowrap;\n}\n\n.xc_btn_load_more\n{\n  width:100%!important;\n}\n\n.xc_notifications_wrapper\n{\n  text-shadow:0 1px 0 rgba(255,255,255,0.5);\n}\n\n.xc_notification_success\n{\n  color:#468847;\n}\n\n.xc_notification_error\n{\n  color:#b94a48;\n}\n\n.xc_errorlist\n{\n  margin:0 0 0 25px;\n  padding:0;\n}\n\ni.xc_btn_notifications_close\n{\n  float:right;\n  font-weight:700;\n  font-size:20px;\n  color:#ccc;\n  cursor:pointer;\n  margin:-15px 0 0;\n  padding:0;\n}\n\n.xc_btn_style\n{\n  width:95%;\n  text-align:center;\n  line-height:1.2;\n  font-size:90%;\n  -moz-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  -webkit-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  background:0;\n  background-color:{{chatWebsite.color_button}};\n  -moz-border-radius:4px;\n  -webkit-border-radius:4px;\n  border-radius:4px;\n  border:1px solid {{chatWebsite.color_button}};\n  display:inline-block;\n  color:#fff;\n  font-weight:700;\n  text-decoration:none;\n  text-shadow:1px 1px 0 #000c17;\n  margin:0 auto 5px;\n  padding:2px 0;\n}\n\n.xc_btn_style:hover\n{\n  background:0;\n  background-color:{{chatWebsite.color_button}};\n  color: #fff;\n  text-decoration: none;\n}\n\n.xc_btn_style:active\n{\n  position:relative;\n  top:1px;\n}\n\n.xc_composing_container\n{\n  display: none;\n  width: 95%;\n  margin: 0 auto;\n  background: transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_pencil.png) 6px center no-repeat;\n  padding-left: 19px;\n  font-style: italic;\n}\n\n@media only screen and (max-height: 620px) {\n  .xc_conversation_container\n  {\n    max-height:300px!important;\n  }\n}\n\n@media only screen and (max-height: 545px) {\n  .xc_conversation_container\n  {\n    max-height:200px!important;\n  }\n}\n\n@media only screen and (max-height: 445px) {\n  .xc_conversation_container\n  {\n    max-height:150px!important;\n  }\n}\n\n@media only screen and (max-width: 480px) {\n  .xc_chat_container\n  {\n    width:95%!important;\n    right:auto!important;\n    -webkit-border-top-left-radius:15px;\n    -webkit-border-top-right-radius:15px;\n    -moz-border-radius-topleft:15px;\n    -moz-border-radius-topright:15px;\n    border-top-left-radius:15px;\n    border-top-right-radius:15px;\n    box-shadow:0 0 5px rgba(0,0,0,.5);\n    -webkit-box-shadow:0 0 5px rgba(0,0,0,.5);\n    -moz-box-shadow:0 0 5px rgba(0,0,0,.5);\n  }\n\n  div.xc_chat_head\n  {\n    background-color:#036;\n    background-image:none;\n    line-height:25px;\n    height:auto;\n    -webkit-border-top-left-radius:15px;\n    -webkit-border-top-right-radius:15px;\n    -moz-border-radius-topleft:15px;\n    -moz-border-radius-topright:15px;\n    border-top-left-radius:15px;\n    border-top-right-radius:15px;\n    padding:10px;\n  }\n\n  .xc_chat_toggle_container\n  {\n    background-color:#fff;\n    background-image:none;\n    border-color:#036;\n    border-style:solid;\n    border-width:0 1px;\n  }\n\n  .xc_header_icon\n  {\n    background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n    margin:0;\n  }\n\n  .xc_header_icon span.xc_notification_badge span\n  {\n    top:-5px;\n    left:5px;\n  }\n\n  .xc_notification_success\n  {\n    background-color:#dff0d8;\n    border:1px solid #d6e9c6;\n  }\n\n  .xc_conversation_container\n  {\n    max-height:375px;\n    border-color:#036;\n  }\n\n  .xc_notification_error\n  {\n    background-color:#f2dede;\n    border:1px solid #eed3d7;\n  }\n\n  .xc_sub-head-spacer\n  {\n    display:none;\n    padding:0;\n  }\n\n  .xc_chat_head-title,.xc_conversation\n  {\n    margin:0;\n  }\n}\n</style>\n<div class="xc_chat_container">\n  <div class="xc_chat_head {{chatWebsite.header_shape}}">\n    <i class="xc_header_icon">\n      <span class="xc_notification_badge">\n        <span class="xc_notification_badge_number"></span>\n      </span>\n    </i>\n    <span class="xc_chat_head-title">{{statePreview.state == \'online\' ? chatWebsite.header_online : chatWebsite.header_offline}}</span>\n  </div>\n  <div class="xc_chat_toggle_container">\n    <div class="xc_sub-head-spacer"></div>\n    <!-- <div class="xc_notifications_wrapper">\n    <ul class="xc_errorlist"></ul>\n  </div> -->\n  <div class="xc_enquiry_wrapper" data-ng-show=\'statePreview.state == "offline"\'>\n    <form class="xc_form_enquiry" accept-charset="UTF-8">\n      <p class="xc_offline_message" ng-bind-html=\'chatWebsite.offline_message\'></p>\n      <br>\n      <div ng-if="chatWebsite.enquiry_enable">\n        <div class="xc_div_group">\n          <label for="enquiryFullname" class="xc_label">Name *</label>\n          <input id="enquiryFullname" maxlength="45" data-label="Name" type="text" name="data[Enquiry][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_enquiry_fullname" required/>\n        </div>\n        <br>\n        <div class="xc_div_group">\n          <label for="enquiryEmail" class="xc_label">Email Address *</label>\n          <input id="enquiryEmail" maxlength="85" type="text" data-label="Email Address" name="data[Enquiry][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_enquiry_email" required/>\n        </div>\n        <br>\n        <div class="xc_div_group">\n          <label for="enquiryMessage" class="xc_label">Message*</label>\n          <textarea id="enquiryMessage" data-label="Message" maxlength="1500" placeholder="{{chatWebsite.enquiry_message_placeholder}}" name="data[Enquiry][message]" class="xc_input_enquiry_message" required></textarea>\n        </div>\n        <br>\n        <button type="submit" class="xc_btn_enquiry xc_btn_style">{{chatWebsite.enquiry_button}}</button>\n      </div>\n    </form>\n  </div>\n  <div class="xc_signup_wrapper" data-ng-show=\'statePreview.state == "online"\'>\n    <form class="xc_form_signup" accept-charset="UTF-8">\n      <p class="xc_online_message" ng-bind-html=\'chatWebsite.online_message\'></p>\n      <br>\n      <div class="xc_div_group">\n        <label for="dataFullname" class="xc_label">Fullname *</label>\n        <input maxlength="45" id="dataFullname" data-label="Fullname" type="text" name="data[Discussion][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_fullname" required/>\n      </div>\n      <br>\n      <div class="xc_div_group">\n        <label for="dataEmail" class="xc_label">Email Address *</label>\n        <input maxlength="85" id="dataEmail" data-label="Email Address" type="text" name="data[Discussion][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_email" required/>\n      </div>\n      <br>\n      <input type="hidden" class="xc_input_visitor_time" name="data[Discussion][visitor_time]" />\n      <button type="submit" class="xc_btn_signup xc_btn_style">{{chatWebsite.start_chat_button}}</button>\n    </form>\n  </div>\n  <div class="xc_rating_wrapper" data-ng-show=\'statePreview.state == "rating"\'>\n    <form class="xc_form_rating" accept-charset="UTF-8">\n      <p class="xc_rating_message">{{chatWebsite.rating_message}}</p>\n      <br>\n      <div class="xc_rating">\n        <label class="xc_rating_label" style="padding:30px;">\n          <input type="radio" name="data[Rating][rating]" value="good" />\n          <img src="{{chatWebsite.remote}}/api/xchatty/assets?resource=images/like.png" alt="Good" height="50"/>\n        </label>\n        <label class="xc_rating_label" style="padding:30px;">\n          <input type="radio" name="data[Rating][rating]" value="bad"/>\n          <img src="{{chatWebsite.remote}}/api/xchatty/assets?resource=images/dislike.png" alt="Good" height="50"/>\n        </label>\n      </div>\n      <div class="xc_div_group">\n        <label for="ratingMessage" class="xc_label">Message</label>\n        <textarea id="ratingMessage" data-label="Message" maxlength="1500" name="data[Rating][message]" class="xc_input_rating_message"></textarea>\n      </div>\n      <button type="submit" class="xc_button_rating xc_btn_style">{{chatWebsite.rating_send}}</button>\n      <button type="button" class="xc_button_skip_rating xc_btn_style">{{chatWebsite.rating_skip}}</button>\n    </form>\n  </div>\n  <div class="xc_footer">\n    <div class="xc_powered"><a>Powered by Xenialab | Trademark xCALLY</a></div>\n  </div>\n</div>\n</div>\n'),a.put("app/channels/chat/queue/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid && form.general.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <!-- START TIMEOUT -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid}">\n      <label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="number" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n      <span data-ng-show="(form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid && form.general.timeout.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TIMEOUT -->\n\n    <!-- START HEADER SHAPE -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid}">\n      <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n        <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid && form.general.strategy.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END HEADER SHAPE -->\n\n\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/chat/queue/list/list.html",'<div class="row">\n <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-docs"></i>\n                                             <a href="#">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <a class="btn green-jungle " href="#"  data-ng-click="createItem()">\n                                          <i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }}\n                                 </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body">\n                                               <label for="penalty">{{\'APPLICATION_PENALTY\' | translate}}</label>\n                                          <div class="input-group input-small mbottom20">\n                                                       <input type="number" class="spinner-input form-control" maxlength="3" data-ng-model="queue.penalty" readonly>\n                                                 <div class="spinner-buttons input-group-btn btn-group-vertical">\n                                                              <button type="button" class="btn spinner-up btn-xs blue" data-ng-click="queue.penalty=queue.penalty+1">\n                                                                       <i class="fa fa-angle-up"></i>\n                                                                </button>\n                                                             <button type="button" class="btn spinner-down btn-xs blue" data-ng-disabled="!queue.penalty" data-ng-click="queue.penalty=queue.penalty-1">\n                                                                   <i class="fa fa-angle-down"></i>\n                                                              </button>\n                                                     </div>\n                                                </div>\n                                                <div class="form-group last">\n                                                 <div class="col-md-12" id="multi-select-team">\n                                                        </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/channels/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                     <i data-ng-show="queue" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="queue">\n                                     <a href="#">{{queue.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{queue.name}}\n                                        </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.chat.queues.view.settings\')}">\n                                                 <a data-ng-href="/channels/chat/queues/view/{{queue.id}}/settings">\n                                                   <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.chat.queues.view.agents\')}">\n                                                   <a data-ng-href="/channels/chat/queues/view/{{queue.id}}/agents">\n                                                     <i class="icon-people"></i>\n                                                   {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/queue/view/view.settings.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateChatQueue()" novalidate>\n                                     <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n                                          <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n                                      </div>\n                                        <!-- END DESCRIPTION -->\n\n                                    <!-- START TIMEOUT -->\n                                        <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_AGENT\' | translate}} {{\'APPLICATION_TIMEOUT\' | translate}}</label>\n                                            <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n                                        </div>\n                                        <!-- END TIMEOUT -->\n\n                                        <!-- START HEADER SHAPE -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n                                         <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                               <ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                     <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                 </ui-select-choices>\n                                          </ui-select>\n                                  </div>\n                                        <!-- END HEADER SHAPE -->\n                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                       </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns  class="ui-grid" ui-grid-tree-view ui-grid-expandable-row ui-grid-pagination auto-resize>\n                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/realtime/view/agent/agent.modal.info.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_INTERFACE_INFO\' | translate }}</h3>\n</div>\n<div class="modal-body">\n<div data-ng-if="agent.ipaddr" class="well">\n  <div>{{agent.ipaddr}}:{{agent.port}}</div>\n  <div>{{agent.fullcontact}}</div>\n  <div>{{agent.useragent}}</div>\n  <div>{{agent.lastms}}</div>\n</div>\n<div data-ng-if="!agent.ipaddr" class="alert alert-danger" role="alert">\n  {{\'MESSAGE_NO_AVAILABLE_INFO\' | translate}}\n</div>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="close()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/channels/chat/realtime/view/agent/queue.modal.add.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_JOIN_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <div class="form-group row">\n  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n  <div class="col-md-10">\n    <ui-select multiple ng-model="item.queues" theme="bootstrap" required>\n      <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$item.name}}</ui-select-match>\n      <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n        <div ng-bind-html="queue.name | highlight: $select.search"></div>\n      </ui-select-choices>\n    </ui-select>\n  </div>\n</div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/chat/realtime/view/queue/queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initQueues()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns class="ui-grid" ui-grid-tree-view auto-resize>\n                     <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/channels/chat/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initSessions()">\n    <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns class="ui-grid" auto-resize>\n                       <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-energy"></i>\n                                   <a href="#">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <div>\n                 <nav class="navbar navbar-default" role="navigation">\n                         <div class="collapse navbar-collapse">\n                                        <ul class="nav navbar-nav">\n                                           <li data-ng-class="{\'active\': $state.is(\'main.channels.chat.realtime.view.agents\')}">\n                                                     <a href="/channels/chat/realtime/view/agents">\n                                                                {{\'APPLICATION_AGENTS\' | translate}}\n                                                        </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                        </nav>\n                </div>\n\n              <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/visitor/list/list.html",'<div class="row">\n      <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-question"></i>\n                                         <a href="/channels/chat/visitors/list">{{ \'APPLICATION_VISITORS\' | translate }}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-question font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/visitor/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-question"></i>\n                                 <a href="/channels/chat/visitors/list">{{ \'APPLICATION_VISITORS\' | translate }}</a>\n                                 <i  class="fa fa-angle-right"></i>\n                            </li>\n                         <li data-ng-show="chatVisitor">\n                                       <a href="#">{{chatVisitor.fullname}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/visitor.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chatVisitor.fullname}}\n                                      </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.chat.visitors.view.profile\')}">\n                                                        <a data-ng-href="/channels/chat/visitors/view/{{chatVisitor.id}}/profile">\n                                                    <i class="icon-tag"></i>\n                                                      {{ \'APPLICATION_PROFILE\' | translate}} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/visitor/view/view.profile.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_PROFILE\' | translate}}</span>\n                         </div>\n                        </div>\n                        <div class="portlet-body" data-ng-init="initView()">\n                          <div>\n                                 <h4 class="profile-desc-title">{{chatVisitor.email}}</h4>\n                                     <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-magnifier"></i>\n                                                <a href="#" class="inactive-link">{{chatVisitor.origin}}</a>\n                                  </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-globe"></i>\n                                            <a href="#" class="inactive-link">{{chatVisitor.remote_address}}</a>\n                                  </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-user"></i>\n                                             <a href="#" class="inactive-link">{{chatVisitor.user_agent | truncate: 50: \'...\'}}</a>\n                                      </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-flag"></i>\n                                             <a href="#" class="inactive-link">{{chatVisitor.visitor_language}}</a>\n                                        </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-home"></i>\n                                             <a href="#" class="inactive-link">{{chatVisitor.referer}}</a>\n                                 </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-cursor"></i>\n                                           <a href="#" class="inactive-link">{{chatVisitor.browser}}</a>\n                                 </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-screen-desktop"></i>\n                                           <a href="#" class="inactive-link">{{chatVisitor.os}}</a>\n                                      </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/website/list/list.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-globe"></i>\n                                    <a href="#">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n        </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_WEB_SITES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/chat/websites/wizard">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_WEB_SITE\' | translate }}\n                                              </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/website/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/chat/websites/view/{{chatWebsite.id}}/actions/wizard" data-toggle="dropdown">\n                                                     <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n                                                </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/website/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n      <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.settings" ng-submit="updateItem()" novalidate>\n                                      <!-- START APP -->\n                                    <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n                                          <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                       </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END APP -->\n\n                                    <!-- START HOST -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n                                           <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                         <span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END HOST -->\n\n                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                          <!-- START QUEUE -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                             </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END QUEUE -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                          <!-- START AGENT -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                         </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END AGENT -->\n                                    </div>\n\n                                      <!-- START INTERVAL_TYPE -->\n                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n                                           <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                               {{ intType.name | translate }}\n                                                        </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END INTERVAL_TYPE -->\n\n                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                <!-- START TIME -->\n                                           <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                   <div class="input-group input-large">\n                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                             </fieldset>\n                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                     </div>\n                                                </div>\n                                                <!-- END TIME -->\n\n                                           <!-- START ALWAYS -->\n                                         <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                 <div class="input-group input-large">\n                                                         <label class="control-label pointer-cursor">\n                                                                  <input\n                                                                                bs-switch\n                                                                             data-ng-model="application.alwaysTime"\n                                                                                type="checkbox"\n                                                                               switch-active="{{ isActive }}"\n                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                switch-on-color="{{ onColor }}"\n                                                                               switch-off-color="{{ offColor }}"\n                                                                             switch-animate="{{ animate }}"\n                                                                                switch-size="{{ size }}"\n                                                                              switch-label="{{ label }}"\n                                                                            switch-icon="{{ icon }}"\n                                                                              switch-radio-off="{{ radioOff }}"\n                                                                             switch-label-width="{{ labelWidth }}"\n                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                               </label>\n                                                      </div>\n                                                </div>\n                                                <!-- END ALWAYS -->\n\n                                         <!-- START WEEKDAY -->\n                                                <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                        <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate}}\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END WEEKDAY -->\n\n                                                <!-- START MONTHDAY -->\n                                               <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                       <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTHDAY -->\n\n                                               <!-- START MONTH -->\n                                          <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                  <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTH -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                          <!-- START INTERVALS -->\n                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                    {{ interval.name}}\n                                                            </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END INTERVALS -->\n\n                                      </div>\n                                        <button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n                          </form>\n                       </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/website/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n        <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n                                     <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n                                           <form name="forms.action" novalidate>\n                                                 <!-- START APP -->\n                                                    <div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n                                                               <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END APP -->\n\n                                                    <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                                         <span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                                          <!-- START QUEUE -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n                                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                                             </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END QUEUE -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                                          <!-- START AGENT -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                                         </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END AGENT -->\n                                                    </div>\n\n                                                      <!-- START INTERVAL_TYPE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n                                                         <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                               {{ intType.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INTERVAL_TYPE -->\n\n                                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                                <!-- START TIME -->\n                                                           <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                   <div class="input-group input-large">\n                                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                                             </fieldset>\n                                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                                     </div>\n                                                                </div>\n                                                                <!-- END TIME -->\n\n                                                           <!-- START ALWAYS -->\n                                                         <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                                 <div class="input-group input-large">\n                                                                         <label class="control-label pointer-cursor">\n                                                                                  <input\n                                                                                                bs-switch\n                                                                                             data-ng-model="application.alwaysTime"\n                                                                                                type="checkbox"\n                                                                                               switch-active="{{ isActive }}"\n                                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                                switch-on-color="{{ onColor }}"\n                                                                                               switch-off-color="{{ offColor }}"\n                                                                                             switch-animate="{{ animate }}"\n                                                                                                switch-size="{{ size }}"\n                                                                                              switch-label="{{ label }}"\n                                                                                            switch-icon="{{ icon }}"\n                                                                                              switch-radio-off="{{ radioOff }}"\n                                                                                             switch-label-width="{{ labelWidth }}"\n                                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                                               </label>\n                                                                      </div>\n                                                                </div>\n                                                                <!-- END ALWAYS -->\n\n                                                         <!-- START WEEKDAY -->\n                                                                <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                        <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate}}\n                                                                                 </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate }}\n                                                                                        </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END WEEKDAY -->\n\n                                                                <!-- START MONTHDAY -->\n                                                               <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                       <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTHDAY -->\n\n                                                               <!-- START MONTH -->\n                                                          <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                  <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTH -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                                          <!-- START INTERVALS -->\n                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                                    {{ interval.name}}\n                                                                            </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVALS -->\n\n                                                      </div>\n\n                                                      <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n                                         </form>\n                                       </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n                                              <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                  </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/channels/chat/website/view/embedding/view/view.html",'<div class="row" data-ng-init="initView()">\n  <div class="col-md-12">\n    <div class="portlet light">\n      <div class="portlet-title">\n        <div class="caption caption-md">\n          <i class="icon-globe theme-font hide"></i>\n          <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_EMBEDDING\' | translate}}</span>\n        </div>\n        <div class="actions">\n          <div class="btn-group">\n            <a class="btn green-jungle" href="#" data-ng-click="copyToClipboard();">\n              <i class="fa fa-clipboard"></i> {{\'APPLICATION_COPY_TO_CLIPBOARD\' | translate}}\n            </a>\n          </div>\n        </div>\n      </div>\n      <div class="portlet-body">\n        <div class="row">\n          <div class="col-md-12">\n            <h3>{{\'APPLICATION_EMBED_SNIPPET\' | translate}}</h3>\n            <p>\n              {{\'MESSAGE_EMBED_SNIPPET\' | translate}}\n            </p>\n            <div class="form-body">\n              <div class="form-group">\n                <div class="col-md-12">\n                  <code-mirror lang="html" model="snippetCode"></code-mirror>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n'),a.put("app/channels/chat/website/view/form/view/view.html",'<div class="row" data-ng-init="getChatWebsiteFields(\'online\');getChatWebsiteFields(\'offline\');">\n  <div class="col-md-12">\n    <div class="portlet light">\n      <div class="portlet-title tabbable-line">\n        <ul class="nav nav-tabs">\n          <li class="active">\n            <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_ONLINE\' | translate}}</a>\n          </li>\n          <li>\n            <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_OFFLINE\' | translate}}</a>\n          </li>\n        </ul>\n      </div>\n    <div class="portlet-body">\n      <div class="row">\n        <div class="col-md-12">\n          <div class="tab-content">\n            <div class="tab-pane active" id="tab_1_1">\n              <div class="row">\n                <div class="col-md-6">\n                  <div class="portlet">\n                    <div class="portlet-title">\n                      <div class="caption font-green-sharp">\n                        <i class="icon-book-open font-green-sharp"></i>\n                        <span class="caption-subject">{{ \'APPLICATION_FIELDS_SELECTED\' | translate }}</span>\n                      </div>\n                      <div class="actions">\n                        <div class="btn-group">\n                          <a class="btn green-jungle" href="#" data-ng-click="saveForm(\'online\');">\n                            <i class="fa fa-check"></i> {{ \'APPLICATION_SAVE\' | translate }}\n                          </a>\n                        </div>\n                      </div>\n                    </div>\n                    <div class="portlet-body">\n                      <div fb-builder="online"></div>\n                    </div>\n                  </div>\n                </div>\n                <div class="col-md-6">\n                  <div class="portlet">\n                    <div class="portlet-title">\n                      <div class="caption font-green-sharp">\n                        <i class="icon-book-open font-green-sharp"></i>\n                        <span class="caption-subject">{{ \'APPLICATION_FIELDS_AVAILABLE\' | translate }}</span>\n                      </div>\n                    </div>\n                    <div class="portlet-body">\n                      <div fb-components></div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class="tab-pane" id="tab_1_2">\n              <div class="row">\n                <div class="col-md-6">\n                  <div class="portlet">\n                    <div class="portlet-title">\n                      <div class="caption font-green-sharp">\n                        <i class="icon-book-open font-green-sharp"></i>\n                        <span class="caption-subject">{{ \'APPLICATION_FIELDS_SELECTED\' | translate }}</span>\n                      </div>\n                      <div class="actions">\n                        <div class="btn-group">\n                          <a class="btn green-jungle" href="#" data-ng-click="saveForm(\'offline\');">\n                            <i class="fa fa-check"></i> {{ \'APPLICATION_SAVE\' | translate }}\n                          </a>\n                        </div>\n                      </div>\n                    </div>\n                    <div class="portlet-body">\n                      <div fb-builder="offline"></div>\n                    </div>\n                  </div>\n                </div>\n                <div class="col-md-6">\n                  <div class="portlet">\n                    <div class="portlet-title">\n                      <div class="caption font-green-sharp">\n                        <i class="icon-book-open font-green-sharp"></i>\n                        <span class="caption-subject">{{ \'APPLICATION_FIELDS_AVAILABLE\' | translate }}</span>\n                      </div>\n                    </div>\n                    <div class="portlet-body">\n                      <div fb-components></div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n</div>\n'),a.put("app/channels/chat/website/view/proactive/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{title}}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START TYPE -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.type.$touched || form.$submitted) && form.type.$invalid}">\n      <label class="control-label">{{\'APPLICATION_TYPE\' | translate}}</label>\n      <ui-select name="type" ng-model="item.type" theme="bootstrap" ng-disabled="disabled">\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n        <ui-select-choices repeat="item.type as item in possibleType | filter: $select.search">\n          <div ng-bind-html="item.title | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n    </div>\n    <!-- END TYPE -->\n\n    <!-- START SELECTOR -->\n    <div class="form-group" data-ng-if="item.type === \'mouseOver\'" data-ng-class="{\'has-error\': (form.selector.$touched || form.$submitted) && form.selector.$invalid}">\n      <label class="control-label">{{\'APPLICATION_SELECTOR\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="selector" placeholder="{{\'APPLICATION_SELECTOR\' | translate}}" class="form-control" data-ng-model="item.selector" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END SELECTOR -->\n\n    <!-- START TIMEOUT -->\n    <div class="form-group" data-ng-if="item.type === \'timeout\'" data-ng-class="{\'has-error\': (form.timeout.$touched || form.$submitted) && form.timeout.$invalid}">\n      <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="item.timeout" min="0" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TIMEOUT -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/chat/website/view/proactive/list/list.html",'<div class="row" data-ng-init="initProactiveActions()">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_PROACTIVE_ACTIONS\' | translate}}</span>\n                               </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-toggle="dropdown" data-ng-click="createItem()">\n                                                     <i class="icon-plus"></i> {{ \'APPLICATION_NEW_PROACTIVE_ACTION\' | translate }}\n                                              </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/website/view/snippet/view/view.html",'<div class="row" data-ng-init="initView()">\n <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SNIPPET\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_APPEARANCE\' | translate}}</a>\n                                   </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_FORMS\' | translate}}</a>\n                                        </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_LABELS\' | translate}}</a>\n                                       </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_SETTINGS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_5" data-toggle="tab">{{\'APPLICATION_OFFLINE\' | translate}}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="row">\n                                             <div class="col-md-8">\n                                                        <div class="tab-content">\n\n                                                           <!-- APPEARANCE TAB -->\n                                                               <div class="tab-pane active" id="tab_1_1">\n                                                                    <form name="forms.formAppearance" data-ng-submit="forms.formAppearance.$valid && updateItem()" novalidate>\n\n                                                                          <!-- START MAIN COLOR -->\n                                                                             <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                  <input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{chatWebsite.color}}" class="form-control" data-ng-model="chatWebsite.color" required/>\n                                                                                        <span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n                                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END MAIN COLOR -->\n\n                                                                             <!-- START FOCUS COLOR -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                 <input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{chatWebsite.color_focus}}" class="form-control" data-ng-model="chatWebsite.color_focus" required/>\n                                                                                  <span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n                                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END FOCUS COLOR -->\n\n                                                                            <!-- START BUTTON COLOR -->\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                        <input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{chatWebsite.color_button}}" class="form-control" data-ng-model="chatWebsite.color_button" required/>\n                                                                                      <span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END BUTTON COLOR -->\n\n                                                                           <!-- START HEADER SHAPE -->\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n                                                                                        <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                                                                       <ui-select data-ng-model="chatWebsite.header_shape" name="headerShape" theme="bootstrap">\n                                                                                             <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n                                                                                                        <div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n                                                                                               </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <!-- END HEADER SHAPE -->\n\n                                                                           <!-- START ANIMATION TOGGLE -->\n                                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n                                                                                        <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                                                                       <ui-select data-ng-model="chatWebsite.animation" name="animationToggle" theme="bootstrap">\n                                                                                            <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                                                <ui-select-choices repeat="animationToggle in [true, false] | filter: $select.search">\n                                                                                                        <div ng-bind-html="animationToggle ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <!-- END ANIMATION TOGGLE -->\n\n\n                                                                             <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END APPEARANCE TAB -->\n\n                                                         <!-- FORMS TAB -->\n                                                            <div class="tab-pane" id="tab_1_2">\n                                                                   <form name="forms.formFunctionality" data-ng-submit="forms.formFunctionality.$valid && updateItem()" novalidate>\n\n                                                                            <!-- START DOWNLOAD TRANSCRIPT -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n                                                                                        <label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n                                                                                      <ui-select data-ng-model="chatWebsite.download_transcript" name="downloadTranscript" theme="bootstrap">\n                                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                                                <ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n                                                                                                     <div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                                          </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <!-- END DOWNLOAD TRANSCRIPT -->\n\n                                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END FORMS TAB -->\n\n                                                              <!-- STRINGS TAB -->\n                                                          <div class="tab-pane" id="tab_1_3">\n                                                                   <form name="forms.formLabel" data-ng-submit="forms.formLabel.$valid && updateItem()" novalidate>\n\n                                                                            <h4 class="block" data-ng-show="statePreview.state == \'online\'">{{\'APPLICATION_ONLINE_STATE\' | translate}}</h4>\n\n                                                                         <!-- START HEADER ONLINE -->\n                                                                          <div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                                                      <label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n                                                                                    <input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_online"/>\n                                                                           </div>\n                                                                                <!-- END HEADER ONLINE -->\n\n                                                                          <!-- START ONLINE MESSAGE-->\n                                                                          <div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n                                                                                   <input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.online_message"/>\n                                                                                </div>\n                                                                                <!-- END HEADER ONLINE -->\n\n                                                                          <!-- START USERNAME PLACEHOLDER -->\n                                                                           <div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n                                                                                     <input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.username_placeholder"/>\n                                                                              </div>\n                                                                                <!-- END USERNAME PLACEHOLDER -->\n\n                                                                           <!-- START EMAIL PLACEHOLDER -->\n                                                                              <div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n                                                                                        <input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.email_placeholder"/>\n                                                                               </div>\n                                                                                <!-- END EMAIL PLACEHOLDER -->\n\n                                                                              <!-- START START CHAT BUTTON -->\n                                                                              <div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                                                        <label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n                                                                                        <input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.start_chat_button"/>\n                                                                                </div>\n                                                                                <!-- END START CHAT BUTTON -->\n\n                                                                              <h4 class="block" data-ng-show="statePreview.state == \'rating\'">{{\'APPLICATION_RATING_STATE\' | translate}}</h4>\n\n                                                                         <!-- START RATING MESSAGE -->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'rating\'" data-ng-class="{\'has-error\': (forms.formLabel.ratingMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.ratingMessage.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_RATING_MESSAGE\' | translate}}</label>\n                                                                                   <input type="text" name="ratingMessage" placeholder="{{\'APPLICATION_RATING_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.rating_message"/>\n                                                                                </div>\n                                                                                <!-- END RATING MESSAGE -->\n\n                                                                         <!-- START RATING SEND BUTTON -->\n                                                                             <div class="form-group" data-ng-show="statePreview.state == \'rating\'" data-ng-class="{\'has-error\': (forms.formLabel.ratingSend.$touched || forms.formLabel.$submitted) && forms.formLabel.ratingSend.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_RATING_SEND_BUTTON\' | translate}}</label>\n                                                                                       <input type="text" name="ratingSend" placeholder="{{\'APPLICATION_RATING_SEND_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.rating_send"/>\n                                                                          </div>\n                                                                                <!-- END RATING SEND BUTTON -->\n\n                                                                             <!-- START RATING SKIP BUTTON -->\n                                                                             <div class="form-group" data-ng-show="statePreview.state == \'rating\'" data-ng-class="{\'has-error\': (forms.formLabel.ratingSkip.$touched || forms.formLabel.$submitted) && forms.formLabel.ratingSkip.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_RATING_SKIP_BUTTON\' | translate}}</label>\n                                                                                       <input type="text" name="ratingSkip" placeholder="{{\'APPLICATION_RATING_SKIP_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.rating_skip"/>\n                                                                          </div>\n                                                                                <!-- END RATING SKIP BUTTON -->\n\n                                                                             <h4 class="block" data-ng-show="statePreview.state == \'offline\'">{{\'APPLICATION_OFFLINE_STATE\' | translate}}</h4>\n\n                                                                               <!-- START HEADER OFFLINE -->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n                                                                                   <input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_offline"/>\n                                                                                </div>\n                                                                                <!-- END HEADER OFFLINE -->\n\n                                                                         <!-- START OFFLINE MESSAGE-->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n                                                                                  <input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.offline_message"/>\n                                                                             </div>\n                                                                                <!-- END OFFLINE MESSAGE -->\n\n                                                                                <!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n                                                                             <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                                       <label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n                                                                                      <input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_message_placeholder"/>\n                                                                          </div>\n                                                                                <!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n                                                                            <!-- START ENQUIRY BUTTON -->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n                                                                                   <input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_button"/>\n                                                                                </div>\n                                                                                <!-- END ENQUIRY BUTTON -->\n\n                                                                         <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END STRINGS TAB -->\n\n                                                            <!-- SETTINGS TAB -->\n                                                         <div class="tab-pane" id="tab_1_4">\n                                                                   <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n\n                                                                                <!-- START NAME -->\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n                                                                                        <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="chatWebsite.name" required/>\n                                                                                    <span data-ng-show="(forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSettings.name.$invalid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END NAME -->\n\n                                                                           <!-- START ADDRESS -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                 <input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.address" required/>\n                                                                                        <span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END ADDRESS -->\n\n                                                                                <!-- START REMOTE IP -->\n                                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_MOTION_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                      <input type="url" name="remote" placeholder="{{\'APPLICATION_MOTION_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.remote" required/>\n                                                                                       <span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n                                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END REMOTE IP -->\n\n                                                                              <!-- START DESCRIPTION -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.description.$touched || forms.formSetting.$submitted) && forms.formSetting.description.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="chatWebsite.description"/>\n                                                                                </div>\n                                                                                <!-- END DESCRIPTION -->\n\n                                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END SETTINGS TAB -->\n\n                                                           <!-- OFFLINE TAB -->\n                                                          <div class="tab-pane" id="tab_1_5">\n                                                                   <form name="forms.formOffline" data-ng-submit="forms.formOffline.$valid && updateItem()" novalidate>\n\n                                                                                <!-- START ENQUIRY ENABLE -->\n                                                                         <div class="form-group">\n                                                                                      <label class="control-label">{{\'APPLICATION_ENQUIRY_ENABLED\' | translate}}</label></br>\n                                                                                     <input\n                                                                                            bs-switch\n                                                                                                 class="form-control"\n                                                                                      ng-model="chatWebsite.enquiry_enable"\n                                                                                         type="checkbox"\n                                                                                       switch-active="{{ enquirySwitch.isActive }}"\n                                                                                          switch-on-text="{{ enquirySwitch.onText }}"\n                                                                                           switch-off-text="{{ enquirySwitch.offText }}"\n                                                                                         switch-on-color="{{ enquirySwitch.onColor }}"\n                                                                                         switch-off-color="{{ enquirySwitch.offColor }}"\n                                                                                       switch-animate="{{ enquirySwitch.animate }}"\n                                                                                          switch-size="{{ enquirySwitch.size }}"\n                                                                                        switch-label="{{ enquirySwitch.label }}"\n                                                                                      switch-icon="{{ enquirySwitch.icon }}"\n                                                                                        switch-radio-off="{{ enquirySwitch.radioOff }}"\n                                                                                       switch-label-width="{{ enquirySwitch.labelWidth }}"\n                                                                                           switch-handle-width="{{ enquirySwitch.handleWidth }}">\n                                                                            </div>\n                                                                                <!-- END ENQUIRY ENABLE -->\n\n                                                                         <!-- START ENQUIRY FORWARDING -->\n                                                                             <div class="form-group" data-ng-if="chatWebsite.enquiry_enable">\n                                                                                      <label class="control-label">{{\'APPLICATION_ENQUIRY_FORWARDING\' | translate}}</label></br>\n                                                                                  <input\n                                                                                            bs-switch\n                                                                                                 class="form-control"\n                                                                                      ng-model="chatWebsite.enquiry_forwarding"\n                                                                                     type="checkbox"\n                                                                                       switch-active="{{ enquirySwitch.isActive }}"\n                                                                                          switch-on-text="{{ enquirySwitch.onText }}"\n                                                                                           switch-off-text="{{ enquirySwitch.offText }}"\n                                                                                         switch-on-color="{{ enquirySwitch.onColor }}"\n                                                                                         switch-off-color="{{ enquirySwitch.offColor }}"\n                                                                                       switch-animate="{{ enquirySwitch.animate }}"\n                                                                                          switch-size="{{ enquirySwitch.size }}"\n                                                                                        switch-label="{{ enquirySwitch.label }}"\n                                                                                      switch-icon="{{ enquirySwitch.icon }}"\n                                                                                        switch-radio-off="{{ enquirySwitch.radioOff }}"\n                                                                                       switch-label-width="{{ enquirySwitch.labelWidth }}"\n                                                                                           switch-handle-width="{{ enquirySwitch.handleWidth }}">\n                                                                                    <span class="help-block col-md-12">{{\'MESSAGE_REMEMBER_SMTP_SERVICE_ACCOUNT\' | translate}}.</span>\n                                                                          </div>\n                                                                                <!-- END ENQUIRY FORWARDING -->\n\n                                                                             <!-- START REMOTE IP -->\n                                                                              <div class="form-group" data-ng-if="chatWebsite.enquiry_enable && chatWebsite.enquiry_forwarding" data-ng-class="{\'has-error\': (forms.formOffline.forwardingAddress.$touched || forms.formOffline.$submitted) && forms.formSetting.forwardingAddress.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_ENQUIRY_FORWARDING_ADDRESS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                   <input type="text" name="forwardingAddress" placeholder="{{\'APPLICATION_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_forwarding_address" required/>\n                                                                                      <span data-ng-show="(forms.formOffline.forwardingAddress.$touched || forms.formOffline.$submitted) && forms.formOffline.forwardingAddress.$invalid && forms.formOffline.forwardingAddress.$error.required" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END REMOTE IP -->\n\n                                                                              <!-- START HEADER SHAPE -->\n                                                                           <div class="form-group" data-ng-if="chatWebsite.enquiry_enable && chatWebsite.enquiry_forwarding" data-ng-class="{\'has-error\': (forms.formOffline.OfflineTemplateId.$touched || forms.formOffline.$submitted) && forms.formOffline.OfflineTemplateId.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_TEMPLATE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                     <ui-select data-ng-model="chatWebsite.OfflineTemplateId" name="OfflineTemplateId" theme="bootstrap" required>\n                                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="mailTemplate.id as mailTemplate in mailTemplates | filter: $select.search">\n                                                                                                        <div ng-bind-html="mailTemplate.name | highlight: $select.search"></div>\n                                                                                              </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="(forms.formOffline.OfflineTemplateId.$touched || forms.formOffline.$submitted) && forms.formOffline.OfflineTemplateId.$invalid && forms.formOffline.OfflineTemplateId.$error.required" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END HEADER SHAPE -->\n\n                                                                           <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END OFFLINE TAB -->\n                                                      </div>\n                                                </div>\n                                                <div class="col-md-4">\n                                                        <!-- START STATE -->\n                                                  <div class="form-group">\n                                                              <!-- <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label> -->\n                                                               <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                                               <ui-select data-ng-model="statePreview.state" name="statePreview" theme="bootstrap">\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                   <ui-select-choices repeat="statePreview in [\'online\',\'rating\',\'offline\'] | filter: $select.search">\n                                                                             <div ng-bind-html="statePreview | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END STATE -->\n                                                    <preview></preview>\n                                           </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
+controller:"MailQueueViewCtrl",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.channels.mail.queues.view.settings",{url:"/settings",templateUrl:"app/channels/mail/queue/view/view.settings.html"}).state("main.channels.mail.queues.view.agents",{url:"/agents",templateUrl:"app/channels/mail/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/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","MailQueue","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){return k.spin("spinner-grid"),g.get(s).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){p(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function o(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});if(c){var d=a.gridOptions.data.indexOf(c);a.gridOptions.data[d].online=b.online,a.gridOptions.data[d].lastLoginAt=b.lastLoginAt,a.gridOptions.data[d].pause=b.mailPause,a.gridOptions.data[d].pauseType=b.pauseType,a.gridOptions.data[d].lastPauseAt=b.lastPauseAt,a.gridOptions.data[d].ipaddr=b.ipaddr,a.gridOptions.data[d].port=b.port,a.gridOptions.data[d].fullcontact=b.fullcontact,a.gridOptions.data[d].useragent=b.useragent,a.gridOptions.data[d].lastms=b.lastms,a.gridOptions.data[d].internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)})}}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_mail_queue:save",function(b){console.log("new queue",b);var c=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0}),d=a.gridOptions.data.indexOf(c);a.gridOptions.data.splice(d+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,queueId:b.MailQueueId,agent:b.membername,online:c.online})}),e.socket.on("user_has_mail_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queueId:b.MailQueueId})})}function p(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.mailPause,pauseType:b.pauseType,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.MailQueues.forEach(function(c){a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,queueId:c.id,agent:b.name,online:b.online})})}function q(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function r(){return j.get().$promise.then(function(b){a.mailQueues=b.rows,e.syncUpdates("mail_queue",a.mailQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.mailQueues=[];var s={offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.isAgent">{{row.entity.agent}} &lt;{{row.entity.internal}}&gt;</div>'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.online != null && row.entity.isAgent"><i class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i> <span data-ng-if="row.entity.online" class="left-margin">(<timer start-time="grid.appScope.moment(row.entity.lastLoginAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"mailPause",width:300,displayName:"APPLICATION_PAUSE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.pause != null && row.entity.online" class="ui-grid-vcenter" data-ng-class="{\'paused-agent\':row.entity.pause}"><timer data-ng-if="row.entity.pause" start-time="grid.appScope.moment(row.entity.lastPauseAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span><span data-ng-if="row.entity.pause" class="left-margin">({{row.entity.pauseType}})</span><i data-ng-if="row.entity.pause" data-ng-click="grid.appScope.pause(row.entity.agentId,\'unpause\')" class="icon-control-play font-green pointer-cursor left-margin" title="{{\'APPLICATION_RESUME\' | translate}}"></i><i class="icon-control-pause font-yellow pointer-cursor" data-ng-click="grid.appScope.pause(row.entity.agentId,\'pause\',\'DEFAULT PAUSE\')" title="{{\'APPLICATION_DEFAULT_PAUSE\' | translate}}"></i><select data-ng-if="grid.appScope.pauses.length" class="pause-select pointer-cursor" data-ng-model="grid.appScope.pauseType" data-ng-change="grid.appScope.pause(row.entity.agentId,\'pause\',grid.appScope.pauseType)"><option class="pointer-cursor" data-ng-repeat="pause in grid.appScope.pauses">{{pause.name}}</option></select></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"PAUSED"},{value:"false",label:"NOT PAUSED"}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><button data-ng-if="row.entity.queueId" class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.leaveQueue(row.entity.agentId,row.entity.queueId)"><i class="icon-ban"></i> {{\'APPLICATION_LEAVE\' | translate}}</button><button data-ng-if="row.entity.isAgent && row.treeNode.children.length < grid.appScope.mailQueues.length" class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.joinQueue(row.entity.agentId)"><i class="icon-plus"></i> {{\'APPLICATION_JOIN_QUEUE\' | translate}}</button> <button data-ng-if="row.entity.isAgent" class="btn btn-xs blue-madison" data-ng-click="grid.appScope.showInfo(row.entity)"><i class="icon-info"></i> {{\'APPLICATION_INFO\' | translate}}</button><div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?s.order=null:s.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),n()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){s.offset=(a-1)*b,s.limit=b,n()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?s[a.name]=a.filters[0].term:delete s[a.name]}),n()})}},n(),q(),r(),o()};var t=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_mail_queue")}),a.pause=function(a,b,c){return i.save({name:b,agent:a,type:c||"DEFAULT PAUSE",data4:c||"DEFAULT PAUSE",channel:"mail"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/mail/realtime/view/agent/queue.modal.add.html",controller:"MailRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.mailQueues,function(b){return _.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})?!0:!1})}}});g.result.then(function(b){return i.save({name:"QueueAdd",agent:e,queues:_.filter(a.mailQueues,function(a){return _.includes(b.queues,a.id)}),channel:"mail",data1:e,data3:b.queues.join(","),data4:"mail"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queueId:b,channel:"mail",data1:a,data3:b,data4:"mail"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/mail/realtime/view/agent/agent.modal.info.html",controller:"MailRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/mail/realtime/view/agent/agent.html",controller:"MailRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewQueueCtrl",["$scope","$http","socket","MailQueue","Agent",function(a,b,c,d,e){a.initQueues=function(){a.gridOptions={enableSorting:!1,enableFiltering:!0,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,showTreeExpandNoChildren:!1,columnDefs:[{name:"queueName",displayName:"Queue"},{name:"fullname",displayName:"Agent",cellClass:"text-center"},{name:"online",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><i data-ng-if="row.entity.online != null" class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i></div>'},{name:"chatPause",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><i data-ng-if=\"row.entity.mailPause != null\" data-ng-class=\"row.entity.mailPause ? 'icon-control-pause font-red' : 'icon-control-play font-green'\"></i></div>"},{name:"pauseType",cellClass:"text-center",cellTemplate:'<span data-ng-if="row.entity.mailPause">{{row.entity.pauseType}}</span>'},{name:"lastLoginAt",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><time data-ng-if="row.entity.agentName" is="relative-time" datetime="{{row.entity.lastLoginAt}}">April 1, 2014</time></div>'}],onRegisterApi:function(b){a.gridApi=b,a.gridApi.treeBase.on.rowExpanded(a,function(b){var c=_.findIndex(a.gridOptions.data,{$$hashKey:b.entity.$$hashKey});b.entity.Users&&b.entity.Users.forEach(function(b){_.find(a.gridOptions.data,{name:b.name})||a.gridOptions.data.splice(c+1,0,b)})})}},d.get(function(b){a.gridOptions.data=[],b.rows.forEach(function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b),b.Users&&b.Users.forEach(function(b){b.agentName=b.name,a.gridOptions.data.push(b)})}),c.socket.on("agent:save",function(b){var c=_.filter(a.gridOptions.data,{agentName:b.name});c.forEach(function(a){a.online=b.online,a.lastLoginAt=b.lastLoginAt})}),c.socket.on("mail_queue:save",function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b)}),c.socket.on("mail_queue:remove",function(b){_.remov(a.gridOptions.data,{queueName:b.name})}),c.socket.on("user_has_mail_queue:save",function(b){var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.MailQueueId});e.get({id:b.UserId}).$promise.then(function(b){a.gridOptions.data.splice(c+1,0,{id:b.id,name:b.name,fullname:b.fullname,agentName:b.name,online:b.online,lastLoginAt:b.lastLoginAt})})["catch"](function(a){console.error(a)})}),c.socket.on("user_has_mail_queue:remove",function(b){for(var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.MailQueueId}),d=c+1;d<a.gridOptions.data.length;d++)a.gridOptions.data[d].id==b.UserId&&a.gridOptions.data.splice(d,1)})},function(a){console.error(a)})},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(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")}),a.initAgents=function(){b.get("/api/report/mails").success(function(b){a.agents=b,c.socket.on("report_mail:save",function(b){var c=_.find(a.agents,{id:b.id});c||a.agents.unshift(b)}),c.socket.on("report_mail:update",function(b){var c=_.find(a.agents,{id:b.id}),d=a.agents.indexOf(c);c&&_.merge(a.agents[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view.queues",{url:"/queues",templateUrl:"app/channels/mail/realtime/view/queue/queue.html",controller:"MailRealtimeViewQueueCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewSessionCtrl",["$scope","$http","socket","uiGridConstants",function(a,b,c,d){a.initSessions=function(){a.gridOptions={enableHorizontalScrollbar:0,enableVerticalScrollbar:0,columnDefs:[{name:"uniqueid",displayName:"",cellClass:"text-center",width:150,enableSorting:!1,enableFiltering:!0},{name:"application",displayName:"APPLICATION_APP",headerCellFilter:"translate",cellClass:"text-center"},{name:"queuename",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center"},{name:"agentname",cellClass:"text-center"},{name:"accountname",displayName:"APPLICATION_ACCOUNT",headerCellFilter:"translate"},{name:"joinAt",displayName:"joinAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.joinAt" is="relative-time" datetime="{{row.entity.joinAt}}">April 1, 2014</time>',sort:{direction:d.DESC,priority:1}},{name:"leaveAt",displayName:"leaveAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.leaveAt" is="relative-time" datetime="{{row.entity.leaveAt}}">April 1, 2014</time>'},{name:"unmanagedAt",displayName:"unmanangedAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.unmanagedAt" is="relative-time" datetime="{{row.entity.unmanagedAt}}">April 1, 2014</time>'}],data:[]},b.get("/api/report/mail/sessions").success(function(b){a.gridOptions.data=b.rows,c.socket.on("report_mail_session:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id}),d=a.gridOptions.data.indexOf(c);c?_.merge(a.gridOptions.data[d],b):a.gridOptions.data.unshift(b)})}).error(function(a){console.error(a)})},a.$on("$destroy",function(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view.sessions",{url:"/sessions",templateUrl:"app/channels/mail/realtime/view/session/session.html",controller:"MailRealtimeViewSessionCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewCtrl",["$scope","$state",function(a,b){a.agents=[{name:"Queues",link:"main.channels.mail.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.mail.realtime.view.agents.timeline"}],a.sessions=[{name:"Sessions",link:"main.channels.mail.realtime.view.sessions"}],a.tree={queues:[{name:"Queues",link:"main.channels.mail.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.mail.realtime.view.agents.timeline"}],sessions:[{name:"Sessions",link:"main.channels.mail.realtime.view.sessions"}]}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view",{url:"/view",templateUrl:"app/channels/mail/realtime/view/view.html",controller:"MailRealtimeViewCtrl"})}]),angular.module("xCallyShuttleApp").factory("ReportCall",["$resource",function(a){return a("/api/report/calls/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("SmsAccount",["$resource",function(a){return a("/api/sms/accounts/:accountId/:controller/:id",{id:"@accountId"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts",{url:"/accounts",template:"<div ui-view></div>"})}]),angular.module("xCallyShuttleApp").controller("SmsAccountListCtrl",["$scope","SmsAccount","gridOptions","$stateParams",function(a,b,c,d){a.message="Hello",a.initView=function(){var e={exporterCsvFilename:"sms_accounts.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/sms/accounts/view/{{row.entity.id}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,e,a,{accountId:d.accountId})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts.list",{url:"/list",templateUrl:"app/channels/sms/account/list/list.html",controller:"SmsAccountListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts.view.action",{url:"/actions",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SmsAccountViewActionListCtrl",["$scope","gridOptions","SmsAccount","$http","$translate","$stateParams",function(a,b,c,d,e,f){a.initActons=function(){var d={draggable:!0,exporterCsvFilename:"sms_applications.csv",enableSorting:!1,enableFiltering:!1,columnDefs:[{name:"app",cellClass:"text-center"},{name:"name",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span>{{row.entity.MailQueue ? row.entity.MailQueue.name : row.entity.User.name}}</span></div>"},{name:"timeout",cellClass:"text-center"},{name:"interval",cellClass:"text-center"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/sms/accounts/view/{{row.entity.SmsAccountId}}/actions/view/{{row.entity.id}}",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.app, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a,{accountId:f.accountId,controller:"applications"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts.view.action.list",{url:"/list",templateUrl:"app/channels/sms/account/view/action/list/list.html",controller:"SmsAccountViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("SmsAccountViewActionViewCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts.view.action.view",{url:"/view/:actionId",templateUrl:"app/channels/sms/account/view/action/view/view.html",controller:"SmsAccountViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("SmsAccountViewActionWizardCtrl",["$scope","$http","Agent","SmsQueue","Interval","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j,k,l,m){}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts.view.action.wizard",{url:"/wizard",templateUrl:"app/channels/sms/account/view/action/wizard/wizard.html",controller:"SmsAccountViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("SmsAccountViewCtrl",["$scope","SmsAccount","$http","$stateParams","$translate","$location","xAlert",function(a,b,c,d,e,f,g){a.message="Hello",a.initView=function(){return console.log(d.accountId),console.log(d.id),b.get({id:d.accountId}).$promise.then(function(b){a.account=b,console.log(b)})["catch"](function(a){g.show(a.message,"danger")})},a.updateItemSmsAccount=function(){return b.update({id:d.accountId},a.account).$promise.then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts.view",{url:"/view/:accountId",templateUrl:"app/channels/sms/account/view/view.html",controller:"SmsAccountViewCtrl"}).state("main.channels.sms.accounts.view.settings",{url:"/settings",templateUrl:"app/channels/sms/account/view/view.settings.html",controller:"SmsAccountViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("SmsAccountWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert","SmsAccount",function(a,b,c,d,e,f,g){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.forms={},a.item={}},a.goNext=function(){e.wizard().next()},a.formValidation=function(a){return a},a.createItem=function(){return console.log(a.item),g.save(a.item).$promise.then(function(){c.path("/channels/sms/accounts/list")})["catch"](function(a){f.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts.wizard",{url:"/wizard",templateUrl:"app/channels/sms/account/wizard/wizard.html",controller:"SmsAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.inbox",{url:"/inbox",template:"<div ui-view></div>"})}]),angular.module("xCallyShuttleApp").controller("SmsInboxListCtrl",["$scope","$rootScope","SmsRoom","gridOptions","uiGridConstants","Auth",function(a,b,c,d,e,f){a.initView=function(){var b={exporterCsvFilename:"mail_rooms.csv",enableRowHeaderSelection:f.isAdmin(),columnDefs:[{name:"id",displayName:"",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span>#{{row.entity.id}}</span></div>",width:75,enableSorting:!1,enableFiltering:!1},{name:"from",cellClass:"text-center"},{name:"SmsAccount.name",displayName:"Account",cellClass:"text-center",enableSorting:!1,enableFiltering:!1},{name:"users",displayName:"APPLICATION_AGENTS",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{(row.entity.Users | map:'fullname').join(', ')}}</div>",enableSorting:!1,enableFiltering:!1},{name:"status",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span class=\"label label-sm\" data-ng-class=\"{'label-info': row.entity.status === 'OPEN', 'label-danger': row.entity.status === 'NEW','label-success': row.entity.status === 'CLOSED'}\">{{row.entity.status}}</span></div>",filter:{type:e.filter.SELECT,selectOptions:[{value:"NEW",label:"NEW"},{value:"OPEN",label:"OPEN"},{value:"CLOSED",label:"CLOSED"}]},width:100},{name:"createdAt",displayName:"",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><time is="relative-time" datetime="{{row.entity.createdAt}}">April 1, 2014</time></div>',enableSorting:!1,enableFiltering:!1,width:125},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/sms/inbox/view/{{row.entity.id}}/room",name:"open"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.id, row.entity.id)",hide:!f.isAdmin()}]}]};a.gridOptions=d.gridOptions(c,b,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.inbox.list",{url:"/list",templateUrl:"app/channels/sms/inbox/list/list.html",controller:"SmsInboxListCtrl"})}]),angular.module("xCallyShuttleApp").directive("sms",function(){return{templateUrl:"app/channels/sms/inbox/sms/sms.html",restrict:"EA",scope:{smsMessage:"=message"}}}),angular.module("xCallyShuttleApp").controller("SmsInboxViewCtrl",["$scope","$location","$stateParams","$translate","$uibModal","socket","Auth","xAlert","SmsRoom","SmsAccount","SmsMessage",function(a,b,c,d,e,f,g,h,i,j,k){a.initRoom=function(){a.Auth=g,a.config={autoHideScrollbar:!1,theme:"light",advanced:{updateOnContentResize:!0},setHeight:781,scrollInertia:0},a.forms={},a.form={disabled:!1,disableTo:!1,from:[],body:""},j.get().$promise.then(function(b){a.smsAccounts=b.rows})["catch"](function(a){console.error(a)}),c.id&&i.get({id:c.id}).$promise.then(function(b){a.SmsRoom=b,a.form.id=a.SmsRoom.SmsAccount.id,a.form.to=a.SmsRoom.from,a.form.disableTo=!0,console.log("SmsRoom",b)})["catch"](function(a){console.error(a)})},f.socket.on("sms_message:save",function(b){a.SmsRoom&&b.SmsRoomId===parseInt(c.id)&&(a.SmsRoom.SmsMessages.unshift(b),console.log("aftter",a.SmsRoom))}),a.sendSMS=function(){console.log(a.form);var c=_.find(a.smsAccounts,{id:a.form.id}).phone,e={from:c,to:a.form.to,body:a.form.body||null};return j.save({accountId:a.form.id,controller:"send"},e).$promise.then(function(a){console.log(a),h.show(d.instant("MESSAGE_WELL_DONE"),"success"),b.path("/channels/sms/inbox/list")})["catch"](function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){usSpinnerService.stop("spinner-grid"),a.form.disabled=!1})},a.cancel=function(){b.path("/channels/sms/inbox/list")}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.inbox.view",{url:"/view",templateUrl:"app/channels/sms/inbox/view/view.html",controller:"SmsInboxViewCtrl"}).state("main.channels.sms.inbox.view.compose",{url:"/compose",templateUrl:"app/channels/sms/inbox/view/view.room.html",controller:"SmsInboxViewCtrl"}).state("main.channels.sms.inbox.view.room",{url:"/:id/room",templateUrl:"app/channels/sms/inbox/view/view.room.html",controller:"SmsInboxViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("SmsInboxViewModalTemplateCtrl",["$scope","$uibModalInstance","Template",function(a,b,c){a.initModal=function(){return a.item={},c.get().$promise.then(function(b){a.templates=b.rows})["catch"](function(a){console.error(a)})},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms",{url:"/sms",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("SmsMessage",["$resource",function(a){return a("/api/sms/messages/:id/:controller",{id:"@id",controller:"@controller"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("SmsRoom",["$resource",function(a){return a("/api/sms/rooms/:id/:controller",{id:"@id",controller:"@controller"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChanSpy",["$resource",function(a){return a("/api/chanspy/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.chanspy",{url:"/chanspy",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChanSpyListCtrl",["$scope","$uibModal","ChanSpy","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"chanspy.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/channels/voice/chanspy/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/channels/voice/chanspy/list/list.create.modal.html",controller:"ChanSpyListCreateCtrl"});c.result.then(function(b){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("ChanSpyListCreateCtrl",["$scope","$translate","$uibModalInstance","ChanSpy","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.options=[{name:"APPLICATION_CHANSPY_OPTION_b",value:"b"},{name:"APPLICATION_CHANSPY_OPTION_B",value:"B"},{name:"APPLICATION_CHANSPY_OPTION_E",value:"E"},{name:"APPLICATION_CHANSPY_OPTION_o",value:"o"},{name:"APPLICATION_CHANSPY_OPTION_q",value:"q"},{name:"APPLICATION_CHANSPY_OPTION_s",value:"s"},{name:"APPLICATION_CHANSPY_OPTION_S",value:"S"},{name:"APPLICATION_CHANSPY_OPTION_w",value:"w"},{name:"APPLICATION_CHANSPY_OPTION_W",value:"W"}],a.save=function(){return a.item.options=a.item.options.join(""),d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.chanspy.list",{url:"/list",templateUrl:"app/channels/voice/chanspy/list/list.html",controller:"ChanSpyListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChanSpyViewCtrl",["$scope","$translate","$stateParams","xAlert","ChanSpy",function(a,b,c,d,e){a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.options=[{name:"APPLICATION_CHANSPY_OPTION_b",value:"b"},{name:"APPLICATION_CHANSPY_OPTION_B",value:"B"},{name:"APPLICATION_CHANSPY_OPTION_E",value:"E"},{name:"APPLICATION_CHANSPY_OPTION_o",value:"o"},{name:"APPLICATION_CHANSPY_OPTION_q",value:"q"},{name:"APPLICATION_CHANSPY_OPTION_s",value:"s"},{name:"APPLICATION_CHANSPY_OPTION_S",value:"S"},{name:"APPLICATION_CHANSPY_OPTION_w",value:"w"},{name:"APPLICATION_CHANSPY_OPTION_W",value:"W"}],a.getChanSpy=function(){return e.get({id:c.id}).$promise.then(function(b){b.options=b.options.split(""),a.chanspy=b})["catch"](function(a){d.show(a.data.message,"danger")})},a.updateChanSpy=function(){var f=angular.copy(a.chanspy);return f.options=f.options.join(""),e.update({id:c.id},f).$promise.then(function(){d.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.chanspy.view",{url:"/view/:id",templateUrl:"app/channels/voice/chanspy/view/view.html",controller:"ChanSpyViewCtrl",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.channels.voice.chanspy.view.settings",{url:"/settings",templateUrl:"app/channels/voice/chanspy/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("VoiceContext",["$resource",function(a){return a("/api/voice/contexts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.contexts",{url:"/contexts",template:"<div ui-view></div>","abstract":!0
+})}]),angular.module("xCallyShuttleApp").controller("VoiceContextListCtrl",["$scope","VoiceContext","gridOptions","$uibModal","xAlert","$translate",function(a,b,c,d,e,f){a.initView=function(){var d={exporterCsvFilename:"voice_contexts.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:170,buttons:[{"class":"{{row.entity.defaultEntry ? 'blue-hoki disabled' : 'blue-hoki'}}",href:"/channels/voice/contexts/view/{{row.entity.id}}/settings",name:"settings"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){var c=d.open({animation:!0,templateUrl:"app/channels/voice/context/list/create.modal.html",controller:["$scope","$uibModalInstance",function(a,b){a.form={},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]});c.result.then(function(c){return b.save(c).$promise.then(function(){a.gridOptions.getPage(),e.show(f.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){e.show(a.data.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.contexts.list",{url:"/list",templateUrl:"app/channels/voice/context/list/list.html",controller:"VoiceContextListCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceContextViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getContext=function(){b.get("/api/voice/contexts/"+e.id).success(function(b){a.context=b}).error(function(a){console.error(a),f.path("/voice/contexts/list")})},a.updateVoiceContext=function(){var f=angular.copy(a.context);b.put("/api/voice/contexts/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.context=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.contexts.view",{url:"/view/:id",templateUrl:"app/channels/voice/context/view/view.html",controller:"VoiceContextViewCtrl",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.channels.voice.contexts.view.settings",{url:"/settings",templateUrl:"app/channels/voice/context/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("VoiceMohListCtrl",["$scope","gridOptions","VoiceMoh","$uibModal","xAlert","$translate",function(a,b,c,d,e,f){a.initView=function(){var d={exporterCsvFilename:"voice_mohs.csv",columnDefs:[{name:"name"},{name:"directory"},{name:"sort"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/voice/mohs/view/{{row.entity.id}}/settings",name:"settings"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a)},a.createItem=function(){var b=d.open({animation:!0,templateUrl:"app/channels/voice/moh/list/create.modal.html",controller:["$scope","$uibModalInstance",function(a,b){a.form={},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]});b.result.then(function(b){return c.save(b).$promise.then(function(){a.gridOptions.getPage(),e.show(f.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.mohs.list",{url:"/list",templateUrl:"app/channels/voice/moh/list/list.html",controller:"VoiceMohListCtrl",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").factory("VoiceMoh",["$resource",function(a){return a("/api/voice/musiconholds/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.mohs",{url:"/mohs",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceMohViewCtrl",["$scope","$http","xAlert","$translate","VoiceMoh","$stateParams","socket","Modal","$sce","$location","Sound",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=d,a.audioSources={},a.sortOptions=[{value:"random",name:"APPLICATION_RANDOM"},{value:"alpha",name:"APPLICATION_ALPHABETICAL"}],a.getMoh=function(){return e.get({id:f.id}).$promise.then(function(b){delete b.stamp,a.moh=b})["catch"](function(a){c.show(a.message,"danger")})},a.updateVoiceMoh=function(){return console.log("update"),e.update({id:f.id},a.moh).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){c.show(a.message,"danger")})},a.addMohs=function(){return e.save({id:f.id,controller:"files"},a.item).$promise.then(function(){j.path("/channels/voice/mohs/view/"+f.id+"/audios")})["catch"](function(a){c.show(a.message,"danger")})},a.getAudioFiles=function(){return e.get({id:f.id,controller:"files"}).$promise.then(function(b){a.audioFiles=b.files,a.mohPath=b.path,a.audioFiles.forEach(function(a){l(a)})})["catch"](function(a){c.show(a.message,"danger")})},a.getSecureSrc=function(a){return i.trustAsResourceUrl(a)},a.getSounds=function(){return a.item={sounds:[]},k.get().$promise.then(function(b){a.soundList=b.rows})["catch"](function(a){c.show(a.message,"danger")})};var l=function(c){b.get("/api/voice/musiconholds/stream",{params:{path:encodeURI(a.mohPath+"/"+c)}}).success(function(b){a.audioSources[c]="data:audio/ogg;base64,"+b}).error(function(a){console.error(a)})};a.deleteItem=h.confirm["delete"](function(e){b["delete"]("/api/voice/musiconholds/"+f.id+"/files",{params:{filename:e}}).success(function(){_.remove(a.audioFiles,function(a){return a===e}),c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){c.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.mohs.view",{url:"/view/:id",templateUrl:"app/channels/voice/moh/view/view.html",controller:"VoiceMohViewCtrl",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.channels.voice.mohs.view.settings",{url:"/settings",templateUrl:"app/channels/voice/moh/view/view.settings.html"}).state("main.channels.voice.mohs.view.audios",{url:"/audios",templateUrl:"app/channels/voice/moh/view/view.audios.html",cache:!1}).state("main.channels.voice.mohs.view.add",{url:"/add",templateUrl:"app/channels/voice/moh/view/view.addFiles.html",cache:!1})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueListCtrl",["$scope","$rootScope","VoiceQueue","gridOptions","$uibModal",function(a,b,c,d,e){a.initView=function(){var b={exporterCsvFilename:"voice_queues.csv",primaryKey:"name",columnDefs:[{name:"name"},{name:"strategy"},{name:"description"},{name:"action",width:200,buttons:[{"class":"blue-hoki",href:"/channels/voice/queues/view/{{row.entity.name}}/settings",name:"settings"},{"class":"green-meadow",href:"/channels/voice/queues/view/{{row.entity.name}}/agents",name:"agents"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.name)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var b=e.open({animation:!0,templateUrl:"app/channels/voice/queue/list/list.create.modal.html",controller:"VoiceQueueListCreateCtrl"});b.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("VoiceQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","VoiceQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return e.save(a.item).$promise.then(function(a){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.queues.list",{url:"/list",templateUrl:"app/channels/voice/queue/list/list.html",controller:"VoiceQueueListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("ReportQueue",["$resource",function(a){return a("/api/report/queues/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","VoiceQueue","VoiceContext","Team",function(a,b,c,d,e,f,g,h,i,j){a.penalty=0,a.binaryChoices=[{name:"Yes",value:1},{name:"No",value:0}],a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.monitorFormats=[{name:"wav",value:"wav"},{name:"gsm",value:"gsm"},{name:"Inactive",value:""}],a.queueAnnounces=[{display_name:"Default",value:null},{display_name:"Disabled",value:""}];var k=function(){return{select:function(b){return h.save({id:a.queue.name,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})},deselect:function(b){return h["delete"]({id:a.queue.name,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})}}};a.getQueue=function(){return h.get({id:e.id}).$promise.then(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(","),b.penalty=0,a.queue=b})["catch"](function(a){g.path("/channels/voice/queues/list")})},a.updateVoiceQueue=function(){var b=angular.copy(a.queue);return b.joinempty=b.joinempty.join(","),b.leavewhenempty=b.leavewhenempty.join(","),b.periodic_announce=b.periodic_announce.join(","),b.context||(b.context=null),h.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(d.instant(a.data.message),"danger")})},a.getTeams=function(){return j.get().$promise.then(function(b){return a.teams=b.rows,h.query({id:e.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindQueue(a.teams,_.map(b,function(a){return{id:a.id,penalty:a.UserHasVoiceQueue.penalty}}),k)})["catch"](function(a){console.error(a)})},a.getContexts=function(){return i.get().$promise.then(function(b){a.voiceContexts=b.rows})["catch"](function(a){c.show(d.instant(data.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/sounds").success(function(b){a.queueAnnounces=a.queueAnnounces.concat(b),a.periodicAnnounces=angular.copy(b.rows),b.rows.unshift({display_name:"None",converted_path:null,value:""}),a.sounds=b.rows,f.syncUpdates("sound",a.sounds)}).error(function(a){console.error(a)})},a.returnAnnouncePath=function(a){return 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.channels.voice.queues.view",{url:"/view/:id",templateUrl:"app/channels/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.channels.voice.queues.view.settings",{url:"/settings",templateUrl:"app/channels/voice/queue/view/view.settings.html"}).state("main.channels.voice.queues.view.agents",{url:"/agents",templateUrl:"app/channels/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/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").factory("VoiceQueue",["$resource",function(a){return a("/api/voice/queues/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","VoiceQueue","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){return k.spin("spinner-grid"),g.get(s).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){p(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function o(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});if(c){var d=a.gridOptions.data.indexOf(c);a.gridOptions.data[d].online=b.online,a.gridOptions.data[d].lastLoginAt=b.lastLoginAt,a.gridOptions.data[d].pause=b.voicePause,a.gridOptions.data[d].pauseType=b.pauseType,a.gridOptions.data[d].lastPauseAt=b.lastPauseAt,a.gridOptions.data[d].status=b.status,a.gridOptions.data[d].statusAt=b.statusAt,a.gridOptions.data[d].queueStatus=b.queueStatus,a.gridOptions.data[d].queueStatusAt=b.queueStatusAt,a.gridOptions.data[d].lastQueue=b.lastQueue,a.gridOptions.data[d].ipaddr=b.ipaddr,a.gridOptions.data[d].port=b.port,a.gridOptions.data[d].fullcontact=b.fullcontact,a.gridOptions.data[d].useragent=b.useragent,a.gridOptions.data[d].lastms=b.lastms,a.gridOptions.data[d].internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)})}}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_voice_queue:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.UserId,queue:b.queue});if(!c&&b.logged){var d=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0}),e=a.gridOptions.data.indexOf(d);a.gridOptions.data.splice(e+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,agent:b.membername,callstaken:b.callstaken?b.callstaken:0,online:d.online})}else c&&!b.logged?_.remove(a.gridOptions.data,{agentId:b.UserId,queue:b.queue}):c&&b.logged&&(c.callstaken=b.callstaken?b.callstaken:0)}),e.socket.on("user_has_voice_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queue:b.queue})})}function p(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.voicePause,pauseType:b.pauseType,status:b.status||"UNKNOWN",statusAt:b.statusAt,queueStatus:b.queueStatus||"READY",queueStatusAt:b.queueStatusAt,lastQueue:b.lastQueue,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.VoiceQueues.forEach(function(c){c.UserHasVoiceQueue.logged&&a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,agent:b.name,callstaken:c.UserHasVoiceQueue.callstaken?c.UserHasVoiceQueue.callstaken:0,online:b.online})})}function q(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function r(){return j.get().$promise.then(function(b){a.voiceQueues=b.rows,e.syncUpdates("voice_queue",a.voiceQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.voiceQueues=[];var s={offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.isAgent">{{row.entity.agent}} &lt;{{row.entity.internal}}&gt;</div>'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.online != null && row.entity.isAgent"><i class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i> <span data-ng-if="row.entity.online" class="left-margin">(<timer start-time="grid.appScope.moment(row.entity.lastLoginAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"status",displayName:"APPLICATION_PHONE_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div data-ng-if=\"row.entity.isAgent\">{{'APPLICATION_'+row.entity.status | translate}} <span data-ng-if=\"row.entity.statusAt && (row.entity.status === 'BUSY' || row.entity.status === 'ONHOLD' || row.entity.status === 'INUSE')\">(<timer start-time=\"grid.appScope.moment(row.entity.statusAt).unix()*1000\">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></span></div>",filter:{type:m.filter.SELECT,selectOptions:[{value:"UNKNOWN",label:d.instant("APPLICATION_UNKNOWN")},{value:"NOT_INUSE",label:d.instant("APPLICATION_NOT_INUSE")},{value:"INUSE",label:d.instant("APPLICATION_INUSE")},{value:"BUSY",label:d.instant("APPLICATION_BUSY")},{value:"INVALID",label:d.instant("APPLICATION_INVALID")},{value:"UNAVAILABLE",label:d.instant("APPLICATION_UNAVAILABLE")},{value:"RINGING",label:d.instant("APPLICATION_RINGING")},{value:"RINGINUSE",label:d.instant("APPLICATION_RINGINUSE")},{value:"ONHOLD",label:d.instant("APPLICATION_ONHOLD")}]}},{name:"queueStatus",width:400,displayName:"APPLICATION_QUEUE_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.isAgent && row.entity.online" class="ui-grid-vcenter" data-ng-class="{\'paused-agent\':row.entity.pause}"><span>{{\'APPLICATION_\'+row.entity.queueStatus.toUpperCase() | translate}}</span><span data-ng-if="(row.entity.queueStatus!==\'complete\' && (row.entity.queueStatus!==\'paused\' || row.entity.pauseType === \'ACW\'))"> [{{row.entity.lastQueue}}]</span><span data-ng-if="row.entity.pause"> [{{row.entity.pauseType}}]</span><timer data-ng-if="row.entity.queueStatusAt && row.entity.queueStatus!==\'complete\'" start-time="grid.appScope.moment(row.entity.queueStatusAt).unix()*1000"> [{{hhours}}:{{mminutes}}:{{sseconds}}]</timer></span><span class="left-margin"><i data-ng-if="row.entity.pause" data-ng-click="grid.appScope.pause(row.entity.agentId,\'unpause\')" class="icon-control-play font-green pointer-cursor" title="{{\'APPLICATION_RESUME\' | translate}}"></i><i class="icon-control-pause font-yellow pointer-cursor" data-ng-click="grid.appScope.pause(row.entity.agentId,\'pause\',\'DEFAULT PAUSE\')" title="{{\'APPLICATION_DEFAULT_PAUSE\' | translate}}"></i></span><select data-ng-if="grid.appScope.pauses.length" class="pause-select pointer-cursor" data-ng-model="grid.appScope.pauseType" data-ng-change="grid.appScope.pause(row.entity.agentId,\'pause\',grid.appScope.pauseType)"><option class="pointer-cursor" data-ng-repeat="pause in grid.appScope.pauses">{{pause.name}}</option></select></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"paused",label:d.instant("APPLICATION_PAUSED")},{value:"connect",label:d.instant("APPLICATION_CONNECT")},{value:"complete",label:d.instant("APPLICATION_COMPLETE")},{value:"called",label:d.instant("APPLICATION_CALLED")}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"callstaken",displayName:"APPLICATION_CALLS_TAKEN",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.callstaken !== null">{{row.entity.callstaken}}</div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1,width:100},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><button data-ng-if="row.entity.queue" class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.leaveQueue(row.entity.agentId,row.entity.queue)"><i class="icon-ban"></i> {{\'APPLICATION_LEAVE\' | translate}}</button><button data-ng-if="row.entity.isAgent && row.treeNode.children.length < grid.appScope.voiceQueues.length" class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.joinQueue(row.entity.agentId)"><i class="icon-plus"></i> {{\'APPLICATION_JOIN_QUEUE\' | translate}}</button> <button data-ng-if="row.entity.isAgent" class="btn btn-xs blue-madison" data-ng-click="grid.appScope.showInfo(row.entity)"><i class="icon-info"></i> {{\'APPLICATION_INFO\' | translate}}</button><div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?s.order=null:s.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),n()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){s.offset=(a-1)*b,s.limit=b,n()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?s[a.name]=a.filters[0].term:delete s[a.name]}),n()})}},n(),q(),r(),o()};var t=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_voice_queue")}),a.pause=function(a,b,c){return i.save({name:b,agent:a,type:c||"DEFAULT PAUSE",data4:c||"DEFAULT PAUSE",channel:"voice"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(d.instant(a.message||a.data.message||a.translatedMessage||a.data.translatedMessage),"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/voice/realtime/view/agent/queue.modal.add.html",controller:"VoiceRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.voiceQueues,function(b){return _.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})?!0:!1})}}});g.result.then(function(a){return i.save({name:"QueueAdd",agent:e,queues:a.queues,channel:"voice",data1:e,data3:a.queues.join(","),data4:"voice"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queue:b,channel:"voice",data1:a,data3:b,data4:"voice"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/voice/realtime/view/agent/agent.modal.info.html",controller:"VoiceRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/voice/realtime/view/agent/agent.html",controller:"VoiceRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},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/channels/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/channels/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/channels/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("VoiceRealtimeViewTelephoneCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Telephone","Pause","Action","VoiceQueue","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){return k.spin("spinner-grid"),g.get(p).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=b.rows})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function o(){e.socket.on("telephone:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id});if(c){var d=a.gridOptions.data.indexOf(c);a.gridOptions.data[d].status=b.status,a.gridOptions.data[d].statusAt=b.statusAt,a.gridOptions.data[d].ipaddr=b.ipaddr,a.gridOptions.data[d].port=b.port,a.gridOptions.data[d].fullcontact=b.fullcontact,a.gridOptions.data[d].useragent=b.useragent,a.gridOptions.data[d].lastms=b.lastms,a.gridOptions.data[d].internal=b.internal}}),e.socket.on("telephone:remove",function(b){_.remove(a.gridOptions.data,{id:b.id})})}a.voiceQueues=[];var p={offset:0,limit:10};a.moment=moment,a.initTelephones=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_TELEPHONE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div>{{row.entity.name}} &lt;{{row.entity.internal}}&gt;</div>"},{name:"status",displayName:"APPLICATION_PHONE_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div>{{'APPLICATION_'+row.entity.status | translate}} <span data-ng-if=\"row.entity.statusAt && (row.entity.status === 'BUSY' || row.entity.status === 'ONHOLD' || row.entity.status === 'INUSE')\">(<timer start-time=\"grid.appScope.moment(row.entity.statusAt).unix()*1000\">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></span></div>",filter:{type:m.filter.SELECT,selectOptions:[{value:"UNKNOWN",label:d.instant("APPLICATION_UNKNOWN")},{value:"NOT_INUSE",label:d.instant("APPLICATION_NOT_INUSE")},{value:"INUSE",label:d.instant("APPLICATION_INUSE")},{value:"BUSY",label:d.instant("APPLICATION_BUSY")},{value:"INVALID",label:d.instant("APPLICATION_INVALID")},{value:"UNAVAILABLE",label:d.instant("APPLICATION_UNAVAILABLE")},{value:"RINGING",label:d.instant("APPLICATION_RINGING")},{value:"RINGINUSE",label:d.instant("APPLICATION_RINGINUSE")},{value:"ONHOLD",label:d.instant("APPLICATION_ONHOLD")}]}},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><button class="btn btn-xs blue-madison" data-ng-click="grid.appScope.showInfo(row.entity)"><i class="icon-info"></i> {{\'APPLICATION_INFO\' | translate}}</button><div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){q(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?p.order=null:p.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),n()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){p.offset=(a-1)*b,p.limit=b,n()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?p[a.name]=a.filters[0].term:delete p[a.name]}),n()})}},n(),o()};var q=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("telephone")}),a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/voice/realtime/view/telephone/telephone.modal.info.html",controller:"VoiceRealtimeViewTelephoneInfoModalCtrl",resolve:{telephone:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime.view.telephones",{url:"/telephones",templateUrl:"app/channels/voice/realtime/view/telephone/telephone.html",controller:"VoiceRealtimeViewTelephoneCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewTelephoneInfoModalCtrl",["$scope","$uibModalInstance","$http","telephone",function(a,b,c,d){a.telephone=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewCtrl",["$scope",function(a){}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime.view",{url:"/view",templateUrl:"app/channels/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"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRecordingListCtrl",["$scope","$translate","$sce","Recording","gridOptions","xAlert","uiGridConstants",function(a,b,c,d,e,f,g){a.Recording=d;a.updateRating=function(a,c){d.patch({id:a,rating:c}).$promise.then(function(){f.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.initView=function(){var b={exporterCsvFilename:"recordings.csv",rowHeight:30,columnDefs:[{name:"uniqueid"},{name:"calleridnum"},{name:"calleridname"},{name:"connectedlinenum"},{name:"connectedlinename"},{name:"rating",filter:{type:g.filter.SELECT,selectOptions:[{value:1,label:"1"},{value:2,label:"2"},{value:3,label:"3"},{value:4,label:"4"},{value:5,label:"5"}]},cellClass:"ui-grid-vcenter",width:"100",cellTemplate:'<div><uib-rating data-ng-model="row.entity.rating" data-ng-click="grid.appScope.updateRating(row.entity.uniqueid, row.entity.rating)" aria-labelledby="default-rating"></uib-rating></div>'},{name:"audio",displayName:"",width:225,enableSorting:!1,enableFiltering:!1,buttons:[{directive:'<audio-file-download params="{id:row.entity.uniqueid,controller:\'stream\'}" resource="grid.appScope.Recording"></audio-file-download>'}]},{name:"action",width:150,buttons:[{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.uniqueid, row.entity.uniqueid)"},{directive:'<motion-file-download params="{id:row.entity.uniqueid,controller:\'stream\'}" resource="grid.appScope.Recording" mimetype="audio/wav" btnclass="btn btn-xs blue-hoki" filename="row.entity.uniqueid+\'.wav\'"></motion-file-download>'}]}]};a.gridOptions=e.gridOptions(d,b,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.recordings.list",{url:"/list",templateUrl:"app/channels/voice/recording/list/list.html",controller:"VoiceRecordingListCtrl",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").factory("Recording",["$resource",function(a){return a("/api/voice/recordings/:id/:controller",{id:"@id"},{update:{method:"PUT"},patch:{method:"PATCH"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.recordings",{url:"/recordings",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.inbound",{url:"/inbound",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundListCreateCtrl",["$scope","$uibModalInstance","Route","application","xAlert","$location","$translate",function(a,b,c,d,e,f,g){a.$application=d.application,a.forms={route:void 0},a.item={type:"inbound",appdata:"Inbound Call",context:"from-voip-provider"},a.ok=function(){return a.item.exten=a.$application.checkUnderscore(a.item.exten),c.save(a.item).$promise.then(function(a){b.close(a),f.path("/channels/voice/routes/inbound/view/"+a.id+"/applications")})["catch"](function(a){console.log(a),e.show(g.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource","gridOptions","Route","$uibModal","$location","$log",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.initView=function(){var b={exporterCsvFilename:"InboundRoutes.csv",columnDefs:[{name:"exten",displayName:"APPLICATION_PHONE_NUMBER"},{name:"description"},{name:"applications",cellClass:"ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.Applications.length"><span data-ng-repeat="app in row.entity.Applications | limitTo:2">{{app.app}}({{app.appdata[0]}}), </span>...</div><div data-ng-if="!row.entity.Applications.length">{{\'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate}}</div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",width:170,buttons:[{"class":"blue-hoki",href:"/channels/voice/routes/inbound/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.exten, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(j,b,a,{type:"inbound"})},a.create=function(){k.open({animation:!0,templateUrl:"app/channels/voice/route/inbound/list/create.modal.html",controller:"VoiceRouteInboundListCreateCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.inbound.list",{url:"/list",templateUrl:"app/channels/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","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval","Route","VoiceQueue","Sound","SquareProject","VoiceContext","Interval","VoiceMail",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){function r(b){var c,d;if("always"===b.intType)c=null,d="*,*,*,*";else if("list"===b.intType)d=b.IntervalId?_.find(a.Intervals,{id:b.IntervalId}).name:"*,*,*,*",c=b.IntervalId||null;else if("custom"===b.intType){c=null;var e,f,g,h;e=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(f=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(f+="-"+b.wd_to)):f="*",b.md_from&&"always"!==b.md_from?(g=b.md_from,b.md_to&&"always"!==b.md_to&&(g+="-"+b.md_to)):g="*",b.m_from&&"always"!==b.m_from?(h=b.m_from,b.m_to&&"always"!==b.m_to&&(h+="-"+b.m_to)):h="*",d=e+","+f+","+g+","+h}void 0===a.selectedApp?(a.application.interval=d,a.application.IntervalId=c):(a.route.Applications[a.selectedApp].interval=d,a.route.Applications[a.selectedApp].IntervalId=c)}function s(){if(a.interval.intType=a.route.Applications[a.selectedApp].IntervalId?"list":"*,*,*,*"===a.route.Applications[a.selectedApp].interval?"always":"custom",a.interval.IntervalId=a.route.Applications[a.selectedApp].IntervalId,!a.route.Applications[a.selectedApp].IntervalId){var b,c=a.route.Applications[a.selectedApp].interval?a.route.Applications[a.selectedApp].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.interval.t_from=moment(b[0],"HH:mm"),a.interval.t_to=moment(b[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:"*"!==c?(b=c.split("-"),a.interval.wd_from=b[0],a.interval.wd_to=b[1]?b[1]:"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.interval.md_from=b[0],a.interval.md_to=b[1]?b[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.interval.m_from=b[0],a.interval.m_to=b[1]?b[1]:"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}a.$translate=b,a.selectedApp=void 0,a.showGrid=!0,a.$application=i.application,a.$interval=j.interval,a.gridOptions={rowTemplate:'<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',columnDefs:[{name:"app",displayName:"APPLICATION_APPLICATION",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"appdata",displayName:"APPLICATION_ARGUMENTS",headerCellFilter:"translate",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{row.entity.appdata.join(',')}}</div>",enableSorting:!1,enableColumnMenu:!1},{name:"interval",displayName:"APPLICATION_TIME",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"action",enableSorting:!1,enableColumnMenu:!1,displayName:"APPLICATION_ACTION",headerCellFilter:"translate",width:125,cellTemplate:'<a class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.openApplication(grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_SETTINGS\' | translate}}</a><a class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.deleteApp(row.entity.app+\' application\', grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_DELETE\' | translate}}</a>'}],onRegisterApi:function(b){b.draggableRows.on.rowDropped(a,function(b,c){a.updateRoute()})}},a.initApplication=function(b){b&&(a.selectedApp=void 0),a.forms={settings:void 0,interval:void 0},a.application={},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.$watch("interval",function(a){a&&r(a)},!0),a.updateSetAppdata=function(){a.application.variable&&a.application.value&&"Set"===a.main.app?a.application.appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.updateSetAppdataSettings=function(){a.application.variable&&a.application.value&&"Set"===a.main.app?a.route.Applications[a.selectedApp].appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.$watch("main.app",function(c){if(c){var d,e;switch(void 0===a.selectedApp&&(a.application={app:c,interval:a.application.interval||"*,*,*,*",appdata:[]}),c){case"Queue":d=l,e=m;break;case"Playback":d=m;break;case"AGI":d=n;break;case"Goto":d=o;break;case"Voicemail":d=q;break;default:d=null,e=null}if(d)return d.get().$promise.then(function(b){a.items=b.rows}).then(function(){return e?e.get().$promise:void 0}).then(function(b){b&&(a.items2=b.rows)})["catch"](function(a){h.show(b.instant(a.message),"danger")})}},!0),a.deselectAndRedirect=function(b){a.selectedApp=void 0,e.path(b)},a.getIntervals=function(){return p.get().$promise.then(function(b){a.Intervals=b.rows,d.syncUpdates("interval",a.Intervals)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.getRoute=function(){return k.get({id:c.id}).$promise.then(function(b){a.route=b,a.gridOptions.data=b.Applications})["catch"](function(a){e.path("/channels/voice/routes/inbound/list")})},a.getApplication=function(){if(void 0===a.selectedApp)e.path("/channels/voice/routes/inbound/list");else{a.showGrid=!0;var b=_.find(a.$application.applications,{value:a.route.Applications[a.selectedApp].app});if(a.main.app=b?b.value:"custom","Set"===a.main.app){var c=a.route.Applications[a.selectedApp].appdata[0].split("=");a.application.variable=c[0],a.application.value=c[1]}if(!b){var d=a.route.Applications[a.selectedApp].appdata.join(",");a.route.Applications[a.selectedApp].appdata=[d]}s()}},a.openApplication=function(b){a.selectedApp=b,a.showGrid=!1,e.path("/channels/voice/routes/inbound/view/"+c.id+"/applications/settings")},a.updateRoute=function(d){return a.selectedApp=void 0,a.route.exten=a.$application.checkUnderscore(a.route.exten),k.update({id:a.route.id},a.route).$promise.then(function(a){h.show(b.instant("MESSAGE_WELL_DONE")+"!","success"),d&&e.path("/channels/voice/routes/inbound/view/"+c.id+"/"+d)})["catch"](function(a){console.log(a),h.show(b.instant(a.data.translatedMessage),"danger")})},a.getContexts=function(){return o.get().$promise.then(function(b){a.voiceContexts=b.rows,d.syncUpdates("voice_context",a.voiceContexts)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.deleteApp=g.confirm["delete"](function(b){a.route.Applications.splice(b,1),a.updateRoute()}),a.addApplication=function(){a.route.Applications.push(a.application),a.updateRoute("applications")},a.goNext=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){d.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.inbound.view",{url:"/view/:id",templateUrl:"app/channels/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.channels.voice.routes.inbound.view.settings",{url:"/settings",templateUrl:"app/channels/voice/route/inbound/view/view.settings.html"}).state("main.channels.voice.routes.inbound.view.applications",{url:"/applications",templateUrl:"app/channels/voice/route/inbound/view/view.applications.html"}).state("main.channels.voice.routes.inbound.view.application",{url:"/application",templateUrl:"app/channels/voice/route/view.application.html"}).state("main.channels.voice.routes.inbound.view.applications.settings",{url:"/settings",templateUrl:"app/channels/voice/route/view.applicationSettings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.internal",{url:"/internal",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalListCreateCtrl",["$scope","$uibModalInstance","Route","application","$location","$translate","xAlert",function(a,b,c,d,e,f,g){a.$application=d.application,a.forms={route:void 0},a.item={type:"internal",appdata:"Internal Call",context:"from-sip"},a.ok=function(){return a.item.exten=a.$application.checkUnderscore(a.item.exten),c.save(a.item).$promise.then(function(a){b.close(a),e.path("/channels/voice/routes/internal/view/"+a.id+"/applications")})["catch"](function(a){g.show(f.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource","gridOptions","Route","$uibModal","$location","$log",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.initView=function(){var b={exporterCsvFilename:"InternalRoutes.csv",columnDefs:[{name:"exten",displayName:"APPLICATION_PHONE_NUMBER"},{name:"description"},{name:"applications",cellClass:"ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.Applications.length"><span data-ng-repeat="app in row.entity.Applications | limitTo:2">{{app.app}}({{app.appdata[0]}}),</span>...</div><div data-ng-if="!row.entity.Applications.length">{{\'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate}}</div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",width:170,buttons:[{"class":"blue-hoki",href:"/channels/voice/routes/internal/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.exten, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(j,b,a,{type:"internal"})},a.create=function(){k.open({animation:!0,templateUrl:"app/channels/voice/route/internal/list/create.modal.html",controller:"VoiceRouteInternalListCreateCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.internal.list",{url:"/list",templateUrl:"app/channels/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","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval","Route","VoiceQueue","Sound","SquareProject","VoiceContext","Interval","VoiceMail",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){function r(b){var c,d;if("always"===b.intType)c=null,d="*,*,*,*";else if("list"===b.intType)d=b.IntervalId?_.find(a.Intervals,{id:b.IntervalId}).name:"*,*,*,*",c=b.IntervalId||null;else if("custom"===b.intType){c=null;var e,f,g,h;e=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(f=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(f+="-"+b.wd_to)):f="*",b.md_from&&"always"!==b.md_from?(g=b.md_from,b.md_to&&"always"!==b.md_to&&(g+="-"+b.md_to)):g="*",b.m_from&&"always"!==b.m_from?(h=b.m_from,b.m_to&&"always"!==b.m_to&&(h+="-"+b.m_to)):h="*",d=e+","+f+","+g+","+h}void 0===a.selectedApp?(a.application.interval=d,a.application.IntervalId=c):(a.route.Applications[a.selectedApp].interval=d,a.route.Applications[a.selectedApp].IntervalId=c)}function s(){if(a.interval.intType=a.route.Applications[a.selectedApp].IntervalId?"list":"*,*,*,*"===a.route.Applications[a.selectedApp].interval?"always":"custom",a.interval.IntervalId=a.route.Applications[a.selectedApp].IntervalId,!a.route.Applications[a.selectedApp].IntervalId){var b,c=a.route.Applications[a.selectedApp].interval?a.route.Applications[a.selectedApp].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.interval.t_from=moment(b[0],"HH:mm"),a.interval.t_to=moment(b[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:"*"!==c?(b=c.split("-"),a.interval.wd_from=b[0],a.interval.wd_to=b[1]?b[1]:"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.interval.md_from=b[0],a.interval.md_to=b[1]?b[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.interval.m_from=b[0],a.interval.m_to=b[1]?b[1]:"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}a.$translate=b,a.selectedApp=void 0,a.showGrid=!0,a.$application=i.application,a.$interval=j.interval,a.gridOptions={rowTemplate:'<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',columnDefs:[{name:"app",displayName:"APPLICATION_APPLICATION",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"appdata",displayName:"APPLICATION_ARGUMENTS",headerCellFilter:"translate",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{row.entity.appdata.join(',')}}</div>",enableSorting:!1,enableColumnMenu:!1},{name:"interval",displayName:"APPLICATION_TIME",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"action",displayName:"APPLICATION_ACTION",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1,width:125,cellTemplate:'<a class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.openApplication(grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_SETTINGS\' | translate}}</a><a class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.deleteApp(row.entity.app+\' application\', grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_DELETE\' | translate}}</a>'}],onRegisterApi:function(b){b.draggableRows.on.rowDropped(a,function(b,c){a.updateRoute()})}},a.initApplication=function(b){b&&(a.selectedApp=void 0),a.forms={settings:void 0,interval:void 0},a.application={},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.$watch("interval",function(a){a&&r(a)},!0),a.updateSetAppdata=function(){a.application.variable&&a.application.value&&"Set"===a.main.app?a.application.appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.updateSetAppdataSettings=function(){a.application.variable&&a.application.value&&"Set"===a.main.app?a.route.Applications[a.selectedApp].appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.$watch("main.app",function(c){if(c){var d,e;switch(void 0===a.selectedApp&&(a.application={app:c,interval:a.application.interval||"*,*,*,*",appdata:[]}),c){case"Queue":d=l,e=m;break;case"Playback":d=m;break;case"AGI":d=n;break;case"Goto":d=o;break;case"Voicemail":d=q;break;default:d=null,e=null}if(d)return d.get().$promise.then(function(b){a.items=b.rows}).then(function(){return e?e.get().$promise:void 0}).then(function(b){b&&(a.items2=b.rows)})["catch"](function(a){h.show(b.instant(a.message),"danger")})}},!0),a.deselectAndRedirect=function(b){a.selectedApp=void 0,e.path(b)},a.getIntervals=function(){return p.get().$promise.then(function(b){a.Intervals=b.rows,d.syncUpdates("interval",a.Intervals)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.getRoute=function(){return k.get({id:c.id}).$promise.then(function(b){a.route=b,a.gridOptions.data=b.Applications})["catch"](function(a){e.path("/channels/voice/routes/internal/list")})},a.getApplication=function(){if(console.log(a.selectedApp),void 0===a.selectedApp)e.path("/channels/voice/routes/internal/list");else{a.showGrid=!0;var b=_.find(a.$application.applications,{value:a.route.Applications[a.selectedApp].app});if(a.main.app=b?b.value:"custom","Set"===a.main.app){var c=a.route.Applications[a.selectedApp].appdata[0].split("=");a.application.variable=c[0],a.application.value=c[1]}if(!b){var d=a.route.Applications[a.selectedApp].appdata.join(",");a.route.Applications[a.selectedApp].appdata=[d]}s()}},a.openApplication=function(b){a.selectedApp=b,a.showGrid=!1,e.path("/channels/voice/routes/internal/view/"+c.id+"/applications/settings")},a.updateRoute=function(d){return a.selectedApp=void 0,a.route.exten=a.$application.checkUnderscore(a.route.exten),k.update({id:a.route.id},a.route).$promise.then(function(a){h.show(b.instant("MESSAGE_WELL_DONE")+"!","success"),d&&e.path("/channels/voice/routes/internal/view/"+c.id+"/"+d)})["catch"](function(a){h.show(b.instant(a.data.translatedMessage),"danger")})},a.getContexts=function(){return o.get().$promise.then(function(b){a.voiceContexts=b.rows,d.syncUpdates("voice_context",a.voiceContexts)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.deleteApp=g.confirm["delete"](function(b){a.route.Applications.splice(b,1),a.updateRoute()}),a.addApplication=function(){a.route.Applications.push(a.application),a.updateRoute("applications")},a.goNext=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){d.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.internal.view",{url:"/view/:id",templateUrl:"app/channels/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.channels.voice.routes.internal.view.settings",{url:"/settings",templateUrl:"app/channels/voice/route/internal/view/view.settings.html"}).state("main.channels.voice.routes.internal.view.applications",{url:"/applications",templateUrl:"app/channels/voice/route/internal/view/view.applications.html"}).state("main.channels.voice.routes.internal.view.application",{url:"/application",templateUrl:"app/channels/voice/route/view.application.html"}).state("main.channels.voice.routes.internal.view.applications.settings",{url:"/settings",templateUrl:"app/channels/voice/route/view.applicationSettings.html"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundListCreateCtrl",["$scope","$uibModalInstance","Route","application","xAlert","$translate","$location","Tag",function(a,b,c,d,e,f,g,h){a.$application=d.application,a.forms={route:void 0},a.item={type:"outbound",appdata:"Outbound Call",context:"from-sip"},a.getTags=function(){return h.get().$promise.then(function(b){b.rows.unshift({name:"--"}),a.tags=b.rows})["catch"](function(a){e.show(f.instant(a.data.translatedMessage),"danger")})},a.ok=function(){return a.item.exten=a.$application.checkUnderscore(a.item.exten),c.save(a.item).$promise.then(function(a){b.close(a),g.path("/channels/voice/routes/outbound/view/"+a.id+"/routes")})["catch"](function(a){e.show(f.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource","gridOptions","Route","$uibModal","$location","$log",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.initView=function(){var b={exporterCsvFilename:"OutboundRoutes.csv",columnDefs:[{name:"exten",displayName:"APPLICATION_DESTINATION_PATTERN"},{name:"description"},{name:"applications",cellClass:"ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.Applications.length"><span data-ng-repeat="app in row.entity.Applications | limitTo:2">{{app.app}}({{app.appdata[0]}}),</span>...</div><div data-ng-if="!row.entity.Applications.length">{{\'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate}}</div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",width:170,buttons:[{"class":"blue-hoki",href:"/channels/voice/routes/outbound/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.exten, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(j,b,a,{type:"outbound"})},a.create=function(){k.open({animation:!0,templateUrl:"app/channels/voice/route/outbound/list/create.modal.html",controller:"VoiceRouteOutboundListCreateCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.outbound.list",{url:"/list",templateUrl:"app/channels/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.channels.voice.routes.outbound",{url:"/outbound",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundViewCtrl",["$scope","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","application","interval","Route","Trunk","VoiceContext","Interval","Tag",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){function p(b){var c,d;if("always"===b.intType)c=null,d="*,*,*,*";else if("list"===b.intType)d=b.IntervalId?_.find(a.Intervals,{id:b.IntervalId}).name:"*,*,*,*",c=b.IntervalId||null;else if("custom"===b.intType){c=null;var e,f,g,h;e=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(f=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(f+="-"+b.wd_to)):f="*",b.md_from&&"always"!==b.md_from?(g=b.md_from,b.md_to&&"always"!==b.md_to&&(g+="-"+b.md_to)):g="*",b.m_from&&"always"!==b.m_from?(h=b.m_from,b.m_to&&"always"!==b.m_to&&(h+="-"+b.m_to)):h="*",d=e+","+f+","+g+","+h}void 0===a.selectedApp?(a.application.interval=d,a.application.IntervalId=c):(a.route.Applications[a.selectedApp].interval=d,a.route.Applications[a.selectedApp].IntervalId=c)}function q(){if(a.interval.intType=a.route.Applications[a.selectedApp].IntervalId?"list":"*,*,*,*"===a.route.Applications[a.selectedApp].interval?"always":"custom",a.interval.IntervalId=a.route.Applications[a.selectedApp].IntervalId,!a.route.Applications[a.selectedApp].IntervalId){var b,c=a.route.Applications[a.selectedApp].interval?a.route.Applications[a.selectedApp].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.interval.t_from=moment(b[0],"HH:mm"),a.interval.t_to=moment(b[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:"*"!==c?(b=c.split("-"),a.interval.wd_from=b[0],a.interval.wd_to=b[1]?b[1]:"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.interval.md_from=b[0],a.interval.md_to=b[1]?b[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.interval.m_from=b[0],a.interval.m_to=b[1]?b[1]:"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}a.$translate=c,a.selectedApp=void 0,a.showGrid=!0,a.$application=i.application,a.$interval=j.interval,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.gridOptions={rowTemplate:'<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',columnDefs:[{name:"app",displayName:"APPLICATION_APPLICATION",cellClass:"ui-grid-vcenter",cellTemplate:"<div><span data-ng-if=\"row.entity.app === 'Dial'\">Default</span><span data-ng-if=\"row.entity.app !== 'Dial'\">{{row.entity.app}}</span></div>",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"appdata",displayName:"APPLICATION_ARGUMENTS",headerCellFilter:"translate",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{row.entity.appdata.join(',')}}</div>",enableSorting:!1,enableColumnMenu:!1},{name:"interval",displayName:"APPLICATION_TIME",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"action",displayName:"APPLICATION_ACTION",enableSorting:!1,enableColumnMenu:!1,headerCellFilter:"translate",width:125,cellTemplate:'<a class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.openApplication(grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_SETTINGS\' | translate}}</a><a class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.deleteApp(row.entity.app+\' application\', grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_DELETE\' | translate}}</a>'}],onRegisterApi:function(b){b.draggableRows.on.rowDropped(a,function(b,c){a.updateRoute()})}},a.initApplication=function(b){b&&(a.selectedApp=void 0),a.forms={info:void 0,interval:void 0},a.application={},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:"Default",value:"Dial"},{name:"Custom",value:"custom"}]},a.$watch("interval",function(a){a&&p(a)},!0),a.$watch("main.app",function(d){if(d){var e,f;switch(void 0===a.selectedApp&&(a.application={app:d,interval:a.application.interval||"*,*,*,*",appdata:[]}),d){case"Dial":e=l,f=m;break;default:e=null,f=null}if(e)return e.get().$promise.then(function(b){a.items=b.rows}).then(function(){return f?f.get().$promise:void 0}).then(function(b){b&&(a.items2=b.rows)})["catch"](function(a){b.show(c.instant(a.message),"danger")})}},!0),a.deselectAndRedirect=function(b){a.selectedApp=void 0,f.path(b)},a.getIntervals=function(){return n.get().$promise.then(function(b){a.Intervals=b.rows,e.syncUpdates("interval",a.Intervals)})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.getRoute=function(){return k.get({id:d.id}).$promise.then(function(b){a.route=b,a.gridOptions.data=b.Applications})["catch"](function(a){f.path("/channels/voice/routes/outbound/list")})},a.getApplication=function(){if(void 0===a.selectedApp)f.path("/channels/voice/routes/outbound/list");else{a.showGrid=!0;var b=_.find(a.applications,{value:a.route.Applications[a.selectedApp].app});if(a.main.app=b?b.value:"custom",!b){var c=a.route.Applications[a.selectedApp].appdata.join(",");a.route.Applications[a.selectedApp].appdata=[c]}q()}},a.openApplication=function(b){a.selectedApp=b,a.showGrid=!1,f.path("/channels/voice/routes/outbound/view/"+d.id+"/routes/settings")},a.updateRoute=function(e){return a.selectedApp=void 0,a.route.exten=a.$application.checkUnderscore(a.route.exten),k.update({id:a.route.id},a.route).$promise.then(function(a){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),e&&f.path("/channels/voice/routes/outbound/view/"+d.id+"/"+e)})["catch"](function(a){b.show(c.instant(a.data.translatedMessage),"danger")})},a.getContexts=function(){return m.get().$promise.then(function(b){a.voiceContexts=b.rows,e.syncUpdates("voice_context",a.voiceContexts)})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.getTags=function(){return o.get().$promise.then(function(b){b.rows.unshift({name:"--"}),a.tags=b.rows})["catch"](function(a){b.show(c.instant(a.data.translatedMessage),"danger")})},a.deleteApp=h.confirm["delete"](function(b){a.route.Applications.splice(b,1),a.updateRoute()}),a.addApplication=function(){a.route.Applications.push(a.application),a.updateRoute("routes")},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.channels.voice.routes.outbound.view",{url:"/view/:id",templateUrl:"app/channels/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.channels.voice.routes.outbound.view.settings",{url:"/settings",templateUrl:"app/channels/voice/route/outbound/view/view.settings.html"}).state("main.channels.voice.routes.outbound.view.routes",{url:"/routes",templateUrl:"app/channels/voice/route/outbound/view/view.routes.html"}).state("main.channels.voice.routes.outbound.view.route",{url:"/route",templateUrl:"app/channels/voice/route/outbound/view/view.route.html"}).state("main.channels.voice.routes.outbound.view.routes.settings",{url:"/settings",templateUrl:"app/channels/voice/route/outbound/view/view.routeSettings.html"})}]),angular.module("xCallyShuttleApp").factory("Route",["$resource",function(a){return a("/api/voice/extensions/:id",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes",{url:"/routes",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice",{url:"/voice",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailListCtrl",["$scope","VoiceMail","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"voice_mails.csv",primaryKey:"uniqueid",columnDefs:[{name:"mailbox"},{name:"fullname"},{name:"email"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/voice/voicemails/view/{{row.entity.uniqueid}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.mailbox, row.entity.uniqueid)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails.list",{url:"/list",templateUrl:"app/channels/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","VoiceMail","VoiceMailMessage","VoiceContext","$http","xAlert","$translate","$stateParams","socket","$sce","Modal","$location","gridOptions",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){var b={exporterCsvFilename:"voice_mail_messages.csv",primaryKey:"id",columnDefs:[{name:"callerid"},{name:"stamp",displayName:"APPLICATION_DATE",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{grid.appScope.moment(row.entity.stamp).format('YYYY-MM-DD HH:mm:ss')}}</div>"},{name:"duration",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{row.entity.duration*1000 | date:'mm:ss'}}</div>"},{name:"audio",displayName:"",width:225,enableSorting:!1,enableFiltering:!1,buttons:[{directive:'<audio-file-download params="{id:row.entity.id,controller:\'download\'}" resource="grid.appScope.VoiceMailMessage"></audio-file-download>'}]},{name:"action",width:150,buttons:[{directive:'<motion-file-download params="{id:row.entity.id,controller:\'download\'}" resource="grid.appScope.VoiceMailMessage" mimetype="audio/wav" btnclass="btn btn-xs blue-hoki" filename="row.entity.msg_id+\'.wav\'"></motion-file-download>'},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.id, row.entity.id)"}]}]};a.gridOptions=m.gridOptions(c,b,a,{mailbox:a.voicemail.mailbox,context:a.voicemail.context})}a.moment=moment,a.VoiceMailMessage=c,a.getVoicemail=function(){return b.get({id:h.uniqueid}).$promise.then(function(b){delete b.password,delete b.stamp,a.voicemail=b})["catch"](function(a){l.path("/voice/voicemails/list")})},a.updateVoiceVoicemail=function(){return b.update({id:h.uniqueid},a.voicemail).$promise.then(function(){f.show(g.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(g.instant(a.message),"danger")})},a.getContexts=function(){return d.get().$promise.then(function(b){a.voiceContexts=b.rows})["catch"](function(a){f.show(a.message,"danger")})},a.getMessages=function(){return a.voicemail?void n():b.get({id:h.uniqueid}).$promise.then(function(b){delete b.password,delete b.stamp,a.voicemail=b,n()})["catch"](function(a){l.path("/voice/voicemails/view/"+h.uniqueid+"/settings")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails.view",{url:"/view/:uniqueid",templateUrl:"app/channels/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.channels.voice.voicemails.view.settings",{url:"/settings",templateUrl:"app/channels/voice/voicemail/view/view.settings.html"}).state("main.channels.voice.voicemails.view.messages",{url:"/messages",templateUrl:"app/channels/voice/voicemail/view/view.messages.html"})}]),angular.module("xCallyShuttleApp").factory("VoiceMail",["$resource",function(a){return a("/api/voice/voicemails/:id/:controller",{uniqueid:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails",{url:"/voicemails",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("VoiceMailMessage",["$resource",function(a){return a("/api/voice/voicemails/messages/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailWizardCtrl",["$scope","VoiceMail","xAlert","WizardHandler","$location","Setting",function(a,b,c,d,e,f){a.initWizard=function(){a.form={},a.item={context:"from-voicemail"}},a.next=function(){d.wizard().next()},a.previous=function(){d.wizard().previous()},a.exitValidation=function(a){return a},a.getFirstFreeMailbox=function(){f.get({controller:"mailbox"}).$promise.then(function(b){a.item.mailbox=b.value})["catch"](function(a){c.show(a.data.message,"danger")})},a.createItem=function(){return a.item.customer_id=a.item.mailbox,b.save(a.item).$promise.then(function(){e.path("/channels/voice/voicemails/list")})["catch"](function(a){c.show(data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails.wizard",{url:"/wizard",templateUrl:"app/channels/voice/voicemail/wizard/wizard.html",controller:"VoiceVoicemailWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("VoiceQueue",["$resource",function(a){return a("/api/voice/queues/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("Company",["$resource",function(a){return a("/api/contactmanager/companies/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies",{url:"/companies",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("CompanyListCreateModalCtrl",["$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("ContactManagerCompanyListCtrl",["$scope","$http","$translate","xAlert","Modal","$uibModal","$log","Company","gridOptions","$location",function(a,b,c,d,e,f,g,h,i,j){a.initView=function(){var b={exporterCsvFilename:"Companies.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",name:"profile",href:"/contactmanager/companies/view/{{row.entity.id}}/settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(h,b,a)},a.create=function(){var a=f.open({animation:!0,templateUrl:"app/contactmanager/company/list/create.modal.html",controller:"CompanyListCreateModalCtrl"});a.result.then(function(a){b.post("/api/contactmanager/companies",a).then(function(a){j.path("/contactmanager/companies/view/"+a.id+"/settings")})["catch"](function(a){d.show(a.data.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies.list",{url:"/list",templateUrl:"app/contactmanager/company/list/list.html",controller:"ContactManagerCompanyListCtrl",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("ContactManagerCompanyViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getCompany=function(){b.get("/api/contactmanager/companies/"+e.id).success(function(b){a.company=b}).error(function(a){f.path("/contactmanager/companies/list")})},a.updateCompany=function(){var f=angular.copy(a.company);b.put("/api/contactmanager/companies/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.company=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies.view",{url:"/view/:id",templateUrl:"app/contactmanager/company/view/view.html",controller:"ContactManagerCompanyViewCtrl",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.contactmanager.companies.view.settings",{url:"/settings",templateUrl:"app/contactmanager/company/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("Contact",["$resource",function(a){return a("/api/contactmanager/contacts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.contacts",{url:"/contacts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ContactManagerListImportModalCtrl",["$scope","$uibModalInstance","indexes","csv","xAlert","socket","List","Contact","$translate",function(a,b,c,d,e,f,g,h,i){function j(b){if(b>=a.csvLength||a.stopped)return void(a.importing=!1);var c={Phones:[],Emails:[],customFields:{}};return _.forOwn(a.item,function(e,f){switch(f){case"tags":c.tags=[],a.item.tags.forEach(function(a){""!==d[b][a]&&c.tags.push(d[b][a])});break;default:c[f]=d[b][e]}}),c.tags=c.tags?c.tags.join(","):void 0,c.ListId=a.item.ListId,c.CompanyId=a.item.CompanyId||null,h.save(c).$promise.then(function(c){a["import"].success+=k,a["import"].succeeded+=1,j(b+1)})["catch"](function(c){a["import"].fail+=k,a["import"].failed+=1,j(b+1)})}a.indexes=c,a.importing=!1,a.submitted=!1,a.stopped=!1,a["import"]={success:0,fail:0,succeeded:0,failed:0},a.csvLength=d.length;var k=100/a.csvLength;a.forms={dashboard:void 0},a.item={},a.start=function(){a.importing=!0,a.submitted=!0,j(0)},a.getLists=function(){return g.get().$promise.then(function(b){a.lists=b.rows,a.item.ListId=1,a.getCustomFields()})["catch"](function(a){e.show(i.instant(a.message)+"!","danger")})},a.getCustomFields=function(){return g.get({listId:a.item.ListId,controller:"customfields"}).$promise.then(function(b){b.rows.forEach(function(a){a.values=JSON.parse(a.values)}),a.customFields=b.rows,f.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),f.socket.on("custom_field:save",function(b){if(b.ListId===a.item.ListId){var c=_.find(a.customFields,{id:b.id});c||("string"==typeof b.values&&(b.values=JSON.parse(b.values)),a.customFields.push(b))}})})["catch"](function(a){console.error(a),e.show(a.message,"danger")})},a.close=function(){b.close()},a.stop=function(){a.stopped=!0}}]),angular.module("xCallyShuttleApp").controller("ContactManagerContactListCtrl",["$scope","$translate","Modal","FileUploader","Papa","$uibModal","$log","Contact","gridOptions","List","uiGridConstants","xAlert","socket","$stateParams",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){a.initView=function(){return j.get().$promise.then(function(b){a.lists=[],b.rows.forEach(function(b,c){a.lists.push({value:b.id,label:b.name})})}).then(function(){var b={exporterCsvFilename:"Contacts.csv",columnDefs:[{name:"firstName"},{name:"lastName"},{name:"phone"},{name:"mobile"},{name:"email"},{name:"ListId",displayName:"APPLICATION_LIST",field:"List.name",filter:{type:k.filter.SELECT,term:n.listId||"",selectOptions:a.lists}},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",name:"profile",onClick:"grid.appScope.openContactTab(row.entity)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(h,b,a,n.listId?{ListId:n.listId}:null)})["catch"](function(a){l.show(b.instant(a.message)+"!","danger")})},d.FileSelect.prototype.isEmptyAfterSelection=function(){return!0};var o=a.uploader=new d({queueLimit:1,clearInputAfterAddedToQueue:!0});o.onAfterAddingFile=function(b){console.log("fileadded"),e.parse(b._file,{header:!0,complete:function(b){a.uploader.clearQueue(),a["import"](b.data)},error:function(a){console.log(a)}})},a["import"]=function(b){var c=f.open({animation:!0,size:"lg",backdrop:"static",keyboard:!1,templateUrl:"app/contactmanager/contact/list/import.modal.html",controller:"ContactManagerListImportModalCtrl",resolve:{indexes:function(){return _.keys(b[0])},csv:function(){return b}}});c.result.then(function(b){a.gridOptions.getPage()},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.contacts.list",{url:"/list",templateUrl:"app/contactmanager/contact/list/list.html",params:{listId:null},controller:"ContactManagerContactListCtrl",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.contactmanager",{url:"/contactmanager",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("List",["$resource",function(a){return a("/api/contactmanager/lists/:listId/:controller/:id",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.lists",{url:"/lists",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ContactManagerListListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerListListCtrl",["$scope","$http","$translate","Modal","xAlert","$uibModal","$log","List","gridOptions",function(a,b,c,d,e,f,g,h,i){a.initView=function(){var b={exporterCsvFilename:"Lists.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:190,buttons:[{"class":"blue-hoki",name:"settings",href:"/contactmanager/lists/view/{{row.entity.id}}/settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"},{"class":"green-turquoise",name:"contacts",uisref:"main.contactmanager.contacts.list({listId:{{row.entity.id}}})"}]}]};a.gridOptions=i.gridOptions(h,b,a)},a.create=function(){var d=f.open({animation:!0,templateUrl:"app/contactmanager/list/list/create.modal.html",controller:"ContactManagerListListCreateModalCtrl"});d.result.then(function(d){b.post("/api/contactmanager/lists/",d).then(function(b){a.gridOptions.getPage(),e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.lists.list",{url:"/list",templateUrl:"app/contactmanager/list/list/list.html",controller:"ContactManagerListListCtrl",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("ContactManagerListCustomFieldViewCreateModalCtrl",["$scope","$uibModalInstance","$translate",function(a,b,c){a.$translate=c,a.forms={dashboard:void 0},a.item={},a.choices=[{value:""}],a.addField=function(){a.choices.push({})},a.removeField=function(b){a.choices.splice(b,1)},a.types=[{name:"APPLICATION_TEXT",value:"text"},{name:"APPLICATION_SELECT",value:"select"}],a.ok=function(){"select"===a.item.type&&(a.item.values=angular.toJson(a.choices)),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerListViewCtrl",["$scope","xAlert","$translate","$stateParams","socket","$location","$uibModal","$log","Modal","List","Team","gridOptions",function(a,b,c,d,e,f,g,h,i,j,k,l){var m=function(){return{select:function(b){return j.save({listId:a.list.id,controller:"agents"},{agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})},deselect:function(b){return j["delete"]({listId:a.list.id,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})}}};a.getList=function(){return j.get({listId:d.id}).$promise.then(function(b){a.list=b})["catch"](function(a){f.path("/contactmanager/lists/list")})},a.updateList=function(){return j.update({listId:d.id},a.list).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.getTeams=function(){return k.get().$promise.then(function(b){return a.teams=b.rows,j.query({listId:d.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindQueue(a.teams,_.map(b,function(a){return{id:a.id}}),m)})["catch"](function(a){console.error(a)})},a.initCustomFields=function(){var b={exporterCsvFilename:"customfields.csv",primaryKey:"id",columnDefs:[{name:"alias",displayName:"APPLICATION_NAME"},{name:"type"},{name:"description"},{name:"action",width:200,buttons:[{"class":"blue-hoki",href:"/contactmanager/lists/view/{{grid.appScope.$stateParams.id}}/customfields/settings/{{row.entity.id}}",name:"settings"},{"class":"red-sunglo",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)",name:"delete"}]}]};a.gridOptions=l.gridOptions(j,b,a,{listId:d.id,controller:"customfields"})},a.create=function(){var e=g.open({animation:!0,templateUrl:"app/contactmanager/list/view/create.modal.html",controller:"ContactManagerListCustomFieldViewCreateModalCtrl"});e.result.then(function(e){return j.save({listId:d.id,controller:"customfields"},e).$promise.then(function(d){a.gridOptions.getPage(),b.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(a.message||a.data.message,"danger")})},function(){h.info("Modal dismissed at: "+new Date)})},a.getCustomField=function(){return j.get({listId:d.id,controller:"customfields",id:d.cfId}).$promise.then(function(b){console.log(b),a.customField=b,"select"===a.customField.type&&(a.choices=JSON.parse(a.customField.values))})["catch"](function(a){console.error(a),f.path("/contactmanager/customfields/list")})},a.updateCustomField=function(){var e=angular.copy(a.customField);return"select"===e.type&&(e.values=angular.toJson(a.choices)),j.update({listId:d.id,controller:"customfields",id:d.cfId},e).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.addField=function(){a.choices.push({})},a.removeField=function(b){a.choices.splice(b,1)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.lists.view",{url:"/view/:id",templateUrl:"app/contactmanager/list/view/view.html",controller:"ContactManagerListViewCtrl",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.contactmanager.lists.view.settings",{url:"/settings",templateUrl:"app/contactmanager/list/view/view.settings.html"}).state("main.contactmanager.lists.view.agents",{url:"/agents",templateUrl:"app/contactmanager/list/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/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}}).state("main.contactmanager.lists.view.customfields",{url:"/customfields",templateUrl:"app/contactmanager/list/view/view.customFields.html"}).state("main.contactmanager.lists.view.customfields.settings",{url:"/settings/:cfId",templateUrl:"app/contactmanager/list/view/view.customFieldSettings.html",controller:"ContactManagerListViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("DashboardCtrl",["$scope","$translate",function(a,b){a.voice=[{name:b.instant("APPLICATION_QUEUE"),link:"main.dashboard.voice"}],a.mail=[{name:b.instant("APPLICATION_QUEUE"),link:"main.dashboard.mail"}]}]),angular.module("xCallyShuttleApp").factory("Dashboard",["$resource",function(a){return a("/api/dashboards/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.dashboard",{"abstract":!0,url:"/dashboard",templateUrl:"app/dashboard/dashboard.html",controller:"DashboardCtrl"}).state("main.dashboard.voice",{url:"/voice",controller:"DashboardVoiceCtrl",templateUrl:"app/dashboard/voice/voice.html"}).state("main.dashboard.mail",{url:"/mail",controller:"DashboardMailCtrl",templateUrl:"app/dashboard/mail/mail.html"})}]),angular.module("xCallyShuttleApp").controller("DashboardMailCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").controller("DashboardVoiceCtrl",["$scope","Auth","ReportQueue","ReportCall","Agent","socket",function(a,b,c,d,e,f){a.Auth=b;var g=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.initAgent=function(){f.socket.on("user_has_voice_queue:save",function(b){var c=_.findIndex(a.table1.data,{name:b.queue});c>-1&&(console.log("data",b),a.table1.data[c].UserHasVoiceQueue.loggedAt=b.loggedAt,a.table1.data[c].UserHasVoiceQueue.lastcall=b.lastcall,a.table1.data[c].UserHasVoiceQueue.callstaken=b.callstaken,console.log("data",b))}),f.socket.on("report_queue:save",function(b){b.queuecallerleaveAt?_.remove(a.table2.data,{id:b.id}):_.find(a.table1.data,{name:b.queue})&&a.table2.data.push(b)}),a.table1={enableGridMenu:!1,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,multiSelect:!0,columnDefs:[{name:"UserHasVoiceQueue.queue",headerCellFilter:"translate",displayName:"APPLICATION_QUEUE",cellClass:"text-center ui-grid-vcenter"},{name:"UserHasVoiceQueue.loggedAt",displayName:"logged At",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><span am-time-ago="row.entity.UserHasVoiceQueue.loggedAt"></span></div>'},{name:"UserHasVoiceQueue.lastcall",headerCellFilter:"translate",displayName:"APPLICATION_LAST_CALL",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><span am-time-ago="row.entity.UserHasVoiceQueue.lastcall"></span></div>'},{name:"UserHasVoiceQueue.callstaken",headerCellFilter:"translate",displayName:"APPLICATION_CALLS_TAKEN",cellClass:"text-center ui-grid-vcenter"}],data:[],
+onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){g(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)})}},a.table2={enableGridMenu:!1,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,multiSelect:!0,columnDefs:[{name:"calleridnum",headerCellFilter:"translate",displayName:"APPLICATION_NUMBER",cellClass:"text-center ui-grid-vcenter"},{name:"calleridname",headerCellFilter:"translate",displayName:"APPLICATION_NAME",cellClass:"text-center ui-grid-vcenter"},{name:"queue",headerCellFilter:"translate",displayName:"APPLICATION_QUEUE",cellClass:"text-center ui-grid-vcenter"}],data:[],onRegisterApi:function(b){a.gridApi1=b,a.gridApi1.grid.registerDataChangeCallback(function(){g(a.gridApi1.core.getVisibleRows(a.gridApi1.grid).length)})}},e.get({id:b.getCurrentUser().id,controller:"voice",controller1:"queues"}).$promise.then(function(b){a.table1.data=b.rows})["catch"](function(a){console.error(a)}),c.get({id:"waiting",controller:"list"}).$promise.then(function(b){a.table2.data=b.rows})["catch"](function(a){console.error(a)})},a.initWaiting=function(){return c.get({id:"waiting"}).$promise.then(function(b){a.waiting=b.value,f.socket.on("dashboard:waiting",function(b){a.waiting=b.value})})["catch"](function(a){console.error(a)})},a.initActive=function(){return c.get({id:"active"}).$promise.then(function(b){a.active=b.value,f.socket.on("dashboard:active",function(b){a.active=b.value})})["catch"](function(a){console.error(a)})},a.initAnswered=function(){return c.get({id:"answered"}).$promise.then(function(b){a.answered=b.value,f.socket.on("dashboard:answered",function(b){a.answered=b.value})})["catch"](function(a){console.error(a)})},a.initAbandoned=function(){return c.get({id:"abandoned"}).$promise.then(function(b){a.abandoned=b.value,f.socket.on("dashboard:abandoned",function(b){a.abandoned=b.value})})["catch"](function(a){console.error(a)})},a.initAvgAnswerTime=function(){return c.get({id:"avganswertime"}).$promise.then(function(b){a.avganswertime=b.value,f.socket.on("dashboard:avganswertime",function(b){a.avganswertime=b.value})})["catch"](function(a){console.error(a)})},a.initAvgTalkTime=function(){return c.get({id:"avgtalktime"}).$promise.then(function(b){a.avgtalktime=b.value,f.socket.on("dashboard:avgtalktime",function(b){a.avgtalktime=b.value})})["catch"](function(a){console.error(a)})},a.initAnswerRate=function(){return c.get({id:"answerrate"}).$promise.then(function(b){a.answerrate=b.value,f.socket.on("dashboard:answerrate",function(b){a.answerrate=b.value})})["catch"](function(a){console.error(a)})},a.initTotalOffered=function(){return c.get({id:"totaloffered"}).$promise.then(function(b){a.totaloffered=b.value,f.socket.on("dashboard:totaloffered",function(b){a.totaloffered=b.value})})["catch"](function(a){console.error(a)})},a.initUnmanaged=function(){return c.get({id:"unmanaged"}).$promise.then(function(b){a.unmanaged=b.value,f.socket.on("dashboard:unmanaged",function(b){a.unmanaged=b.value})})["catch"](function(a){console.error(a)})},a.initAbandonRate=function(){return c.get({id:"abandonrate"}).$promise.then(function(b){a.abandonrate=b.value,f.socket.on("dashboard:abandonrate",function(b){a.abandonrate=b.value})})["catch"](function(a){console.error(a)})},a.initManualOutbound=function(){return d.get({id:"manualoutbound"}).$promise.then(function(b){a.manualoutbound=b.value,f.socket.on("dashboard:manualoutbound",function(b){a.manualoutbound=b.value})})["catch"](function(a){console.error(a)})},a.initManualOutboundGlobalDuration=function(){return d.get({id:"manualoutboundglobalduration"}).$promise.then(function(b){a.manualoutboundglobalduration=b.value,f.socket.on("dashboard:manualoutboundglobalduration",function(b){a.manualoutboundglobalduration=b.value})})["catch"](function(a){console.error(a)})},a.initManualOutboundAvgDuration=function(){return d.get({id:"manualoutboundavgduration"}).$promise.then(function(b){a.manualoutboundavgduration=b.value,f.socket.on("dashboard:manualoutboundavgduration",function(b){a.manualoutboundavgduration=b.value})})["catch"](function(a){console.error(a)})},a.initManualOutboundAnswered=function(){return d.get({id:"manualoutboundanswered"}).$promise.then(function(b){a.manualoutboundanswered=b.value,f.socket.on("dashboard:manualoutboundanswered",function(b){a.manualoutboundanswered=b.value})})["catch"](function(a){console.error(a)})},a.initManualOutboundAnswerRate=function(){return d.get({id:"manualoutboundanswerrate"}).$promise.then(function(b){a.manualoutboundanswerrate=b.value,f.socket.on("dashboard:manualoutboundanswerrate",function(b){a.manualoutboundanswerrate=b.value})})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk",{url:"/desk",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("DeskAccount",["$resource",function(a){return a("/api/desk/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("DeskListCtrl",["$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(_.map(a.displayedDeskAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedDeskAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("desk_account"),b.url="/api/desk/accounts",h.getPage(b).then(function(d){a.displayedDeskAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedDeskAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedDeskAccounts.length)}),f.socket.on("desk_account:save",function(){a.initList(b)}),f.socket.on("desk_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/desk/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/desk/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/desk/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.desk.list",{url:"/list",templateUrl:"app/desk/list/list.html",controller:"DeskListCtrl",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("DeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal","desk_com",function(a,b,c,d,e,f,g,h,i,j){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("desk_configuration"),g.unsyncUpdates("desk_field")}),a.initView=function(){b.get("/api/desk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){h.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/desk/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/desk/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,g.socket.on("desk_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/desk/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.AccountId=c.id,b.post("api/desk/configurations",a.configuration).success(function(a){e.path("desk/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/desk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=j.fields.concat(b)}).error(function(a){h.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/desk/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("desk_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/desk/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/desk/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/desk/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/desk/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/desk/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){if(b.content="",b.idField){var c=_.find(a.accountFields,"id",b.idField);c&&(b.customField=_.result(c,"custom",!0))}a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"id",b);return c?c.data.choices?c.data.choices:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.view",{url:"/view/:id",templateUrl:"app/desk/view/view.html",controller:"DeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.desk.view.account",{url:"/account",templateUrl:"app/desk/view/view.account.html"}).state("main.desk.view.configurations",{url:"/configurations",templateUrl:"app/desk/view/view.configurations.html"}).state("main.desk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/desk/view/view.configurationSettings.html",controller:"DeskViewCtrl"}).state("main.desk.view.configuration",{url:"/configuration",templateUrl:"app/desk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("DeskWizardCtrl",["$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.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/desk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/desk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.wizard",{url:"/wizard",templateUrl:"app/desk/wizard/wizard.html",controller:"DeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk",{url:"/freshdesk",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("FreshdeskAccount",["$resource",function(a){return a("/api/freshdesk/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("FreshdeskListCtrl",["$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(_.map(a.displayedFreshdeskAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedFreshdeskAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("freshdesk_account"),b.url="/api/freshdesk/accounts",h.getPage(b).then(function(d){a.displayedFreshdeskAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedFreshdeskAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedFreshdeskAccounts.length)}),f.socket.on("freshdesk_account:save",function(){a.initList(b)}),f.socket.on("freshdesk_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/freshdesk/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/freshdesk/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/freshdesk/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.freshdesk.list",{url:"/list",templateUrl:"app/freshdesk/list/list.html",controller:"FreshdeskListCtrl",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("FreshdeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","$filter","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i,j){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(){g.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){h.unsyncUpdates("freshdesk_configuration"),h.unsyncUpdates("freshdesk_field")}),a.initView=function(){b.get("/api/freshdesk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){i.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/freshdesk/accounts/"+c.id,a.account).success(function(){i.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/freshdesk/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,h.socket.on("freshdesk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.deleteConfiguration=j.confirm["delete"](function(a){b["delete"]("api/freshdesk/configurations/"+a).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/freshdesk/configurations",a.configuration).success(function(a){e.path("freshdesk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){i.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/freshdesk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=[],b=f("freshdesk")(b),_.forEach(b,function(b){a.accountFields.push(b.ticket_field)})}).error(function(a){i.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/freshdesk/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,h.socket.on("freshdesk_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){i.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){i.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/freshdesk/fields/"+a.id).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/freshdesk/fields/"+a.id,a).success(function(){}).error(function(){i.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){if(b.content="",b.idField){var c=_.find(a.accountFields,"name",b.idField);c&&(b.customField=!_.result(c,"default",!0))}a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);return c?c.choices.length>0?c.choices:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.view",{url:"/view/:id",templateUrl:"app/freshdesk/view/view.html",controller:"FreshdeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.freshdesk.view.account",{url:"/account",templateUrl:"app/freshdesk/view/view.account.html"}).state("main.freshdesk.view.configurations",{url:"/configurations",templateUrl:"app/freshdesk/view/view.configurations.html"}).state("main.freshdesk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/freshdesk/view/view.configurationSettings.html",controller:"FreshdeskViewCtrl"}).state("main.freshdesk.view.configuration",{url:"/configuration",templateUrl:"app/freshdesk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("FreshdeskWizardCtrl",["$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.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/freshdesk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/freshdesk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.wizard",{url:"/wizard",templateUrl:"app/freshdesk/wizard/wizard.html",controller:"FreshdeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations",{url:"/integrations",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("Integration",["$resource",function(a){return a("/api/integrations/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").controller("IntegrationListCtrl",["$scope","Modal","socket","FileUploader","Integration","xAlert",function(a,b,c,d,e,f){a.integrationsByPage=10;var g=a.uploader=new d({url:"api/integrations",autoUpload:!0,removeAfterUpload:!0});g.filters.push({name:"zipFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|zip|".indexOf(b)}}),g.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),f.show(b.name,"success")},g.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),b.errors.forEach(function(a){f.show(a.message,"danger")})},a.deleteItem=b.confirm["delete"](function(a){e["delete"]({id:a},function(){f.show("Integration Removed","success")},function(a){f.show(a.data.errors,"danger")})}),a.initList=function(){a.integrations=e.query({},function(a){c.syncUpdates("integration",a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations.list",{url:"/list",templateUrl:"app/integration/list/list.html",controller:"IntegrationListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty",{url:"/jscripty",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("JscriptyProject",["$resource",function(a){return a("/api/jscripty/projects/:id/:controller/:action/:action2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectListCtrl",["$scope","$uibModal","JscriptyProject","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"jscriptyProjects.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:300,buttons:[{"class":"blue-hoki",href:"/jscripty/projects/view/{{row.entity.id}}",name:"settings"},{"class":"green",name:"start",onClick:"grid.appScope.openJscriptyTab(row.entity)"},{"class":"purple",href:"/jscripty/projects/report/{{row.entity.id}}/sessions",name:"report"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/jscripty/project/list/list.create.modal.html",controller:"JscriptyProjectListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectListCreateCtrl",["$scope","$translate","$uibModalInstance","JscriptyProject","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){console.log(a),e.show(b.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.list",{url:"/list",templateUrl:"app/jscripty/project/list/list.html",controller:"JscriptyProjectListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects",{url:"/projects",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectReportCtrl",["$scope","$http","$state","$stateParams","socket","Auth","Modal","xAlert","$translate","$rootScope","gridOptions","JscriptyProject","$location",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.projectStats={started:0,incomplete:0,completed:0},a.projectId=d.id,a.initView=function(){return l.get({id:d.id,controller:"sessions"}).$promise.then(function(b){a.projectId=d.id,console.log(a.projectId);var c=_.groupBy(b.rows,"status");a.projectStats.started=c.started?c.started.length:0,a.projectStats.completed=c.completed?c.completed.length:0,a.projectStats.incomplete=c.incomplete?c.incomplete.length:0})["catch"](function(a){h.show(a.message,"danger")})},a.getProjectSessions=function(){var b={exporterCsvFilename:"jscriptyProjects.csv",columnDefs:[{name:"projectId",displayName:"APPLICATION_PROJECTID"},{name:"session_id",displayName:"APPLICATION_SESSIONID"},{name:"createdAt",displayName:"APPLICATION_STARTEDAT"},{name:"completedAt",displayName:"APPLICATION_COMPLETEDAT"},{name:"status",displayName:"APPLICATION_STATUS"},{name:"last_question_id",displayName:"APPLICATION_LASTQUESTIONID"},{name:"action",width:100,buttons:[{"class":"blue-hoki",href:"/jscripty/projects/report/{{row.entity.projectId}}/session/{{row.entity.session_id}}",name:"Detail"}]}]};a.gridOptions=k.gridOptions(l,b,a,{id:d.id,controller:"sessions"})},a.getSessionDetails=function(){console.log(d.sessionId),b.get("/api/jscripty/projects/"+d.id+"/sessions/"+d.sessionId).success(function(b){a.sessionQuestions=b[0],console.log("session",a.sessionQuestions)})["catch"](function(a){h.show(a.message,"danger")})},a.getQuestionSummary=function(){var b={exporterCsvFilename:"jscriptyProjects.csv",columnDefs:[{name:"question_id",width:150,displayName:"APPLICATION_QUESTIONID"},{name:"question_type",width:150,displayName:"APPLICATION_QUESTIONTYPE"},{name:"question_label",width:200,displayName:"APPLICATION_QUESTIONLABEL"},{name:"question_text",displayName:"APPLICATION_QUESTION"},{name:"count",width:100,displayName:"APPLICATION_COUNT"}]};a.gridOptions=k.gridOptions(l,b,a,{id:d.id,controller:"questions",action:"summary"})},a.getQuestionDetail=function(){b.get("/api/jscripty/projects/"+d.id+"/questions/detail").success(function(b){var c=_.groupBy(b,"question_id");_.forEach(c,function(a,b){c[b]=_.groupBy(a,"question_label"),_.forEach(c[b],function(a,d){c[b][d]=_.groupBy(a,"question_text")})}),a.questionDetail=c,console.log("detail",a.questionDetail)})["catch"](function(a){h.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.report",{url:"/report/:id",templateUrl:"app/jscripty/project/report/report.html",controller:"JscriptyProjectReportCtrl"}).state("main.jscripty.projects.report.sessions",{url:"/sessions",templateUrl:"app/jscripty/project/report/report.sessions.html"}).state("main.jscripty.projects.report.summary",{url:"/summary",templateUrl:"app/jscripty/project/report/report.summary.html"}).state("main.jscripty.projects.report.detail",{url:"/detail",templateUrl:"app/jscripty/project/report/report.detail.html"}).state("main.jscripty.projects.report.sessionDetail",{url:"/session/:sessionId",controller:"JscriptyProjectReportCtrl",templateUrl:"app/jscripty/project/report/report.session.detail.html"})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectViewCtrl",["$scope","$http","$state","$stateParams","socket","Auth","Modal","xAlert","$translate","$rootScope",function(a,b,c,d,e,f,g,h,i,j){a.jscriptyProject={},a.getProject=function(){b.get("/api/jscripty/projects/"+d.id).success(function(b){a.jscriptyProject=b,angular.element(document).ready(function(){window.onerror=function(a,b,c){try{if(null!=a&&-1!=a.indexOf("Script error."));else{var d=new Image;d.src="assets/plugins/mxgraph/images/1x1.png?msg="+encodeURIComponent(a)+"&url="+encodeURIComponent(b)+"&lnum="+encodeURIComponent(c)}}catch(e){}},b.token=f.getToken();var a=new EditorUi(new Editor);a.openString(b.draft,b.name,b),a.editor.graphChangeListener=function(a,b){var c=b.properties.rtChange||!1;c||(this.modified=!0)}}),e.syncUpdates("jscripty_project",[b],function(a,c,d){c.id===b.id})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.view",{url:"/view/:id",templateUrl:"app/jscripty/project/view/view.html",controller:"JscriptyProjectViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",serie:!0,cache:!1,files:["assets/plugins/mxgraph/css/common.css","assets/plugins/mxgraph/css/explorer.css","assets/plugins/mxgraph/styles/grapheditor.css","assets/plugins/mxgraph/styles/custom.css","assets/plugins/jscripty/js/custom.js","assets/plugins/mxgraph/js/mxClient.js","assets/plugins/jscripty/js/Editor.js","assets/plugins/jscripty/js/Graph.js","assets/plugins/jscripty/js/EditorUi.js","assets/plugins/jscripty/js/Actions.js","assets/plugins/jscripty/js/Menus.js","assets/plugins/jscripty/js/Sidebar.js","assets/plugins/jscripty/js/Toolbar.js","assets/plugins/jscripty/js/Dialogs.js"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("LoginCtrl",["$scope","Auth","$location","$window","$rootScope",function(a,b,c,d,e){a.year=moment().year(),a.userLogin={},a.userSignUp={},a.loginSubmitted=!1,a.signupSubmitted=!1,a.errorLogin=!1,a.errorSignup=!1,a.errorLog="",a.flagLogin1=!1,a.toogleLogin=function(){a.flagLogin1=!a.flagLogin1},e.bodyLayout="login",a.$on("$viewContentLoaded",function(){Metronic.init(),Layout.init()}),a.login=function(d){a.loginSubmitted=!0,d.$valid?b.login({name:a.userLogin.name,password:a.userLogin.password,remember:a.userLogin.remember}).then(function(){c.path("/dashboard/voice")})["catch"](function(b){a.errorLog=b.message,a.errorLogin=!0}):a.errorLogin=!0},a.signup=function(d){a.signupSubmitted=!0,d.$valid?b.createUser({email:a.userSignUp.email,fullname:a.userSignUp.fullname,name:a.userSignUp.name,password:a.userSignUp.password,role:a.userSignUp.role,online:!0}).then(function(){c.path("/")})["catch"](function(b){a.errorLog=b.message,a.errorSignup=!0}):a.errorSignup=!0},a.loginOauth=function(a){d.location.href="/auth/"+a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("login",{url:"/login",templateUrl:"app/login/login.html",controller:"LoginCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",
+files:["assets/css/login.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Action",["$resource",function(a){return a("/api/actions/:name/:controller",{name:"@name"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").directive("actionBuilderTemplate",["$compile","xAlert","$http","$timeout","Template","$translate",function(a,b,c,d,e,f){return{restrict:"E",scope:{element:"=",form:"="},templateUrl:"app/main/template/actionBuilder/template.actionBuilderTemplate.html",compile:function(c,g){var h,i;return h=c.contents().remove(),function(c,g,j){function k(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}c.randomName=k(),d(function(){return e.get().$promise.then(function(a){c.templates=a.rows})["catch"](function(a){b.show(f.instant(a.message),"danger")})}),i||(i=a(h)),g.append(i(c,function(a){return a}))}}}}]).directive("actionBuilderIntegration",["$compile","xAlert","$http","$timeout","Integration","$translate","ZendeskAccount","DeskAccount","SalesforceAccount","FreshdeskAccount","SugarcrmAccount",function(a,b,c,d,e,f,g,h,i,j,k){return{restrict:"E",scope:{element:"=",form:"="},templateUrl:"app/main/template/actionBuilder/template.actionBuilderIntegration.html",compile:function(c,l){var m,n;return m=c.contents().remove(),function(c,l,o){function p(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}c.randomName=p(),d(function(){return e.get({active:1}).$promise.then(function(a){c.integrations=a.rows,c.element.data1&&q()})["catch"](function(a){b.show(f.instant(a.message),"danger")})});var q=function(){var a;switch(c.element.data1){case"zendesk":a=g;break;case"desk":a=h;break;case"salesforce":a=i;break;case"freshdesk":a=j;break;case"sugarcrm":a=k}return a.get().$promise.then(function(a){c.accounts=a.rows,c.element.data2&&r()})["catch"](function(a){b.show(f.instant(a.message),"danger")})},r=function(){c.configurations=_.find(c.accounts,{id:Number(c.element.data2)}).Configurations};c.changeIntegration=function(){c.element.data2="",q()},c.changeAccount=function(){c.element.data3="",r()},n||(n=a(m)),l.append(n(c,function(a){return a}))}}}}]).directive("actionBuilderStatus",["$compile","xAlert","$http","$timeout","$translate",function(a,b,c,d,e){return{restrict:"E",scope:{element:"=",form:"="},templateUrl:"app/main/template/actionBuilder/template.actionBuilderStatus.html",compile:function(b,c){var d,e;return d=b.contents().remove(),function(b,c,f){function g(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}b.randomName=g(),b.states=[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],e||(e=a(d)),c.append(e(b,function(a){return a}))}}}}]),angular.module("xCallyShuttleApp").factory("Ami",["$resource",function(a){return a("/api/ami/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("ChooseContactModalCtrl",["$scope","$uibModalInstance","eventId","xAlert","$translate","Contact",function(a,b,c,d,e,f){a.open=function(a){b.close(a)},a.getContacts=function(){return f.query({id:c,controller:"checkevent"}).$promise.then(function(b){a.contacts=b})["catch"](function(a){d.show(e.instant(a.message)+"!","danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("CloseEditedTabModalCtrl",["$scope","$uibModalInstance",function(a,b){a.close=function(){b.close()},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").factory("gridOptions",["Modal","xAlert","$translate","$interval","$q","usSpinnerService",function(a,b,c,d,e,f){return{gridOptions:function(d,g,h,i,j,k){h.id=[];var l=k?"gridOptions"+k:"gridOptions",m={offset:0,limit:10};g.draggable&&(g.rowTemplate='<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',g.useExternalPagination=!1,g.enablePaginationControls=!1,g.showGridFooter=!1);var n=function(a){var b=a?30*a+120:177;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px")},o=function(){return h[l].enablePaginationControls||(delete m.offset,delete m.limit),f.spin("spinner-grid"),d.get(i?_.merge(m,i):m).$promise.then(function(a){h[l].totalItems=a.count,h[l].data=a.rows,n(a.rows.length)})["catch"](function(a){console.error(a)})["finally"](function(){f.stop("spinner-grid")})};return h.deleteItem=a.confirm["delete"](function(a){var e=i?angular.copy(i):{};return _.merge(e,{id:a}),d.remove(e).$promise.then(function(){o(),b.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),h.gridApi.selection.clearSelectedRows(),h.id=[]})["catch"](function(a){b.show(a.message?a.message:a.data.message,"danger")})}),h.deleteItems=a.confirm["delete"](function(){var a=i?angular.copy(i):{};return _.merge(a,{ids:h.id}),d["delete"](a).$promise.then(function(){o(),b.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),h.gridApi.selection.clearSelectedRows(),h.id=[]})["catch"](function(a){b.show(a.message?a.message:a.data.message,"danger")})}),g.columnDefs.forEach(function(a){a.hasOwnProperty("displayName")||(a.displayName="APPLICATION_"+a.name.toUpperCase()),a.headerCellFilter="translate",a.hasOwnProperty("buttons")&&(a.displayName="",a.cellClass="ui-grid-vcenter",a.enableSorting=!1,a.enableFiltering=!1,a.enableColumnMenu=!1,a.cellTemplate="<div>",a.buttons.forEach(function(b){b.directive?a.cellTemplate+=b.directive:(a.cellTemplate+="<a",a.cellTemplate+=b.hide?' data-ng-hide="true" ':" ",a.cellTemplate+=b["class"]?' class="btn btn-xs '+b["class"]+'" ':" ",a.cellTemplate+=b.href?' data-ng-href="'+b.href+'" ':" ",a.cellTemplate+=b.uisref?' ui-sref="'+b.uisref+'" ':" ",a.cellTemplate+=b.onClick?' data-ng-click="'+b.onClick+'" ':" ",a.cellTemplate+=b.title?' title="'+b.title+'"':"",a.cellTemplate+=">",a.cellTemplate+=b.icon?'<i class="'+b.icon+'"></i>':"",a.cellTemplate+=b.displayName||b.name?"{{'"+(b.displayName||"APPLICATION_"+b.name.toUpperCase())+"' | translate}}":"",a.cellTemplate+="</a> ")}),a.cellTemplate+="<div>",delete a.buttons)}),_.merge({enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableRowSelection:!0,enableSelectAll:!0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,getPage:o,gridMenuTitleFilter:function(a){var b=e.defer();return b.resolve(c.instant(a)),b.promise},onRegisterApi:function(a){h.gridApi=a,h.gridApi.selection.on.rowSelectionChanged(h,function(a){a.isSelected?h.id.push(h.gridApi.grid.options.primaryKey?a.entity[h.gridApi.grid.options.primaryKey]:a.entity.id):_.pull(h.id,h.gridApi.grid.options.primaryKey?a.entity[h.gridApi.grid.options.primaryKey]:a.entity.id)}),h.gridApi.selection.on.rowSelectionChangedBatch(h,function(a){a[0].isSelected?h.id=_.union(h.id,_.map(a,h.gridApi.grid.options.primaryKey?"entity."+h.gridApi.grid.options.primaryKey:"entity.id")):_.map(a,h.gridApi.grid.options.primaryKey?"entity."+h.gridApi.grid.options.primaryKey:"entity.id").forEach(function(a){_.pull(h.id,a)})}),h.gridApi.core.on.sortChanged(h,function(a,b){0===b.length?m.order=null:m.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),o()}),h.gridApi.pagination.on.paginationChanged(h,function(a,b){m.offset=(a-1)*b,m.limit=b,o()}),h.gridApi.core.on.filterChanged(h,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?(m[a.name]=a.filters[0].term,i&&delete i[a.name]):delete m[a.name]}),o()}),h.gridApi.draggableRows.on.rowDropped(h,function(a){a.fromIndex!==a.toIndex&&d.update(i,h[l].data).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(a.message,"danger")})}),j||o()}},g)}}}]),angular.module("xCallyShuttleApp").controller("MainCtrl",["$scope","$rootScope","$translate","socket","Auth","xAlert","$uibModal","$log","$state","Contact",function(a,b,c,d,e,f,g,h,i,j){a.awesomeThings=[],a.isLoggedIn=e.isLoggedIn,a.isAdmin=e.isAdmin,a.getCurrentUser=e.getCurrentUser,a.workspaces=[],a.mainTab={active:!0},a.closeTab=function(b){if(a.workspaces[b].edited){var c=g.open({animation:!0,templateUrl:"app/main/closeEditedTab.modal.html",controller:"CloseEditedTabModalCtrl"});c.result.then(function(c){a.workspaces.splice(b,1)},function(){h.info("Modal dismissed at: "+new Date)})}else a.workspaces.splice(b,1)},a.createContact=function(b,d){return d.tags=d.tags?d.tags.join(","):void 0,j.save(d).$promise.then(function(d){a.workspaces.splice(b,1);var e=d.firstName;d.lastName&&(e+=" "+d.lastName),a.openContactTab({firstName:d.firstName,lastName:d.lastName,id:d.id}),f.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){f.show(a.message,"danger")})};var k=function(b){var c=g.open({animation:!0,templateUrl:"app/main/chooseContact.modal.html",controller:"ChooseContactModalCtrl",resolve:{eventId:function(){return b.id}}});c.result.then(function(c){c?a.openContactTab(c,b):a.newContact(b)},function(){h.info("Modal dismissed at: "+new Date)})};a.updateContact=function(b,d){var e=angular.copy(d);return e.tags=e.tags?e.tags.join(","):void 0,e.CompanyId||(e.CompanyId=null),j.update({id:e.id},e).$promise.then(function(){a.workspaces[b].edited=!1,f.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){f.show(c.instant(a.message)+"!","danger")})},d.socket.on("report_integration:contactmanager",function(a){console.log("choosecontact"),k(a)}),a.openContactTab=function(b,c){var d=_.find(a.workspaces,{contactID:b.id});if(d)d.active=!0;else{var e=b.firstName;b.lastName&&(e+=" "+b.lastName),a.workspaces.push({name:e,type:"contact",contactID:b.id,active:!0,eventData:b.uniqueid?b:null,data:c||null})}},a.openJscriptyTab=function(b){a.workspaces.push({name:b.name,type:"jscripty",active:!0,data:b})},a.newContact=function(b){a.workspaces.push({name:"New Contact",type:"newContact",active:!0,data:b||null,eventData:b&&b.uniqueid?b:""})},a.$on("$viewContentLoaded",function(){Metronic.init()}),b.language=c.use(),a.changeLanguage=function(a){c.use(a).then(function(a){b.language=a,("main.jscripty.projects.view"===i.current.name||"main.square.projects.view"===i.current.name)&&i.go(i.current,{},{reload:!0})})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").directive("ngSpinnerBar",["$rootScope",function(a){return{link:function(b,c){c.addClass("hide"),a.$on("$stateChangeStart",function(){"spinner-page"===c[0].id&&c.removeClass("hide")}),a.$on("$stateChangeSuccess",function(){"spinner-page"===c[0].id&&(c.addClass("hide"),$("body").removeClass("page-on-load"),Layout.setSidebarMenuActiveLink("match"),setTimeout(function(){Metronic.scrollTop()},1e3))}),a.$on("$spinnerStart",function(){"spinner-request"===c[0].id&&c.removeClass("hide")}),a.$on("$spinnerStop",function(){"spinner-request"===c[0].id&&c.addClass("hide")}),a.$on("$stateNotFound",function(){"spinner-page"===c[0].id&&c.addClass("hide")}),a.$on("$stateChangeError",function(){"spinner-page"===c[0].id&&c.addClass("hide")})}}}]).directive("a",function(){return{restrict:"E",link:function(a,b,c){(c.ngClick||""===c.href||"#"===c.href)&&b.on("click",function(a){a.preventDefault()})}}}).directive("nxEqual",function(){return{require:"ngModel",link:function(a,b,c,d){return c.nxEqual?(a.$watch(c.nxEqual,function(a){d.$setValidity("nxEqual",a===d.$viewValue)}),void d.$parsers.push(function(b){var e=b===a.$eval(c.nxEqual);return d.$setValidity("nxEqual",e),e?b:void 0})):void console.error("nxEqual expects a model as an argument!")}}}).directive("ngEnter",function(){return function(a,b,c){b.bind("keydown keypress",function(b){13===b.which&&(a.$apply(function(){a.$eval(c.ngEnter)}),b.preventDefault())})}}).directive("dropdownMenuHover",function(){return{link:function(a,b){b.dropdownHover()}}}).directive("uiSelectRequired",function(){return{require:"ngModel",link:function(a,b,c,d){d.$validators.uiSelectRequired=function(a){return a&&a.length}}}}).directive("rpattern",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){function e(a,b){return null==b||""===b||!h||a.test(b)?(d.$setValidity("pattern",!0),b):void d.$setValidity("pattern",!1)}var f,g=c.rpattern,h=!0;g&&(g.match(/^\/(.*)\/$/)?(g=new RegExp(g.substr(1,g.length-2)),f=function(a){return e(g,a)}):f=function(b){var c=a.$eval(g);if(!c||!c.test)throw new Error("Expected "+g+" to be a RegExp but was "+c);return e(c,b)}),d.$formatters.push(f),d.$parsers.push(f),c.$observe("required",function(a){h=a,f(d.$viewValue)})}}}).directive("conditionBuilder",["$compile","xAlert","$timeout",function(a,b,c){return{restrict:"E",scope:{element:"=",serviceindex:"=",service:"=",form:"="},templateUrl:"app/main/template/template.conditionBuilder.html",compile:function(d,e){var f,g;return f=d.contents().remove(),function(d,e,h){function i(a){var c=_.find(d.service.services[d.serviceindex].conditions,{value:a});if(c)if(d.elementType=c.type,c.arr)d.values=c.arr;else if(c.resource)return c.resource.get().$promise.then(function(a){d.values=_.map(a.rows,function(a){return{name:a[c.resValue],value:a[c.resValue]}})})["catch"](function(a){b.show($translate.instant(a.message),"danger")})}function j(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}d._=_,d.randomName=j(),c(function(){d.element.field&&i(d.element.field)}),d.checkCondition=function(a){d.element.value="",d.element.operator="",i(a)},g||(g=a(f)),e.append(g(d,function(a){return a}))}}}}]).directive("newContact",["$compile","xAlert","socket","$translate","$timeout","List","Tag","Company",function(a,b,c,d,e,f,g,h){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template/template.contactTab.html",compile:function(a,i){return function(a,i,j){function k(){a.$watch("contact",function(b,c){angular.equals(b,c)||(a.workspace.edited=!0)},!0)}a.forms={general:{}},a.firstLoad=!0,a.detail={tab:"main"},a.contact={},a.submitButtonLabel=d.instant("APPLICATION_CONFIRM"),a.init=function(){a.workspace.data&&(a.contact.firstName=a.workspace.data.calleridname?a.workspace.data.calleridname:a.workspace.data.messageId?a.workspace.data.messageId:a.workspace.data.uniqueid?a.workspace.data.uniqueid:"",a.workspace.data.calleridnum&&(a.contact.phone=a.workspace.data.calleridnum),a.workspace.data.from&&(a.contact.email=a.workspace.data.from)),a.getTags(),a.getCompanies(),a.getLists()},a.getLists=function(){return f.get().$promise.then(function(b){a.lists=b.rows,c.syncUpdates("list",a.lists),a.contact.ListId=1,a.getCustomFields()})["catch"](function(a){b.show(d.instant(a.message)+"!","danger")})},a.getCustomFields=function(){return f.get({listId:a.contact.ListId,controller:"customfields"}).$promise.then(function(b){a.customFields=b.rows,a.customFields.forEach(function(a){a.values=JSON.parse(a.values)}),c.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),c.socket.on("custom_field:save",function(b){if(b.ListId===a.contact.ListId){var c=_.find(a.customFields,{id:b.id});c||("string"==typeof b.values&&(b.values=JSON.parse(b.values)),a.customFields.push(b))}}),!a.firstLoad||a.workspace.data?(a.workspace.edited=!0,a.firstLoad=!1):(a.firstLoad=!1,k())})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},a.getTags=function(){return g.get().$promise.then(function(b){a.tags=_.map(b.rows,"name")})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},a.getCompanies=function(){return h.get().$promise.then(function(b){a.companies=b.rows,c.syncUpdates("company",a.companies)})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},e(function(){a.init()})}}}}]).directive("contact",["$compile","xAlert","socket","$timeout","List","Tag","Company","Contact","$translate","gridOptions",function(a,b,c,d,e,f,g,h,i,j){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template/template.contactTab.html",compile:function(a,k){return function(a,k,l){function m(b){var c={enablePaginationControls:!0,exporterCsvFilename:b+".csv",columnDefs:[{name:a.columns[a.log[b].show][a.log[b].detail].indexes[0],displayName:a.columns[a.log[b].show][a.log[b].detail].header[0],headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:a.columns[a.log[b].show][a.log[b].detail].indexes[1],displayName:a.columns[a.log[b].show][a.log[b].detail].header[1],headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:a.columns[a.log[b].show][a.log[b].detail].indexes[2],displayName:a.columns[a.log[b].show][a.log[b].detail].header[2],headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1}]};a["gridOptions"+b]=j.gridOptions(h,c,a,_.merge({id:a.workspace.contactID,controller:"log",logType:b},a.log[b]),!0,b),a["gridOptions"+b].getPage()}a.moment=moment,a.submitButtonLabel=i.instant("APPLICATION_UPDATE"),a.forms={general:{}},a.detail={tab:"main"},a.log={journal:{show:"phone",type:"inbound",detail:"general"},history:{show:"phone",type:"inbound",detail:"general"}},a.columns={phone:{general:{header:["APPLICATION_SOURCE","APPLICATION_DESTINATION","APPLICATION_DATE"],indexes:["source","destination","createdAt"]},queue:{header:["APPLICATION_CALLERID","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["calleridnum","queue","createdAt"]},agent:{header:["APPLICATION_AGENT","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["membername","queue","agentcalledAt"]}},email:{general:{header:["APPLICATION_FROM","APPLICATION_TO","APPLICATION_DATE"],indexes:["from","to","createdAt"]}}},a.updateLog=function(b,c,d,e){c&&(a.log[b].show=c),d&&(a.log[b].detail=d),e&&(a.log[b].type=e),m(b)},a.getContact=function(){return h.get({id:a.workspace.contactID}).$promise.then(function(b){b.tags=b.tags?b.tags.split(","):[],a.contact=b,a.getCustomFields(b.ListId),a.updateLog("journal"),a.updateLog("history")})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},a.getTags=function(){return f.get().$promise.then(function(b){a.tags=_.map(b.rows,"name")})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},a.getCompanies=function(){return g.get().$promise.then(function(b){a.companies=b.rows,c.syncUpdates("company",a.companies)})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},a.getCustomFields=function(d){return e.get({listId:d,controller:"customfields"}).$promise.then(function(b){a.customFields=b.rows,a.customFields.forEach(function(a){a.values=JSON.parse(a.values)}),c.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),c.socket.on("custom_field:save",function(b){if(b.ListId===d){var c=_.find(a.customFields,{id:b.id});c||("string"==typeof b.values&&(b.values=JSON.parse(b.values)),a.customFields.push(b))}})})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},d(function(){a.getTags(),a.getCompanies(),a.getContact()})}}}}]).directive("jscripty",["$compile","xAlert","$http","socket",function(a,b,c,d){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template/template.jscriptyTab.html",compile:function(a,d){return function(a,d,e){a.count=0,a.questions=[];var f=0,g=a.workspace.data.id;c.get("/api/jscripty/projects/"+g+"/download").success(function(b){if(b){c.post("/api/jscripty/projects/"+g+"/sessions",{projectId:g,status:"started"}).success(function(a){f=a.session_id,console.log(a)});var d=mxUtils.parseXml(b),e=new mxCodec(d);a.decObj=e.decode(d.documentElement);a.questions[a.count]=a.currentQuestion=_.find(a.decObj.cells,function(a){return a.vertex&&"start"==a.value.nodeName})}else console.log("No project published!"),alert("No project published!"),a.submit({index:a.index})}),a.next=function(b,c){a.currentQuestion.answer&&a.currentQuestion.answer!=c&&(a.questions=_.take(a.questions,a.count+1)),a.currentQuestion.answer=c,a.questions[a.count]=a.currentQuestion;var d=[];_.forEach(b.edges,function(a,c){if(a.source.id==b.id&&a.value){var e=a.value.split(",");e.length>1&&(_.forEach(e,function(c,d){var e=Object.create(a);e.setValue(c),b.edges.push(e)}),d.push(a))}}),_.forEach(d,function(a){_.remove(b.edges,function(b){return b.value==a.value&&b.id==a.id})}),a.currentQuestion=b,a.count++,a.questions[a.count]=b,a.saveQuestions()},a.end=function(){var d="completed";if("end"!=a.questions[a.questions.length-1].value.nodeName){var d="incomplete";a.saveQuestions()}c.put("/api/jscripty/projects/"+g+"/sessions/"+f,{status:d,completedAt:Date(),last_question_id:a.currentQuestion.id}).success(function(c){b.show("Project Ended","success"),a.submit({index:a.index})})},a.back=function(){a.count--,a.currentQuestion=a.questions[a.count]},a.setCurrentQuestion=function(b){a.count=b,a.currentQuestion=a.questions[a.count]},a.saveQuestions=function(){var b=[],d=[];_.forEach(a.questions,function(a,c){a.children&&_.forEach(a.children,function(a,b){d[b]={input_id:a.id,input_type:a.getAttribute("type",""),input_label:a.getAttribute("label",""),input_value:"checkbox"!=a.getAttribute("type","")||a.answer?a.answer:"Not selected"}}),b[c]={sessionId:f,projectId:g,question_id:a.id,question_type:a.value.nodeName,question_label:a.getAttribute("label",""),question_text:a.getAttribute("question",""),question_other_label:a.getAttribute("other"),question_other_answer:a.otheranswer,question_answer:a.answer,ReportJscriptyInputs:d},d=[]}),c.post("/api/jscripty/projects/"+g+"/sessions/"+f+"/questions/",b).success(function(a){})}}}}}]).directive("reportBuilder",["$compile",function(a){return{restrict:"E",scope:{group:"=",fields:"=",forms:"=",firstCall:"="},templateUrl:"app/main/template/template.reportBuilderView.html",compile:function(b,c){var d,e;return d=b.contents().remove(),function(b,c,f){b.operators=[{name:"AND"},{name:"OR"}],b.conditions=[{name:"="},{name:"!="},{name:"<"},{name:"<="},{name:">"},{name:">="},{name:"LIKE"}],b.addCondition=function(){b.group.rules.push({condition:"=",field:"",value:""})},b.removeCondition=function(a){b.group.rules.splice(a,1)},b.addGroup=function(){b.group.rules.push({group:{operator:"AND",rules:[{condition:"=",field:"",value:""}]}})},b.randomName=function(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")},b.removeGroup=function(){b.$parent.group&&b.$parent.group.rules.splice(b.$parent.$index,1)},e||(e=a(d)),c.append(e(b,function(a){return a}))}}}}]).directive("dynamicName",["$compile",function(a){return{restrict:"A",terminal:!0,priority:1e3,link:function(b,c,d){c.attr("name",b.$eval(d.dynamicName)),c.removeAttr("dynamic-name"),a(c)(b)}}}]).directive("onReadFile",["$parse",function(a){return{restrict:"A",scope:!1,link:function(b,c,d){var e=a(d.onReadFile);c.on("change",function(a){var c=new FileReader;c.onload=function(a){b.$apply(function(){e(b,{$fileContent:a.target.result})})},c.readAsText((a.srcElement||a.target).files[0])})}}}]).directive("motionFileDownload",["xAlert","$translate","$timeout","$location","FileSaver","$compile",function(a,b,c,d,e,f){return{restrict:"E",template:'<a uib-tooltip=\'{{tooltiptext}}\' class="{{btnclass || \'btn default btn-xs blue-hoki\'}}" href="" data-ng-click="download()" ng-bind-html="btncontent || (\'APPLICATION_DOWNLOAD\' | translate)"></a>',scope:{mimetype:"=",filename:"=",resource:"=",params:"=",btnclass:"@",btncontent:"@",tooltiptext:"@"},link:function(c,d,f){var g=d.children()[0];c.$on("download-start",function(){$(g).attr("disabled","disabled")}),c.$on("downloaded",function(a,b){var d=base64ToBlob(b,c.mimetype);e.saveAs(d,c.filename),$(g).attr("disabled",!1)}),c.download=function(){return c.$emit("download-start"),c.resource.get(c.params).$promise.then(function(a){c.$emit("downloaded",a.downloadString)})["catch"](function(d){a.show(b.instant(d.translatedMessage||d.data.translatedMessage||d.message||d.data.message),"danger"),c.download=function(){}})}}}}]).directive("audioFileDownload",["xAlert","$translate","$sce",function(a,b,c){return{restrict:"E",template:'<button type="button" class="btn default btn-xs blue-hoki" data-ng-click="download()"><i class="icon-control-play"></i> {{ \'APPLICATION_PREVIEW\' | translate}}</button>',scope:{resource:"=",params:"="},link:function(d,e,f){var g=e.children()[0];d.$on("download-start",function(a,b){$(g).attr("disabled","disabled").html('<i class="icon-refresh"></i> Loading...')}),d.$on("downloaded",function(a,b){var d=new Audio(c.trustAsResourceUrl("data:audio/ogg;base64,"+b));d.controls=!0,$(g).remove(),e.append(d),d.play()}),d.$on("error",function(a,b){$(g).removeClass("blue-stripe").addClass("red-stripe").html('<i class="icon-ban"></i> Error!')}),d.download=function(){return d.$emit("download-start"),d.resource.get(d.params).$promise.then(function(a){d.$emit("downloaded",a.downloadString)})["catch"](function(c){a.show(b.instant(c.translatedMessage||c.data.translatedMessage||c.message||c.data.message),"danger")})}}}}]).directive("uiRequired",function(){return{require:"ngModel",link:function(a,b,c,d){d.$validators.required=function(a,b){return!(b&&0===b.length&&"true"===c.uiRequired)},c.$observe("uiRequired",function(){d.$setValidity("required",!("true"===c.uiRequired&&d.$viewValue&&0===d.$viewValue.length))})}}}),angular.module("xCallyShuttleApp").filter("propsFilter",function(){return function(a,b){var c=[];return angular.isArray(a)?a.forEach(function(a){for(var d=!1,e=Object.keys(b),f=0;f<e.length;f++){var g=e[f],h=b[g].toLowerCase();if(-1!==a[g].toString().toLowerCase().indexOf(h)){d=!0;break}}d&&c.push(a)}):c=a,c}}).filter("capitalize",function(){return function(a){return a?a.replace(/([^\W_]+[^\s-]*) */g,function(a){return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase()}):""}}).filter("salesforce",function(){var a=["CallDisposition","CallDurationInSeconds","CallObject","CallType","IsArchived","Priority","Status","Type"];return function(b){return _.remove(b,function(b){return b.custom===!1&&a.indexOf(b.name)<0}),b}}).filter("sugarcrm",function(){var a=["account_id","account_name","account_name1","assigned_user_name","assigned_user_id","case_number","created_by","created_by_name","date_entered","date_modified","deleted","description","id","modified_by_name","modified_user_id","name"];return function(b){return _.remove(b,function(b){return a.indexOf(b.name)>=0}),b}}).filter("freshdesk",function(){var a=["requester","subject","agent","description"];return function(b){return _.remove(b,function(b){return a.indexOf(b.ticket_field.name)>=0}),b}}).filter("zendesk",function(){var a=["subject","assignee","description"];return function(b){return _.remove(b,function(b){return a.indexOf(b.type)>=0}),b}}),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main",{"abstract":!0,templateUrl:"app/main/main.html",controller:"MainCtrl",resolve:{authorization:["$q","Auth","$state","$timeout","$location",function(a,b,c,d,e){return b.getToken()?a.when():(d(function(){e.path("/login")}),a.reject())}],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","assets/plugins/mxgraph/js/mxClient.js"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("xAlert",["$translate","Notification",function(a,b){return{show:function(c,d){switch(d){case"success":b.success({message:c,title:'<i class="glyphicon glyphicon-ok"></i> <strong>'+a.instant("MESSAGE_SUCCESS")+"!</strong>",delay:5e3});break;case"info":b.info({message:c,title:'<i class="glyphicon glyphicon-info-sign"></i> <strong>'+a.instant("MESSAGE_INFO")+"!</strong>",delay:5e3});break;case"danger":b.error({message:c,title:'<i class="glyphicon glyphicon-exclamation-sign"></i> <strong>'+a.instant("MESSAGE_ERROR")+"!</strong>",delay:1e4});break;case"warning":b.warning({message:c,title:'<i class="glyphicon glyphicon-warning-sign"></i> <strong>'+a.instant("MESSAGE_WARNING")+"!</strong>",delay:1e4});break;default:b.info(c)}}}}]).factory("stResource",["$q","$filter","$timeout","$rootScope","$http","$translate","xAlert",function(a,b,c,d,e,f,g){return{getPage:function(b){var c={page:Math.ceil(b.pagination.start/b.pagination.number),per_page:b.pagination.number};b.sort.predicate&&(c.sort_by=b.sort.predicate,c.sort_order=b.sort.reverse?"DESC":"ASC"),_.forIn(b.search.predicateObject,function(a,b){c[b]=a}),b.search.params&&(c.clientQuery={},_.forIn(b.search.params,function(a,b){c.clientQuery[b]=a})),d.$broadcast("$spinnerStart"),e.get(b.url,{params:c}).success(function(a){h.resolve(a),d.$broadcast("$spinnerStop")}).error(function(a){g.show(f.instant(a.message),"danger"),d.$broadcast("$spinnerStop")});var h=a.defer();return h.promise}}}]),angular.module("xCallyShuttleApp").factory("Widget",["$resource",function(a){return a("/api/widgets/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("MarketCtrl",["$scope","$http","$translate","socket","xAlert","Modal","$timeout",function(a,b,c,d,e,f,g){function h(a,b){return Math.floor(Math.random()*(b-a+1))+a}a.initView=function(){b.get("/api/integrations").success(function(b){a.integrations=b.rows,a.groupedIntegration=_.chunk(a.integrations,4),d.syncUpdates("integration",a.integrations,function(){a.groupedIntegration=_.chunk(a.integrations,4)})}).error(function(a){e.show(a.message,"danger")})},a.isProgressing=!1,a.$on("$destroy",function(){d.unsyncUpdates("integration")}),a.installIntegration=function(d){a.status="Downloading",a.percentage=h(1,50),a.isProgressing=!0,d.downloading=!0,b.put("/api/integrations/"+d.id,{active:!0}).success(function(){g(function(){a.percentage=h(51,99),a.status="Installing"},2500),g(function(){a.percentage=100,a.isProgressing=!1,a.status="Completed!",d.downloading=!1,e.show(c.instant("MESSAGE_WELL_DONE")+".","success")},5e3)}).error(function(){d.downloading=!1,a.percentage=0,a.isProgressing=!1,e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.uninstallIntegration=function(d){a.status="Uninstalling",a.percentage=h(1,99),a.isProgressing=!0,d.downloading=!0,b.put("/api/integrations/"+d.id,{active:!1}).success(function(){g(function(){a.percentage=100,a.isProgressing=!1,a.status="Completed!",d.downloading=!1,e.show(c.instant("MESSAGE_WELL_DONE")+".","success")},5e3)}).error(function(){d.downloading=!1,a.percentage=0,a.isProgressing=!1,e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.market",{url:"/market",templateUrl:"app/market/market.html",controller:"MarketCtrl",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("MotionbarCtrl",["$scope","$stateParams","$cookieStore","settings","Auth",function(a,b,c,d,e){e.loginWithToken(b.token,b.userId,b.name),a.getCurrentUser=e.getCurrentUser,d.layout.pageQuickSidebarOpened=!0}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("motionbar",{url:"/motionbar",template:"<div ui-view></div>","abstract":!0}).state("motionbar.chat",{url:"/chat?token&userId&name",templateUrl:"app/motionbar/motionbar.chat.html",controller:"MotionbarCtrl"})}]),angular.module("xCallyShuttleApp").controller("SalesforceListCtrl",["$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(_.map(a.displayedSalesforceAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedSalesforceAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("salesforce_account"),b.url="/api/salesforce/accounts",h.getPage(b).then(function(d){a.displayedSalesforceAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedSalesforceAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedSalesforceAccounts.length)}),f.socket.on("salesforce_account:save",function(){a.initList(b)}),f.socket.on("salesforce_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/salesforce/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/salesforce/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/salesforce/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.salesforce.list",{url:"/list",templateUrl:"app/salesforce/list/list.html",controller:"SalesforceListCtrl",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.salesforce",{url:"/salesforce",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("SalesforceAccount",["$resource",function(a){return a("/api/salesforce/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SalesforceViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal","$filter",function(a,b,c,d,e,f,g,h,i,j){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("salesforce_configuration"),g.unsyncUpdates("salesforce_field")}),a.initView=function(){b.get("/api/salesforce/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){h.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/salesforce/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/salesforce/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,g.socket.on("salesforce_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/salesforce/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.AccountId=c.id,b.post("api/salesforce/configurations",a.configuration).success(function(a){e.path("salesforce/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/salesforce/accounts/"+c.id+"/fields").success(function(b){a.accountFields=_.sortByOrder(j("salesforce")(b),"name","asc")}).error(function(a){h.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/salesforce/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("salesforce_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/salesforce/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/salesforce/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/salesforce/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/salesforce/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/salesforce/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,"name",b);if(c)switch(c.type){case"picklist":return c.picklistValues;default:return}}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.view",{url:"/view/:id",templateUrl:"app/salesforce/view/view.html",controller:"SalesforceViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.salesforce.view.account",{url:"/account",templateUrl:"app/salesforce/view/view.account.html"}).state("main.salesforce.view.configurations",{url:"/configurations",templateUrl:"app/salesforce/view/view.configurations.html"}).state("main.salesforce.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/salesforce/view/view.configurationSettings.html",controller:"SalesforceViewCtrl"}).state("main.salesforce.view.configuration",{url:"/configuration",templateUrl:"app/salesforce/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("SalesforceWizardCtrl",["$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.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/salesforce/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/salesforce/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.wizard",{url:"/wizard",templateUrl:"app/salesforce/wizard/wizard.html",controller:"SalesforceWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("License",["$resource",function(a){return a("/api/licenses/:id/:controller",{id:"@id"},{request:{method:"POST",params:{id:"request"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.license",{url:"/license",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("LicenseViewCtrl",["$scope","$rootScope","$translate","License","xAlert",function(a,b,c,d,e){a.initView=function(){d.get(function(b){a.item=b.license})},a.submitRequest=function(){d.request(a.item,function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")},function(a){switch(a.status){case 304:e.show(a.statusText,"info");break;default:e.show(a.statusText,"danger")}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.license.view",{url:"/view",templateUrl:"app/setting/license/view/view.html",controller:"LicenseViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/pricing-tables.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting",{url:"/setting",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("Setting",["$resource",function(a){return a("/api/settings/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("Smtp",["$resource",function(a){return a("/api/mail/servers/out/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.smtp",{url:"/smtp",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SmtpViewCtrl",["$scope","$stateParams","$translate","MailServerOut","xAlert","usSpinnerService",function(a,b,c,d,e,f){a.initView=function(){a.item={},d.get({id:"service"}).$promise.then(function(b){a.item=b})["catch"](function(a){e.show(a.message,"danger")})},a.updateItem=function(){return a.item.id?d.update({id:a.item.id},a.item).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")}):(a.item.service=!0,d.save(a.item).$promise.then(function(b){a.item=b,e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")}))},a.test=function(){return f.spin("spinner-grid"),d.test({id:a.item.id,controller:"test"}).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})["finally"](function(){f.stop("spinner-grid")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.smtp.view",{url:"/view",templateUrl:"app/setting/smtp/view/view.html",controller:"SmtpViewCtrl",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"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("UpdateListCtrl",["$scope","gridOptions","$uibModal","$location","Update",function(a,b,c,d,e){a.initCounter=function(){a.$on("timer-stopped",function(a,b){console.log("Timer Stopped - data = ",b),d.path("/dashboard/voice")})},a.initView=function(){var c={exporterCsvFilename:"updates.csv",enableFiltering:!1,enableSorting:!1,enablePaginationControls:!1,enableSelectAll:!1,columnDefs:[{name:"message"},{width:125,name:"version",cellClass:"text-center ui-grid-vcenter"},{width:125,name:"createdAt",displayName:"APPLICATION_UPDATED_AT",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><span am-time-ago="row.entity.createdAt"></span></div>'}]};a.gridOptions=b.gridOptions(e,c,a)},a.pull=function(){c.open({animation:!0,templateUrl:"app/setting/update/list/list.pull.html",controller:"UpdateListPullCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.updates.list",{url:"/list",templateUrl:"app/setting/update/list/list.html",controller:"UpdateListCtrl"}).state("main.setting.updates.landing",{url:"/landing",templateUrl:"app/setting/update/list/landing.html",controller:"UpdateListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/error.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("UpdateListPullCtrl",["$scope","$uibModalInstance","$translate","$location","Update",function(a,b,c,d,e){a.modal={dismissable:!0,title:"Confirm Checkout",html:"Are you sure you want to checkout?",buttons:[{classes:"btn btn-success",text:"Checkout",click:function(){return e.pull().$promise["finally"](function(){b.dismiss("close"),d.path("/setting/updates/landing")})}},{classes:"btn default",text:"Cancel",click:function(){b.dismiss("cancel")}}]}}]),angular.module("xCallyShuttleApp").factory("Update",["$resource",function(a){return a("/api/updates/:id/:controller",{id:"@id"},{pull:{method:"GET",params:{id:"pull"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.updates",{url:"/updates",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcListCtrl",["$scope","$uibModal","$translate","SquareOdbc","gridOptions","xAlert",function(a,b,c,d,e,f){a.initView=function(){var b={exporterCsvFilename:"odbc.csv",columnDefs:[{name:"name"},{name:"dsn",displayName:"APPLICATION_ODBC"},{name:"description"},{name:"action",width:250,buttons:[{"class":"blue-hoki",href:"/square/odbc/view/{{row.entity.id}}/settings",name:"settings"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK_CONNECTION",onClick:"grid.appScope.checkConnection(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=e.gridOptions(d,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/square/odbc/list/list.create.modal.html",controller:"SquareOdbcListCreateCtrl"});c.result.then(function(){a.gridOptions.getPage()})},a.checkConnection=function(a){return d.get({id:a,controller:"check"}).$promise.then(function(){f.show(c.instant("MESSAGE_CONNECTION_VERIFIED"),"success")})["catch"](function(){f.show(c.instant("MESSAGE_CONNECTION_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").controller("SquareOdbcListCreateCtrl",["$scope","$translate","$uibModalInstance","SquareOdbc","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.item.dsn||(a.item.dsn="DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion"),a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbc.list",{url:"/list",templateUrl:"app/square/odbc/list/list.html",controller:"SquareOdbcListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbc",{url:"/odbc",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("SquareOdbc",["$resource",function(a){return a("/api/square/odbc/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcViewCtrl",["$scope","$translate","$stateParams","SquareOdbc","xAlert",function(a,b,c,d,e){a.odbc={},a.getOdbc=function(){return d.get({id:c.id}).$promise.then(function(b){a.odbc=b})["catch"](function(a){e.show(a.data.message,"danger")})},a.updateOdbc=function(){var f=angular.copy(a.odbc);return d.update({id:c.id},f).$promise.then(function(){e.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbc.view",{url:"/view/:id",templateUrl:"app/square/odbc/view/view.html",controller:"SquareOdbcViewCtrl",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.square.odbc.view.settings",{url:"/settings",templateUrl:"app/square/odbc/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("SquareProjectListCtrl",["$scope","$uibModal","SquareProject","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"projects.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/square/projects/view/{{row.entity.id}}",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/square/project/list/list.create.modal.html",controller:"SquareProjectListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("SquareProjectListCreateCtrl",["$scope","$translate","$uibModalInstance","SquareProject","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.list",{url:"/list",templateUrl:"app/square/project/list/list.html",controller:"SquareProjectListCtrl",authenticate:!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects",{url:"/projects",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("SquareProject",["$resource",function(a){return a("/api/square/projects/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SquareProjectViewCtrl",["$scope","$stateParams","Auth","xAlert","SquareProject",function(a,b,c,d,e){a.squareProject={},a.getProject=function(){return e.get({id:b.id}).$promise.then(function(b){a.squareProject=b,angular.element(document).ready(function(){window.onerror=function(a,b,c){try{if(null!==a&&-1!==a.indexOf("Script error."));else{var e=new Image;e.src="assets/plugins/mxgraph/images/1x1.png?msg="+encodeURIComponent(a)+"&url="+encodeURIComponent(b)+"&lnum="+encodeURIComponent(c)}}catch(f){d.show(f,"danger")}},b.token=c.getToken();var a=new EditorUi(new Editor);a.openString(b.preproduction,b.name,b),a.editor.graphChangeListener=function(a,b){var c=b.properties.rtChange||!1;c||(this.modified=!0)}})})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.view",{url:"/view/:id",templateUrl:"app/square/project/view/view.html",controller:"SquareProjectViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",serie:!0,cache:!1,files:["assets/plugins/mxgraph/css/common.css","assets/plugins/mxgraph/css/explorer.css","assets/plugins/mxgraph/styles/grapheditor.css","assets/plugins/mxgraph/styles/custom.css","assets/plugins/square/js/custom.js","assets/plugins/mxgraph/js/mxClient.js","assets/plugins/square/js/Editor.js","assets/plugins/square/js/Graph.js","assets/plugins/square/js/EditorUi.js","assets/plugins/square/js/Actions.js","assets/plugins/square/js/Menus.js","assets/plugins/square/js/Sidebar.js","assets/plugins/square/js/Toolbar.js","assets/plugins/square/js/Dialogs.js"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square",{url:"/square",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("Agent",["$resource",function(a){return a("/api/agents/:id/:controller/:controller1",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},update:{method:"PUT"},patch:{method:"PATCH"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents",{url:"/agents",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AgentListCtrl",["$scope","Agent","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"agents.csv",columnDefs:[{name:"fullname"},{name:"name",displayName:"APPLICATION_USERNAME"},{name:"internal"},{name:"email"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/staff/agents/view/{{row.entity.id}}/account",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents.list",{url:"/list",templateUrl:"app/staff/agent/list/list.html",controller:"AgentListCtrl",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("AgentViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$cookieStore","Agent","FileUploader","Auth","User",function(a,b,c,d,e,f,g,h,i,j){a.Auth=i,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.updatePassword=function(){var b={newPassword:a.agent.newPwd};return i.isAdmin()?b.id=e.id:b.oldPassword=a.agent.currentPwd,j.changePassword(b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.message,"danger")})};var k=a.uploader=new h({url:"api/users/"+e.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+f.get("token")}});k.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),k.onSuccessItem=function(b,e){a.agent.userpic=e.userpic,a.agent.id===i.getCurrentUser().id&&(i.getCurrentUser().userpic=e.userpic),c.show(d.instant("MESSAGE_WELL_DONE"),"success")},k.onErrorItem=function(){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},k.onCompleteAll=function(){k.clearQueue()},a.initView=function(){return g.get({id:e.id}).$promise.then(function(b){a.agent=b,a.agent.transport=a.agent.transport?a.agent.transport.split(","):[],a.agent.allow=a.agent.allow?a.agent.allow.split(";"):[],a.agent.nat=a.agent.nat?a.agent.nat.split(","):[]})["catch"](function(a){c.show(a.message,"danger")})},a.patchItem=function(){return g.patch({id:e.id},{chatCapacity:a.agent.chatCapacity,mailCapacity:a.agent.mailCapacity,faxCapacity:a.agent.faxCapacity}).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.agent);return delete b.password,delete b.md5secret,b.transport=b.transport.join(","),b.allow=b.allow.join(";"),b.nat=b.nat.join(","),g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents.view",{url:"/view/:id",templateUrl:"app/staff/agent/view/view.html",controller:"AgentViewCtrl",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.staff.agents.view.account",{url:"/account",templateUrl:"app/staff/agent/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}}).state("main.staff.agents.view.voice",{url:"/voice",templateUrl:"app/staff/agent/view/view.voice.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.agents.view.chat",{url:"/chat",templateUrl:"app/staff/agent/view/view.chat.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.agents.view.mail",{url:"/mail",templateUrl:"app/staff/agent/view/view.mail.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.agents.view.fax",{url:"/fax",templateUrl:"app/staff/agent/view/view.fax.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.agents.view.phonebar",{url:"/phonebar",templateUrl:"app/staff/agent/view/view.phonebar.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("AgentWizardCtrl",["$scope","$rootScope","Agent","Setting","xAlert","$location","$translate","$http","WizardHandler",function(a,b,c,d,e,f,g,h,i){a.forms={info:void 0,voice:void 0},a.item={role:"agent",allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},a.next=function(){i.wizard().next()},a.exitValidation=function(a){return a},a.getFirstFreeInternal=function(){return d.get({controller:"internal"}).$promise.then(function(b){a.item.internal=b.value})["catch"](function(a){e.show(a.data.message,"danger")})},a.createItem=function(){var b=angular.copy(a.item);return b.transport&&(b.transport=b.transport.join(",")),a.item.allow&&(b.allow=b.allow.join(";")),c.save(b).$promise.then(function(){f.path("/staff/agents/list")})["catch"](function(a){e.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents.wizard",{url:"/wizard",templateUrl:"app/staff/agent/wizard/wizard.html",controller:"AgentWizardCtrl",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff",{url:"/staff",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TeamCreateCtrl",["$scope","$uibModalInstance","Team","xAlert",function(a,b,c,d){a.form={},a.item={},a.ok=function(){return c.save(a.item).$promise.then(function(){b.close(a.item)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("TeamListCtrl",["$scope","Team","gridOptions","$uibModal",function(a,b,c,d){a.initView=function(){var d={exporterCsvFilename:"teams.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"{{row.entity.defaultEntry ? 'blue-hoki disabled' : 'blue-hoki'}}",href:"/staff/teams/view/{{row.entity.id}}/settings",name:"profile"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){d.open({animation:!0,templateUrl:"app/staff/team/list/create.modal.html",controller:"TeamCreateCtrl"}).result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.teams.list",{url:"/list",templateUrl:"app/staff/team/list/list.html",controller:"TeamListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Team",["$resource",function(a){return a("/api/teams/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.teams",{url:"/teams",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("TeamViewCtrl",["$scope","$http","$stateParams","$translate","Team","Agent","xAlert",function(a,b,c,d,e,f,g){var h=function(){return{select:function(b){return console.log("agents",b),e.save({id:a.team.id,controller:"agents"},{agents:b})},deselect:function(b){return e["delete"]({id:a.team.id,controller:"agents",agents:b})}}};a.initView=function(){return e.get({id:c.id}).$promise.then(function(b){a.team=b})["catch"](function(a){g.show(a.message,"danger")})},a.initAgents=function(){return f.get().$promise.then(function(b){return a.agents=b.rows,e.query({id:c.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindTeam(_.map(b,"id"),_.map(a.agents,function(a){return{id:a.id,name:a.name,fullname:a.fullname,internal:a.internal}}),h)})["catch"](function(a){g.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.team);return e.update({id:c.id},b).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.teams.view",{url:"/view/:id",templateUrl:"app/staff/team/view/view.html",controller:"TeamViewCtrl",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.staff.teams.view.agents",{url:"/agents",templateUrl:"app/staff/team/view/view.agents.html",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/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]}])}]}}).state("main.staff.teams.view.settings",{url:"/settings",templateUrl:"app/staff/team/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TelephoneListCtrl",["$scope","Telephone","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"telephones.csv",columnDefs:[{name:"fullname"},{name:"name"},{name:"accountcode"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/staff/telephones/view/{{row.entity.id}}/account",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones.list",{url:"/list",templateUrl:"app/staff/telephone/list/list.html",controller:"TelephoneListCtrl",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").factory("Telephone",["$resource",function(a){return a("/api/telephones/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones",{url:"/telephones",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],
+redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("TelephoneViewCtrl",["$scope","$http","$stateParams","$translate","$cookieStore","Auth","xAlert","Telephone",function(a,b,c,d,e,f,g,h){a.initView=function(){a.Auth=f,a.forms={},h.get({id:c.id}).$promise.then(function(b){delete b.password,a.item=b,a.item.transport=a.item.transport?a.item.transport.split(","):[],a.item.allow=a.item.allow?a.item.allow.split(";"):[]})["catch"](function(a){g.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.item);b.transport=b.transport.join(","),b.allow=b.allow.join(";"),h.update(b).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones.view",{url:"/view/:id",templateUrl:"app/staff/telephone/view/view.html",controller:"TelephoneViewCtrl",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.staff.telephones.view.account",{url:"/account",templateUrl:"app/staff/telephone/view/view.account.html",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","assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("TelephoneWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert","$translate","Telephone",function(a,b,c,d,e,f,g){a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.initWizard=function(){return a.forms={},a.item={allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},g.get({id:"internal"}).$promise.then(function(b){a.item.internal=b.internal})["catch"](function(a){console.error(a)})},a.createItem=function(){var b=angular.copy(a.item);return b.transport&&(b.transport=b.transport.join(",")),a.item.allow&&(b.allow=b.allow.join(";")),g.save(b).$promise.then(function(){c.path("/staff/telephones/list")})["catch"](function(a){e.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones.wizard",{url:"/wizard",templateUrl:"app/staff/telephone/wizard/wizard.html",controller:"TelephoneWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("UserListCtrl",["$scope","User","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"users.csv",columnDefs:[{name:"fullname"},{name:"name",displayName:"APPLICATION_USERNAME"},{name:"email"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/staff/users/view/{{row.entity.id}}/account",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users.list",{url:"/list",templateUrl:"app/staff/user/list/list.html",controller:"UserListCtrl"})}]),angular.module("xCallyShuttleApp").factory("User",["$resource",function(a){return a("/api/users/:id/:controller",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},update:{method:"PUT"},me:{method:"GET",params:{id:"me"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users",{url:"/users",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("UserViewCtrl",["$scope","$stateParams","$cookieStore","$translate","FileUploader","User","Auth","xAlert",function(a,b,c,d,e,f,g,h){a.Auth=g,a.initView=function(){return f.get({id:b.id}).$promise.then(function(b){a.user=b,a.user.transport=a.user.transport?a.user.transport.split(","):[],a.user.allow=a.user.allow?a.user.allow.split(";"):[]})["catch"](function(a){h.show(a.message,"danger")})},a.updateItem=function(){var c=angular.copy(a.user);return delete c.password,delete c.md5secret,c.transport=c.transport.join(","),c.allow=c.allow.join(";"),f.update({id:b.id},c).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})},a.updatePassword=function(){var c={newPassword:a.user.newPwd};return g.isAdmin()?c.id=b.id:c.oldPassword=a.user.currentPwd,f.changePassword(c).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})};var i=a.uploader=new e({url:"api/users/"+b.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+c.get("token")}});i.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),i.onSuccessItem=function(b,c){a.user.userpic=c.userpic,a.user.id===g.getCurrentUser().id&&(g.getCurrentUser().userpic=c.userpic),h.show(d.instant("MESSAGE_WELL_DONE"),"success")},i.onErrorItem=function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},i.onCompleteAll=function(){i.clearQueue()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users.view",{url:"/view/:id",templateUrl:"app/staff/user/view/view.html",controller:"UserViewCtrl",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.staff.users.view.account",{url:"/account",templateUrl:"app/staff/user/view/view.account.html",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","assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("UserWizardCtrl",["$scope","$location","WizardHandler","xAlert","$translate","User",function(a,b,c,d,e,f){a.forms={info:void 0,voice:void 0},a.item={role:"user",host:"dynamic",context:"from-sip"},a.next=function(){c.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){return f.save(a.item).$promise.then(function(){b.path("/staff/users/list")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users.wizard",{url:"/wizard",templateUrl:"app/staff/user/wizard/wizard.html",controller:"UserWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("SugarcrmListCtrl",["$scope","SugarcrmAccount","gridOptions","xAlert","$translate","Modal",function(a,b,c,d,e,f){a.initView=function(){var d={exporterCsvFilename:"sugarcrm_account.csv",columnDefs:[{name:"name",displayName:"APPLICATION_NAME"},{name:"username"},{name:"remoteUri",displayName:"APPLICATION_REMOTE_ADDRESS"},{name:"action",width:250,buttons:[{"class":"blue-hoki",href:"/sugarcrm/view/{{row.entity.id}}/account",name:"profile"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK_CONNECTION",onClick:"grid.appScope.checkAccount(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.checkAccount=function(a){return b.get({id:a,controller:"check"}).$promise.then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(a){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.list",{url:"/list",templateUrl:"app/sugarcrm/list/list.html",controller:"SugarcrmListCtrl",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.sugarcrm",{url:"/sugarcrm",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("SugarcrmAccount",["$resource",function(a){return a("/api/sugarcrm/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("SugarcrmConfiguration",["$resource",function(a){return a("/api/sugarcrm/configurations/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("SugarcrmField",["$resource",function(a){return a("/api/sugarcrm/fields/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SugarcrmViewCtrl",["$scope","$http","$stateParams","$translate","$location","$filter","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i,j){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(){g.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){h.unsyncUpdates("sugarcrm_configuration"),h.unsyncUpdates("sugarcrm_field")}),a.initView=function(){b.get("/api/sugarcrm/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){i.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/sugarcrm/accounts/"+c.id,a.account).success(function(){i.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/sugarcrm/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,h.socket.on("sugarcrm_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.deleteConfiguration=j.confirm["delete"](function(a){b["delete"]("api/sugarcrm/configurations/"+a).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/sugarcrm/configurations",a.configuration).success(function(a){e.path("sugarcrm/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){i.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/sugarcrm/accounts/"+c.id+"/fields").success(function(b){a.accountFields=_.sortByOrder(f("sugarcrm")(_.toArray(b)),"name","asc"),_.forEach(b,function(a){a.options=_.toArray(a.options)})}).error(function(a){i.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/sugarcrm/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,h.socket.on("sugarcrm_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){i.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){i.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/sugarcrm/fields/"+a.id).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/sugarcrm/fields/"+a.id,a).success(function(){}).error(function(){i.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,"name",b);return c?c.options.length>0?c.options:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.view",{url:"/view/:id",templateUrl:"app/sugarcrm/view/view.html",controller:"SugarcrmViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.sugarcrm.view.account",{url:"/account",templateUrl:"app/sugarcrm/view/view.account.html"}).state("main.sugarcrm.view.configurations",{url:"/configurations",templateUrl:"app/sugarcrm/view/view.configurations.html"}).state("main.sugarcrm.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/sugarcrm/view/view.configurationSettings.html",controller:"SugarcrmViewCtrl"}).state("main.sugarcrm.view.configuration",{url:"/configuration",templateUrl:"app/sugarcrm/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("SugarcrmkWizardCtrl",["$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.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/sugarcrm/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/sugarcrm/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.wizard",{url:"/wizard",templateUrl:"app/sugarcrm/wizard/wizard.html",controller:"SugarcrmkWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("CannedAnswer",["$resource",function(a){return a("/api/answers/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.answers",{url:"/answers",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AnswerListCtrl",["$scope","$uibModal","CannedAnswer","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"answers.csv",columnDefs:[{name:"key",displayName:"APPLICATION_NAME"},{name:"value"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/answers/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.key, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){b.open({animation:!0,templateUrl:"app/tools/answer/list/list.create.modal.html",controller:"AnswerListCreateCtrl"}).result.then(function(b){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("AnswerListCreateCtrl",["$scope","$translate","$uibModalInstance","CannedAnswer","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.answers.list",{url:"/list",templateUrl:"app/tools/answer/list/list.html",controller:"AnswerListCtrl"})}]),angular.module("xCallyShuttleApp").controller("AnswerViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","CannedAnswer",function(a,b,c,d,e,f,g){a.getAnswer=function(){return g.get({id:e.id}).$promise.then(function(b){a.answer=b})["catch"](function(a){c.show(a.data.message,"danger")})},a.updateAnswer=function(){var b=angular.copy(a.answer);return g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.answers.view",{url:"/view/:id",templateUrl:"app/tools/answer/view/view.html",controller:"AnswerViewCtrl",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.tools.answers.view.settings",{url:"/settings",templateUrl:"app/tools/answer/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("Automation",["$resource",function(a){return a("/api/automations/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations",{url:"/automations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AutomationListCtrl",["$scope","$http","$translate","xAlert","Automation","gridOptions",function(a,b,c,d,e,f){a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initView=function(){var b={exporterCsvFilename:"Automations.csv",columnDefs:[{name:"name"},{name:"description"},{name:"channel"},{name:"status",cellTemplate:'<div class="centered-uigrid-td"><input data-ng-change="grid.appScope.updateItem(row.entity)", bs-switch ng-model="row.entity.status" type="checkbox" switch-active="{{ grid.appScope.isActive }}" switch-on-text="{{ grid.appScope.onText }}" switch-off-text="{{ grid.appScope.offText }}" switch-on-color="{{ grid.appScope.onColor }}" switch-off-color="{{ grid.appScope.offColor }}" switch-animate="{{ grid.appScope.animate }}" switch-size="{{ grid.appScope.size }}" switch-label="{{ grid.appScope.label }}" switch-icon="{{ grid.appScope.icon }}" switch-radio-off="{{ grid.appScope.radioOff }}" switch-label-width="{{ grid.appScope.labelWidth }}" switch-handle-width="{{ grid.appScope.handleWidth }}"></div>',width:100,enableFiltering:!1},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/automations/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=f.gridOptions(e,b,a)},a.updateItem=function(a){return e.update({id:a.id},a).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations.list",{url:"/list",templateUrl:"app/tools/automation/list/list.html",controller:"AutomationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("AutomationViewCtrl",["$scope","$stateParams","$http","$translate","xAlert","automations","Automation","$location",function(a,b,c,d,e,f,g,h){a.$automations=f,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.forms={general:{}},a.addCondition=function(b){a.automation[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.automation[b].splice(c,1)},a.addAction=function(){a.automation.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.automation.Actions.splice(b,1)},a.initView=function(){return g.get({id:b.id}).$promise.then(function(b){a.automation=b})["catch"](function(a){e.show(a.message,"danger"),h.path("/tools/automations/list")})},a.updateAutomation=function(){return g.update({id:b.id},a.automation).$promise.then(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),e.show(a.message,"danger")})},a.exitValidation=function(b){return console.log(b&&(a.automation.All.length||a.automation.Any.length)&&a.automation.Actions.length),b&&(a.automation.All.length||a.automation.Any.length)&&a.automation.Actions.length?!0:!1}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations.view",{url:"/view/:id",templateUrl:"app/tools/automation/view/view.html",controller:"AutomationViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.tools.automations.view.settings",{url:"/settings",templateUrl:"app/tools/automation/view/view.settings.html"}).state("main.tools.automations.view.routes",{url:"/routes",templateUrl:"app/tools/automation/view/view.routes.html"}).state("main.tools.automations.view.application",{url:"/application",templateUrl:"app/tools/automation/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("AutomationWizardCtrl",["$scope","$http","$location","xAlert","automations","WizardHandler","Automation",function(a,b,c,d,e,f,g){a.$automations=e,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={All:[],Any:[],Actions:[]},a.forms={general:void 0,settings:void 0},a.addCondition=function(b){a.item[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.item[b].splice(c,1)},a.addAction=function(){a.item.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.item.Actions.splice(b,1)},a.$watch("item.channel",function(b,c){c&&(a.tempData[c].All=_.clone(a.item.All,!0),a.tempData[c].Any=_.clone(a.item.Any,!0),a.tempData[c].Actions=_.clone(a.item.Actions,!0)),a.item.All=a.tempData[b].All?a.tempData[b].All:[],a.item.Any=a.tempData[b].Any?a.tempData[b].Any:[],a.item.Actions=a.tempData[b].Actions?a.tempData[b].Actions:[]},!0),a.item.channel="voice",a.createItem=function(){return g.save(a.item).$promise.then(function(){c.path("/tools/automations/list")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a},a.exitSettingsValidation=function(b){return b&&(a.item.All.length||a.item.Any.length)&&a.item.Actions.length?!0:!1}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations.wizard",{url:"/wizard",templateUrl:"app/tools/automation/wizard/wizard.html",controller:"AutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("Interval",["$resource",function(a){return a("/api/intervals/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.intervals",{url:"/intervals",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("IntervalListCtrl",["$scope","$uibModal","Interval","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"intervals.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/intervals/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/tools/interval/list/list.create.modal.html",controller:"IntervalListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("IntervalListCreateCtrl",["$scope","$translate","$uibModalInstance","Interval","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(b.instant(a.data.message),"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.intervals.list",{url:"/list",templateUrl:"app/tools/interval/list/list.html",controller:"IntervalListCtrl"})}]),angular.module("xCallyShuttleApp").controller("IntervalViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","interval",function(a,b,c,d,e,f,g,h,i,j){function k(b){console.log(b);var c,d,e,f;c=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(d=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(d+="-"+b.wd_to)):d="*",b.md_from&&"always"!==b.md_from?(e=b.md_from,b.md_to&&"always"!==b.md_to&&(e+="-"+b.md_to)):e="*",b.m_from&&"always"!==b.m_from?(f=b.m_from,b.m_to&&"always"!==b.m_to&&(f+="-"+b.m_to)):f="*",void 0!==a.selectedSubInterval?a.interval.SubIntervals[a.selectedSubInterval].interval=c+","+d+","+e+","+f:a.subinterval.interval=c+","+d+","+e+","+f}a.$translate=d,a.$interval=j.interval,a.selectedSubInterval=void 0,a.gridOptions={columnDefs:[{name:"name",displayName:"APPLICATION_NAME",headerCellFilter:"translate"},{name:"interval",displayName:"APPLICATION_INTERVAL",headerCellFilter:"translate"},{name:"action",displayName:"APPLICATION_ACTION",headerCellFilter:"translate",width:125,cellTemplate:'<a class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.openSubInterval(grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_SETTINGS\' | translate}}</a><a class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.deleteSubInterval(row.entity.name+\' interval\', gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_DELETE\' | translate}}</a>'}]},a.forms={subinterval:void 0,general:void 0},a.initSubInterval=function(b){b&&(a.selectedSubInterval=void 0),a.subinterval={},a.splittedInterval={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.next=function(){h.wizard().next()},a.previous=function(){h.wizard().previous()},a.exitValidation=function(a){return a},a.deselectAndRedirect=function(b){a.selectedSubInterval=void 0,g.path(b)},a.getInterval=function(){b.get("/api/intervals/"+e.id).success(function(b){a.interval=b,a.gridOptions.data=b.SubIntervals}).error(function(a){console.error(a),g.path("/tools/intervals/list")})},a.openSubInterval=function(b){a.selectedSubInterval=b,g.path("/tools/intervals/view/"+e.id+"/subintervals/settings")},a.updateInterval=function(f){a.selectedSubInterval=void 0,b.put("/api/intervals/"+e.id,a.interval).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),f&&g.path("/tools/intervals/view/"+e.id+"/"+f)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getSubInterval=function(){void 0===a.selectedSubInterval&&g.path("/tools/intervals/list"),a.splittedInterval={t_from:moment(new Date),t_to:moment(new Date)};var b,c=a.interval.SubIntervals[a.selectedSubInterval]?a.interval.SubIntervals[a.selectedSubInterval].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.splittedInterval.t_from=moment(b[0],"HH:mm"),a.splittedInterval.t_to=moment(b[1],"HH:mm"),a.splittedInterval.alwaysTime=!1):(a.splittedInterval.t_from=moment(new Date),a.splittedInterval.t_to=moment(new Date),a.splittedInterval.alwaysTime=!0);break;case 1:"*"!==c?(b=c.split("-"),a.splittedInterval.wd_from=b[0],a.splittedInterval.wd_to=b[1]?b[1]:"always"):(a.splittedInterval.wd_from="always",a.splittedInterval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.splittedInterval.md_from=b[0],a.splittedInterval.md_to=b[1]?b[1]:"always"):(a.splittedInterval.md_from="always",a.splittedInterval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.splittedInterval.m_from=b[0],a.splittedInterval.m_to=b[1]?b[1]:"always"):(a.splittedInterval.m_from="always",a.splittedInterval.m_to="always")}})},a.$watch("splittedInterval",function(a){a&&k(a)},!0),a.addSubInterval=function(){a.interval.SubIntervals.push(a.subinterval),a.updateInterval("subintervals")},a.deleteSubInterval=i.confirm["delete"](function(b){a.interval.SubIntervals.splice(b,1),a.updateInterval()})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.intervals.view",{url:"/view/:id",templateUrl:"app/tools/interval/view/view.html",controller:"IntervalViewCtrl",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.tools.intervals.view.settings",{url:"/settings",templateUrl:"app/tools/interval/view/view.settings.html"}).state("main.tools.intervals.view.subintervals",{url:"/subintervals",templateUrl:"app/tools/interval/view/view.subintervals.html"}).state("main.tools.intervals.view.subinterval",{url:"/subinterval",templateUrl:"app/tools/interval/view/view.subinterval.html"}).state("main.tools.intervals.view.subintervals.settings",{url:"/settings",templateUrl:"app/tools/interval/view/view.subintervalSettings.html"})}]),angular.module("xCallyShuttleApp").controller("PauseListCtrl",["$scope","$log","$uibModal","$translate","Pause","gridOptions",function(a,b,c,d,e,f){a.initView=function(){var b={exporterCsvFilename:"pauses.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/pauses/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=f.gridOptions(e,b,a)},a.createItem=function(){var b=c.open({animation:!0,templateUrl:"app/tools/pause/list/list.create.modal.html",controller:"PauseListCreateCtrl"});b.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("PauseListCreateCtrl",["$scope","$translate","$uibModalInstance","Pause","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.pauses.list",{url:"/list",templateUrl:"app/tools/pause/list/list.html",
+controller:"PauseListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Pause",["$resource",function(a){return a("/api/pauses/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.pauses",{url:"/pauses",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("PauseViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","Pause",function(a,b,c,d,e,f,g){a.getPause=function(){return g.get({id:e.id}).$promise.then(function(b){a.pause=b})["catch"](function(a){c.show(a.data.message,"danger")})},a.updatePause=function(){var b=angular.copy(a.pause);return g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.pauses.view",{url:"/view/:id",templateUrl:"app/tools/pause/view/view.html",controller:"PauseViewCtrl",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.tools.pauses.view.settings",{url:"/settings",templateUrl:"app/tools/pause/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("SoundListCtrl",["$scope","$http","socket","Modal","$q","FileUploader","$translate","xAlert","$cookieStore","$sce","Sound",function(a,b,c,d,e,f,g,h,i,j,k){a.Sound=k,a.isCollapsed=!0,a.downloadButtonContent='<i class="icon-cloud-download"></i>',a.downloadButtonClass="btn btn-xs blue-hoki",a["delete"]=d.confirm["delete"](function(a){b["delete"]("/api/sounds/"+a).success(function(a){}).error(function(a){console.log(a)})}),a.updateAudio=function(a,c){var d=e.defer();return b.put("/api/sounds/"+a,c).success(function(a){d.resolve()}).error(function(a){console.log(a.message),d.reject(a.message)}),d.promise},a.$on("$destroy",function(){c.unsyncUpdates("sound")}),a.initList=function(){b.get("/api/sounds").success(function(b){a.sounds=b.rows,b.rows.length||(a.isCollapsed=!1),c.syncUpdates("sound",a.sounds,function(){a.sounds.length||(a.isCollapsed=!1)})}).error(function(a){})};var l=a.uploader=new f({url:"/api/sounds",withCredentials:!0,headers:{Authorization:"Bearer "+i.get("token")}});l.filters.push({name:"customFilter",fn:function(a,b){return this.queue.length<10}}),l.onWhenAddingFileFailed=function(a,b,c){console.info("onWhenAddingFileFailed",a,b,c)},l.onAfterAddingFile=function(a){console.info("onAfterAddingFile",a)},l.onAfterAddingAll=function(a){console.info("onAfterAddingAll",a)},l.onBeforeUploadItem=function(a){console.info("onBeforeUploadItem",a)},l.onProgressItem=function(a,b){console.info("onProgressItem",a,b),a.isUploading=!0},l.onProgressAll=function(a){console.info("onProgressAll",a)},l.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),a.isUploading=!1},l.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),a.responseMessage=b,a.isUploading=!1},l.onCancelItem=function(a,b,c,d){console.info("onCancelItem",a,b,c,d),a.isUploading=!1},l.onCompleteItem=function(a,b,c,d){console.info("onCompleteItem",a,b,c,d),a.isUploading=!1},l.onCompleteAll=function(){console.info("onCompleteAll")},console.info("uploader",l)}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.sounds.list",{url:"/list",templateUrl:"app/tools/sound/list/list.html",controller:"SoundListCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").factory("Sound",["$resource",function(a){return a("/api/sounds/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.sounds",{url:"/sounds",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TagListCtrl",["$scope","$uibModal","Tag","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"tag.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/tags/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/tools/tag/list/list.create.modal.html",controller:"TagListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("TagListCreateCtrl",["$scope","$translate","$uibModalInstance","Tag","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.tags.list",{url:"/list",templateUrl:"app/tools/tag/list/list.html",controller:"TagListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Tag",["$resource",function(a){return a("/api/tags/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.tags",{url:"/tags",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TagViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","Tag",function(a,b,c,d,e,f,g){a.getTag=function(){return g.get({id:e.id}).$promise.then(function(b){a.tag=b})["catch"](function(a){c.show(a.data.message,"danger")})},a.updateTag=function(){var b=angular.copy(a.tag);return g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.tags.view",{url:"/view/:id",templateUrl:"app/tools/tag/view/view.html",controller:"TagViewCtrl",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.tools.tags.view.settings",{url:"/settings",templateUrl:"app/tools/tag/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TemplateListCtrl",["$scope","Template","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"templates.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/tools/templates/view/{{row.entity.id}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates.list",{url:"/list",templateUrl:"app/tools/template/list/list.html",controller:"TemplateListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Template",["$resource",function(a){return a("/api/mail/templates/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates",{url:"/templates",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TemplateViewCtrl",["$scope","$http","$translate","$stateParams","xAlert","Template",function(a,b,c,d,e,f){a.initItem=function(){a.form={},a.item={},a.groups=[{title:"Voice",variables:[]},{title:"Chat",variables:["username","email","text","chatWebsite"]},{title:"Mail",variables:[]},{title:"Fax",variables:[]}],a.item=f.get({id:d.id})},a.updateItem=function(){f.update(a.item).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates.view",{url:"/view/:id",templateUrl:"app/tools/template/view/view.html",controller:"TemplateViewCtrl",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.tools.templates.view.settings",{url:"/settings",templateUrl:"app/tools/template/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TemplateWizardCtrl",["$scope","$location","$http","WizardHandler","xAlert","Template",function(a,b,c,d,e,f){a.initWizard=function(){a.item={},a.form={},a.groups=[{title:"Voice",variables:[]},{title:"Chat",variables:["username","email","text","chatWebsite"]},{title:"Mail",variables:[]},{title:"Fax",variables:[]}]},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){return f.save({name:a.item.name,description:a.item.description,subject:a.item.subject||null,html:a.item.html||null,text:a.item.text||null}).$promise.then(function(){b.path("/tools/templates/list")})["catch"](function(a){e.show(data.err.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates.wizard",{url:"/wizard",templateUrl:"app/tools/template/wizard/wizard.html",controller:"TemplateWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools",{url:"/tools",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("TriggerListCtrl",["$scope","$http","$translate","Modal","xAlert","Trigger","gridOptions",function(a,b,c,d,e,f,g){a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initView=function(){var b={exporterCsvFilename:"Triggers.csv",columnDefs:[{name:"name"},{name:"description"},{name:"channel"},{name:"status",cellTemplate:'<div class="centered-uigrid-td"><input data-ng-change="grid.appScope.updateItem(row.entity)", bs-switch ng-model="row.entity.status" type="checkbox" switch-active="{{ grid.appScope.isActive }}" switch-on-text="{{ grid.appScope.onText }}" switch-off-text="{{ grid.appScope.offText }}" switch-on-color="{{ grid.appScope.onColor }}" switch-off-color="{{ grid.appScope.offColor }}" switch-animate="{{ grid.appScope.animate }}" switch-size="{{ grid.appScope.size }}" switch-label="{{ grid.appScope.label }}" switch-icon="{{ grid.appScope.icon }}" switch-radio-off="{{ grid.appScope.radioOff }}" switch-label-width="{{ grid.appScope.labelWidth }}" switch-handle-width="{{ grid.appScope.handleWidth }}"></div>',width:100,enableFiltering:!1},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/triggers/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=g.gridOptions(f,b,a)},a.updateItem=function(a){return f.update({id:a.id},a).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers.list",{url:"/list",templateUrl:"app/tools/trigger/list/list.html",controller:"TriggerListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Trigger",["$resource",function(a){return a("/api/triggers/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers",{url:"/triggers",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TriggerViewCtrl",["$scope","$stateParams","$translate","xAlert","triggers","Trigger","$location",function(a,b,c,d,e,f,g){a.$triggers=e,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.forms={general:{}},a.addCondition=function(b){a.trigger[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.trigger[b].splice(c,1)},a.addAction=function(){a.trigger.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.trigger.Actions.splice(b,1)},a.initView=function(){return f.get({id:b.id}).$promise.then(function(b){a.trigger=b})["catch"](function(a){d.show(a.message,"danger"),g.path("/tools/triggers/list")})},a.updateTrigger=function(){return f.update({id:b.id},a.trigger).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},a.exitValidation=function(b){return console.log(b&&(a.trigger.All.length||a.trigger.Any.length)&&a.trigger.Actions.length),b&&(a.trigger.All.length||a.trigger.Any.length)&&a.trigger.Actions.length?!0:!1}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers.view",{url:"/view/:id",templateUrl:"app/tools/trigger/view/view.html",controller:"TriggerViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.tools.triggers.view.settings",{url:"/settings",templateUrl:"app/tools/trigger/view/view.settings.html"}).state("main.tools.triggers.view.routes",{url:"/routes",templateUrl:"app/tools/trigger/view/view.routes.html"}).state("main.tools.triggers.view.application",{url:"/application",templateUrl:"app/tools/trigger/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("TriggerWizardCtrl",["$scope","$http","$location","xAlert","triggers","WizardHandler","Trigger",function(a,b,c,d,e,f,g){a.$triggers=e,a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={All:[],Any:[],Actions:[]},a.forms={general:void 0,settings:void 0},a.addCondition=function(b){a.item[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.item[b].splice(c,1)},a.addAction=function(){a.item.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.item.Actions.splice(b,1)},a.$watch("item.channel",function(b,c){c&&(a.tempData[c].All=_.clone(a.item.All,!0),a.tempData[c].Any=_.clone(a.item.Any,!0),a.tempData[c].Actions=_.clone(a.item.Actions,!0)),a.item.All=a.tempData[b].All?a.tempData[b].All:[],a.item.Any=a.tempData[b].Any?a.tempData[b].Any:[],a.item.Actions=a.tempData[b].Actions?a.tempData[b].Actions:[]},!0),a.item.channel="voice",a.createItem=function(){return g.save(a.item).$promise.then(function(){c.path("/tools/triggers/list")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a},a.exitSettingsValidation=function(b){return b&&(a.item.All.length||a.item.Any.length)&&a.item.Actions.length?!0:!1}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers.wizard",{url:"/wizard",templateUrl:"app/tools/trigger/wizard/wizard.html",controller:"TriggerWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("TrunkListCtrl",["$scope","Trunk","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"Trunks.csv",columnDefs:[{name:"name"},{name:"host"},{name:"context"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/trunks/view/{{row.entity.name}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.name)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks.list",{url:"/list",templateUrl:"app/tools/trunk/list/list.html",controller:"TrunkListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Trunk",["$resource",function(a){return a("/api/trunks/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks",{url:"/trunks",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TrunkViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","Trunk","VoiceContext",function(a,b,c,d,e,f,g,h,i){a.initView=function(){return h.get({id:e.id}).$promise.then(function(b){b.nat=b.nat?b.nat.split(","):[],b.allow=b.allow?b.allow.split(";"):[],b.insecure=b.insecure?b.insecure.split(","):[],b.transport=b.transport?b.transport.split(","):[],a.trunk=b})["catch"](function(a){console.error(a),g.path("/tools/trunks/list")})},a.updateTrunk=function(){""===a.trunk.password&&delete a.trunk.password;var b=angular.copy(a.trunk);return b.nat=b.nat.join(","),b.allow=b.allow.join(";"),b.insecure=b.insecure.join(","),b.transport=b.transport.join(","),h.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){c.show(a.data.message,"danger")})},a.getContexts=function(){return i.get().$promise.then(function(b){a.voiceContexts=b.rows})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks.view",{url:"/view/:id",templateUrl:"app/tools/trunk/view/view.html",controller:"TrunkViewCtrl",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.tools.trunks.view.settings",{url:"/settings",templateUrl:"app/tools/trunk/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TrunkWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.initWizard=function(){a.forms={},a.item={context:"from-voip-provider"}},a.next=function(d){d?b.post("/api/trunks/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_TRUNK"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")}):c.wizard().next()},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/trunks/",a.item).success(function(){d.path("/tools/trunks/list")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks.wizard",{url:"/wizard",templateUrl:"app/tools/trunk/wizard/wizard.html",controller:"TrunkWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VariableListCtrl",["$scope","$uibModal","Variable","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"variables.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/variables/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/tools/variable/list/list.create.modal.html",controller:"VariableListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("VariableListCreateCtrl",["$scope","$translate","$uibModalInstance","Variable","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.variables.list",{url:"/list",templateUrl:"app/tools/variable/list/list.html",controller:"VariableListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Variable",["$resource",function(a){return a("/api/variables/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.variables",{url:"/variables",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VariableViewCtrl",["$scope","$translate","$stateParams","xAlert","Variable",function(a,b,c,d,e){a.getVariable=function(){return e.get({id:c.id}).$promise.then(function(b){a.variable=b})["catch"](function(a){d.show(a.data.message,"danger")})},a.updateVariable=function(){return e.update({id:c.id},a.variable).$promise.then(function(){d.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.variables.view",{url:"/view/:id",templateUrl:"app/tools/variable/view/view.html",controller:"VariableViewCtrl",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.tools.variables.view.settings",{url:"/settings",templateUrl:"app/tools/variable/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCloneModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),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","$translate","xAlert","Modal","$uibModal","$log","YourDashboard","gridOptions",function(a,b,c,d,e,f,g,h,i){a.initView=function(){var b={exporterCsvFilename:"voice_contexts.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:220,buttons:[{"class":"green",href:"/tools/yourdashboards/show/{{row.entity.id}}",name:"view"},{"class":"blue-hoki",href:"/tools/yourdashboards/view/{{row.entity.id}}/settings",name:"settings"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"},{"class":"purple",name:"clone",onClick:"grid.appScope.clone(row.entity.id)"}]}]};a.gridOptions=i.gridOptions(h,b,a)},a.create=function(){var b=f.open({animation:!0,templateUrl:"app/tools/yourdashboard/list/create.modal.html",controller:"YourdashboardListCreateModalCtrl"});b.result.then(function(b){return h.save(b).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),a.gridOptions.getPage()})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})},a.clone=function(b){var e=f.open({animation:!0,templateUrl:"app/tools/yourdashboard/list/clone.modal.html",controller:"YourdashboardListCloneModalCtrl"});e.result.then(function(e){return h.save({id:b,controller:"clone"},e).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),a.gridOptions.getPage()})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.yourdashboards.list",{url:"/list",templateUrl:"app/tools/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.getDashboard=function(){c.get("/api/dashboards/"+g.id).success(function(b){var c={name:"dashboard",structure:"4-8",enableconfirmdelete:!0,maximizable:!0,collapsible:!0};b.model=JSON.parse(b.model||'{"title":"Dashboard"}'),b.editable=f.isAdmin()&&b.editable?!0:!1,a.dashboard=_.merge(c,b)}).error(function(a){h.path("/tools/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.tools.yourdashboards.show",{url:"/show/:id",templateUrl:"app/tools/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("/tools/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.tools.yourdashboards.view",{url:"/view/:id",templateUrl:"app/tools/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.tools.yourdashboards.view.settings",{url:"/settings",templateUrl:"app/tools/yourdashboard/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("YourDashboard",["$resource",function(a){return a("/api/dashboards/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.yourdashboards",{url:"/yourdashboards",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ZendeskListCtrl",["$scope","ZendeskAccount","gridOptions","xAlert","$translate",function(a,b,c,d,e){a.initView=function(){var d={exporterCsvFilename:"zendesk_account.csv",columnDefs:[{name:"name",displayName:"APPLICATION_NAME"},{name:"username"},{name:"remoteUri",displayName:"APPLICATION_REMOTE_ADDRESS"},{name:"action",width:250,buttons:[{"class":"blue-hoki",href:"/zendesk/view/{{row.entity.id}}/account",name:"profile"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK_CONNECTION",onClick:"grid.appScope.checkAccount(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.checkAccount=function(a){return b.check({id:a}).$promise.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").config(["$stateProvider",function(a){a.state("main.zendesk.view.configurations",{url:"/configurations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewConfigurationListCtrl",["$scope","$stateParams","$translate","gridOptions","ZendeskConfiguration","$uibModal","xAlert",function(a,b,c,d,e,f,g){a.initView=function(){var c={exporterCsvFilename:"zendesk_configurations.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/zendesk/view/{{row.entity.AccountId}}/configurations/view/{{row.entity.id}}",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(e,c,a,{accountId:b.id})},a.createItem=function(){var c=f.open({animation:!0,templateUrl:"app/zendesk/view/configuration/list/create.modal.html",controller:["$scope","$uibModalInstance",function(a,b){a.form={},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]});c.result.then(function(c){return e.save({accountId:b.id},c).$promise.then(function(){a.gridOptions.getPage()})["catch"](function(a){g.show(a.data.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view.configurations.list",{url:"/list",templateUrl:"app/zendesk/view/configuration/list/list.html",controller:"ZendeskViewConfigurationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewConfigurationViewCtrl",["$scope","$stateParams","$filter","$translate","socket","ZendeskConfiguration","xAlert","variable","Variable","ZendeskAccount","Tag","ZendeskField",function(a,b,c,d,e,f,g,h,i,j,k,l){a.$on("$destroy",function(){e.unsyncUpdates("zendesk_field")}),a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:300,scrollInertia:0},a.fieldType=[{type:"string",title:"String"},{type:"variable",title:"Variable"},{type:"customVariable",title:"Custom Variable"}],a.descFieldType=[{type:"string",title:"String"},{type:"keyValue",title:"Key Value"}],a.initView=function(){a.configurationName="",a.subjectConfig=[],a.descriptionConfig=[],a.fieldConfig=[],a.selectedTags={tags:[]},a.variables=h},a.getConfiguration=function(){return f.get({accountId:b.id,id:b.configurationId}).$promise.then(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,a.selectedTags={tags:_.map(b.Tags,function(a){return a.id})},e.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})})})["catch"](function(a){g.show(a.message,"danger")})},a.getCustomVariables=function(){return i.get().$promise.then(function(b){a.customVariables=b.rows})["catch"](function(a){g.show(a.message,"danger")})},a.getFields=function(){return j.fields({id:b.id}).$promise.then(function(b){a.accountFields=c("zendesk")(b)})["catch"](function(a){g.show(a.message,"danger")})},a.getTags=function(){
+return k.get().$promise.then(function(b){a.tags=b.rows})["catch"](function(a){g.show(a.message,"danger")})},a.addItem=function(c){switch(c){case"subject":case"description":var d={type:"string",content:""};break;case"field":var d={content:""}}return f.save({accountId:b.id,id:b.configurationId,controller:c},d).$promise.then(function(b){switch(c){case"subject":a.subjectConfig.push(b);break;case"description":a.descriptionConfig.push(b);break;case"field":a.fieldConfig.push(b)}})["catch"](function(a){g.show(a.data.message,"danger")})},a.changeType=function(b){"variable"===b.type?(b.content="",b.variableName=""):"string"===b.type?(b.VariableId=null,b.variableName=""):"customVariable"===b.type&&(b.VariableId=null,b.content=""),a.updateField(b)},a.updateField=function(a){return l.update({accountId:b.id,configurationId:b.configurationId,id:a.id},a).$promise.then(function(){})["catch"](function(){g.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.removeItem=function(a){return l["delete"]({accountId:b.id,configurationId:b.configurationId,id:a.id}).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(){g.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.changeDescType=function(b){"keyValue"===b.type?(b.content="","string"===b.keyType?(b.VariableId=null,b.variableName=""):"variable"===b.keyType?(b.keyContent="",b.VariableId=null):"customVariable"===b.keyType&&(b.keyContent="",b.variableName="")):"string"===b.type&&(b.VariableId=null,b.variableName="",b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.variableName="",b.nameField="",b.VariableId=null,b.idField){var c=_.find(a.accountFields,"id",b.idField);c&&(c.system_field_options?(b.customField=!1,b.nameField=c.title.toLowerCase()):b.customField=!0)}a.updateField(b)},a.updateTags=function(){return f.update({accountId:b.id,id:b.configurationId,controller:"tags"},a.selectedTags.tags).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE")+".","success")})["catch"](function(a){g.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},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.configurations.view",{url:"/view/:configurationId",templateUrl:"app/zendesk/view/configuration/view/view.html",controller:"ZendeskViewConfigurationViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewCtrl",["$scope","$stateParams","$translate","xAlert","Modal","ZendeskAccount",function(a,b,c,d,e,f){a.initView=function(){return f.get({id:b.id}).$promise.then(function(b){a.account=b})["catch"](function(a){d.show(a.message,"danger")})},a.updateItem=function(){return f.update({id:b.id},a.account).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE")+".","success")})["catch"](function(){d.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),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"})}]),angular.module("xCallyShuttleApp").controller("ZendeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler","ZendeskAccount",function(a,b,c,d,e,f,g){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(){return g.save(a.item).$promise.then(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/zendesk/list")})["catch"](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").factory("ZendeskAccount",["$resource",function(a){return a("/api/zendesk/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"},fields:{params:{controller:"fields"},isArray:!0},check:{params:{controller:"check"}}})}]).factory("ZendeskConfiguration",["$resource",function(a){return a("/api/zendesk/accounts/:accountId/configurations/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]).factory("ZendeskField",["$resource",function(a){return a("/api/zendesk/accounts/:accountId/configurations/:configurationId/fields/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk",{url:"/zendesk",template:"<div ui-view></div>","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"}],checkUnderscore:function(a){return 0===a.indexOf("_")?a:"_"+a}};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("role",a.role),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("role"),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"===(e.get("role")||g.role)||"user"===(e.get("role")||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").service("automations",function(){var a={voice:{conditions:[],actions:[]},mail:{conditions:[{name:"APPLICATION_STATUS",value:"status",type:"select",arr:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",type:"input",operators:[{value:"greater_or_equal",name:"APPLICATION_GTE_TO"},{value:"less_or_equal",name:"APPLICATION_LTE_TO"},{value:"greater",name:"APPLICATION_GREATER_THAN"},{value:"less",name:"APPLICATION_LESS_THAN"}]}],actions:[{name:"APPLICATION_STATUS",value:"status"}]},chat:{conditions:[{name:"APPLICATION_STATUS",value:"status",type:"select",arr:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",type:"input",operators:[{value:"greater_or_equal",name:"APPLICATION_GTE_TO"},{value:"less_or_equal",name:"APPLICATION_LTE_TO"},{value:"greater",name:"APPLICATION_GREATER_THAN"},{value:"less",name:"APPLICATION_LESS_THAN"}]}],actions:[{name:"APPLICATION_STATUS",value:"status"}]},fax:{conditions:[{name:"APPLICATION_STATUS",value:"status",type:"select",arr:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",type:"input",operators:[{value:"greater_or_equal",name:"APPLICATION_GTE_TO"},{value:"less_or_equal",name:"APPLICATION_LTE_TO"},{value:"greater",name:"APPLICATION_GREATER_THAN"},{value:"less",name:"APPLICATION_LESS_THAN"}]}],actions:[{name:"APPLICATION_STATUS",value:"status"}]}},b=["voice","mail","chat","fax"];return{services:a,channels:b}}),angular.module("xCallyShuttleApp").service("desk_com",function(){var a=[{id:"priority",label:"Priority",custom:!1,data:{choices:[1,2,3,4,5,6,7,8,9,10]}},{id:"status",label:"Status",custom:!1,data:{choices:["new","open","pending","resolved","closed"]}},{id:"type",label:"Type",custom:!1,data:{choices:["chat","twitter","email","qna","facebook","phone"]}}];return{fields:a}}),angular.module("xCallyShuttleApp").controller("FooterController",["$scope","$http",function(a,b){a.year=moment().year(),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","MailReport","ChatReport",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){a.toggleQuickSidebar=function(){k.layout.pageQuickSidebarOpened=!k.layout.pageQuickSidebarOpened,k.layout.pageQuickSidebarOpened||m.remove("chatRoomId")},a.toogleSidebar=function(){k.layout.pageSidebarClosed=!k.layout.pageSidebarClosed,m.set("sidebarClosed",k.layout.pageSidebarClosed)},a.initHeader=function(){var d=j.load("api/xchatty/assets?resource=notification/xc_blubb.mp3"),k={};"agent"===g.getCurrentUser().role&&(i.socket.on("report_mail:save",function(a){d.play();var e=f("MAIL CHANNEL",{icon:"assets/images/media/channels/mail64.png",body:"NEW Incoming Mail Message!",delay:1e3*a.timeslot});e.$on("click",function(){return n.get({id:a.id,controller1:"accept",controller2:a.uniqueid}).$promise.then(function(){b.$broadcast("mailMessageEvent",{message:"Mail properly assigned.."}),h.show("Mail properly assigned","success"),c.path("/channels/mail/inbox/view/"+a.roomid+"/room")})["catch"](function(a){h.show(a.data.message,"danger")})})}),i.socket.on("report_chat:save",function(a){d.play(),k[a.uniqueid]&&(k[a.uniqueid].close(),delete k[a.uniqueid]),k[a.uniqueid]=f("CHAT CHANNEL",{icon:"assets/images/media/channels/chat64.png",body:"NEW Incoming Chat Visitor!",delay:1e3*a.timeslot}),k[a.uniqueid].$on("click",function(){return o.get({id:a.id,controller1:"accept",controller2:a.uniqueid}).$promise.then(function(){h.show("Chat properly assigned","success"),b.$broadcast("mailMessageEvent",{message:"Chat properly assigned.."})})["catch"](function(a){h.show(a.data.message,"danger")})})}),i.socket.on("chat_message:save",function(a){d.play();var c=m.get("chatRoomId");if((!c||c!==a.ChatRoomId)&&a.UserId&&a.UserId!==g.getCurrentUser().id){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",{chatRoomId:a.ChatRoomId})})}}),i.socket.on("user_has_chat_room:save",function(a){d.play(),b.$broadcast("chatGroupEvent",a)})),e({url:"/api/fax/user_has_queues",method:"GET",params:{UserId:g.getCurrentUser().id}}).success(function(b){a.faxQueues=_.map(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(){console.log(Array.prototype.slice.call(arguments));var b,d=Array.prototype.slice.call(arguments),e=d.shift();b=c({modal:{dismissable:!0,title:"Confirm Delete",html:"<p>Are you sure you want to delete"+(e?"<strong> "+e+"</strong>":" selected items")+"?</p>",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(_.map(a.selected.items,"id"),_.map(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","$interval","Auth","Agent","User","ChatRoom","ChatMessage","socket","settings","localStorageService","xAlert","$translate","QuickSidebarFactory",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){a.emojiMessage={},a.options=s.options,a.message={body:"",user:""};var t=a.currentUser=i.getCurrentUser(),u=function(b){switch(a.messagesTab=!0,o.layout.pageQuickSidebarOpened=!0,p.set("chatRoomId",b.id),p.set("messagesTab",a.messagesTab),a.chatRoom=b,b.type){case"internal":a.currentTab=0;break;case"external":a.currentTab=2,_.find(a.chatRooms,{id:b.id})||a.chatRooms.push(b)}b.Users.length>2&&(a.currentTab=3),g(function(){angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last")},1500)},v=function(a){console.error(a)};a.$on("$includeContentLoaded",function(){p.get("chatRoomId")&&l.get({id:p.get("chatRoomId")},u,v),p.get("currentTab")&&(a.currentTab=p.get("currentTab"))}),a.agents=j.get({offset:0,limit:1e3},function(){n.syncUpdates("agent",a.agents.rows)}),a.users=k.get({offset:0,limit:1e3},function(){n.syncUpdates("user",a.users.rows)}),a.currentTab=0,a.messagesTab=!1,a.chatRooms=l.me(function(b){a.chatRooms=b},function(a){console.error(a)}),n.socket.on("report_chat:assignment",function(a){a.agentid&&l.get({id:a.chatroomid},u,v)}),n.socket.on("chat_room:save",function(b){if(a.chatRoom&&a.chatRoom.id===b.id){_.merge(a.chatRoom,b);var c=_.find(a.chatRooms,{id:b.id});c&&_.merge(c,b)}}),n.socket.on("chat_message:save",function(b){a.chatRoom&&a.chatRoom.id===b.ChatRoomId&&(a.chatRoom.ChatMessages.push(b),angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last"))}),n.socket.on("user_has_chat_room:save",function(b){var c=_.findIndex(a.chatRooms,{id:b.id});c>=0?a.chatRooms[c]=b:a.chatRooms.push(b)}),b.$on("chatMessageEvent",function(a,b){l.get({id:b.chatRoomId},u,v)}),b.$on("chatGroupEvent",function(b,c){a.currentTab=3,a.messagesTab=!0,o.layout.pageQuickSidebarOpened=!0,a.chatRoom=c}),a.goToTab=function(b){a.currentTab=b,a.messagesTab=!1,a.chatRoom=null,p.set("currentTab",a.currentTab),p.set("messagesTab",a.messagesTab),p.remove("chatRoomId")},a.goToMessage=function(a,b){a?l.users({users:[t.id,a]},u,v):l.get({id:b},u,v)},a.sendMessage=function(){a.message.body.trim().length&&m.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,p.set("messagesTab",a.messagesTab),p.remove("chatRoomId")},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(){l.update({id:a,status:"CLOSED",completeReason:"agent"}).$promise.then(function(){q.show(r.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){q.show(a.data.message,"danger")})})},a.addAgent=function(b,c){var f=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}})}}});f.result.then(function(a){d.put("/api/chat/rooms/"+b+"/users",{users:a}).then(function(){q.show(r.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){q.show(a.data.message,"danger")})})};var w=function(){var b=angular.element(c),d=function(){return{h:b.height(),w:b.width()}};a.$watch(d,function(b){a.style={height:b.h-46-46-46+"px"},a.style2={height:b.h-46-46-46-180+"px"}},!0),b.bind("resize",function(){a.$apply()})};w(),a.$on("$destroy",function(){n.unsyncUpdates("agent"),n.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").factory("QuickSidebarFactory",function(){return{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"}}}}),angular.module("xCallyShuttleApp").filter("QuickSidebarFilterUsersGreaterThan",function(){return function(a,b){var c=[];return a.forEach(function(a){var d=0;a.ChatVisitor&&d++,d+=a.Users.length,d>b&&c.push(a)}),c}}).filter("QuickSidebarFilterUsersLowerThan",function(){return function(a,b){var c=[];return a.forEach(function(a){a.Users.length<b&&c.push(a)}),c}}),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<e.getCurrentUser().Modules.length;b++)if(e.getCurrentUser().Modules[b].name===a)return!0;return!1},a.getSidebarDashboards=function(){f.get("/api/dashboards").then(function(b){a.dashboards=b.data.rows,i.syncUpdates("dashboard",a.dashboards)})["catch"](function(a){g.show("Error loading your dashboards","danger")})},a.getSidebarIntegrations=function(){f.get("/api/integrations").success(function(b){a.integrations=b.rows,i.syncUpdates("integration",a.integrations)}).error(function(a){g.show(a.message,"danger")})},a.isActive=function(a){return a===d.path()},a.$on("destroy",function(){i.unsyncUpdates("dashboard"),i.unsyncUpdates("integration")})}]),angular.module("xCallyShuttleApp").factory("socket",["$rootScope","$window","socketFactory","Auth",function(a,b,c,d){var e=d.getCurrentUser(),f=io("",{query:"token="+d.getToken()+"&userId="+(e.id||d.getUserId())+"&name="+(e.name||d.getName())+"&role="+(e.role||"agent")+"&source=browser",path:"/socket.io-client"}),g=c({ioSocket:f});return a.$on("logout",function(){g&&(g.disconnect(!0),b.location.reload())}),{socket:g,syncUpdates:function(a,b,c){c=c||angular.noop,g.on(a+":save",function(a){var d=_.find(b,{id:a.id}),e=b.indexOf(d),f="created";d?(_.merge(b[e],a),f="updated"):b.unshift(a),c(f,a,b)}),g.on(a+":remove",function(a){var d="deleted";_.remove(b,{id:a.id}),c(d,a,b)})},unsyncUpdates:function(a){g.removeAllListeners(a+":save"),g.removeAllListeners(a+":remove")},syncUpdatesByAttributes:function(a,b,c,d){d=d||angular.noop,g.on(a+":save",function(a){var e=!0;if(_.forIn(b,function(b,c){return a[c]&&a[c]===b?!0:e=!1}),e){var f=_.find(c,{id:a.id}),g=c.indexOf(f),h="created";f?(_.merge(c[g],a),h="updated"):c.unshift(a),d(h,a,c)}}),g.on(a+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},syncMailMessageUpdates:function(a,b,c,d){d=d||angular.noop,g.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),g.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncMailMessageUpdates:function(a,b){g.removeAllListeners(a+":"+b+":save"),g.removeAllListeners(a+":"+b+":remove")},syncFaxMessageUpdates:function(a,b,c,d){d=d||angular.noop,g.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),g.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncFaxMessageUpdates:function(a,b){g.removeAllListeners(a+":"+b+":save"),g.removeAllListeners(a+":"+b+":remove")}}}]),angular.module("xCallyShuttleApp").service("triggers",["VoiceQueue",function(a){var b={voice:{conditions:[{name:"APPLICATION_QUEUE",value:"queue",type:"select",resource:a,resValue:"name",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_CALL_STATUS",value:"lastevent",type:"select",arr:[{name:"called",value:"called"},{name:"connect",value:"connect"},{name:"complete",value:"complete"},{name:"rejected",value:"rejected"},{name:"abandoned",value:"abandoned"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]}],actions:[{name:"APPLICATION_CONTACT_MANAGER",value:"contactManager"},{name:"APPLICATION_INTEGRATIONS",value:"integration",propertyField:"select"}]},mail:{conditions:[{name:"APPLICATION_FROM",value:"from",type:"input",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_CC",value:"cc",type:"input",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_SUBJECT",value:"subject",type:"input",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]}],actions:[{name:"APPLICATION_TEMPLATE",value:"template"},{name:"APPLICATION_CONTACT_MANAGER",value:"contactManager"}]},chat:{conditions:[],actions:[]},fax:{conditions:[],actions:[]}},c=["voice","mail","chat","fax"];return{services:b,channels:c}}]),angular.module("xCallyShuttleApp").service("variable",function(){var a=[{title:"Unique ID",name:"uniqueid",group:"voice_queue"},{title:"Caller Number",name:"calleridnum",group:"voice_queue"},{title:"Caller Name",name:"calleridname",group:"voice_queue"},{title:"Queue",name:"queue",group:"voice_queue"},{title:"Called Number",name:"destcalleridnum",group:"voice_queue"},{title:"Called Name",name:"destcalleridname",group:"voice_queue"},{title:"Hold Time",name:"holdtime",group:"voice_queue"},{title:"Talk Time",name:"talktime",group:"voice_queue"},{title:"Connected Time",name:"agentconnectAt",group:"voice_queue"},{title:"Called Time",name:"agentcalledAt",group:"voice_queue"},{title:"DNID",name:"destexten",group:"voice_queue"},{title:"Complete Time",name:"agentcompleteAt",group:"voice_queue"},{title:"No Answer Time",name:"agentringnoanswerAt",group:"voice_queue"}];return a}),function(a,b){angular.module("adf.widget.counter",["adf.provider"]).config(["dashboardProvider",function(a){a.widget("counter",{title:"Single Value",description:"Single Value for db results",templateUrl:"{widgetsPath}/counter/src/view.html",controller:"apiwidgetCounterViewCtrl",edit:{templateUrl:"{widgetsPath}/counter/src/edit.html",controller:"apiwidgetCounterEditCtrl"}})}]).service("apiServiceCounter",["Widget",function(a){return{get:function(b){return a.get({select:b.select,condition:encodeURIComponent(b.condition),table:b.report,controller:"counter"}).$promise.then(function(a){return a})["catch"](function(a){console.log(a)})}}}]).controller("apiwidgetCounterEditCtrl",["$scope",function(a){a.config.reportTables=[{name:"Agents",value:"report_agent"},{name:"Calls",value:"report_call"},{name:"Dials",value:"report_dial"},{name:"Queues",value:"report_queue"},{name:"Users",value:"users"},{name:"Chat Sessions",value:"report_chat_session"},{name:"Mail Sessions",value:"report_mail_session"}],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.select=a.config.select?a.config.select:"COUNT(*)",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.condition=a.config.condition?a.config.condition:null,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.report&&c.get(a.config).then(function(b){b?b.result&&b.result.length>1||_.keys(b.result[0]).length>1?(a.tooManyResults=!0,a.result=null):(a.tooManyResults=!1,null!==_.values(b.result[0])[0]?a.result=_.values(b.result[0])[0].toString():a.result="--"):a.result=null})},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","<form role=form><div class=form-group><label for=select>Select</label> <input type=text class=form-control id=condition ng-model=config.select placeholder=Select></div><div class=form-group><label class=control-label>From</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder=From>{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"report.value as report in config.reportTables | filter: $select.search\"><div ng-bind-html=\"report.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label for=condition>Where</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder=Where></div><div class=form-group><label for=condition>{{'APPLICATION_REFRESH_TIMEOUT' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder=\"{{'APPLICATION_REFRESH_TIMEOUT' | translate}}\" min=1></div><div class=form-group><label class=control-label>{{'APPLICATION_WIDGET_COLOR' | translate}}</label><ui-select data-ng-model=config.color name=color theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_WIDGET_COLOR' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"color.value as color in config.colors | filter: $select.search\"><div ng-bind-html=\"color.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label class=control-label>{{'APPLICATION_WIDGET_ICON' | translate}}</label><ui-select data-ng-model=config.icon name=icon theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_WIDGET_ICON' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"icon.value as icon in config.icons | filter: $select.search\"><div ng-bind-html=\"icon.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_DETAILS' | translate}}</label> <input type=text class=form-control id=details ng-model=config.details maxlength=30 placeholder=\"{{'APPLICATION_WIDGET_DETAILS' | translate}}\"></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_LINK' | translate}}</label> <input type=text class=form-control id=link ng-model=config.link placeholder=http://yourlink></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_LINK_TEXT' | translate}}</label> <input type=text class=form-control id=linkText ng-model=config.linkText maxlength=30 placeholder=\"{{'APPLICATION_WIDGET_LINK_TEXT' | translate}}\"></div></form>"),a.put("{widgetsPath}/counter/src/view.html",'<div class=dashboard-stat ng-class=config.color ng-if=result><div class=visual><i class=fa ng-class=config.icon></i></div><div class=details><div class=number>{{result}}</div><div class=desc>{{config.details}}</div></div><a class=more href={{config.link}}>{{config.linkText}} <i class="m-icon-swapright m-icon-white"></i></a></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=tooManyResults><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_TOO_MANY_RESULTS\' | translate}}</div><div class="alert alert-danger" role=alert ng-if="!result && !tooManyResults"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_QUERY_NOT_VALID\' | translate}}</div>')}])}(window),function(a,b){angular.module("adf.widget.pie-chart",["adf.provider"]).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",["Widget",function(a){return{get:function(b){return a.get({condition:encodeURIComponent(b.condition),table:b.report,fields:b.fields,controller:"piechart"}).$promise.then(function(a){return a})["catch"](function(a){console.log(a)})}}}]).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:"report_agent"},{name:"Calls",value:"report_call"},{name:"Dials",value:"report_dial"},{name:"Queues",value:"report_queue"},{name:"Users",value:"users"},{name:"Chat Sessions",value:"report_chat_session"},{name:"Mail Sessions",value:"report_mail_session"}],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&&b.result&&1===b.result.length){a.labels=[],a.data=[];for(var c in b.result[0])a.labels.push(c),a.data.push(b.result[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",'<form role=form><div class=form-group><label class=control-label>{{\'APPLICATION_REPORT\' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder="{{ \'APPLICATION_REPORT\' | translate }}">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="report.value as report in config.reportTables | filter: $select.search"><div ng-bind-html="report.name | highlight: $select.search"></div></ui-select-choices></ui-select></div><div><label class=control-label>{{\'APPLICATION_FIELDS\' | translate}}</label></div><div class=padding-bottom ng-repeat="field in config.fields"><div class=form-group><div class=input-group><input type=text class=form-control ng-model=field.column> <span class=input-group-addon>as</span> <input type=text class=form-control ng-model=field.alias> <span class=input-group-btn ng-if="config.fields.length>1"><button class="btn btn-danger" type=button data-ng-click=removeField($index)><i class="fa fa-times"></i> {{\'APPLICATION_REMOVE\' | translate}}</button></span></div></div></div><button type=button class="btn btn-sm green mbottom20" ng-click=addField()><i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}</button><div class=form-group><label for=condition>{{\'APPLICATION_CONDITION\' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder="{{\'APPLICATION_CONDITION\' | translate}}"></div><div class=form-group><label for=condition>{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder="{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}" min=1></div></form>'),a.put("{widgetsPath}/pie-chart/src/view.html",'<div ng-if=labels.length ng-style=config.style><canvas id=doughnut class="chart chart-doughnut" chart-data=data chart-labels=labels legend=true></canvas></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!labels.length><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!labels.length><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_ONE_VALID_METRIC_AND_CHECK_OTHER\' | translate}}</div>')}])}(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",'<form role=form><div class=form-group><label class=control-label>{{\'APPLICATION_REPORT\' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder="{{ \'APPLICATION_REPORT\' | translate }}">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="report.value as report in config.reportTables | filter: $select.search"><div ng-bind-html="report.name | highlight: $select.search"></div></ui-select-choices></ui-select></div><div><label class=control-label>{{\'APPLICATION_METRICS\' | translate}}</label></div><div class=padding-bottom ng-repeat="field in config.fields"><div class=form-group><div class=input-group><input type=text class=form-control ng-model=field.column> <span class=input-group-addon>as</span> <input type=text class=form-control ng-model=field.alias> <span class=input-group-btn ng-if="config.fields.length>1"><button class="btn btn-danger" type=button data-ng-click=removeField($index)><i class="fa fa-times"></i> {{\'APPLICATION_REMOVE\' | translate}}</button></span></div></div></div><button type=button class="btn btn-sm green mbottom20" ng-click=addField()><i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}</button><div class=form-group><label for=condition>{{\'APPLICATION_CONDITION\' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder="{{\'APPLICATION_CONDITION\' | translate}}"></div><div class=form-group><label for=condition>{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder="{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}" min=1></div><div class=form-group><label for=condition>{{\'APPLICATION_WIDGET_MAX_HEIGHT\' | translate}}</label> <input type=number class=form-control id=height ng-model=config.height placeholder="{{\'APPLICATION_WIDGET_MAX_HEIGHT\' | translate}}" min=350></div></form>'),a.put("{widgetsPath}/table/src/view.html",'<div ng-if=results ng-style=config.style><table st-table=results class="table table-striped table-bordered table-hover"><div class=table-responsive><thead><tr><th colspan={{config.fields.length}}><div class=row><div class=col-md-6></div><div class=col-md-6><div class="input-group input-medium pull-right"><input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class=form-control type=search> <span class=input-group-addon><i class="fa fa-search"></i></span></div></div></div></th></tr><tr><th ng-repeat="field in config.fields">{{field.alias}}</th></tr></thead><tbody><tr data-ng-repeat="result in results" class=animate-repeat><td ng-repeat="field in config.fields">{{result[field.alias]}}</td></tr><tr data-ng-hide=results.length><td colspan={{config.fields.length}} style=text-align:center;><i>{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</i></td></tr></tbody><tfoot><tr><td colspan={{config.fields.length}} class=text-center><div st-pagination class=pagination st-items-by-page=10 st-displayed-pages=3></div></td></tr></tfoot></div></table></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!results><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!results><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_ONE_VALID_FIELD_AND_CHECK_OTHER\' | translate}}</div>')}])}(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<f.length;a++){var b=f[a];b.call()}},n=function(){var a;if(c){var b;$(window).resize(function(){b!=document.documentElement.clientHeight&&(a&&clearTimeout(a),a=setTimeout(function(){m()},50),b=document.documentElement.clientHeight)})}else $(window).resize(function(){a&&clearTimeout(a),a=setTimeout(function(){m()},50)})},o=function(){$("body").on("click",".portlet > .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:'<div class="icheck_line-icon"></div>'+$(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?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><div class="block-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div></div>':a.iconOnly?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif" align=""></div>':a.textOnly?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><span>&nbsp;&nbsp;'+(a.message?a.message:"LOADING...")+"</span></div>":'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif" align=""><span>&nbsp;&nbsp;'+(a.message?a.message:"LOADING...")+"</span></div>",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('<div class="page-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>')):($(".page-loading").remove(),$("body").append('<div class="page-loading"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif"/>&nbsp;&nbsp;<span>'+(a&&a.message?a.message:"Loading...")+"</span></div>"))},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='<div id="'+b+'" class="Metronic-alerts alert alert-'+a.type+' fade in">'+(a.close?'<button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>':"")+(""!==a.icon?'<i class="fa-lg fa fa-'+a.icon+'"></i>  ':"")+a.message+"</div>";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<e.length;b++)if(c=e[b].split("="),c[0]==a)return unescape(c[1]);return null},isTouchDevice:function(){try{return document.createEvent("TouchEvent"),!0}catch(a){return!1}},getViewPort:function(){var a=window,b="inner";return"innerWidth"in window||(b="client",a=document.documentElement||document.body),{width:a[b+"Width"],height:a[b+"Height"]}},getUniqueID:function(a){return"prefix_"+Math.floor(Math.random()*(new Date).getTime())},isIE8:function(){return c},isIE9:function(){return d},isRTL:function(){return b},isAngularJsApp:function(){return"undefined"==typeof angular?!1:!0},getAssetsPath:function(){return g},setAssetsPath:function(a){g=a},setGlobalImgPath:function(a){h=a},getGlobalImgPath:function(){return g+h},setGlobalPluginsPath:function(a){i=a},getGlobalPluginsPath:function(){return g+i},getGlobalCssPath:function(){return g+j},getBrandColor:function(a){return k[a]?k[a]:""},getResponsiveBreakpoint:function(a){var b={xs:480,sm:768,md:900,lg:1200};return b[a]?b[a]:0}}}(),Layout=function(){var a="img/",b="css/",c=Metronic.getResponsiveBreakpoint("md"),d=function(){var a,b=$(".page-content"),d=$(".page-sidebar"),e=$("body");if(e.hasClass("page-footer-fixed")===!0&&e.hasClass("page-sidebar-fixed")===!1){var f=Metronic.getViewPort().height-$(".page-footer").outerHeight()-$(".page-header").outerHeight();b.height()<f&&b.attr("style","min-height:"+f+"px")}else{if(e.hasClass("page-sidebar-fixed"))a=g(),e.hasClass("page-footer-fixed")===!1&&(a-=$(".page-footer").outerHeight());else{var h=$(".page-header").outerHeight(),i=$(".page-footer").outerHeight();a=Metronic.getViewPort().width<c?Metronic.getViewPort().height-h-i:d.height()+20,a+h+i<=Metronic.getViewPort().height&&(a=Metronic.getViewPort().height-h-i)}b.attr("style","min-height:"+a+"px")}},e=function(a,b){var d=location.hash.toLowerCase(),e=$(".page-sidebar-menu");if("click"===a||"set"===a?b=$(b):"match"===a&&e.find("li > 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('<span class="selected"></span>'),1===$(this).children("ul.sub-menu").size()&&$(this).addClass("open")}),"click"===a&&Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click()}},f=function(){jQuery(".page-sidebar").on("click","li > 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<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click());
+if(!$(this).next().hasClass("sub-menu always-open")){var e=$(this).parent().parent(),f=$(this),g=$(".page-sidebar-menu"),h=jQuery(this).next(),i=g.data("auto-scroll"),j=parseInt(g.data("slide-speed")),k=g.data("keep-expanded");k!==!0&&(e.children("li.open").children("a").children(".arrow").removeClass("open"),e.children("li.open").children(".sub-menu:not(.always-open)").slideUp(j),e.children("li.open").removeClass("open"));var l=-200;h.is(":visible")?(jQuery(".arrow",jQuery(this)).removeClass("open"),jQuery(this).parent().removeClass("open"),h.slideUp(j,function(){i===!0&&$("body").hasClass("page-sidebar-closed")===!1&&($("body").hasClass("page-sidebar-fixed")?g.slimScroll({scrollTo:f.position().top}):Metronic.scrollTo(f,l)),d()})):b&&(jQuery(".arrow",jQuery(this)).addClass("open"),jQuery(this).parent().addClass("open"),h.slideDown(j,function(){i===!0&&$("body").hasClass("page-sidebar-closed")===!1&&($("body").hasClass("page-sidebar-fixed")?g.slimScroll({scrollTo:f.position().top}):Metronic.scrollTo(f,l)),d()})),a.preventDefault()}}}),jQuery(".page-sidebar").on("click"," li > 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<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click(),Metronic.startPageLoading();var f=$(this);$.ajax({type:"GET",cache:!1,url:b,dataType:"html",success:function(a){0===f.parents("li.open").size()&&$(".page-sidebar-menu > li.open > a").click(),Metronic.stopPageLoading(),e.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){Metronic.stopPageLoading(),e.html("<h4>Could not load the requested content.</h4>")}})}),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().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click(),$.ajax({type:"GET",cache:!1,url:b,dataType:"html",success:function(a){Metronic.stopPageLoading(),d.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){d.html("<h4>Could not load the requested content.</h4>"),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}),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(){$("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")},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('<span class="selected"></span>')}),$(".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<c)return void Metronic.destroySlimScroll(d.find(".full-height-content-body"));a=a-b.find(".portlet-title").outerHeight(!0)-parseInt(b.find(".portlet-body").css("padding-top"))-parseInt(b.find(".portlet-body").css("padding-bottom"))-2,b.hasClass("full-height-content-scrollable")?(a-=35,d.find(".full-height-content-body").css("height",a),Metronic.initSlimScroll(d.find(".full-height-content-body"))):d.css("min-height",a)}else{if(Metronic.getViewPort().width<c)return void Metronic.destroySlimScroll(b.find(".full-height-content-body"));b.hasClass("full-height-content-scrollable")?(a-=35,b.find(".full-height-content-body").css("height",a),Metronic.initSlimScroll(b.find(".full-height-content-body"))):b.css("min-height",a)}};return{initHeader:function(){k()},setSidebarMenuActiveLink:function(a,b){e(a,b)},initSidebar:function(){h(),f(),j(),Metronic.isAngularJsApp()&&e("match"),Metronic.addResizeHandler(h)},initContent:function(){n(),l(),Metronic.addResizeHandler(d),Metronic.addResizeHandler(n)},initFooter:function(){m()},init:function(){this.initHeader(),this.initSidebar(),this.initContent(),this.initFooter()},fixContentHeight:function(){d()},initFixedSidebarHoverEffect:function(){i()},initFixedSidebar:function(){h()},getLayoutImgPath:function(){return Metronic.getAssetsPath()+a},getLayoutCssPath:function(){return Metronic.getAssetsPath()+b}}}();angular.module("xCallyShuttleApp").run(["$templateCache",function(a){a.put("app/analytic/extracted/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-file-pdf-o"></i>\n                                      <a href="/analytics/extracted/list">{{ \'APPLICATION_EXTRACTED_REPORTS\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="fa fa-file-pdf-o font-green-sharp"></i>\n                                     <span class="caption-subject">{{ \'APPLICATION_EXTRACTED_REPORTS\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_METRIC\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.metric" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.name.$touched || forms.metric.$submitted) && forms.metric.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.metric.name.$touched || forms.metric.$submitted) && forms.metric.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START TABLE -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.table.$touched || forms.metric.$submitted) && forms.metric.table.$invalid}">\n      <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.table" name="table" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="table.value as table in tables | filter: $select.search">\n          <div ng-bind-html="table.name | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(forms.metric.table.$touched || forms.metric.$submitted) && forms.metric.table.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TABLE-->\n\n    <!-- START METRIC -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.metric.$touched || forms.metric.$submitted) && forms.metric.metric.$invalid}">\n      <label class="control-label">{{\'APPLICATION_METRIC\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <textarea type="text" name="metric" placeholder="{{\'APPLICATION_METRIC\' | translate}}" class="form-control" data-ng-model="item.metric" required/></textarea>\n      <span data-ng-show="(forms.metric.metric.$touched || forms.metric.$submitted) && forms.metric.metric.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END METRIC -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="metric.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.metric.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/metric/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-calculator"></i>\n                                       <a href="/analytics/metrics/list">{{ \'APPLICATION_METRICS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-calculator font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_METRICS\' | translate }}</a> </span>\n                           </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_METRIC\' | translate }}\n                                                </button>\n                                     </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getMetric()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-eye"></i>\n                                      <a href="/analytics/metrics/list">{{ \'APPLICATION_METRICS\' | translate }}</a>\n                                       <i data-ng-show="metric" class="fa fa-angle-right"></i>\n                               </li>\n                         <li data-ng-show="metric">\n                                    <a href="#">{{metric.name}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/metric.png" class="img-responsive">\n                             </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{metric.name}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.analytics.metrics.view.settings\')}">\n                                                    <a data-ng-href="/analytics/metrics/view/{{metric.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/view/view.settings.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_METRIC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                              </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateMetric()" novalidate>\n\n                                                      <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="metric.name" required/>\n                                                         <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START TABLE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.table.$touched || forms.general.$submitted) && forms.general.table.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="metric.table" name="table" theme="bootstrap" required>\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="table.value as table in tables | filter: $select.search">\n                                                                          <div ng-bind-html="table.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.general.table.$touched || forms.general.$submitted) && forms.general.table.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TABLE-->\n\n                                                   <!-- START METRIC -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.metric.$touched || forms.general.$submitted) && forms.general.metric.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_METRIC\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <textarea type="text" name="metric" placeholder="{{\'APPLICATION_METRIC\' | translate}}" class="form-control" data-ng-model="metric.metric" required/></textarea>\n                                                             <span data-ng-show="(forms.general.metric.$touched || forms.general.$submitted) && forms.general.metric.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END METRIC -->\n\n                                                 <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="metric.description"></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/analytic/report/list/copy.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_COPY_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="portlet light bordered">\n    <div class="portlet-title">\n      <div class="caption font-green-sharp" style="padding-left:10px;">\n        <i class="icon-folder font-green-sharp"></i>\n        <span class="caption-subject">{{ \'APPLICATION_COPY_TO\' | translate }} </span>\n      </div>\n    </div>\n    <div class="portlet-body">\n      <div js-tree="customTreeConfig" ng-model="customTreeData" should-apply="ac()" tree="customTreeInstance" tree-events="ready:initCustomScopeTree;"></div>\n    </div>\n  </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-disabled="!customTree.get_selected(true).pop().id" ng-click="ok()" ng-disabled="forms.report.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.report" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_PATH\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_PATH\' | translate}}" class="form-control" data-ng-model="path" disabled/>\n      <span data-ng-show="(forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.report.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/extract.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_EXTRACT_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body" style="text-align:center;">\n  <form name="forms.report" class="form-inline mbottom20" novalidate>\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DATE_RANGE\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="daterange" name="dates" ranges="ranges" placeholder="{{\'APPLICATION_DATE_RANGE\' | translate}}" class="form-control" data-ng-model="dates" required/>\n    </div>\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn default green-jungle" type="button" data-ng-click="extract(\'csv\')"><i class="fa fa-file-excel-o"></i> {{ \'APPLICATION_SAVE_AS_CSV\' | translate }}</button>\n  <button class="btn default red-intense" type="button" data-ng-click="extract(\'pdf\')"><i class="fa fa-file-pdf-o"></i> {{ \'APPLICATION_SAVE_AS_PDF\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getTrees()">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-book-open"></i>\n                                        <a href="/analytics/reports/list">{{ \'APPLICATION_REPORTS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n                <div class="col-fixed">\n                       <!-- BEGIN Portlet PORTLET-->\n                 <div class="portlet light bordered">\n                          <div class="portlet-title">\n                                   <div class="caption font-green-sharp" style="padding-left:10px;">\n                                             <i class="icon-folder font-green-sharp"></i>\n                                          <span class="caption-subject">{{ \'APPLICATION_FOLDERS\' | translate }} </span>\n                                       </div>\n                                        <div class="inputs">\n                                          <div class="portlet-input input-inline input-small">\n                                                  <div class="input-icon right">\n                                                                <i class="icon-magnifier"></i>\n                                                                <input type="text" data-ng-model="searchField" data-ng-change="searchTrees()" class="form-control input-circle" placeholder="search...">\n                                                      </div>\n                                                </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <div js-tree="defaultTreeConfig" ng-model="defaultTreeData" should-apply="ac()" tree="defaultTreeInstance" tree-events="ready:initDefaultScopeTree;select_node:selectDefaultNode;"></div>\n                                     <div js-tree="customTreeConfig" ng-model="customTreeData" should-apply="ac()" tree="customTreeInstance" tree-events="ready:initCustomScopeTree;select_node:selectCustomNode;rename_node:updateCustomTree;delete_node:updateCustomTree;move_node:updateCustomTree;create_node:updateCustomTree;"></div>\n                                </div>\n                        </div>\n                        <!-- END Portlet PORTLET-->\n           </div>\n                <div class="row tree-row">\n                    <div class="col-md-12">\n                               <!-- BEGIN Portlet PORTLET-->\n                         <div class="portlet light bordered">\n                                  <div class="portlet-title">\n                                           <div class="caption font-green-sharp">\n                                                        <i class="icon-book-open font-green-sharp"></i>\n                                                       <span class="caption-subject">{{ \'APPLICATION_REPORTS\' | translate }}<span data-ng-if="selectedNode"> - {{selectedNode}}</span></span>\n                                              </div>\n                                                <div data-ng-if="!defaultTreeActive" class="actions">\n                                                 <div class="btn-group" data-ng-show="id.length">\n                                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                                           </a>\n                                                  </div>\n                                                        <div class="btn-group">\n                                                               <span class="btn default btn-file">\n                                                           <span class="fileinput-new">\n                                                          <i class="icon-cloud-upload"></i> {{\'APPLICATION_IMPORT_FROM_JSON\' | translate}}</span>\n                                                             <input type="file" on-read-file="import($fileContent)"/>\n                                                              </span>\n                                                       </div>\n                                                        <div class="btn-group">\n                                                               <button class="btn green-jungle " ng-click="create()">\n                                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_REPORT\' | translate }}\n                                                                </button>\n                                                     </div>\n                                                </div>\n                                        </div>\n                                        <div class="portlet-body">\n                                            <div ng-slide-down="gridOptions" lazy-render duration="1">\n                                            <!-- START TABLE -->\n                                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                                              </div>\n                                                <!-- END TABLE -->\n                                    </div>\n                                        </div>\n                                </div>\n                                <!-- END Portlet PORTLET-->\n                   </div>\n                </div>\n        </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/report/list/preview.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_REPORT_PREVIEW\' | translate }}</h3>\n</div>\n<div class="modal-body" style="text-align:center;">\n  <form name="forms.report" class="form-inline mbottom20" novalidate>\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DATE_RANGE\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="daterange" name="dates" ranges="ranges" placeholder="{{\'APPLICATION_DATE_RANGE\' | translate}}" class="form-control" data-ng-model="dates" data-ng-change="getPage()" required/>\n    </div>\n  </form>\n  <div ng-slide-down="showResult" lazy-render duration="1">\n    <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-exporter class="grid extract-grid">\n      <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n    </div>\n  </div>\n</div>\n<div class="modal-footer">\n<button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getReport()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-book-open"></i>\n                                        <a href="/analytics/reports/list">{{ \'APPLICATION_REPORTS\' | translate }}</a>\n                                       <i data-ng-show="report" class="fa fa-angle-right"></i>\n                               </li>\n                         <li data-ng-show="report">\n                                    <a href="#">{{report.name}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/report.png" class="img-responsive">\n                             </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{report.name}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.analytics.reports.view.settings\')}">\n                                                    <a data-ng-href="/analytics/reports/view/{{report.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/analytic/report/view/view.settings.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_REPORT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                              </div>\n                                <ul class="nav nav-tabs">\n                                     <li>\n                                          <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                                 <li class="active">\n                                           <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_BUILD\' | translate}}</a>\n                                       </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab" data-ng-click="showResult = true">{{ \'APPLICATION_TEST_PREVIEW\' | translate}}</a>\n                                      </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n\n                          <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane" id="tab_1_1">\n                                           <form name="forms.general" data-ng-submit="forms.report.$valid && forms.general.$valid && updateReport()" novalidate>\n\n\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="report.name" required/>\n                                                         <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="report.description"></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <!-- START TABLE INPUT -->\n\n\n                                                        <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n\n                                     </div>\n                                        <!-- END GENERAL TAB -->\n                                      <div class="tab-pane active" id="tab_1_2">\n                                            <form name="forms.report" data-ng-submit="forms.report.$valid && forms.general.$valid && updateReport()" novalidate>\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.report.table.$touched || forms.report.$submitted) && forms.report.table.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="report.table" name="table" theme="bootstrap" required>\n                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                              <ui-select-choices repeat="table.table as table in tables | filter: $select.search">\n                                                                  <div ng-bind-html="table.name | highlight: $select.search"></div>\n                                                             </ui-select-choices>\n                                                  </ui-select>\n                                                  <span class="help-block">\n                                                     </span>\n                                                       <span data-ng-show="(forms.report.table.$touched || forms.report.$submitted) && forms.report.table.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END TABLE INPUT-->\n                                               <div data-ng-if="report.table" class="mbottom20 pbottom20">\n                                           <div class="portlet-title tabbable-line">\n                                                     <div class="caption caption-md">\n                                                              <i class="icon-globe theme-font hide"></i>\n                                                            <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_FIELDS\' | translate}} </span>\n                                                        </div>\n                                                </div>\n                                                                <!-- START TABLE -->\n                                                          <table class="table table-striped table-bordered table-hover">\n                                                                        <thead>\n                                                                               <tr>\n                                                                                  <th>{{ \'APPLICATION_FIELD\' | translate }} / {{ \'APPLICATION_METRIC\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_ALIAS\' | translate }}</th>\n                                                                                      <th>{{ \'APPLICATION_FUNCTION\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_GROUP_BY\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_ORDER_BY\' | translate }}</th>\n                                                                                   <th></th>\n                                                                                     <th></th>\n                                                                             </tr>\n                                                                 </thead>\n                                                                              <tbody ui-sortable="sortableOptions" data-ng-model="report.Fields">\n                                                                                   <tr data-ng-repeat="field in report.Fields">\n                                                                                          <td>\n                                                                                                  <!-- START FIELD -->\n                                                                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.report.$submitted && !field.field}">\n                                                                                                             <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.field" dynamic-name="randomName()" theme="bootstrap" on-select="setMetricId($item,$index)" required>\n                                                                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}"><span ng-bind-html="$select.selected.name"></span></ui-select-match>\n                                                                                                                     <ui-select-choices repeat="tableField.value as tableField in tableFields | filter: $select.search">\n                                                                                                                           <div ng-bind-html="tableField.name | highlight: $select.search"></div>\n                                                                                                                        </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                          <span data-ng-show="forms.report.$submitted && !field.field" class="help-block help-block-error">\n                                                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                                         </span>\n                                                                                                       </div>\n                                                                                                        <!-- END FIELD-->\n                                                                                             </td>\n                                                                                         <td>\n                                                                                                  <!-- START ALIAS -->\n                                                                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.report.$submitted && !field.alias}">\n                                                                                                             <!-- <label class="control-label">{{\'APPLICATION_ALIAS\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <input type="text" dynamic-name="randomName()" placeholder="{{\'APPLICATION_ALIAS\' | translate}}" class="form-control" data-ng-model="field.alias" required/>\n                                                                                                                <span data-ng-show="forms.report.$submitted && !field.alias" class="help-block help-block-error">\n                                                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                                         </span>\n                                                                                                       </div>\n                                                                                                        <!-- END ALIAS -->\n                                                                                            </td>\n                                                                                         <td>\n                                                                                                  <!-- START FUNCTION -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.function" name="function" theme="bootstrap">\n                                                                                                                  <ui-select-match placeholder="{{\'APPLICATION_FUNCTION\' | translate}}" allow-clear>{{$select.selected.name}}</ui-select-match>\n                                                                                                                       <ui-select-choices repeat="function.value as function in functions | filter: $select.search">\n                                                                                                                         <div ng-bind-html="function.name | highlight: $select.search"></div>\n                                                                                                                  </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END FUNCTION-->\n                                                                                          </td>\n                                                                                         <td>\n                                                                                                  <!-- START GROUP_BY -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.groupBy" name="groupBy" theme="bootstrap" required>\n                                                                                                                   <ui-select-match placeholder="{{\'APPLICATION_GROUP_BY\' | translate}}">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                                                       <ui-select-choices repeat="groupBy.value as groupBy in groupByField | filter: $select.search">\n                                                                                                                                {{$translate.instant(groupBy.name)}}\n                                                                                                                  </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END GROUP_BY-->\n                                                                                          </td>\n                                                                                         <td>\n                                                                                                  <!-- START ORDER_BY -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.orderBy" name="orderBy" theme="bootstrap">\n                                                                                                                    <ui-select-match placeholder="{{\'APPLICATION_ORDER_BY\' | translate}}" allow-clear>{{$select.selected}}</ui-select-match>\n                                                                                                                    <ui-select-choices repeat="orderBy in [\'ASC\',\'DESC\'] | filter: $select.search">\n                                                                                                                           <div ng-bind-html="orderBy | highlight: $select.search"></div>\n                                                                                                                        </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END TABLE INPUT-->\n                                                                                               </td>\n                                                                                         <td class="report-field-remove">\n                                                                                                      <button class="btn red" type="button" data-ng-click="removeField($index)"><i class="fa fa-times"></i></button>\n                                                                                                </td>\n                                                                                         <td class="report-field-handle">\n                                                                                                      <!-- <img data-ng-src="assets/images/move.png" class="img-responsive"> -->\n                                                                                            </td>\n                                                                                 </tr>\n                                                                                 <tr data-ng-hide="report.Fields.length" class="unsortable">\n                                                                                           <td colspan="7" style="text-align:center;">\n                                                                                                   <i>{{ \'MESSAGE_ADD_A_FIELD\' | translate }}</i>\n                                                                                              </td>\n                                                                                 </tr>\n                                                                         </tbody>\n                                                              </table>\n                                                              <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n                                                                  <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}\n                                                          </button>\n                                                             <!-- END TABLE -->\n                                                    </div>\n                                                                <div data-ng-if="report.Fields.length" class="mbottom20 pbottom20">\n                                                                   <div class="portlet-title tabbable-line">\n                                                                             <div class="caption caption-md">\n                                                                                      <i class="icon-globe theme-font hide"></i>\n                                                                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CONDITIONS\' | translate}} </span>\n                                                                            </div>\n                                                                        </div>\n                                                                        <div class="alert alert-info">\n                                                                                        <strong>Output</strong><br>\n                                                                                   <span ng-bind-html="output"></span>\n                                                                   </div>\n\n                                                                      <report-builder group="report.conditions.group" fields="report.Fields" forms="forms" firstCall=\'true\'></report-builder>\n                                                             </div>\n                                                                <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                          </form>\n                                       </div>\n                                        <div class="tab-pane" id="tab_1_3">\n                                           <div ng-slide-down="showResult" lazy-render duration="0.5">\n                                                   <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-move-columns class="grid">\n                                                             <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                                                      </div>\n                                                </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/offline/list/list.html",'<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-login"></i>\n                                            <a href="/channels/chat/offline/list">Offline</a>\n                                     </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-question font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/offline/view/view.detail.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAIL\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body row" data-ng-init="initView()">\n                              <div class="col-md-6">\n                                        <div class="news-blocks">\n                                             <h3>\n                                                  <a href="#" class="inactive-link">{{\'APPLICATION_MESSAGE\' | translate}}</a>\n                                                 <hr>\n                                          </h3>\n                                         <div class="news-block-tags">\n                                                 <em am-time-ago="chatVisitor.ChatEnquiry.createdAt"></em>\n                                             </div>\n                                                <p>\n                                                   {{chatVisitor.ChatEnquiry.text}}\n                                              </p>\n                                  </div>\n                                </div>\n                                <div class="col-md-6">\n                                        <div class="news-blocks">\n                                             <h3>\n                                                  <a href="#" class="inactive-link">{{\'APPLICATION_VISITOR\' | translate}}</a>\n                                                 <hr>\n                                          </h3>\n                                         <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-user"></i>\n                                                     <a href="#" class="inactive-link">{{chatVisitor.fullname}}</a>\n                                                </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-envelope"></i>\n                                                 <a href="#" class="inactive-link">{{chatVisitor.email}}</a>\n                                           </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-globe"></i>\n                                                    <a href="#" class="inactive-link">{{chatVisitor.remote_address}}</a>\n                                          </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-home"></i>\n                                                     <a href="#" class="inactive-link">{{chatVisitor.referer}} - {{chatVisitor.ChatWebsite.name}}</a>\n                                              </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-cursor"></i>\n                                                   <a href="#" class="inactive-link">{{chatVisitor.browser}}</a>\n                                         </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-screen-desktop"></i>\n                                                   <a href="#" class="inactive-link">{{chatVisitor.os}}</a>\n                                              </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/offline/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-login"></i>\n                                    <a href="/channels/chat/offline/list">Offline</a>\n                             </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/enquiry.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- START USER TITLE -->\n                             <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chatVisitor.ChatEnquiry.email}}\n                                     </div>\n                                        <div class="profile-usertitle-job">\n                                           {{chatVisitor.ChatEnquiry.username}}\n                                  </div>\n                                </div>\n                                <!-- END USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.chat.offline.view.detail\')}">\n                                                  <a data-ng-href="/channels/chat/offline/view/{{chatVisitor.id}}/detail">\n                                                      <i class="icon-tag"></i>\n                                                      {{ \'APPLICATION_DETAIL\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/online/list/list.html",'<div class="row">\n       <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-login"></i>\n                                            <a href="/channels/chat/offline/list">Offline</a>\n                                     </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-question font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/online/view/view.detail.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAIL\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body row" data-ng-init="initView()">\n                              <div class="col-md-6">\n                                        <div class="news-blocks">\n                                             <h3>\n                                                  <a href="#" class="inactive-link">{{\'APPLICATION_MESSAGES\' | translate}}</a>\n                                                        <!-- <a href="#" data-ng-click="export()" data-ng-show="chatRoom.ChatMessages.length" class="btn btn-sm blue pull-right"><i class="icon-cloud-download"></i> {{\'APPLICATION_EXPORT\' | translate}} CSV </a> -->\n                                                      <a href="api/chat/rooms/{{chatRoom.id}}/export" target="_blank" data-ng-show="chatRoom.ChatMessages.length" class="btn btn-sm blue pull-right"><i class="icon-cloud-download"></i> {{\'APPLICATION_EXPORT\' | translate}} CSV </a>\n                                                    <hr>\n                                          </h3>\n                                         <div class="news-block-tags">\n                                                 <em am-time-ago="chatRoom.ChatVisitor.ChatEnquiry.createdAt"></em>\n                                            </div>\n                                                <p>\n                                                   <div ng-scrollbars ng-scrollbars-config="config">\n                                                             <ul class="chats">\n                                                                    <li data-ng-class="{\'out\': message.User, \'in\':message.ChatVisitor}" data-ng-repeat="message in chatRoom.ChatMessages | orderBy:\'createdAt\'">\n                                                                            <img class="avatar" data-ng-src="api/users/avatar/{{message.User.userpic || \'unknown_avatar\'}}">\n                                                                            <div class="message">\n                                                                                 <span class="arrow">\n                                                                                  </span>\n                                                                                       <a href="#" class="name">\n                                                                                             {{message.User ? message.User.fullname : message.ChatVisitor.fullname}}\n                                                                                       </a>\n                                                                                  <span class="datetime">\n                                                                                               at {{message.createdAt | date: \'medium\'}}\n                                                                                   </span>\n                                                                                       <span class="body">\n                                                                                           {{message.body}}\n                                                                                      </span>\n                                                                               </div>\n                                                                        </li>\n                                                         </ul>\n                                                 </div>\n                                                </div>\n                                        </div>\n                                        <div class="col-md-6">\n                                                <div class="news-blocks">\n                                                     <h3>\n                                                          <a href="#" class="inactive-link">{{\'APPLICATION_VISITOR\' | translate}}</a>\n                                                         <hr>\n                                                  </h3>\n                                                 <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-user"></i>\n                                                             <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.fullname}}</a>\n                                                       </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-envelope"></i>\n                                                         <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.email}}</a>\n                                                  </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-globe"></i>\n                                                            <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.remote_address}}</a>\n                                                 </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-home"></i>\n                                                             <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.referer}} - {{chatRoom.ChatVisitor.ChatWebsite.name}}</a>\n                                                    </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-cursor"></i>\n                                                           <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.browser}}</a>\n                                                        </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-screen-desktop"></i>\n                                                           <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.os}}</a>\n                                                     </div>\n                                                </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n'),a.put("app/channels/chat/online/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-login"></i>\n                                    <a href="/channels/chat/online/list">Online</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/enquiry.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- START USER TITLE -->\n                             <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chatRoom.ChatVisitor.email}}\n                                        </div>\n                                        <div class="profile-usertitle-job">\n                                           {{chatRoom.ChatVisitor.fullname}}\n                                     </div>\n                                </div>\n                                <!-- END USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.chat.online.view.detail\')}">\n                                                   <a data-ng-href="/channels/chat/online/view/{{chatRoom.id}}/detail">\n                                                  <i class="icon-tag"></i>\n                                                      {{ \'APPLICATION_DETAIL\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/preview/preview.html",'<style>\n.xc_rating {\n  text-align: center;\n}\n.xc_rating_label > input{ /* HIDE RADIO */\n  display:none;\n}\n.xc_rating_label > input + img{ /* IMAGE STYLES */\n  cursor:pointer;\n  border:2px solid transparent;\n}\n.xc_rating_label > input:checked + img{ /* (CHECKED) IMAGE STYLES */\n  /*border:2px solid #f00;*/\n  background-color: #efefef;\n}\n\n.xc_label {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 5px;\n  font-weight: bold;\n}\n\n.xc_online_message,\n.xc_offline_message,\n.xc_rating_message\n{\n  text-align: center;\n}\n\n.xc_div_group {\n  margin: 10px 0 10px 0;\n}\n.xc_footer\n{\n  text-align: center;\n  padding-bottom: 5px;\n}\n\n.xc_powered\n{\n  color: grey;\n  font: 10px/16px "Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif;\n  padding-bottom: 5px;\n}\n\n.xc_chat_container\n{\n  //width:379px;\n  //position:fixed;\n  //bottom:0;\n  //right:50px;\n  z-index:9999;\n  background-color:transparent;\n}\n\n.xc_chat_container *\n{\n  font-family:Arial,Helvetica,sans-serif;\n  font-size:13px;\n  margin:0;\n  padding:0;\n}\n\n.xc_chat_container p\n{\n  margin:5px 0;\n}\n\n.xc_signup_wrapper\n{\n  max-height:375px;\n}\n\n.xc_conversation_container\n{\n  max-height:375px;\n  list-style:none;\n  overflow:auto;\n  margin:0;\n  padding:20px 10px;\n}\n\n.xc_conversation_container a\n{\n  color:#036;\n}\n\n.xc_conversation_container a.xc_btn_style\n{\n  color:#fff;\n}\n\ndiv.xc_chat_head\n{\n  color:#fff;\n  background:{{chatWebsite.color}};\n  //border-radius: 20px 20px 0px 0px !important;\n  height:52px;\n  line-height:55px;\n  cursor:pointer;\n}\n\ndiv.xc_chat_head.rounded\n{\n  border-radius: 20px 20px 0px 0px !important;\n}\n\ndiv.xc_chat_head.squared\n{\n  //border-radius: 20px 20px 0px 0px !important;\n}\n\n.xc_chat_head-title\n{\n  margin:5px 0 0 15px;\n  color: #fff;\n}\n\n.xc_header_icon\n{\n  display:block;\n  background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n  width:21px;\n  height:16px;\n  float:right;\n  margin:20px 20px 0 0;\n}\n\n.xc_header_icon span.xc_notification_badge span\n{\n  display:block;\n  height:16px;\n  width:15px;\n  text-align:center;\n  font-size:9px;\n  color:#555;\n  position:relative;\n  top:-20px;\n  left:4px;\n  margin:0;\n  padding:0;\n}\n\n.xc_sub-head-spacer\n{\n  padding:1px;\n}\n\n.xc_conversation\n{\n  display:none;\n  margin:0 12px 0 11px;\n}\n\n.xc_chat_toggle_container\n{\n  /*background:mediumslateblue center 52px;*/\n  background: white;\n  border-style: solid;\n  border-width: 1px;\n  border-color: {{chatWebsite.color}};\n  //display:none;\n}\n\n.xc_signup_wrapper,.xc_notifications_wrapper,.xc_enquiry_wrapper,.xc_rating_wrapper\n{\n  //display:none;\n  display:block;\n  overflow:auto;\n  line-height:1;\n  padding:25px;\n}\n\n.xc_exit_chat_container\n{\n  text-align:right;\n  width:95%;\n  margin:0 auto;\n  padding:5px 1px 0 0;\n}\n\n.xc_exit_chat_container span,.xc_exit_chat_container a\n{\n  font-size:80%;\n  color:#666;\n  text-decoration:none;\n}\n\n.xc_exit_chat_container a:hover\n{\n  color:#333;\n}\n\na.xc_btn_exit_chat_confirm:hover\n{\n  color:red;\n}\n\na.xc_btn_exit_chat_cancel:hover\n{\n  color:#0c0;\n}\n\nform.xc_form_reply\n{\n  position:relative;\n}\n\n.xc_form_reply\n{\n  /*background-color:#e3e3e3;*/\n  text-align:center;\n  /*border-top:1px solid #d3d3d3;*/\n}\n\n.xc_input_message\n{\n  height:100px;\n  margin:10px auto 5px;\n}\n\n.xc_input_enquiry_message,\n.xc_input_rating_message\n{\n  height:100px;\n}\n\n.xc_form_signup,.xc_form_enquiry,.xc_form_rating\n{\n  /*text-align:center;*/\n}\n\n.xc_chat_container textarea,.xc_chat_container input[type=text]\n{\n  width:95%;\n  min-width:95%;\n  max-width:95%;\n  -webkit-box-sizing:border-box;\n  -moz-box-sizing:border-box;\n  box-sizing:border-box;\n  background-color:#fff;\n  border:1px solid #ccc;\n  -webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  -moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  -webkit-transition:border linear .2s, box-shadow linear .2s;\n  -moz-transition:border linear .2s, box-shadow linear .2s;\n  -o-transition:border linear .2s, box-shadow linear .2s;\n  transition:border linear .2s, box-shadow linear .2s;\n  display:inline-block;\n  font-size:14px;\n  line-height:20px;\n  color:#555;\n  -webkit-border-radius:4px;\n  -moz-border-radius:4px;\n  border-radius:4px;\n  vertical-align:middle;\n  margin:3px 0;\n  padding:4px 6px;\n  resize: none;\n}\n\n.xc_chat_container textarea:focus,.xc_chat_container input[type=text]:focus\n{\n  outline: {{chatWebsite.color_focus}} auto 5px;\n}\n\n.xc_chat_container input[type=text]\n{\n  height: 30px;\n}\n\n.xc_message_sending textarea, .xc_enquiry_sending textarea\n{\n  background: #fff url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/loading.gif) 98% 5px no-repeat;\n}\n\n.xc_chatrow\n{\n  display:block;\n  border-top:1px dashed #e3e3e3;\n  margin:5px 0;\n  clear: both;\n}\n\n.xc_chatrow p\n{\n  color:#444;\n  word-wrap:break-word;\n}\n\n.xc_time\n{\n  float:right;\n  font-size:80%;\n  color:#ccc;\n  padding-left:12px;\n  margin:3px;\n}\n\n.xc_submission_pending\n{\n  background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_clock.png) left center norepeat;\n}\n\n.xc_submission_confirmed\n{\n  background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_tick.png) left center norepeat;\n}\n\n.xc_fullname\n{\n  font-weight:700;\n}\n\n.xc_fullname:after\n{\n  content:":";\n}\n\n.xc_avatar\n{\n  float: left;\n  margin: 0 5px 5px 0;\n  display: inline-block;\n  width: 40px;\n  height: 40px;\n  border-radius: 5px;\n  -moz-border-radius: 5px;\n  -webkit-border-radius: 5px;\n}\n\n.xc_smilie\n{\n  background-repeat:no-repeat;\n  display:inline-block;\n  width:18px;\n  height:18px;\n  text-indent:-9999px;\n  white-space:nowrap;\n}\n\n.xc_btn_load_more\n{\n  width:100%!important;\n}\n\n.xc_notifications_wrapper\n{\n  text-shadow:0 1px 0 rgba(255,255,255,0.5);\n}\n\n.xc_notification_success\n{\n  color:#468847;\n}\n\n.xc_notification_error\n{\n  color:#b94a48;\n}\n\n.xc_errorlist\n{\n  margin:0 0 0 25px;\n  padding:0;\n}\n\ni.xc_btn_notifications_close\n{\n  float:right;\n  font-weight:700;\n  font-size:20px;\n  color:#ccc;\n  cursor:pointer;\n  margin:-15px 0 0;\n  padding:0;\n}\n\n.xc_btn_style\n{\n  width:95%;\n  text-align:center;\n  line-height:1.2;\n  font-size:90%;\n  -moz-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  -webkit-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  background:0;\n  background-color:{{chatWebsite.color_button}};\n  -moz-border-radius:4px;\n  -webkit-border-radius:4px;\n  border-radius:4px;\n  border:1px solid {{chatWebsite.color_button}};\n  display:inline-block;\n  color:#fff;\n  font-weight:700;\n  text-decoration:none;\n  text-shadow:1px 1px 0 #000c17;\n  margin:0 auto 5px;\n  padding:2px 0;\n}\n\n.xc_btn_style:hover\n{\n  background:0;\n  background-color:{{chatWebsite.color_button}};\n  color: #fff;\n  text-decoration: none;\n}\n\n.xc_btn_style:active\n{\n  position:relative;\n  top:1px;\n}\n\n.xc_composing_container\n{\n  display: none;\n  width: 95%;\n  margin: 0 auto;\n  background: transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_pencil.png) 6px center no-repeat;\n  padding-left: 19px;\n  font-style: italic;\n}\n\n@media only screen and (max-height: 620px) {\n  .xc_conversation_container\n  {\n    max-height:300px!important;\n  }\n}\n\n@media only screen and (max-height: 545px) {\n  .xc_conversation_container\n  {\n    max-height:200px!important;\n  }\n}\n\n@media only screen and (max-height: 445px) {\n  .xc_conversation_container\n  {\n    max-height:150px!important;\n  }\n}\n\n@media only screen and (max-width: 480px) {\n  .xc_chat_container\n  {\n    width:95%!important;\n    right:auto!important;\n    -webkit-border-top-left-radius:15px;\n    -webkit-border-top-right-radius:15px;\n    -moz-border-radius-topleft:15px;\n    -moz-border-radius-topright:15px;\n    border-top-left-radius:15px;\n    border-top-right-radius:15px;\n    box-shadow:0 0 5px rgba(0,0,0,.5);\n    -webkit-box-shadow:0 0 5px rgba(0,0,0,.5);\n    -moz-box-shadow:0 0 5px rgba(0,0,0,.5);\n  }\n\n  div.xc_chat_head\n  {\n    background-color:#036;\n    background-image:none;\n    line-height:25px;\n    height:auto;\n    -webkit-border-top-left-radius:15px;\n    -webkit-border-top-right-radius:15px;\n    -moz-border-radius-topleft:15px;\n    -moz-border-radius-topright:15px;\n    border-top-left-radius:15px;\n    border-top-right-radius:15px;\n    padding:10px;\n  }\n\n  .xc_chat_toggle_container\n  {\n    background-color:#fff;\n    background-image:none;\n    border-color:#036;\n    border-style:solid;\n    border-width:0 1px;\n  }\n\n  .xc_header_icon\n  {\n    background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n    margin:0;\n  }\n\n  .xc_header_icon span.xc_notification_badge span\n  {\n    top:-5px;\n    left:5px;\n  }\n\n  .xc_notification_success\n  {\n    background-color:#dff0d8;\n    border:1px solid #d6e9c6;\n  }\n\n  .xc_conversation_container\n  {\n    max-height:375px;\n    border-color:#036;\n  }\n\n  .xc_notification_error\n  {\n    background-color:#f2dede;\n    border:1px solid #eed3d7;\n  }\n\n  .xc_sub-head-spacer\n  {\n    display:none;\n    padding:0;\n  }\n\n  .xc_chat_head-title,.xc_conversation\n  {\n    margin:0;\n  }\n}\n</style>\n<div class="xc_chat_container">\n  <div class="xc_chat_head {{chatWebsite.header_shape}}">\n    <i class="xc_header_icon">\n      <span class="xc_notification_badge">\n        <span class="xc_notification_badge_number"></span>\n      </span>\n    </i>\n    <span class="xc_chat_head-title">{{statePreview.state == \'online\' ? chatWebsite.header_online : chatWebsite.header_offline}}</span>\n  </div>\n  <div class="xc_chat_toggle_container">\n    <div class="xc_sub-head-spacer"></div>\n    <!-- <div class="xc_notifications_wrapper">\n    <ul class="xc_errorlist"></ul>\n  </div> -->\n  <div class="xc_enquiry_wrapper" data-ng-show=\'statePreview.state == "offline"\'>\n    <form class="xc_form_enquiry" accept-charset="UTF-8">\n      <p class="xc_offline_message" ng-bind-html=\'chatWebsite.offline_message\'></p>\n      <br>\n      <div ng-if="chatWebsite.enquiry_enable">\n        <div class="xc_div_group">\n          <label for="enquiryFullname" class="xc_label">Name *</label>\n          <input id="enquiryFullname" maxlength="45" data-label="Name" type="text" name="data[Enquiry][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_enquiry_fullname" required/>\n        </div>\n        <br>\n        <div class="xc_div_group">\n          <label for="enquiryEmail" class="xc_label">Email Address *</label>\n          <input id="enquiryEmail" maxlength="85" type="text" data-label="Email Address" name="data[Enquiry][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_enquiry_email" required/>\n        </div>\n        <br>\n        <div class="xc_div_group">\n          <label for="enquiryMessage" class="xc_label">Message*</label>\n          <textarea id="enquiryMessage" data-label="Message" maxlength="1500" placeholder="{{chatWebsite.enquiry_message_placeholder}}" name="data[Enquiry][message]" class="xc_input_enquiry_message" required></textarea>\n        </div>\n        <br>\n        <button type="submit" class="xc_btn_enquiry xc_btn_style">{{chatWebsite.enquiry_button}}</button>\n      </div>\n    </form>\n  </div>\n  <div class="xc_signup_wrapper" data-ng-show=\'statePreview.state == "online"\'>\n    <form class="xc_form_signup" accept-charset="UTF-8">\n      <p class="xc_online_message" ng-bind-html=\'chatWebsite.online_message\'></p>\n      <br>\n      <div class="xc_div_group">\n        <label for="dataFullname" class="xc_label">Fullname *</label>\n        <input maxlength="45" id="dataFullname" data-label="Fullname" type="text" name="data[Discussion][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_fullname" required/>\n      </div>\n      <br>\n      <div class="xc_div_group">\n        <label for="dataEmail" class="xc_label">Email Address *</label>\n        <input maxlength="85" id="dataEmail" data-label="Email Address" type="text" name="data[Discussion][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_email" required/>\n      </div>\n      <br>\n      <input type="hidden" class="xc_input_visitor_time" name="data[Discussion][visitor_time]" />\n      <button type="submit" class="xc_btn_signup xc_btn_style">{{chatWebsite.start_chat_button}}</button>\n    </form>\n  </div>\n  <div class="xc_rating_wrapper" data-ng-show=\'statePreview.state == "rating"\'>\n    <form class="xc_form_rating" accept-charset="UTF-8">\n      <p class="xc_rating_message">{{chatWebsite.rating_message}}</p>\n      <br>\n      <div class="xc_rating">\n        <label class="xc_rating_label" style="padding:30px;">\n          <input type="radio" name="data[Rating][rating]" value="good" />\n          <img src="{{chatWebsite.remote}}/api/xchatty/assets?resource=images/like.png" alt="Good" height="50"/>\n        </label>\n        <label class="xc_rating_label" style="padding:30px;">\n          <input type="radio" name="data[Rating][rating]" value="bad"/>\n          <img src="{{chatWebsite.remote}}/api/xchatty/assets?resource=images/dislike.png" alt="Good" height="50"/>\n        </label>\n      </div>\n      <div class="xc_div_group">\n        <label for="ratingMessage" class="xc_label">Message</label>\n        <textarea id="ratingMessage" data-label="Message" maxlength="1500" name="data[Rating][message]" class="xc_input_rating_message"></textarea>\n      </div>\n      <button type="submit" class="xc_button_rating xc_btn_style">{{chatWebsite.rating_send}}</button>\n      <button type="button" class="xc_button_skip_rating xc_btn_style">{{chatWebsite.rating_skip}}</button>\n    </form>\n  </div>\n  <div class="xc_footer">\n    <div class="xc_powered"><a>Powered by Xenialab | Trademark xCALLY</a></div>\n  </div>\n</div>\n</div>\n'),
+a.put("app/channels/chat/queue/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid && form.general.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <!-- START TIMEOUT -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid}">\n      <label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="number" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n      <span data-ng-show="(form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid && form.general.timeout.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TIMEOUT -->\n\n    <!-- START HEADER SHAPE -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid}">\n      <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n        <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid && form.general.strategy.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END HEADER SHAPE -->\n\n\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/chat/queue/list/list.html",'<div class="row">\n <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-docs"></i>\n                                             <a href="#">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <a class="btn green-jungle " href="#"  data-ng-click="createItem()">\n                                          <i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }}\n                                 </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body">\n                                               <label for="penalty">{{\'APPLICATION_PENALTY\' | translate}}</label>\n                                          <div class="input-group input-small mbottom20">\n                                                       <input type="number" class="spinner-input form-control" maxlength="3" data-ng-model="queue.penalty" readonly>\n                                                 <div class="spinner-buttons input-group-btn btn-group-vertical">\n                                                              <button type="button" class="btn spinner-up btn-xs blue" data-ng-click="queue.penalty=queue.penalty+1">\n                                                                       <i class="fa fa-angle-up"></i>\n                                                                </button>\n                                                             <button type="button" class="btn spinner-down btn-xs blue" data-ng-disabled="!queue.penalty" data-ng-click="queue.penalty=queue.penalty-1">\n                                                                   <i class="fa fa-angle-down"></i>\n                                                              </button>\n                                                     </div>\n                                                </div>\n                                                <div class="form-group last">\n                                                 <div class="col-md-12" id="multi-select-team">\n                                                        </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/channels/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                     <i data-ng-show="queue" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="queue">\n                                     <a href="#">{{queue.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{queue.name}}\n                                        </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.chat.queues.view.settings\')}">\n                                                 <a data-ng-href="/channels/chat/queues/view/{{queue.id}}/settings">\n                                                   <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.chat.queues.view.agents\')}">\n                                                   <a data-ng-href="/channels/chat/queues/view/{{queue.id}}/agents">\n                                                     <i class="icon-people"></i>\n                                                   {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/queue/view/view.settings.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateChatQueue()" novalidate>\n                                     <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n                                          <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n                                      </div>\n                                        <!-- END DESCRIPTION -->\n\n                                    <!-- START TIMEOUT -->\n                                        <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_AGENT\' | translate}} {{\'APPLICATION_TIMEOUT\' | translate}}</label>\n                                            <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n                                        </div>\n                                        <!-- END TIMEOUT -->\n\n                                        <!-- START HEADER SHAPE -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n                                         <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                               <ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                     <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                 </ui-select-choices>\n                                          </ui-select>\n                                  </div>\n                                        <!-- END HEADER SHAPE -->\n                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                       </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns  class="ui-grid" ui-grid-tree-view ui-grid-expandable-row ui-grid-pagination auto-resize>\n                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/realtime/view/agent/agent.modal.info.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_INTERFACE_INFO\' | translate }}</h3>\n</div>\n<div class="modal-body">\n<div data-ng-if="agent.ipaddr" class="well">\n  <div>{{agent.ipaddr}}:{{agent.port}}</div>\n  <div>{{agent.fullcontact}}</div>\n  <div>{{agent.useragent}}</div>\n  <div>{{agent.lastms}}</div>\n</div>\n<div data-ng-if="!agent.ipaddr" class="alert alert-danger" role="alert">\n  {{\'MESSAGE_NO_AVAILABLE_INFO\' | translate}}\n</div>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="close()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/channels/chat/realtime/view/agent/queue.modal.add.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_JOIN_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <div class="form-group row">\n  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n  <div class="col-md-10">\n    <ui-select multiple ng-model="item.queues" theme="bootstrap" required>\n      <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$item.name}}</ui-select-match>\n      <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n        <div ng-bind-html="queue.name | highlight: $select.search"></div>\n      </ui-select-choices>\n    </ui-select>\n  </div>\n</div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/chat/realtime/view/queue/queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initQueues()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns class="ui-grid" ui-grid-tree-view auto-resize>\n                     <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initSessions()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns class="ui-grid" auto-resize>\n                       <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-energy"></i>\n                                   <a href="#">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <div>\n                 <nav class="navbar navbar-default" role="navigation">\n                         <div class="collapse navbar-collapse">\n                                        <ul class="nav navbar-nav">\n                                           <li data-ng-class="{\'active\': $state.is(\'main.channels.chat.realtime.view.agents\')}">\n                                                     <a href="/channels/chat/realtime/view/agents">\n                                                                {{\'APPLICATION_AGENTS\' | translate}}\n                                                        </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                        </nav>\n                </div>\n\n              <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/visitor/list/list.html",'<div class="row">\n      <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-question"></i>\n                                         <a href="/channels/chat/visitors/list">{{ \'APPLICATION_VISITORS\' | translate }}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-question font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/visitor/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-question"></i>\n                                 <a href="/channels/chat/visitors/list">{{ \'APPLICATION_VISITORS\' | translate }}</a>\n                                 <i  class="fa fa-angle-right"></i>\n                            </li>\n                         <li data-ng-show="chatVisitor">\n                                       <a href="#">{{chatVisitor.fullname}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/visitor.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chatVisitor.fullname}}\n                                      </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.chat.visitors.view.profile\')}">\n                                                        <a data-ng-href="/channels/chat/visitors/view/{{chatVisitor.id}}/profile">\n                                                    <i class="icon-tag"></i>\n                                                      {{ \'APPLICATION_PROFILE\' | translate}} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/visitor/view/view.profile.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_PROFILE\' | translate}}</span>\n                         </div>\n                        </div>\n                        <div class="portlet-body" data-ng-init="initView()">\n                          <div>\n                                 <h4 class="profile-desc-title">{{chatVisitor.email}}</h4>\n                                     <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-magnifier"></i>\n                                                <a href="#" class="inactive-link">{{chatVisitor.origin}}</a>\n                                  </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-globe"></i>\n                                            <a href="#" class="inactive-link">{{chatVisitor.remote_address}}</a>\n                                  </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-user"></i>\n                                             <a href="#" class="inactive-link">{{chatVisitor.user_agent | truncate: 50: \'...\'}}</a>\n                                      </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-flag"></i>\n                                             <a href="#" class="inactive-link">{{chatVisitor.visitor_language}}</a>\n                                        </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-home"></i>\n                                             <a href="#" class="inactive-link">{{chatVisitor.referer}}</a>\n                                 </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-cursor"></i>\n                                           <a href="#" class="inactive-link">{{chatVisitor.browser}}</a>\n                                 </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-screen-desktop"></i>\n                                           <a href="#" class="inactive-link">{{chatVisitor.os}}</a>\n                                      </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/website/list/list.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-globe"></i>\n                                    <a href="#">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n        </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_WEB_SITES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/chat/websites/wizard">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_WEB_SITE\' | translate }}\n                                              </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/website/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/chat/websites/view/{{chatWebsite.id}}/actions/wizard" data-toggle="dropdown">\n                                                     <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n                                                </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/website/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n      <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.settings" ng-submit="updateItem()" novalidate>\n                                      <!-- START APP -->\n                                    <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n                                          <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                       </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END APP -->\n\n                                    <!-- START HOST -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n                                           <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                         <span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END HOST -->\n\n                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                          <!-- START QUEUE -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                             </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END QUEUE -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                          <!-- START AGENT -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                         </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END AGENT -->\n                                    </div>\n\n                                      <!-- START INTERVAL_TYPE -->\n                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n                                           <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                               {{ intType.name | translate }}\n                                                        </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END INTERVAL_TYPE -->\n\n                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                <!-- START TIME -->\n                                           <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                   <div class="input-group input-large">\n                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                             </fieldset>\n                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                     </div>\n                                                </div>\n                                                <!-- END TIME -->\n\n                                           <!-- START ALWAYS -->\n                                         <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                 <div class="input-group input-large">\n                                                         <label class="control-label pointer-cursor">\n                                                                  <input\n                                                                                bs-switch\n                                                                             data-ng-model="application.alwaysTime"\n                                                                                type="checkbox"\n                                                                               switch-active="{{ isActive }}"\n                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                switch-on-color="{{ onColor }}"\n                                                                               switch-off-color="{{ offColor }}"\n                                                                             switch-animate="{{ animate }}"\n                                                                                switch-size="{{ size }}"\n                                                                              switch-label="{{ label }}"\n                                                                            switch-icon="{{ icon }}"\n                                                                              switch-radio-off="{{ radioOff }}"\n                                                                             switch-label-width="{{ labelWidth }}"\n                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                               </label>\n                                                      </div>\n                                                </div>\n                                                <!-- END ALWAYS -->\n\n                                         <!-- START WEEKDAY -->\n                                                <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                        <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate}}\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END WEEKDAY -->\n\n                                                <!-- START MONTHDAY -->\n                                               <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                       <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTHDAY -->\n\n                                               <!-- START MONTH -->\n                                          <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                  <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTH -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                          <!-- START INTERVALS -->\n                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                    {{ interval.name}}\n                                                            </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END INTERVALS -->\n\n                                      </div>\n                                        <button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n                          </form>\n                       </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/channels/chat/website/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n    <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n                                     <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n                                           <form name="forms.action" novalidate>\n                                                 <!-- START APP -->\n                                                    <div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n                                                               <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END APP -->\n\n                                                    <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                                         <span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                                          <!-- START QUEUE -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n                                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                                             </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END QUEUE -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                                          <!-- START AGENT -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                                         </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END AGENT -->\n                                                    </div>\n\n                                                      <!-- START INTERVAL_TYPE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n                                                         <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                               {{ intType.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INTERVAL_TYPE -->\n\n                                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                                <!-- START TIME -->\n                                                           <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                   <div class="input-group input-large">\n                                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                                             </fieldset>\n                                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                                     </div>\n                                                                </div>\n                                                                <!-- END TIME -->\n\n                                                           <!-- START ALWAYS -->\n                                                         <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                                 <div class="input-group input-large">\n                                                                         <label class="control-label pointer-cursor">\n                                                                                  <input\n                                                                                                bs-switch\n                                                                                             data-ng-model="application.alwaysTime"\n                                                                                                type="checkbox"\n                                                                                               switch-active="{{ isActive }}"\n                                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                                switch-on-color="{{ onColor }}"\n                                                                                               switch-off-color="{{ offColor }}"\n                                                                                             switch-animate="{{ animate }}"\n                                                                                                switch-size="{{ size }}"\n                                                                                              switch-label="{{ label }}"\n                                                                                            switch-icon="{{ icon }}"\n                                                                                              switch-radio-off="{{ radioOff }}"\n                                                                                             switch-label-width="{{ labelWidth }}"\n                                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                                               </label>\n                                                                      </div>\n                                                                </div>\n                                                                <!-- END ALWAYS -->\n\n                                                         <!-- START WEEKDAY -->\n                                                                <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                        <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate}}\n                                                                                 </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate }}\n                                                                                        </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END WEEKDAY -->\n\n                                                                <!-- START MONTHDAY -->\n                                                               <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                       <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTHDAY -->\n\n                                                               <!-- START MONTH -->\n                                                          <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                  <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTH -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                                          <!-- START INTERVALS -->\n                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                                    {{ interval.name}}\n                                                                            </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVALS -->\n\n                                                      </div>\n\n                                                      <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n                                         </form>\n                                       </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n                                              <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                  </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/website/view/embedding/view/view.html",'<div class="row" data-ng-init="initView()">\n  <div class="col-md-12">\n    <div class="portlet light">\n      <div class="portlet-title">\n        <div class="caption caption-md">\n          <i class="icon-globe theme-font hide"></i>\n          <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_EMBEDDING\' | translate}}</span>\n        </div>\n        <div class="actions">\n          <div class="btn-group">\n            <a class="btn green-jungle" href="#" data-ng-click="copyToClipboard();">\n              <i class="fa fa-clipboard"></i> {{\'APPLICATION_COPY_TO_CLIPBOARD\' | translate}}\n            </a>\n          </div>\n        </div>\n      </div>\n      <div class="portlet-body">\n        <div class="row">\n          <div class="col-md-12">\n            <h3>{{\'APPLICATION_EMBED_SNIPPET\' | translate}}</h3>\n            <p>\n              {{\'MESSAGE_EMBED_SNIPPET\' | translate}}\n            </p>\n            <div class="form-body">\n              <div class="form-group">\n                <div class="col-md-12">\n                  <code-mirror lang="html" model="snippetCode"></code-mirror>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n'),a.put("app/channels/chat/website/view/form/view/view.html",'<div class="row" data-ng-init="getChatWebsiteFields(\'online\');getChatWebsiteFields(\'offline\');">\n  <div class="col-md-12">\n    <div class="portlet light">\n      <div class="portlet-title tabbable-line">\n        <ul class="nav nav-tabs">\n          <li class="active">\n            <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_ONLINE\' | translate}}</a>\n          </li>\n          <li>\n            <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_OFFLINE\' | translate}}</a>\n          </li>\n        </ul>\n      </div>\n    <div class="portlet-body">\n      <div class="row">\n        <div class="col-md-12">\n          <div class="tab-content">\n            <div class="tab-pane active" id="tab_1_1">\n              <div class="row">\n                <div class="col-md-6">\n                  <div class="portlet">\n                    <div class="portlet-title">\n                      <div class="caption font-green-sharp">\n                        <i class="icon-book-open font-green-sharp"></i>\n                        <span class="caption-subject">{{ \'APPLICATION_FIELDS_SELECTED\' | translate }}</span>\n                      </div>\n                      <div class="actions">\n                        <div class="btn-group">\n                          <a class="btn green-jungle" href="#" data-ng-click="saveForm(\'online\');">\n                            <i class="fa fa-check"></i> {{ \'APPLICATION_SAVE\' | translate }}\n                          </a>\n                        </div>\n                      </div>\n                    </div>\n                    <div class="portlet-body">\n                      <div fb-builder="online"></div>\n                    </div>\n                  </div>\n                </div>\n                <div class="col-md-6">\n                  <div class="portlet">\n                    <div class="portlet-title">\n                      <div class="caption font-green-sharp">\n                        <i class="icon-book-open font-green-sharp"></i>\n                        <span class="caption-subject">{{ \'APPLICATION_FIELDS_AVAILABLE\' | translate }}</span>\n                      </div>\n                    </div>\n                    <div class="portlet-body">\n                      <div fb-components></div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class="tab-pane" id="tab_1_2">\n              <div class="row">\n                <div class="col-md-6">\n                  <div class="portlet">\n                    <div class="portlet-title">\n                      <div class="caption font-green-sharp">\n                        <i class="icon-book-open font-green-sharp"></i>\n                        <span class="caption-subject">{{ \'APPLICATION_FIELDS_SELECTED\' | translate }}</span>\n                      </div>\n                      <div class="actions">\n                        <div class="btn-group">\n                          <a class="btn green-jungle" href="#" data-ng-click="saveForm(\'offline\');">\n                            <i class="fa fa-check"></i> {{ \'APPLICATION_SAVE\' | translate }}\n                          </a>\n                        </div>\n                      </div>\n                    </div>\n                    <div class="portlet-body">\n                      <div fb-builder="offline"></div>\n                    </div>\n                  </div>\n                </div>\n                <div class="col-md-6">\n                  <div class="portlet">\n                    <div class="portlet-title">\n                      <div class="caption font-green-sharp">\n                        <i class="icon-book-open font-green-sharp"></i>\n                        <span class="caption-subject">{{ \'APPLICATION_FIELDS_AVAILABLE\' | translate }}</span>\n                      </div>\n                    </div>\n                    <div class="portlet-body">\n                      <div fb-components></div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n</div>\n'),a.put("app/channels/chat/website/view/proactive/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{title}}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START TYPE -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.type.$touched || form.$submitted) && form.type.$invalid}">\n      <label class="control-label">{{\'APPLICATION_TYPE\' | translate}}</label>\n      <ui-select name="type" ng-model="item.type" theme="bootstrap" ng-disabled="disabled">\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n        <ui-select-choices repeat="item.type as item in possibleType | filter: $select.search">\n          <div ng-bind-html="item.title | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n    </div>\n    <!-- END TYPE -->\n\n    <!-- START SELECTOR -->\n    <div class="form-group" data-ng-if="item.type === \'mouseOver\'" data-ng-class="{\'has-error\': (form.selector.$touched || form.$submitted) && form.selector.$invalid}">\n      <label class="control-label">{{\'APPLICATION_SELECTOR\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="selector" placeholder="{{\'APPLICATION_SELECTOR\' | translate}}" class="form-control" data-ng-model="item.selector" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END SELECTOR -->\n\n    <!-- START TIMEOUT -->\n    <div class="form-group" data-ng-if="item.type === \'timeout\'" data-ng-class="{\'has-error\': (form.timeout.$touched || form.$submitted) && form.timeout.$invalid}">\n      <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="item.timeout" min="0" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TIMEOUT -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/chat/website/view/proactive/list/list.html",'<div class="row" data-ng-init="initProactiveActions()">\n  <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_PROACTIVE_ACTIONS\' | translate}}</span>\n                               </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-toggle="dropdown" data-ng-click="createItem()">\n                                                     <i class="icon-plus"></i> {{ \'APPLICATION_NEW_PROACTIVE_ACTION\' | translate }}\n                                              </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/website/view/snippet/view/view.html",'<div class="row" data-ng-init="initView()">\n <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SNIPPET\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_APPEARANCE\' | translate}}</a>\n                                   </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_FORMS\' | translate}}</a>\n                                        </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_LABELS\' | translate}}</a>\n                                       </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_SETTINGS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_5" data-toggle="tab">{{\'APPLICATION_OFFLINE\' | translate}}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="row">\n                                             <div class="col-md-8">\n                                                        <div class="tab-content">\n\n                                                           <!-- APPEARANCE TAB -->\n                                                               <div class="tab-pane active" id="tab_1_1">\n                                                                    <form name="forms.formAppearance" data-ng-submit="forms.formAppearance.$valid && updateItem()" novalidate>\n\n                                                                          <!-- START MAIN COLOR -->\n                                                                             <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                  <input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{chatWebsite.color}}" class="form-control" data-ng-model="chatWebsite.color" required/>\n                                                                                        <span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n                                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END MAIN COLOR -->\n\n                                                                             <!-- START FOCUS COLOR -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                 <input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{chatWebsite.color_focus}}" class="form-control" data-ng-model="chatWebsite.color_focus" required/>\n                                                                                  <span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n                                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END FOCUS COLOR -->\n\n                                                                            <!-- START BUTTON COLOR -->\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                        <input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{chatWebsite.color_button}}" class="form-control" data-ng-model="chatWebsite.color_button" required/>\n                                                                                      <span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END BUTTON COLOR -->\n\n                                                                           <!-- START HEADER SHAPE -->\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n                                                                                        <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                                                                       <ui-select data-ng-model="chatWebsite.header_shape" name="headerShape" theme="bootstrap">\n                                                                                             <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n                                                                                                        <div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n                                                                                               </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <!-- END HEADER SHAPE -->\n\n                                                                           <!-- START ANIMATION TOGGLE -->\n                                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n                                                                                        <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                                                                       <ui-select data-ng-model="chatWebsite.animation" name="animationToggle" theme="bootstrap">\n                                                                                            <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                                                <ui-select-choices repeat="animationToggle in [true, false] | filter: $select.search">\n                                                                                                        <div ng-bind-html="animationToggle ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <!-- END ANIMATION TOGGLE -->\n\n\n                                                                             <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END APPEARANCE TAB -->\n\n                                                         <!-- FORMS TAB -->\n                                                            <div class="tab-pane" id="tab_1_2">\n                                                                   <form name="forms.formFunctionality" data-ng-submit="forms.formFunctionality.$valid && updateItem()" novalidate>\n\n                                                                            <!-- START DOWNLOAD TRANSCRIPT -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n                                                                                        <label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n                                                                                      <ui-select data-ng-model="chatWebsite.download_transcript" name="downloadTranscript" theme="bootstrap">\n                                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                                                <ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n                                                                                                     <div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                                          </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <!-- END DOWNLOAD TRANSCRIPT -->\n\n                                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END FORMS TAB -->\n\n                                                              <!-- STRINGS TAB -->\n                                                          <div class="tab-pane" id="tab_1_3">\n                                                                   <form name="forms.formLabel" data-ng-submit="forms.formLabel.$valid && updateItem()" novalidate>\n\n                                                                            <h4 class="block" data-ng-show="statePreview.state == \'online\'">{{\'APPLICATION_ONLINE_STATE\' | translate}}</h4>\n\n                                                                         <!-- START HEADER ONLINE -->\n                                                                          <div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                                                      <label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n                                                                                    <input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_online"/>\n                                                                           </div>\n                                                                                <!-- END HEADER ONLINE -->\n\n                                                                          <!-- START ONLINE MESSAGE-->\n                                                                          <div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n                                                                                   <input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.online_message"/>\n                                                                                </div>\n                                                                                <!-- END HEADER ONLINE -->\n\n                                                                          <!-- START USERNAME PLACEHOLDER -->\n                                                                           <div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n                                                                                     <input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.username_placeholder"/>\n                                                                              </div>\n                                                                                <!-- END USERNAME PLACEHOLDER -->\n\n                                                                           <!-- START EMAIL PLACEHOLDER -->\n                                                                              <div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n                                                                                        <input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.email_placeholder"/>\n                                                                               </div>\n                                                                                <!-- END EMAIL PLACEHOLDER -->\n\n                                                                              <!-- START START CHAT BUTTON -->\n                                                                              <div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                                                        <label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n                                                                                        <input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.start_chat_button"/>\n                                                                                </div>\n                                                                                <!-- END START CHAT BUTTON -->\n\n                                                                              <h4 class="block" data-ng-show="statePreview.state == \'rating\'">{{\'APPLICATION_RATING_STATE\' | translate}}</h4>\n\n                                                                         <!-- START RATING MESSAGE -->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'rating\'" data-ng-class="{\'has-error\': (forms.formLabel.ratingMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.ratingMessage.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_RATING_MESSAGE\' | translate}}</label>\n                                                                                   <input type="text" name="ratingMessage" placeholder="{{\'APPLICATION_RATING_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.rating_message"/>\n                                                                                </div>\n                                                                                <!-- END RATING MESSAGE -->\n\n                                                                         <!-- START RATING SEND BUTTON -->\n                                                                             <div class="form-group" data-ng-show="statePreview.state == \'rating\'" data-ng-class="{\'has-error\': (forms.formLabel.ratingSend.$touched || forms.formLabel.$submitted) && forms.formLabel.ratingSend.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_RATING_SEND_BUTTON\' | translate}}</label>\n                                                                                       <input type="text" name="ratingSend" placeholder="{{\'APPLICATION_RATING_SEND_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.rating_send"/>\n                                                                          </div>\n                                                                                <!-- END RATING SEND BUTTON -->\n\n                                                                             <!-- START RATING SKIP BUTTON -->\n                                                                             <div class="form-group" data-ng-show="statePreview.state == \'rating\'" data-ng-class="{\'has-error\': (forms.formLabel.ratingSkip.$touched || forms.formLabel.$submitted) && forms.formLabel.ratingSkip.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_RATING_SKIP_BUTTON\' | translate}}</label>\n                                                                                       <input type="text" name="ratingSkip" placeholder="{{\'APPLICATION_RATING_SKIP_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.rating_skip"/>\n                                                                          </div>\n                                                                                <!-- END RATING SKIP BUTTON -->\n\n                                                                             <h4 class="block" data-ng-show="statePreview.state == \'offline\'">{{\'APPLICATION_OFFLINE_STATE\' | translate}}</h4>\n\n                                                                               <!-- START HEADER OFFLINE -->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n                                                                                   <input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_offline"/>\n                                                                                </div>\n                                                                                <!-- END HEADER OFFLINE -->\n\n                                                                         <!-- START OFFLINE MESSAGE-->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n                                                                                  <input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.offline_message"/>\n                                                                             </div>\n                                                                                <!-- END OFFLINE MESSAGE -->\n\n                                                                                <!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n                                                                             <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                                       <label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n                                                                                      <input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_message_placeholder"/>\n                                                                          </div>\n                                                                                <!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n                                                                            <!-- START ENQUIRY BUTTON -->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n                                                                                   <input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_button"/>\n                                                                                </div>\n                                                                                <!-- END ENQUIRY BUTTON -->\n\n                                                                         <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END STRINGS TAB -->\n\n                                                            <!-- SETTINGS TAB -->\n                                                         <div class="tab-pane" id="tab_1_4">\n                                                                   <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n\n                                                                                <!-- START NAME -->\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n                                                                                        <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="chatWebsite.name" required/>\n                                                                                    <span data-ng-show="(forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSettings.name.$invalid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END NAME -->\n\n                                                                           <!-- START ADDRESS -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                 <input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.address" required/>\n                                                                                        <span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END ADDRESS -->\n\n                                                                                <!-- START REMOTE IP -->\n                                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_MOTION_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                      <input type="url" name="remote" placeholder="{{\'APPLICATION_MOTION_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.remote" required/>\n                                                                                       <span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n                                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END REMOTE IP -->\n\n                                                                              <!-- START DESCRIPTION -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.description.$touched || forms.formSetting.$submitted) && forms.formSetting.description.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="chatWebsite.description"/>\n                                                                                </div>\n                                                                                <!-- END DESCRIPTION -->\n\n                                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END SETTINGS TAB -->\n\n                                                           <!-- OFFLINE TAB -->\n                                                          <div class="tab-pane" id="tab_1_5">\n                                                                   <form name="forms.formOffline" data-ng-submit="forms.formOffline.$valid && updateItem()" novalidate>\n\n                                                                                <!-- START ENQUIRY ENABLE -->\n                                                                         <div class="form-group">\n                                                                                      <label class="control-label">{{\'APPLICATION_ENQUIRY_ENABLED\' | translate}}</label></br>\n                                                                                     <input\n                                                                                            bs-switch\n                                                                                                 class="form-control"\n                                                                                      ng-model="chatWebsite.enquiry_enable"\n                                                                                         type="checkbox"\n                                                                                       switch-active="{{ enquirySwitch.isActive }}"\n                                                                                          switch-on-text="{{ enquirySwitch.onText }}"\n                                                                                           switch-off-text="{{ enquirySwitch.offText }}"\n                                                                                         switch-on-color="{{ enquirySwitch.onColor }}"\n                                                                                         switch-off-color="{{ enquirySwitch.offColor }}"\n                                                                                       switch-animate="{{ enquirySwitch.animate }}"\n                                                                                          switch-size="{{ enquirySwitch.size }}"\n                                                                                        switch-label="{{ enquirySwitch.label }}"\n                                                                                      switch-icon="{{ enquirySwitch.icon }}"\n                                                                                        switch-radio-off="{{ enquirySwitch.radioOff }}"\n                                                                                       switch-label-width="{{ enquirySwitch.labelWidth }}"\n                                                                                           switch-handle-width="{{ enquirySwitch.handleWidth }}">\n                                                                            </div>\n                                                                                <!-- END ENQUIRY ENABLE -->\n\n                                                                         <!-- START ENQUIRY FORWARDING -->\n                                                                             <div class="form-group" data-ng-if="chatWebsite.enquiry_enable">\n                                                                                      <label class="control-label">{{\'APPLICATION_ENQUIRY_FORWARDING\' | translate}}</label></br>\n                                                                                  <input\n                                                                                            bs-switch\n                                                                                                 class="form-control"\n                                                                                      ng-model="chatWebsite.enquiry_forwarding"\n                                                                                     type="checkbox"\n                                                                                       switch-active="{{ enquirySwitch.isActive }}"\n                                                                                          switch-on-text="{{ enquirySwitch.onText }}"\n                                                                                           switch-off-text="{{ enquirySwitch.offText }}"\n                                                                                         switch-on-color="{{ enquirySwitch.onColor }}"\n                                                                                         switch-off-color="{{ enquirySwitch.offColor }}"\n                                                                                       switch-animate="{{ enquirySwitch.animate }}"\n                                                                                          switch-size="{{ enquirySwitch.size }}"\n                                                                                        switch-label="{{ enquirySwitch.label }}"\n                                                                                      switch-icon="{{ enquirySwitch.icon }}"\n                                                                                        switch-radio-off="{{ enquirySwitch.radioOff }}"\n                                                                                       switch-label-width="{{ enquirySwitch.labelWidth }}"\n                                                                                           switch-handle-width="{{ enquirySwitch.handleWidth }}">\n                                                                                    <span class="help-block col-md-12">{{\'MESSAGE_REMEMBER_SMTP_SERVICE_ACCOUNT\' | translate}}.</span>\n                                                                          </div>\n                                                                                <!-- END ENQUIRY FORWARDING -->\n\n                                                                             <!-- START REMOTE IP -->\n                                                                              <div class="form-group" data-ng-if="chatWebsite.enquiry_enable && chatWebsite.enquiry_forwarding" data-ng-class="{\'has-error\': (forms.formOffline.forwardingAddress.$touched || forms.formOffline.$submitted) && forms.formSetting.forwardingAddress.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_ENQUIRY_FORWARDING_ADDRESS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                   <input type="text" name="forwardingAddress" placeholder="{{\'APPLICATION_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_forwarding_address" required/>\n                                                                                      <span data-ng-show="(forms.formOffline.forwardingAddress.$touched || forms.formOffline.$submitted) && forms.formOffline.forwardingAddress.$invalid && forms.formOffline.forwardingAddress.$error.required" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END REMOTE IP -->\n\n                                                                              <!-- START HEADER SHAPE -->\n                                                                           <div class="form-group" data-ng-if="chatWebsite.enquiry_enable && chatWebsite.enquiry_forwarding" data-ng-class="{\'has-error\': (forms.formOffline.OfflineTemplateId.$touched || forms.formOffline.$submitted) && forms.formOffline.OfflineTemplateId.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_TEMPLATE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                     <ui-select data-ng-model="chatWebsite.OfflineTemplateId" name="OfflineTemplateId" theme="bootstrap" required>\n                                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="mailTemplate.id as mailTemplate in mailTemplates | filter: $select.search">\n                                                                                                        <div ng-bind-html="mailTemplate.name | highlight: $select.search"></div>\n                                                                                              </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="(forms.formOffline.OfflineTemplateId.$touched || forms.formOffline.$submitted) && forms.formOffline.OfflineTemplateId.$invalid && forms.formOffline.OfflineTemplateId.$error.required" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END HEADER SHAPE -->\n\n                                                                           <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END OFFLINE TAB -->\n                                                      </div>\n                                                </div>\n                                                <div class="col-md-4">\n                                                        <!-- START STATE -->\n                                                  <div class="form-group">\n                                                              <!-- <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label> -->\n                                                               <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                                               <ui-select data-ng-model="statePreview.state" name="statePreview" theme="bootstrap">\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                   <ui-select-choices repeat="statePreview in [\'online\',\'rating\',\'offline\'] | filter: $select.search">\n                                                                             <div ng-bind-html="statePreview | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END STATE -->\n                                                    <preview></preview>\n                                           </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
 a.put("app/channels/chat/website/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-globe"></i>\n                                    <a href="/channels/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{chatWebsite.name}}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/website.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chatWebsite.name}}\n                                  </div>\n                                        <div class="profile-usertitle-job">\n                                           {{chatWebsite.address}}\n                                       </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.includes(\'main.channels.chat.websites.view.embedding\')}">\n                                                        <a ng-href="/channels/chat/websites/view/{{chatWebsite.id}}/embedding/view">\n                                                  <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_EMBEDDING\' | translate }} </a>\n                                              </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.channels.chat.websites.view.snippet\')}">\n                                                  <a ng-href="/channels/chat/websites/view/{{chatWebsite.id}}/snippet/view">\n                                                    <i class="icon-note"></i>\n                                                     {{ \'APPLICATION_SNIPPET\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.channels.chat.websites.view.form\')}">\n                                                     <a ng-href="/channels/chat/websites/view/{{chatWebsite.id}}/forms/view">\n                                                      <i class="icon-list"></i>\n                                                     {{ \'APPLICATION_FORMS\' | translate }} </a>\n                                          </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.channels.chat.websites.view.proactive\')}">\n                                                        <a ng-href="/channels/chat/websites/view/{{chatWebsite.id}}/proactive/list">\n                                                  <i class="icon-target"></i>\n                                                   {{ \'APPLICATION_PROACTIVE_ACTIONS\' | translate }} </a>\n                                              </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.channels.chat.websites.view.actions\')}">\n                                                  <a ng-href="/channels/chat/websites/view/{{chatWebsite.id}}/actions/list">\n                                                    <i class="icon-directions"></i>\n                                                       {{ \'APPLICATION_ACTIONS\' | translate }} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/website/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n       <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-globe"></i>\n                                            <a href="/channels/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n                                        </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_WEB_SITE\' | translate }} WIZARD</a> </span>\n                           </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_WEB_SITE_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                               <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$touched && !forms.formSettings.name.$valid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START ADDRESS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                         <input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.address" required/>\n                                                               <span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ADDRESS -->\n\n                                                        <!-- START REMOTE IP -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_MOTION_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remote" placeholder="{{\'APPLICATION_MOTION_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remote" required/>\n                                                              <span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END REMOTE IP -->\n\n                                                      <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.form.description"/>\n                                                  </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_WEB_SITE_APPEARANCE\' | translate}}" canexit="exitValidation(forms.formAppearance.$valid)">\n                                           <form name="forms.formAppearance" novalidate>\n\n                                                       <!-- START MAIN COLOR -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                          <input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{item.color}}" class="form-control" data-ng-model="item.color" required/>\n                                                              <span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MAIN COLOR -->\n\n                                                     <!-- START FOCUS COLOR -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                         <input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{item.color_focus}}" class="form-control" data-ng-model="item.color_focus" required/>\n                                                                <span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FOCUS COLOR -->\n\n                                                    <!-- START BUTTON COLOR -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{item.color_button}}" class="form-control" data-ng-model="item.color_button" required/>\n                                                            <span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END BUTTON COLOR -->\n\n                                                   <!-- START HEADER SHAPE -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_HEADER_SHAPE\' | translate}}</label>\n                                                             <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="item.animation" required/> -->\n                                                              <ui-select data-ng-model="item.header_shape" name="headerShape" theme="bootstrap">\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n                                                                      <ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n                                                                                <div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END HEADER SHAPE -->\n\n                                                   <!-- START ANIMATION TOGGLE -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n                                                                <ui-select data-ng-model="item.animation" name="animationToggle" theme="bootstrap">\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected  ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                       <ui-select-choices repeat="filter in [true,false] | filter: $select.search">\n                                                                          <div ng-bind-html="filter ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END ANIMATION TOGGLE -->\n\n\n                                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_LABELS\' | translate}}" canexit="exitValidation(forms.formLabel.$valid)">\n                                             <form name="forms.formLabel" novalidate>\n\n                                                    <!-- START HEADER ONLINE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n                                                            <input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="item.header_online"/>\n                                                  </div>\n                                                        <!-- END HEADER ONLINE -->\n\n                                                  <!-- START ONLINE MESSAGE-->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n                                                           <input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.online_message"/>\n                                                       </div>\n                                                        <!-- END HEADER ONLINE -->\n\n                                                  <!-- START USERNAME PLACEHOLDER -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n                                                             <input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.username_placeholder"/>\n                                                     </div>\n                                                        <!-- END USERNAME PLACEHOLDER -->\n\n                                                   <!-- START EMAIL PLACEHOLDER -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n                                                                <input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.email_placeholder"/>\n                                                      </div>\n                                                        <!-- END EMAIL PLACEHOLDER -->\n\n                                                      <!-- START START CHAT BUTTON -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n                                                                <input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="item.start_chat_button"/>\n                                                       </div>\n                                                        <!-- END START CHAT BUTTON -->\n\n                                                      <!-- START RATING MESSAGE -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.ratingMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.ratingMessage.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_RATING_MESSAGE\' | translate}}</label>\n                                                           <input type="text" name="ratingMessage" placeholder="{{\'APPLICATION_RATING_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.rating_message"/>\n                                                       </div>\n                                                        <!-- END RATING MESSAGE -->\n\n                                                 <!-- START RATING START TEXT -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.ratingSend.$touched || forms.formLabel.$submitted) && forms.formLabel.ratingSend.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_RATING_SEND_BUTTON\' | translate}}</label>\n                                                               <input type="text" name="ratingSend" placeholder="{{\'APPLICATION_RATING_SEND_BUTTON\' | translate}}" class="form-control" data-ng-model="item.rating_send"/>\n                                                 </div>\n                                                        <!-- END RATING START TEXT -->\n\n                                                      <!-- START RATING MESSAGE -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.ratingSkip.$touched || forms.formLabel.$submitted) && forms.formLabel.ratingSkip.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_RATING_SKIP_BUTTON\' | translate}}</label>\n                                                               <input type="text" name="ratingSkip" placeholder="{{\'APPLICATION_RATING_SKIP_BUTTON\' | translate}}" class="form-control" data-ng-model="item.rating_skip"/>\n                                                 </div>\n                                                        <!-- END RATING MESSAGE -->\n\n                                                 <!-- START HEADER OFFLINE -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n                                                           <input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="item.header_offline"/>\n                                                       </div>\n                                                        <!-- END HEADER OFFLINE -->\n\n                                                 <!-- START OFFLINE MESSAGE-->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n                                                          <input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.offline_message"/>\n                                                    </div>\n                                                        <!-- END OFFLINE MESSAGE -->\n\n                                                        <!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n                                                              <input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.enquiry_message_placeholder"/>\n                                                 </div>\n                                                        <!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n                                                    <!-- START ENQUIRY BUTTON -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n                                                           <input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="item.enquiry_button"/>\n                                                       </div>\n                                                        <!-- END ENQUIRY BUTTON -->\n\n                                                 <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_FORMS\' | translate}}" canexit="exitValidation(forms.formAppearance.$valid)">\n                                         <form name="forms.formFunctionality" novalidate>\n\n                                                    <!-- START DOWNLOAD TRANSCRIPT -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n                                                              <ui-select data-ng-model="item.download_transcript" name="downloadTranscript" theme="bootstrap">\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                        <ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n                                                                             <div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END DOWNLOAD TRANSCRIPT -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/fax/account/list/list.html",'<div class="row">\n       <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-paper-plane"></i>\n                                              <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-notebook"></i>\n                                         <a href="/channels/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                  </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="fax_accounts.checked.length">\n                                            <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/fax/accounts/wizard">\n                                                     <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }}\n                                               </a>\n                                  </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxAccounts([\'name\', \'description\', \'phone\'])" csv-header="[\'Name\', \'Description\', \'Phone\']" field-separator=";" filename="fax_accounts.csv">\n                                        <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedFaxAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                     <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="5">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.faxAccountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="faxAccountByPage in faxAccountsByPage | filter: $select.search">\n                                                                                                   <div ng-bind-html="faxAccountByPage.name | highlight: $select.search"></div>\n                                                                                          </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(faxAccount, checked)" checklist-model checklist-value="id"></th>\n                                               <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                          <th st-sort="phone">{{ \'APPLICATION_PHONE\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="faxAccount in displayedFaxAccounts" class="animate-repeat">\n                                                           <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="fax_accounts.checked" checklist-value="faxAccount.id"></td>\n                                          <td>{{faxAccount.name}}</td>\n                                                            <td>{{faxAccount.description}}</td>\n                                                           <td>{{faxAccount.phone}}</td>\n                                       <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/channels/fax/accounts/view/{{faxAccount.id}}/settings">\n                                                                              {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(faxAccount.name,faxAccount.id)">\n                                                                           {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedFaxAccounts.length">\n                                                               <td colspan="5" style="text-align:center;">\n                                                                   <i>No fax account available</i>\n                                                               </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td></td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="phone" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PHONE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                  </td>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="5" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.faxAccountsByPage.value" st-displayed-pages="7"></div>\n                                         </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/fax/account/view/view.applications.html",'<div class="row" data-ng-init="initApplication()">\n <div class="col-md-12">\n\n             <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(forms.info.$valid)">\n                                                        <form name="forms.info" novalidate>\n                                                           <!-- START APP -->\n                                                            <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid}">\n                                                                      <label class="control-label">{{\'APPLICATION_APPLICATION\' | translate}}</label>\n                                                                      <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                         <ui-select-match placeholder="{{\'APPLICATION_APPLICATION\' | translate}}">{{$select.selected | uppercase}}</ui-select-match>\n                                         <ui-select-choices repeat="filter in [\'queue\', \'agent\'] | filter: $select.search">\n                                          <div ng-bind-html="filter | uppercase | highlight: $select.search"></div>\n                                           </ui-select-choices>\n                                        </ui-select>\n                                                                        <span data-ng-show="(forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid && forms.info.app.$error.required" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END APP -->\n\n                                                            <!-- START APPADATA -->\n                                                               <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n                                                                      <label class="control-label">{{\'APPLICATION_ARGUMENTS\' | translate}}</label>\n                                                                        <ui-select data-ng-model="application.appdata" name="appdata" theme="bootstrap" required>\n                                         <ui-select-match placeholder="{{\'APPLICATION_ARGUMENTS\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                          <ui-select-choices repeat="item in items | filter: $select.search">\n                                             <div data-ng-bind-html="item.name | highlight: $select.search"></div>\n                                       </ui-select-choices>\n                                        </ui-select>\n                                                                        <span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END APPADATA -->\n\n                                                               <!-- START TIMEOUT -->\n                                                                <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid}">\n                                                                      <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}</label>\n                                                                  <input type="text" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" required>\n                                                                    <span data-ng-show="(forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid && forms.info.timeout.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END TIMEOUT -->\n\n                                                                <!-- START INTERVAL -->\n                                                               <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.info.interval.$touched || forms.info.$submitted) && forms.info.interval.$invalid}">\n                                                                        <label class="control-label">{{\'APPLICATION_INTERVAL\' | translate}}</label>\n                                                                 <input type="text" name="interval" placeholder="*|*|*|*" class="form-control" data-ng-model="application.interval">\n                                                                   <span data-ng-show="(forms.info.info.interval.$touched || forms.info.$submitted) && forms.info.interval.$invalid && forms.info.interval.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div> -->\n                                                            <!-- END INTERVAL -->\n\n                                                               <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
 a.put("app/channels/fax/account/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-paper-plane"></i>\n                                      <a href="/">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-notebook"></i>\n                                 <a href="/channels/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                  <i class="fa fa-angle-right" data-ng-show="account"></i>\n                              </li>\n                         <li data-ng-show="account">\n                                   <a href="#">{{ account.name || account.description }}</a>\n                             </li>\n                 </ul>\n         </div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n               <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/account.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{ account.name || account.description }}\n                                     </div>\n                                        <div class="profile-usertitle-job">\n                                           {{ account.phone }}\n                                   </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.fax.accounts.view.settings\')}">\n                                                        <a href="/channels/fax/accounts/view/{{account.id}}/settings">\n                                                        <i class="icon-settings"></i>\n                                                 {{\'APPLICATION_SETTINGS\' | translate}} </a>\n                                         </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.fax.accounts.view.routes\') || $state.is(\'main.channels.fax.accounts.view.applications\')}">\n                                                   <a href="/channels/fax/accounts/view/{{account.id}}/routes">\n                                                  <i class="icon-directions"></i>\n                                                       {{\'APPLICATION_ROUTES\' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/fax/account/view/view.routes.html",'<div class="row" data-ng-init="getFaxApplications()">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ROUTES\' | translate}}</span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/fax/accounts/view/{{account.id}}/applications" data-toggle="dropdown">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover">\n                                          <thead>\n                                               <tr>\n                                                                <!-- <th width="5%">{{ \'APPLICATION_ID\' | translate }}</th> -->\n                                                 <th>{{\'APPLICATION_APPLICATION\' | translate}}</th>\n                                                  <th>{{\'APPLICATION_ARGUMENTS\' | translate}}</th>\n                                                                <th>{{\'APPLICATION_TIMEOUT\' | translate}}</th>\n                                                  <!-- <th>{{\'APPLICATION_INTERVAL\' | translate}}</th> -->\n                                                                <th width="5%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                           </tr>\n                                         </thead>\n                                            <tbody ui-sortable="sortableOptions" data-ng-model="faxApplications">\n                                     <tr data-ng-repeat="application in faxApplications | orderBy:\'priority\'">\n                                                               <td><span data-ng-class="{\'label-info\': application.app == \'agent\', \'label-success\': application.app == \'queue\'}" class="label label-sm"> {{application.app}} </span></td>\n                                                            <td>{{getAppdata(application.app, application.appdata)}}</td>\n                                                         <td>{{application.timeout}}</td>\n                                                              <!-- <td>{{application.interval}}</td> -->\n                                          <td>\n                                            <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app,application.id)">\n                                                                          {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="faxApplications.length">\n                                                            <td colspan="5" style="text-align:center;">\n                                                                   <i>No applications available</i>\n                                                              </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/fax/account/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItemFaxAccount()" novalidate>\n                                                        <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <!-- START TRUNKS -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.trunk.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="account.TrunkId" name="trunk" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_TRUNK\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="trunk.id as trunk in trunks | filter: $select.search">\n                                                                             <div data-ng-bind="trunk.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.trunk.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START TRUNKS -->\n\n                                                       <!-- START PHONE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.phone.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_PHONE\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="account.phone" required/>\n                                                             <span data-ng-show="forms.formSetting.phone.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PHONE -->\n\n                                                  <!-- START ECM -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_ECM\' | translate}}<span class="required" aria-required="true">*</span></label><br>\n                                                              <!-- <button type="button" name="ecm" class="btn btn-default form-control" data-ng-model="account.ecm" bs-checkbox>{{account.ecm ? \'ENABLED\' : \'DISABLED\'}}</button> -->\n                                                          <input\n                                                                        bs-switch\n                                                                     ng-model="account.ecm"\n                                                                        type="checkbox"\n                                                                       switch-active="{{ isActive }}"\n                                                                        switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                                    switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                                  switch-on-color="{{ onColor }}"\n                                                                       switch-off-color="{{ offColor }}"\n                                                                     switch-animate="{{ animate }}"\n                                                                        switch-size="{{ size }}"\n                                                                      switch-label="{{ label }}"\n                                                                    switch-icon="{{ icon }}"\n                                                                      switch-radio-off="{{ radioOff }}"\n                                                                     switch-label-width="{{ labelWidth }}"\n                                                                 switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END ECM -->\n\n                                                    <!-- START FAXHEADER -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.faxheader.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_FAXHEADER\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                           <input type="text" name="faxheader" placeholder="{{\'APPLICATION_FAXHEADER\' | translate}}" class="form-control" data-ng-model="account.faxheader" required/>\n                                                         <span data-ng-show="forms.formSetting.faxheader.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FAXHEADER -->\n\n                                                      <!-- START LOCALID -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.localid.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_LOCALID\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="localid" placeholder="{{\'APPLICATION_LOCALID\' | translate}}" class="form-control" data-ng-model="account.localid" required/>\n                                                               <span data-ng-show="forms.formSetting.localid.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END LOCALID -->\n\n                                                        <!-- START MAXRATE -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.maxrate.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MAXRATE\' | translate}}</label>\n                                                          <ui-select data-ng-model="account.maxrate" name="maxrate" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                 <ui-select-choices repeat="maxrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n                                                                             <div data-ng-bind="maxrate | highlight: $select.search"></div>\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.maxrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START MAXRATE -->\n\n                                                      <!-- START MINRATE -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.minrate.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MINRATE\' | translate}}</label>\n                                                          <ui-select data-ng-model="account.minrate" name="minrate" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                 <ui-select-choices repeat="minrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n                                                                             <div data-ng-bind="minrate | highlight: $select.search"></div>\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.minrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START MINRATE -->\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/fax/account/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n  <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-paper-plane"></i>\n                                              <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-notebook"></i>\n                                         <a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n  <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                                <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <!-- START TRUNKS -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.trunk.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="item.TrunkId" name="trunk" theme="bootstrap" required>\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_TRUNK\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="trunk.id as trunk in trunks | filter: $select.search">\n                                                                             <div data-ng-bind="trunk.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.trunk.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START TRUNKS -->\n\n                                                       <!-- START PHONE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.phone.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_PHONE\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="item.phone" required/>\n                                                                <span data-ng-show="forms.formSetting.phone.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PHONE -->\n\n                                                  <!-- START ECM -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_ECM\' | translate}}<span class="required" aria-required="true">*</span></label><br>\n                                                              <!-- <button type="button" name="ecm" class="btn btn-default form-control" data-ng-model="item.ecm" bs-checkbox>{{item.ecm ? \'ENABLED\' : \'DISABLED\'}}</button> -->\n                                                                <input\n                                                                        bs-switch\n                                                                     ng-model="item.ecm"\n                                                                   type="checkbox"\n                                                                       switch-active="{{ isActive }}"\n                                                                        switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                                    switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                                  switch-on-color="{{ onColor }}"\n                                                                       switch-off-color="{{ offColor }}"\n                                                                     switch-animate="{{ animate }}"\n                                                                        switch-size="{{ size }}"\n                                                                      switch-label="{{ label }}"\n                                                                    switch-icon="{{ icon }}"\n                                                                      switch-radio-off="{{ radioOff }}"\n                                                                     switch-label-width="{{ labelWidth }}"\n                                                                 switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END ECM -->\n\n                                                    <!-- START FAXHEADER -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.faxheader.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_FAXHEADER\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                           <input type="text" name="faxheader" placeholder="{{\'APPLICATION_FAXHEADER\' | translate}}" class="form-control" data-ng-model="item.faxheader" required/>\n                                                            <span data-ng-show="forms.formSetting.faxheader.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FAXHEADER -->\n\n                                                      <!-- START LOCALID -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.localid.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_LOCALID\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="localid" placeholder="{{\'APPLICATION_LOCALID\' | translate}}" class="form-control" data-ng-model="item.localid" required/>\n                                                          <span data-ng-show="forms.formSetting.localid.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END LOCALID -->\n\n                                                        <!-- START MAXRATE -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.maxrate.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MAXRATE\' | translate}}</label>\n                                                          <ui-select data-ng-model="item.maxrate" name="maxrate" theme="bootstrap" required>\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                 <ui-select-choices repeat="maxrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n                                                                             <div data-ng-bind="maxrate | highlight: $select.search"></div>\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.maxrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START MAXRATE -->\n\n                                                      <!-- START MINRATE -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.minrate.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MINRATE\' | translate}}</label>\n                                                          <ui-select data-ng-model="item.minrate" name="minrate" theme="bootstrap" required>\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                 <ui-select-choices repeat="minrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n                                                                             <div data-ng-bind="minrate | highlight: $select.search"></div>\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.minrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START MINRATE -->\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n\n                          </wizard>\n\n                   </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/fax/inbox/inbox.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-paper-plane"></i>\n                                              <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-note"></i>\n                                             <a href="/channels/fax/inbox/incoming">{{ \'APPLICATION_INBOX\' | translate }}</a>\n                                    </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE CONTENT-->\n<div class="row inbox">\n     <div class="col-md-12" ui-view>\n       </div>\n</div>\n'),a.put("app/channels/fax/inbox/incoming/incoming.html",'<!-- END PAGE HEADER-->\n<div data-ng-init="getRooms()">\n    <!-- <pre>\n            {{faxRooms | json}}\n   </pre> -->\n    <div class="inbox-header">\n            <h1 class="pull-left">Inbox</h1>\n      </div>\n        <div class="inbox-content">\n           <table class="table table-advance" st-table="displayedFaxRooms" st-safe-src="faxRooms">\n                       <thead>\n                               <tr>\n                                  <th colspan="8" style="background: #eef4f7; border: none; border-bottom: solid 5px #fff;">\n                                            <div class="row">\n                                                     <div class="col-md-6">\n                                                                <input type="checkbox" class="mail-checkbox mail-group-checkbox checker" data-ng-model="checked" data-ng-change="switchCheckbox(displayedFaxRooms, checked)">\n                                                         <div class="btn-group">\n                                                                       <a data-ng-href="/channels/fax/inbox/compose" class="btn btn-sm blue">{{\'APPLICATION_NEW_MESSAGE\' | translate}} <i class="fa fa-plus"></i></a>\n                                                                      <!-- <a class="btn btn-sm blue dropdown-toggle" href="#" data-toggle="dropdown">\n                                                                              {{\'APPLICATION_MORE\' | translate}} <i class="fa fa-angle-down"></i>\n                                                                 </a> -->\n                                                                      <ul class="dropdown-menu">\n                                                                            <li>\n                                                                                  <a href="#" data-ng-click="markAsRead(true)">\n                                                                                 <i class="icon-paper-plane-open"></i> {{\'APPLICATION_MARK_AS_READ\' | translate}} </a>\n                                                                               </li>\n                                                                         <li>\n                                                                                  <a href="#" data-ng-click="markAsRead(false)">\n                                                                                        <i class="icon-paper-plane"></i> {{\'APPLICATION_MARK_AS_UNREAD\' | translate}} </a>\n                                                                          </li>\n                                                                         <li class="divider">\n                                                                          </li>\n                                                                         <li>\n                                                                                  <a href="#" data-ng-click="deleteMessage()">\n                                                                                  <i class="icon-trash"></i> {{\'APPLICATION_DELETE\' | translate}} </a>\n                                                                                </li>\n                                                                 </ul>\n                                                         </div>\n                                                        </div>\n                                                        <div class="col-md-6">\n                                                                <div class="input-group input-medium pull-right">\n                                                                     <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                 <span class="input-group-addon btn green" style="cursor: default;">\n                                                                           <i class="icon-magnifier" style="color: white;"></i>\n                                                                  </span>\n                                                               </div>\n                                                                <ui-select data-ng-model="conf.faxRoomsByPage" theme="bootstrap" style="width: 100px;" class="pull-right margin-right-10">\n                                                                    <ui-select-match placeholder="{{ \'APPLICATION_SEARCH\' | translate }}">{{$select.selected}}</ui-select-match>\n                                                                        <ui-select-choices repeat="p in [10, 20, 35, 50] | filter: $select.search">\n                                                                           <span ng-bind-html="p | highlight: $select.search"></span>\n                                                                    </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                        </th>\n                         </tr>\n                 </thead>\n                      <tbody>\n                               <tr data-ng-repeat="faxRoom in displayedFaxRooms | orderBy:\'-updatedAt\'" data-ng-class="{unread: !faxRoom.read}" data-ng-click="go(\'/fax/inbox/room/\' + faxRoom.id, faxRoom.id, \'OPEN\')" class="animate-repeat">\n                                        <td class="inbox-small-cells" style="border: none;">\n                                          <input type="checkbox" class="checker" checklist-model="checkedMailMessages.id" checklist-value="faxRoom.id">\n                                 </td>\n                                 <!-- <td class="inbox-small-cells" style="border: none;">\n                                             <i class="fa fa-star" data-ng-class="{\'inbox-started\': faxRoom.favorite}" data-ng-click="markAsFavorite(faxRoom.id, faxRoom.favorite)"></i>\n                                 </td> -->\n                                     <td class="view-message hidden-xs" style="cursor:pointer; border:none;">\n                                              #{{faxRoom.id}}\n                                       </td>\n                                 <!-- <td class="inbox-small-cells" style="border: none;">\n                                             <i class="fa fa-star" data-ng-class="{\'inbox-started\': faxRoom.favorite}" data-ng-click="markAsFavorite(faxRoom.id, faxRoom.favorite)"></i>\n                                 </td> -->\n                                     <!-- <td class="view-message hidden-xs" style="cursor:pointer; border:none;">\n                                         {{faxRoom.subject}}\n                                   </td> -->\n                                     <td class="view-message" style="cursor:pointer; border:none;">\n                                                {{faxRoom.from}}\n                                      </td>\n                                 <td class="view-message" style="cursor:pointer; border:none;">\n                                                {{faxRoom.MailAccount.description ? faxRoom.MailAccount.description : faxRoom.MailAccount.name}}\n                                      </td>\n                                 <td class="view-message" style="cursor:pointer; border:none;" data-ng-switch="faxRoom.status">\n                                                <span class="badge badge-default" data-ng-class="{\n                                            \'badge-danger\': faxRoom.status == \'NEW\',\n                                          \'badge-warning\': faxRoom.status == \'OPEN\',\n                                                \'badge-info\': faxRoom.status == \'PENDING\',\n                                                \'badge-success\': faxRoom.status == \'CLOSED\'}"> {{faxRoom.status | uppercase}} </span>\n                                     </td>\n                                 <td class="view-message" style="cursor:pointer; border:none;">\n                                                <span class="badge badge-success badge-roundless" data-ng-show="faxRoom.User.fullname"> {{faxRoom.User.fullname}} </span>\n                                             <span class="badge badge-default badge-roundless" data-ng-hide="faxRoom.User.fullname"> {{\'APPLICATION_UNASSIGNED\' | translate}} </span>\n                                    </td>\n                                 <td class="view-message text-right" context-menu="menuOptions" style="border: none;">\n                                         <time is="relative-time" datetime="{{faxRoom.updatedAt}}">\n                                                    April 1, 2014\n                                         </time>\n                                       </td>\n                         </tr>\n                         <tr data-ng-hide="faxRooms.length">\n                                   <td colspan="6" class="text-center">\n                                          <i>{{\'MESSAGE_NO_AVAILABLE_MESSAGES\' | translate}}</i>\n                                      </td>\n                         </tr>\n                         <tr>\n                                  <td colspan="8" class="text-center" style="border: none;">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.faxRoomsByPage" st-displayed-pages="7"></div>\n                                    </td>\n                         </tr>\n                 </tbody>\n              </table>\n      </div>\n</div>\n'),a.put("app/channels/fax/inbox/room/room.html",'<!-- BEGIN TODO CONTENT -->\n<div class="todo-content" data-ng-init="initRoomView()">\n       <div class="portlet light">\n           <!-- PROJECT HEAD -->\n         <div class="portlet-title">\n                   <div class="caption" data-ng-show="faxRoom">\n                          <i class="icon-bar-chart font-green-sharp hide"></i>\n                          <span class="badge badge-default" data-ng-class="{\'badge-error\': faxRoom.status == \'NEW\',\n                         \'badge-warning\': faxRoom.status == \'OPEN\',\n                                \'badge-info\': faxRoom.status == \'PENDING\',\n                                \'badge-success\': faxRoom.status == \'CLOSED\'}"> {{faxRoom.status | uppercase}} </span>\n                     </div>\n                        <div class="actions" data-ng-show="faxRoom">\n                          <div class="btn-group" data-ng-show="Auth.isAdmin()">\n                                 <a class="btn grey-salsa btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                                   {{ \'APPLICATION_ASSIGN\' | translate }} <i class="fa fa-angle-down"></i>\n                                     </a>\n                                  <ul class="dropdown-menu pull-right">\n                                         <li data-ng-repeat="agent in agents">\n                                                 <a href="#" data-ng-click="assignAgent(agent.id)">\n                                                    {{agent.fullname}} <span class="badge badge-default"> {{agent.fullname | uppercase | limitTo : 1}} </span>\n                                                    </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <div class="btn-group">\n                                       <a class="btn green-haze btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                                   {{ \'APPLICATION_STATUS\' | translate }} <i class="fa fa-angle-down"></i>\n                                     </a>\n                                  <ul class="dropdown-menu pull-right">\n                                         <li>\n                                                  <a href="#" data-ng-click="updateStatus(\'PENDING\')">\n                                                        {{\'STATUS_PENING\' | translate}} <span class="badge badge-danger">\n                                                   P </span>\n                                                     </a>\n                                          </li>\n                                         <li>\n                                                  <a href="#" data-ng-click="updateStatus(\'CLOSED\')">\n                                                 {{\'STATUS_CLOSED\' | translate}} <span class="badge badge-success">\n                                                  C </span>\n                                                     </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                        </div>\n                </div>\n                <!-- end PROJECT HEAD -->\n             <div class="portlet-body">\n                    <div class="row">\n                             <div data-ng-show="faxRoom" data-ng-class="{\'col-md-7 col-sm-7\': faxRoom}">\n                                 <div class="scroller" id="faxMessages" style="height: 500px; overflow-y: scroll; width: auto;" data-always-visible="1" data-rail-visible1="1" data-initialized="1">\n                                           <ul class="chats">\n                                                    <li data-ng-class="{\'in\': faxMessage.status == \'RECEIVED\', \'out\': (faxMessage.status == \'SENT\' || faxMessage.status == \'SENDING\' || faxMessage.status == \'FAILED\' || faxMessage.status == \'NOT SENT\')}" data-ng-repeat="faxMessage in faxRoom.FaxMessages | orderBy:\'createdAt\'">\n                                                     <img class="avatar" alt="" data-ng-src="api/users/avatar/{{getCurrentUser().userpic && faxMessage.status === \'SENT\' ? getCurrentUser().userpic : \'unknown_avatar\'}}">\n                                                     <div class="message">\n                                                         <span class="arrow">\n                                                          </span>\n                                                               <span class="bold">{{\'APPLICATION_FROM\' | translate}}: </span>\n                                                              <span>{{faxMessage.From.fullname}} </span>\n                                                            <span> &#60;{{faxMessage.From.phone}}&#62; </span>\n                                                            <br>\n                                                          <span class="bold">{{\'APPLICATION_TO\' | translate}}: </span>\n                                                                <span>{{faxMessage.To.fullname}} </span>\n                                                              <span> &#60;{{faxMessage.To.phone}}&#62; </span>\n                                                              <br>\n                                                          <span class="todo-tasklist-date">\n                                                                     <i class="fa fa-calendar"></i>\n                                                                        <time is="relative-time" datetime="{{faxMessage.createdAt}}">\n                                                                         April 1, 2014\n                                                                 </time>\n                                                               </span>\n                                                               <span data-ng-show="faxMessage.status == \'FAILED\' || faxMessage.status == \'SENDING\'" class="badge badge-default" data-ng-class="{\'badge-error\': faxMessage.status == \'FAILED\', \'badge-warning\': faxMessage.status == \'SENDING\'}"> {{faxMessage.status | uppercase}} </span>\n                                                               <br>\n                                                          <br>\n                                                          <span class="body">\n                                                                   <div class="wrapper" ng-controller="FaxInboxRoomCtrl" style="max-height:600px; overflow:auto;">\n                                                 <ng-pdf pdf-url="/api/fax/messages/{{faxMessage.id}}/content" template-url="/assets/plugins/angular-pdf/example/partials/viewer.html" scale="0.5" page=1></ng-pdf>\n                                          </div>\n                                                                </span>\n                                                               <br>\n                                                  </div>\n                                                </li>\n                                         </ul>\n                                 </div>\n                                </div>\n                                <div data-ng-class="{\'col-md-5 col-sm-5\': faxRoom, \'col-md-12 col-sm-12\': !faxRoom}">\n                                     <form name="forms.compose" data-ng-submit="forms.compose.$valid && sendFax()" class="form-horizontal" novalidate>\n                                             <!-- TASK HEAD -->\n                                            <div class="form">\n                                                    <div class="form-group">\n                                                              <div class="col-md-12 col-sm-12">\n                                                                     <div class="todo-taskbody-user">\n                                                                              <img class="todo-userpic pull-left" data-ng-src="api/users/avatar/{{getCurrentUser().userpic ? getCurrentUser().userpic : \'unknown_avatar\'}}" width="50px" height="50px">\n                                                                           <span class="todo-username pull-left">{{ getCurrentUser().fullname }}</span>\n                                                                  </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END TASK HEAD -->\n\n                                                      <!-- FAX FROM -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.compose.from.$invalid && forms.compose.$submitted}">\n                                                             <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">{{\'APPLICATION_FROM\' | translate}}:</label>\n                                                                            </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select data-ng-model="form.from" theme="bootstrap" name="from" required ng-disabled="disabled">\n                                                                                           <ui-select-match placeholder="{{\'APPLICATION_FROM\' | translate}}...">{{$select.selected.name}} - {{$select.selected.phone}}</ui-select-match>\n                                                                                               <ui-select-choices repeat="faxAccount in faxAccounts | filter: $select.search">\n                                                                                                       <div ng-bind-html="faxAccount.name | highlight: $select.search"></div>\n                                                                                                        <small ng-bind-html="faxAccount.phone | highlight: $select.search"></small>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="forms.compose.from.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                               </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n\n                                                      <!-- FAX TO -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.compose.to.$invalid && forms.compose.$submitted}">\n                                                               <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">{{\'APPLICATION_TO\' | translate}}:</label>\n                                                                              </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select tagging tagging-label="" multiple required data-ng-model="form.sto" theme="bootstrap" name="to" ng-disabled="disabled">\n                                                                                            <ui-select-match placeholder="{{\'APPLICATION_TO\' | translate}}...">{{$item}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="to in form.to | filter:$select.search">\n                                                                                                    {{to}}\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="forms.compose.to.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                               </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n\n                                                      <!-- TASK DESC -->\n                                                    <div class="form-group">\n                                                              <div class="col-md-12">\n                                                                       <!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n                                                                       <div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n                                                           </div>\n                                                        </div>\n                                                        <!-- END TASK DESC -->\n\n                                                      <!-- START ATTACH -->\n                                                 <div class="form-group">\n                                                              <div class="col-md-6">\n                                                                        <input type="file" nv-file-select uploader="uploader" name="file">\n                                                                    <table class="table" border="0">\n                                                                              <tbody>\n                                                                               <tr data-ng-repeat="item in uploader.queue">\n                                                                                          <td style="border-top-style:none">\n                                                                                                    <strong>\n                                                                                                              {{ item.file.name }}\n                                                                                                  </strong>\n                                                                                             </td>\n                                                                                         <td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n                                                                                                     {{ item.file.size/1024/1024|number:2 }} MB\n                                                                                            </td>\n                                                                                         <td nowrap style="border-top-style:none">\n                                                                                                     <button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n                                                                                                                    <span class="glyphicon glyphicon-trash"></span> Remove\n                                                                                                        </button>\n                                                                                             </td>\n                                                                                 </tr>\n                                                                         </tbody>\n                                                                      </table>\n                                                              </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="form-actions right todo-form-actions">\n                                                                            <button class="btn btn-circle btn-sm green-haze">{{ \'APPLICATION_SEND\' | translate }}</button>\n                                                                              <input type="button" name="cancel" value="{{ \'APPLICATION_CANCEL\' | translate }}" class="btn btn-circle btn-sm btn-default" data-ng-click="cancel()">\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END ATTACH -->\n\n                                         </div>\n                                        </form>\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n<!-- END TODO CONTENT -->\n'),
 a.put("app/channels/fax/queue/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid && form.general.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <!-- START TIMEOUT -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid}">\n      <label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="number" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n      <span data-ng-show="(form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid && form.general.timeout.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TIMEOUT -->\n\n    <!-- START HEADER SHAPE -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid}">\n      <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n        <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid && form.general.strategy.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END HEADER SHAPE -->\n\n\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/fax/queue/list/list.html",'<div class="row">\n   <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-paper-plane"></i>\n                                              <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-docs"></i>\n                                             <a href="/channels/fax/queues/lis">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <a class="btn green-jungle " href="#"  data-ng-click="createItem()">\n                                          <i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }}\n                                 </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/fax/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body">\n                                               <label for="penalty">{{\'APPLICATION_PENALTY\' | translate}}</label>\n                                          <div class="input-group input-small mbottom20">\n                                                       <input type="number" class="spinner-input form-control" maxlength="3" data-ng-model="queue.penalty" readonly>\n                                                 <div class="spinner-buttons input-group-btn btn-group-vertical">\n                                                              <button type="button" class="btn spinner-up btn-xs blue" data-ng-click="queue.penalty=queue.penalty+1">\n                                                                       <i class="fa fa-angle-up"></i>\n                                                                </button>\n                                                             <button type="button" class="btn spinner-down btn-xs blue" data-ng-disabled="!queue.penalty" data-ng-click="queue.penalty=queue.penalty-1">\n                                                                   <i class="fa fa-angle-down"></i>\n                                                              </button>\n                                                     </div>\n                                                </div>\n                                                <div class="form-group last">\n                                                 <div class="col-md-12" id="multi-select-team">\n                                                        </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/fax/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-paper-plane"></i>\n                                      <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/channels/fax/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                      <i data-ng-show="queue" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="queue">\n                                     <a href="#">{{queue.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{queue.name}}\n                                        </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.fax.queues.view.settings\')}">\n                                                  <a data-ng-href="/channels/fax/queues/view/{{queue.id}}/settings">\n                                                    <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.fax.queues.view.agents\')}">\n                                                    <a data-ng-href="/channels/fax/queues/view/{{queue.id}}/agents">\n                                                      <i class="icon-people"></i>\n                                                   {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/fax/queue/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateFaxQueue()" novalidate>\n                                      <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n                                          <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n                                      </div>\n                                        <!-- END DESCRIPTION -->\n\n                                    <!-- START TIMEOUT -->\n                                        <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}</label>\n                                          <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n                                        </div>\n                                        <!-- END TIMEOUT -->\n\n                                        <!-- START HEADER SHAPE -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n                                         <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                               <ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                     <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                 </ui-select-choices>\n                                          </ui-select>\n                                  </div>\n                                        <!-- END HEADER SHAPE -->\n                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                       </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/fax/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns  class="ui-grid" ui-grid-tree-view ui-grid-expandable-row ui-grid-pagination auto-resize>\n                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/fax/realtime/view/agent/agent.modal.info.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_INTERFACE_INFO\' | translate }}</h3>\n</div>\n<div class="modal-body">\n<div data-ng-if="agent.ipaddr" class="well">\n  <div>{{agent.ipaddr}}:{{agent.port}}</div>\n  <div>{{agent.fullcontact}}</div>\n  <div>{{agent.useragent}}</div>\n  <div>{{agent.lastms}}</div>\n</div>\n<div data-ng-if="!agent.ipaddr" class="alert alert-danger" role="alert">\n  {{\'MESSAGE_NO_AVAILABLE_INFO\' | translate}}\n</div>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="close()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/channels/fax/realtime/view/agent/queue.modal.add.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_JOIN_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <div class="form-group row">\n  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n  <div class="col-md-10">\n    <ui-select multiple ng-model="item.queues" theme="bootstrap" required>\n      <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$item.name}}</ui-select-match>\n      <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n        <div ng-bind-html="queue.name | highlight: $select.search"></div>\n      </ui-select-choices>\n    </ui-select>\n  </div>\n</div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/fax/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-directions"></i>\n                                       <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-energy"></i>\n                                   <a href="#">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <div>\n                 <nav class="navbar navbar-default" role="navigation">\n                         <div class="collapse navbar-collapse">\n                                        <ul class="nav navbar-nav">\n                                           <li data-ng-class="{\'active\': $state.is(\'channels.fax.realtime.view.agents\')}">\n                                                   <a href="/channels/fax/realtime/view/agents">\n                                                         {{\'APPLICATION_AGENTS\' | translate}}\n                                                        </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                        </nav>\n                </div>\n\n              <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/account/list/list.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-notebook"></i>\n                                 <a href="#">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n        </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn btn-default" href="#" data-ng-click="gridOptions.getPage();">\n                                                   <i class="icon-reload"></i>\n                                           </a>\n                                  </div>\n                                        <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/mail/accounts/wizard">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }}\n                                               </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/account/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/mail/accounts/view/{{account.id}}/actions/wizard" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n                                                </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/mail/account/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n      <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.settings" ng-submit="updateItem()" novalidate>\n                                      <!-- START APP -->\n                                    <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n                                          <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                       </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END APP -->\n\n                                    <!-- START HOST -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n                                           <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                         <span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END HOST -->\n\n                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                          <!-- START QUEUE -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.MailQueueId" name="queue" theme="bootstrap" required>\n                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                             </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END QUEUE -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                          <!-- START AGENT -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                         </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END AGENT -->\n                                    </div>\n\n                                      <!-- START INTERVAL_TYPE -->\n                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n                                           <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                               {{ intType.name | translate }}\n                                                        </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END INTERVAL_TYPE -->\n\n                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                <!-- START TIME -->\n                                           <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                   <div class="input-group input-large">\n                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                             </fieldset>\n                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                     </div>\n                                                </div>\n                                                <!-- END TIME -->\n\n                                           <!-- START ALWAYS -->\n                                         <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                 <div class="input-group input-large">\n                                                         <label class="control-label pointer-cursor">\n                                                                  <input\n                                                                                bs-switch\n                                                                             data-ng-model="application.alwaysTime"\n                                                                                type="checkbox"\n                                                                               switch-active="{{ isActive }}"\n                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                switch-on-color="{{ onColor }}"\n                                                                               switch-off-color="{{ offColor }}"\n                                                                             switch-animate="{{ animate }}"\n                                                                                switch-size="{{ size }}"\n                                                                              switch-label="{{ label }}"\n                                                                            switch-icon="{{ icon }}"\n                                                                              switch-radio-off="{{ radioOff }}"\n                                                                             switch-label-width="{{ labelWidth }}"\n                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                               </label>\n                                                      </div>\n                                                </div>\n                                                <!-- END ALWAYS -->\n\n                                         <!-- START WEEKDAY -->\n                                                <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                        <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate}}\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END WEEKDAY -->\n\n                                                <!-- START MONTHDAY -->\n                                               <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                       <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTHDAY -->\n\n                                               <!-- START MONTH -->\n                                          <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                  <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTH -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                          <!-- START INTERVALS -->\n                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                    {{ interval.name}}\n                                                            </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END INTERVALS -->\n\n                                      </div>\n                                        <button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n                          </form>\n                       </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
 a.put("app/channels/mail/account/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n    <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n                                     <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n                                           <form name="forms.action" novalidate>\n                                                 <!-- START APP -->\n                                                    <div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n                                                               <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END APP -->\n\n                                                    <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                                         <span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                                          <!-- START QUEUE -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.MailQueueId" name="queue" theme="bootstrap" required>\n                                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                                             </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END QUEUE -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                                          <!-- START AGENT -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                                         </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END AGENT -->\n                                                    </div>\n\n                                                      <!-- START INTERVAL_TYPE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n                                                         <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                               {{ intType.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INTERVAL_TYPE -->\n\n                                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                                <!-- START TIME -->\n                                                           <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                   <div class="input-group input-large">\n                                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                                             </fieldset>\n                                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                                     </div>\n                                                                </div>\n                                                                <!-- END TIME -->\n\n                                                           <!-- START ALWAYS -->\n                                                         <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                                 <div class="input-group input-large">\n                                                                         <label class="control-label pointer-cursor">\n                                                                                  <input\n                                                                                                bs-switch\n                                                                                             data-ng-model="application.alwaysTime"\n                                                                                                type="checkbox"\n                                                                                               switch-active="{{ isActive }}"\n                                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                                switch-on-color="{{ onColor }}"\n                                                                                               switch-off-color="{{ offColor }}"\n                                                                                             switch-animate="{{ animate }}"\n                                                                                                switch-size="{{ size }}"\n                                                                                              switch-label="{{ label }}"\n                                                                                            switch-icon="{{ icon }}"\n                                                                                              switch-radio-off="{{ radioOff }}"\n                                                                                             switch-label-width="{{ labelWidth }}"\n                                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                                               </label>\n                                                                      </div>\n                                                                </div>\n                                                                <!-- END ALWAYS -->\n\n                                                         <!-- START WEEKDAY -->\n                                                                <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                        <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate}}\n                                                                                 </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate }}\n                                                                                        </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END WEEKDAY -->\n\n                                                                <!-- START MONTHDAY -->\n                                                               <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                       <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTHDAY -->\n\n                                                               <!-- START MONTH -->\n                                                          <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                  <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTH -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                                          <!-- START INTERVALS -->\n                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                                    {{ interval.name}}\n                                                                            </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVALS -->\n\n                                                      </div>\n\n                                                      <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n                                         </form>\n                                       </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n                                              <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                  </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/account/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-notebook"></i>\n                                 <a href="/channels/mail/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                 <i class="fa fa-angle-right" data-ng-show="account"></i>\n                              </li>\n                         <li data-ng-show="account">\n                                   <a href="#">{{ account.description || account.name }}</a>\n                             </li>\n                 </ul>\n         </div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n               <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET main.channels -->\n                        <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img ng-src="assets/images/media/account.png" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{ account.description || account.name }}\n                                     </div>\n                                        <div class="profile-usertitle-job">\n                                           {{account.email}}\n                                     </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li ng-class="{active: $state.is(\'main.channels.mail.accounts.view.settings\')}">\n                                                    <a href="/channels/mail/accounts/view/{{account.id}}/settings">\n                                                       <i class="icon-settings"></i>\n                                                 {{\'APPLICATION_SETTINGS\' | translate}} </a>\n                                         </li>\n                                         <li ng-class="{active: $state.includes(\'main.channels.mail.accounts.view.actions\')}">\n                                                       <a href="/channels/mail/accounts/view/{{account.id}}/actions/list">\n                                                   <i class="icon-directions"></i>\n                                                       {{\'APPLICATION_ACTIONS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <div ui-view class="profile-content"></div>\n           <!-- END PROFILE CONTENT -->\n  </div>\n<!-- END PAGE CONTENT-->\n</div>\n'),a.put("app/channels/mail/account/view/view.settings.html",'<div class="row">\n     <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">IMAP</a>\n                                 </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">SMTP</a>\n                                 </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.info" data-ng-submit="forms.info.$valid && updateItemMailAccount()" novalidate>\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START ADDRESS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.info.address.$touched || forms.info.$submitted) && forms.info.address.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_EMAIL_ADDRESS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="address" placeholder="{{\'APPLICATION_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.address" required/>\n                                                               <span data-ng-show="(forms.info.address.$touched || forms.info.$submitted) && forms.info.address.$invalid && forms.info.address.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ADDRESS -->\n\n                                                        <!-- START FIDELITY -->\n                                                       <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_FIDELITY\' | translate}}</label></br>\n                                                            <input\n                                                                bs-switch\n                                                             data-ng-model="account.fidelity"\n                                                              type="checkbox"\n                                                               switch-active="{{ isActive }}"\n                                                                switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                            switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                          switch-on-color="{{ onColor }}"\n                                                               switch-off-color="{{ offColor }}"\n                                                             switch-animate="{{ animate }}"\n                                                                switch-size="{{ size }}"\n                                                              switch-label="{{ label }}"\n                                                            switch-icon="{{ icon }}"\n                                                              switch-radio-off="{{ radioOff }}"\n                                                             switch-label-width="{{ labelWidth }}"\n                                                         switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END FIDELITY -->\n\n                                                       <!-- START TIMEOUT -->\n                                                        <div class="form-group" data-ng-if="account.fidelity" data-ng-class="{\'has-error\': (forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <input type="number" min="0" name="timeout" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.timeout" required/>\n                                                                <span data-ng-show="(forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid && forms.info.timeout.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid && forms.info.timeout.$error.number" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                          </span>\n                                                       </div>\n                                                        <!-- END TIMEOUT -->\n\n                                                        <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                                    <!-- IMAP TAB -->\n                                     <div class="tab-pane" id="tab_1_2">\n                                           <form name="forms.formIn" data-ng-submit="forms.formIn.$valid && updateItemMailServerIn()" novalidate>\n\n                                                      <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.host.$touched || forms.formIn.$submitted) && forms.formIn.host.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.host" required/>\n                                                           <span data-ng-show="(forms.formIn.host.$touched || forms.formIn.$submitted) && forms.formIn.host.$invalid && forms.formIn.host.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <!-- START USERNAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.username.$touched || forms.formIn.$submitted) && forms.formIn.username.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.username" required/>\n                                                               <span data-ng-show="(forms.formIn.username.$touched || forms.formIn.$submitted) && forms.formIn.username.$invalid && forms.formIn.username.$error.required"  class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.password.$touched || forms.formIn.$submitted) && forms.formIn.password.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.password" required/>\n                                                           <span data-ng-show="(forms.formIn.password.$touched || forms.formIn.$submitted) && forms.formIn.password.$invalid && forms.formIn.password.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START PORT -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.port" required/>\n                                                         <span data-ng-show="(forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid && forms.formIn.port.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid && forms.formIn.port.$error.number" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                          </span>\n                                                       </div>\n                                                        <!-- END PORT -->\n\n                                                   <!-- START MAILBOX -->\n                                                        <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}</label>\n                                                          <input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.mailbox"/>\n                                                   </div>\n                                                        <!-- END MAILBOX -->\n\n                                                        <!-- START SEARCH FILTER -->\n                                                  <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_SEARCH_FILTER\' | translate}}</label>\n                                                            <ui-select data-ng-model="account.MailServerIn.filter" name="filter" theme="bootstrap">\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                   <ui-select-choices repeat="filter in [\'UNSEEN\'] | filter: $select.search">\n                                                                          <div ng-bind-html="filter | highlight: $select.search"></div>\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- START SEARCH FILTER -->\n\n                                                        <!-- START connTimeout -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.in.connTimeout.$touched || forms.in.$submitted) && forms.in.connTimeout.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_CONNECTION_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                           <input type="number" name="connTimeout" placeholder="{{\'APPLICATION_CONNECTION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.connTimeout" required/>\n                                                             <span data-ng-show="(forms.in.connTimeout.$touched || forms.in.$submitted) && forms.in.connTimeout.$invalid && forms.in.connTimeout.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.in.connTimeout.$touched || forms.in.$submitted) && forms.in.connTimeout.$invalid && forms.in.connTimeout.$error.number" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                          </span>\n                                                       </div>\n                                                        <!-- END connTimeout -->\n\n                                                    <!-- START authTimeout -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.in.authTimeout.$touched || forms.in.$submitted) && forms.in.authTimeout.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_AUTH_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="number" name="authTimeout" placeholder="{{\'APPLICATION_AUTH_TIMEOUT\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.authTimeout" required/>\n                                                           <span data-ng-show="(forms.in.authTimeout.$touched || forms.in.$submitted) && forms.in.authTimeout.$invalid && forms.in.authTimeout.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.in.authTimeout.$touched || forms.in.$submitted) && forms.in.authTimeout.$invalid && forms.in.authTimeout.$error.number" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                          </span>\n                                                       </div>\n                                                        <!-- END authTimeout -->\n\n                                                    <!-- START DELETE -->\n                                                 <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DELETE_MAIL_FROM_SERVER\' | translate}}</label><br>\n                                                              <input\n                                                                bs-switch\n                                                             data-ng-model="account.MailServerIn.delete"\n                                                           type="checkbox"\n                                                               switch-active="{{ isActive }}"\n                                                                switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                            switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                          switch-on-color="{{ onColor }}"\n                                                               switch-off-color="{{ offColor }}"\n                                                             switch-animate="{{ animate }}"\n                                                                switch-size="{{ size }}"\n                                                              switch-label="{{ label }}"\n                                                            switch-icon="{{ icon }}"\n                                                              switch-radio-off="{{ radioOff }}"\n                                                             switch-label-width="{{ labelWidth }}"\n                                                         switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END DELETE -->\n\n                                                 <!-- START SSL -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">SSL</label><br>\n                                                          <input\n                                                                bs-switch\n                                                             data-ng-model="account.MailServerIn.ssl"\n                                                              type="checkbox"\n                                                               switch-active="{{ isActive }}"\n                                                                switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                            switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                          switch-on-color="{{ onColor }}"\n                                                               switch-off-color="{{ offColor }}"\n                                                             switch-animate="{{ animate }}"\n                                                                switch-size="{{ size }}"\n                                                              switch-label="{{ label }}"\n                                                            switch-icon="{{ icon }}"\n                                                              switch-radio-off="{{ radioOff }}"\n                                                             switch-label-width="{{ labelWidth }}"\n                                                         switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END SSL -->\n\n                                                    <!-- START Keepalive -->\n                                                      <div class="form-group">\n                                                              <label class="control-label">Keepalive</label><br>\n                                                            <input\n                                                                bs-switch\n                                                             data-ng-model="account.MailServerIn.keepalive"\n                                                                type="checkbox"\n                                                               switch-active="{{ isActive }}"\n                                                                switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                            switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                          switch-on-color="{{ onColor }}"\n                                                               switch-off-color="{{ offColor }}"\n                                                             switch-animate="{{ animate }}"\n                                                                switch-size="{{ size }}"\n                                                              switch-label="{{ label }}"\n                                                            switch-icon="{{ icon }}"\n                                                              switch-radio-off="{{ radioOff }}"\n                                                             switch-label-width="{{ labelWidth }}"\n                                                         switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END Keepalive -->\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END IMAP TAB -->\n\n                                       <!-- SMTP TAB -->\n                                     <div class="tab-pane" id="tab_1_3">\n                                           <form name="forms.formOut" data-ng-submit="forms.formOut.$valid && updateItemMailServerOut()" novalidate>\n\n                                                   <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.host.$touched || forms.formOut.$submitted) && forms.formOut.host.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.host" required/>\n                                                          <span data-ng-show="(forms.formOut.host.$touched || forms.formOut.$submitted) && forms.formOut.host.$invalid && forms.formOut.host.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <!-- START USERNAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.username.$touched || forms.formOut.$submitted) && forms.formOut.username.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.username" required/>\n                                                              <span data-ng-show="(forms.formOut.username.$touched || forms.formOut.$submitted) && forms.formOut.username.$invalid && forms.formOut.username.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.password.$touched || forms.formOut.$submitted) && forms.formOut.password.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.password" required/>\n                                                          <span data-ng-show="(forms.formOut.password.$touched || forms.formOut.$submitted) && forms.formOut.password.$invalid && forms.formOut.password.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START PORT -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.port.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.port" required/>\n                                                                <span data-ng-show="(forms.formOut.form.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid && forms.formOut.port.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formOut.form.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid && forms.formOut.port.$error.number" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                          </span>\n                                                       </div>\n                                                        <!-- END PORT -->\n\n                                                   <!-- START SSL -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">SSL</label><br>\n                                                          <input\n                                                                bs-switch\n                                                             data-ng-model="account.MailServerIn.ssl"\n                                                              type="checkbox"\n                                                               switch-active="{{ isActive }}"\n                                                                switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                            switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                          switch-on-color="{{ onColor }}"\n                                                               switch-off-color="{{ offColor }}"\n                                                             switch-animate="{{ animate }}"\n                                                                switch-size="{{ size }}"\n                                                              switch-label="{{ label }}"\n                                                            switch-icon="{{ icon }}"\n                                                              switch-radio-off="{{ radioOff }}"\n                                                             switch-label-width="{{ labelWidth }}"\n                                                         switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END SSL -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                  <input class="btn blue-madison" type="button" value="Test" data-ng-click="test()"/>\n                                           </form>\n                                       </div>\n                                        <!-- END SMTP TAB -->\n                         </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
 a.put("app/channels/mail/account/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n        <div class="col-md-12">\n               <!-- BEGIN PAGE HEADER-->\n             <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-notebook"></i>\n                                 <a href="/mail/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                          </li>\n                 </ul>\n         </div>\n                <!-- END PAGE HEADER-->\n\n             <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n                                     <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="formValidation(forms.info.$valid)">\n                                            <form name="forms.info" novalidate>\n                                                   <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START ADDRESS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.info.address.$touched || forms.info.$submitted) && forms.info.address.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_EMAIL_ADDRESS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="address" placeholder="{{\'APPLICATION_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.address" required/>\n                                                          <span data-ng-show="(forms.info.address.$touched || forms.info.$submitted) && forms.info.address.$invalid && forms.info.address.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ADDRESS -->\n\n                                                        <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="IMAP" canexit="formValidation(forms.in.$valid)">\n                                              <form name="forms.in" novalidate>\n                                                     <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.in.host.$touched || forms.in.$submitted) && forms.in.host.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_INCOMING_MAIL_SERVER\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.host" required/>\n                                                              <span data-ng-show="(forms.in.host.$touched || forms.in.$submitted) && forms.in.host.$invalid && forms.in.host.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <!-- START USERNAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.in.username.$touched || forms.in.$submitted) && forms.in.username.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.username" name="username" required/>\n                                                          <span data-ng-show="(forms.in.username.$touched || forms.in.$submitted) && forms.in.username.$invalid && forms.in.username.$error.required"  class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.in.password.$touched || forms.in.$submitted) && forms.in.password.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.password" required/>\n                                                              <span data-ng-show="(forms.in.password.$touched || forms.in.$submitted) && forms.in.password.$invalid && forms.in.password.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START PORT -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.port" required/>\n                                                            <span data-ng-show="(forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid && forms.in.port.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid && forms.in.port.$error.number" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                          </span>\n                                                       </div>\n                                                        <!-- END PORT -->\n\n                                                   <!-- START MAILBOX -->\n                                                        <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}</label>\n                                                          <input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.mailbox"/>\n                                                      </div>\n                                                        <!-- END MAILBOX -->\n\n                                                        <!-- START SEARCH FILTER -->\n                                                  <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_SEARCH_FILTER\' | translate}}</label>\n                                                            <ui-select data-ng-model="item.MailServerIn.filter" name="filter" theme="bootstrap">\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                   <ui-select-choices repeat="filter in [\'UNSEEN\'] | filter: $select.search">\n                                                                          <div data-ng-bind="filter | highlight: $select.search"></div>\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- START SEARCH FILTER -->\n\n                                                        <!-- START connTimeout -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.in.connTimeout.$touched || forms.in.$submitted) && forms.in.connTimeout.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_CONNECTION_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                           <input type="number" name="connTimeout" placeholder="{{\'APPLICATION_CONNECTION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.connTimeout" required/>\n                                                                <span data-ng-show="(forms.in.connTimeout.$touched || forms.in.$submitted) && forms.in.connTimeout.$invalid && forms.in.connTimeout.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.in.connTimeout.$touched || forms.in.$submitted) && forms.in.connTimeout.$invalid && forms.in.connTimeout.$error.number" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                          </span>\n                                                       </div>\n                                                        <!-- END connTimeout -->\n\n                                                    <!-- START authTimeout -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.in.authTimeout.$touched || forms.in.$submitted) && forms.in.authTimeout.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_AUTH_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="number" name="authTimeout" placeholder="{{\'APPLICATION_AUTH_TIMEOUT\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.authTimeout" required/>\n                                                              <span data-ng-show="(forms.in.authTimeout.$touched || forms.in.$submitted) && forms.in.authTimeout.$invalid && forms.in.authTimeout.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.in.authTimeout.$touched || forms.in.$submitted) && forms.in.authTimeout.$invalid && forms.in.authTimeout.$error.number" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                          </span>\n                                                       </div>\n                                                        <!-- END authTimeout -->\n\n                                                    <!-- START DELETE -->\n                                                 <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DELETE_MAIL_FROM_SERVER\' | translate}}</label><br>\n                                                              <input\n                                                                bs-switch\n                                                             data-ng-model="item.MailServerIn.delete"\n                                                              type="checkbox"\n                                                               switch-active="{{ isActive }}"\n                                                                switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                            switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                          switch-on-color="{{ onColor }}"\n                                                               switch-off-color="{{ offColor }}"\n                                                             switch-animate="{{ animate }}"\n                                                                switch-size="{{ size }}"\n                                                              switch-label="{{ label }}"\n                                                            switch-icon="{{ icon }}"\n                                                              switch-radio-off="{{ radioOff }}"\n                                                             switch-label-width="{{ labelWidth }}"\n                                                         switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END DELETE -->\n\n                                                 <!-- START SSL -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">SSL</label><br>\n                                                          <input\n                                                                bs-switch\n                                                             data-ng-model="item.MailServerIn.ssl"\n                                                         type="checkbox"\n                                                               switch-active="{{ isActive }}"\n                                                                switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                            switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                          switch-on-color="{{ onColor }}"\n                                                               switch-off-color="{{ offColor }}"\n                                                             switch-animate="{{ animate }}"\n                                                                switch-size="{{ size }}"\n                                                              switch-label="{{ label }}"\n                                                            switch-icon="{{ icon }}"\n                                                              switch-radio-off="{{ radioOff }}"\n                                                             switch-label-width="{{ labelWidth }}"\n                                                         switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END SSL -->\n\n                                                    <!-- START Keepalive -->\n                                                      <div class="form-group">\n                                                              <label class="control-label">Keepalive</label><br>\n                                                            <input\n                                                                bs-switch\n                                                             data-ng-model="item.MailServerIn.keepalive"\n                                                           type="checkbox"\n                                                               switch-active="{{ isActive }}"\n                                                                switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                            switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                          switch-on-color="{{ onColor }}"\n                                                               switch-off-color="{{ offColor }}"\n                                                             switch-animate="{{ animate }}"\n                                                                switch-size="{{ size }}"\n                                                              switch-label="{{ label }}"\n                                                            switch-icon="{{ icon }}"\n                                                              switch-radio-off="{{ radioOff }}"\n                                                             switch-label-width="{{ labelWidth }}"\n                                                         switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END Keepalive -->\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n                                            </form>\n                                       </wz-step>\n                                    <wz-step title="SMTP" canexit="formValidation(forms.out.$valid)">\n                                             <form name="forms.out" novalidate>\n                                                    <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.out.host.$touched || forms.out.$submitted) && forms.out.host.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_OUTGOING_MAIL_SERVER\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.MailServerOut.host" required/>\n                                                             <span data-ng-show="(forms.out.host.$touched || forms.out.$submitted) && forms.out.host.$invalid && forms.out.host.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <!-- START USERNAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.out.username.$touched || forms.out.$submitted) && forms.out.username.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.MailServerOut.username" required/>\n                                                         <span data-ng-show="(forms.out.username.$touched || forms.out.$submitted) && forms.out.username.$invalid && forms.out.username.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.out.password.$touched || forms.out.$submitted) && forms.out.password.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.MailServerOut.password" required/>\n                                                             <span data-ng-show="(forms.out.password.$touched || forms.out.$submitted) && forms.out.password.$invalid && forms.out.password.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START PORT -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.out.port.$touched || forms.out.$submitted) && forms.out.port.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="item.MailServerOut.port" required/>\n                                                           <span data-ng-show="(out.$touched || forms.out.$submitted) && forms.out.port.$invalid && forms.out.port.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(out.$touched || forms.out.$submitted) && forms.out.port.$invalid && forms.out.port.$error.number" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                          </span>\n                                                       </div>\n                                                        <!-- END PORT -->\n\n                                                   <!-- START SSL -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">SSL</label><br>\n                                                          <input\n                                                                bs-switch\n                                                             data-ng-model="item.MailServerIn.ssl"\n                                                         type="checkbox"\n                                                               switch-active="{{ isActive }}"\n                                                                switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                            switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                          switch-on-color="{{ onColor }}"\n                                                               switch-off-color="{{ offColor }}"\n                                                             switch-animate="{{ animate }}"\n                                                                switch-size="{{ size }}"\n                                                              switch-label="{{ label }}"\n                                                            switch-icon="{{ icon }}"\n                                                              switch-radio-off="{{ radioOff }}"\n                                                             switch-label-width="{{ labelWidth }}"\n                                                         switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END SSL -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n                                                    <input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n                                           </form>\n                                       </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/inbox/list/list.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-note"></i>\n                                     <a href="#">{{ \'APPLICATION_INBOX\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n        </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-note font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_INBOX\' | translate }}</a> </span>\n                             </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn btn-default" href="#" data-ng-click="gridOptions.getPage();">\n                                                   <i class="icon-reload"></i>\n                                           </a>\n                                  </div>\n                                        <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/mail/inbox/view/compose">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_MESSAGE\' | translate }}\n                                               </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/inbox/mail/mail.html",'<div class="message">\r\n  <div class="row">\r\n    <div class="col-md-6">\r\n      <span class="bold">From: </span>\r\n      <span>{{mailMessage.from}}</span>\r\n      <br>\r\n      <span class="bold">To: </span>\r\n      <span>{{mailMessage.to}} </span>\r\n      <br>\r\n      <span data-ng-if="mailMessage.cc.length" class="bold">Cc: </span>\r\n      <span data-ng-if="mailMessage.cc.length">{{mailMessage.cc}} </span>\r\n    </div>\r\n    <div class="col-md-6">\r\n      <span class="pull-right" data-ng-show="mailMessage.User">{{\'APPLICATION_SENT_BY\' | translate}}: <strong>{{mailMessage.User.fullname}}</strong></span>\r\n    </div>\r\n  </div>\r\n  <br>\r\n  <span class="todo-tasklist-date">\r\n    <span class="pull-right">\r\n      <a data-ng-click="(mailMessage.status == \'SENDING\' || mailMessage.status == \'FAILED\') && retry(mailMessage.id)" href="#" class="btn default btn-xs inactive-link" data-ng-class="{\'green-stripe\': mailMessage.status == \'SENT\' || mailMessage.status == \'RECEIVED\', \'blue-stripe\': mailMessage.status == \'SENDING\', \'red-stripe\': mailMessage.status == \'FAILED\'}"> {{mailMessage.status | uppercase}}\r\n        <i data-ng-class="{\'fa fa-check\': mailMessage.status == \'SENT\' || mailMessage.status == \'RECEIVED\', \'fa fa-warning\': mailMessage.status == \'SENDING\', \'fa fa-times\': mailMessage.status == \'FAILED\'}"></i>\r\n      </a>\r\n    </span>\r\n    <i class="icon-calendar"></i> <span am-time-ago="mailMessage.updatedAt"></span>\r\n  </span>\r\n  <hr>\r\n  <span class="body text-left" data-ng-bind-html="mailMessage.text" style="white-space: pre-wrap;"></span>\r\n  <hr data-ng-if="mailMessage.MailAttachments.length">\r\n  <div data-ng-repeat="mailAttachment in mailMessage.MailAttachments">\r\n    <strong>{{mailAttachment.name}}</strong>\r\n    <span>\r\n      {{mailAttachment.size}}B </span>\r\n      <a target="_self" download="{{mailAttachment.name}}" href="api/mail/attachments/{{mailAttachment.id}}">\r\n        {{ \'APPLICATION_DOWNLOAD\' | translate }}\r\n      </a>\r\n    </div>\r\n  </div>\r\n'),a.put("app/channels/mail/inbox/note/note.html",'<div class="note">\r\n  <div class="row">\r\n    <div class="col-md-6">\r\n      <i class="icon-calendar"></i> <span am-time-ago="mailMessage.updatedAt"></span>\r\n    </div>\r\n    <div class="col-md-6">\r\n      <span class="pull-right" data-ng-show="mailMessage.User">{{\'APPLICATION_ADD_BY\' | translate}}: <strong>{{mailMessage.User.fullname}}</strong></span>\r\n    </div>\r\n  </div>\r\n  <hr>\r\n  <span class="body text-left" data-ng-bind-html="mailMessage.text" style="white-space: pre-wrap;"></span>\r\n  <hr data-ng-if="mailMessage.MailAttachments.length">\r\n  <div data-ng-repeat="mailAttachment in mailMessage.MailAttachments">\r\n    <strong>{{mailAttachment.name}}</strong>\r\n    <span>\r\n      {{mailAttachment.size}}B </span>\r\n      <a target="_self" download="{{mailAttachment.name}}" href="api/mail/attachments/{{mailAttachment.id}}">\r\n        {{ \'APPLICATION_DOWNLOAD\' | translate }}\r\n      </a>\r\n    </div>\r\n  </div>\r\n'),a.put("app/channels/mail/inbox/view/view.agents.modal.html",'<div class="modal-header" data-ng-init="initModal()">\n  <h3 class="modal-title">{{ \'APPLICATION_AGENTS\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <!-- START TRANSPORT -->\n  <div class="form-group">\n    <form name="form" novalidate>\n      <!-- START TRANSPORT -->\n      <div class="form-group">\n        <ui-select multiple name="agents" data-ng-model="item.agents" theme="bootstrap">\n          <ui-select-match placeholder="{{\'APPLICATION_AGENTS\' | translate}}">{{$item.fullname}}</ui-select-match>\n          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n            {{agent.fullname}}\n          </ui-select-choices>\n        </ui-select>\n      </div>\n      <!-- END TRANSPORT -->\n    </form>\n  </div>\n  <!-- END TRANSPORT -->\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/inbox/view/view.html",'<div class="row">\r\n  <div class="col-md-12">\r\n    <div class="page-bar">\r\n      <ul class="page-breadcrumb">\r\n        <li>\r\n          <i class="icon-rocket"></i>\r\n          <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\r\n          <i class="fa fa-angle-right"></i>\r\n        </li>\r\n        <li>\r\n          <i class="icon-puzzle"></i>\r\n          <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\r\n          <i class="fa fa-angle-right"></i>\r\n        </li>\r\n        <li>\r\n          <i class="icon-envelope"></i>\r\n          <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\r\n          <i class="fa fa-angle-right"></i>\r\n        </li>\r\n        <li>\r\n                                  <i class="icon-note"></i>\r\n                                   <a href="/channels/mail/inbox/list">{{ \'APPLICATION_INBOX\' | translate }}</a>\r\n                             </li>\r\n      </ul>\r\n    </div>\r\n  </div>\r\n</div>\r\n\r\n<!-- BEGIN PAGE CONTENT-->\r\n<div class="row">\r\n     <div class="col-md-12">\r\n    <div ui-view></div>\r\n  </div>\r\n</div>\r\n<!-- END PAGE CONTENT-->\r\n'),a.put("app/channels/mail/inbox/view/view.notes.modal.html",'<div class="modal-header" data-ng-init="initModal()">\n  <h3 class="modal-title">{{ \'APPLICATION_NOTES\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n    <div class="form-group">\n      <textarea data-ng-model="item.text" name="text" rows="10" style="resize: none; width: 100%;"></textarea>\n    </div>\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/inbox/view/view.room.html",'<!-- BEGIN TODO CONTENT -->\n<div class="todo-content" data-ng-init="initRoom()">\n  <div class="portlet light">\n           <div class="portlet-title">\n                   <div class="caption" data-ng-show="mailRoom">\n                         <i class="icon-bar-chart font-green-sharp hide"></i>\n                          <span class="label label-sm label-default">{{mailRoom.status}}</span> - <span class="caption-subject font-green-sharp bold uppercase">{{mailRoom.subject}}</span>\n                     </div>\n                        <div class="actions" data-ng-switch="mailRoom.status">\n                                <div class="btn-group btn-group-solid" data-ng-show="mailRoom">\n                                       <button type="button" class="btn yellow" data-ng-click="loadNote()" uib-popover="{{\'APPLICATION_ADD_NOTE\' | translate}}" popover-trigger="mouseenter">N</button>\n                            </div>\n                                <div class="btn-group btn-group-solid" data-ng-show="mailRoom">\n                                       <button type="button" class="btn blue" data-ng-click="loadAgents()" uib-popover="{{\'APPLICATION_ASSING_AGENTS\' | translate}}" popover-trigger="mouseenter">A</button>\n                               </div>\n                                <div class="btn-group btn-group-solid">\n                                       <button type="button" class="btn red" data-ng-click="loadTemplate()" uib-popover="{{\'APPLICATION_LOAD_TEMPLATES\' | translate}}" popover-trigger="mouseenter">T</button>\n                             </div>\n                                <div class="btn-group btn-group-solid">\n                                       <button type="button" class="btn green" data-ng-switch-when="NEW" data-ng-click="updateStatus(\'CLOSED\')" uib-popover="{{\'APPLICATION_CLOSE\' | translate}}" popover-trigger="mouseenter">S</button>\n                                        <button type="button" class="btn green" data-ng-switch-when="OPEN" data-ng-click="updateStatus(\'CLOSED\')" uib-popover="{{\'APPLICATION_CLOSE\' | translate}}" popover-trigger="mouseenter">S</button>\n                                       <button type="button" class="btn green" data-ng-switch-when="CLOSED" data-ng-click="updateStatus(\'OPEN\')" uib-popover="{{\'APPLICATION_OPEN\' | translate}}" popover-trigger="mouseenter">O</button>\n                                </div>\n                        </div>\n                </div>\n                <div class="portlet-body">\n                    <div class="row">\n                             <div data-ng-show="mailRoom" data-ng-class="{\'col-md-6 col-sm-6\': mailRoom}">\n                                       <div ng-scrollbars ng-scrollbars-config="config">\n                                             <ul class="chats">\n                                                    <li data-ng-switch="mailMessage.status" data-ng-class="{\'in\': mailMessage.status == \'RECEIVED\', \'out\': mailMessage.status == \'SENT\' || mailMessage.status == \'SENDING\' || mailMessage.status == \'FAILED\' || mailMessage.status == \'NOTE\'}" data-ng-repeat="mailMessage in mailRoom.MailMessages | orderBy:\'-createdAt\'">\n                                                              <img class="avatar" alt="" data-ng-src="api/users/avatar/{{getCurrentUser().userpic && mailMessage.status === \'SENT\' ? getCurrentUser().userpic : \'unknown_avatar\'}}">\n                                                            <note message="mailMessage" ng-switch-when="NOTE"></note>\n                                                             <mail message="mailMessage" ng-switch-default></mail>\n                                                 </li>\n                                         </ul>\n                                 </div>\n                                </div>\n                                <div data-ng-class="{\'col-md-6 col-sm-6\': mailRoom, \'col-md-12 col-sm-12\': !mailRoom}">\n                                   <form name="forms.compose" data-ng-submit="forms.compose.$valid && sendMail()" class="form-horizontal" novalidate>\n                                            <!-- START HEAD -->\n                                           <div class="form">\n                                                    <!-- START FROM -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.compose.from.$invalid && forms.compose.$submitted}">\n                                                             <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">From:</label>\n                                                                            </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select data-ng-model="form.from[0]" theme="bootstrap" name="from" required>\n                                                                                               <ui-select-match placeholder="From...">{{$select.selected.name}}</ui-select-match>\n                                                                                            <ui-select-choices repeat="mailAccount.address as mailAccount in mailAccounts | filter: $select.search">\n                                                                                                      <div data-ng-bind-html="mailAccount.name | highlight: $select.search"></div>\n                                                                                                  <small data-ng-bind-html="mailAccount.address | highlight: $select.search"></small>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="forms.compose.from.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END FROM -->\n\n                                                   <!-- MAIL TO -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.compose.to.$invalid && forms.compose.$submitted}">\n                                                               <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">To:</label>\n                                                                              </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select tagging tagging-label multiple data-ng-model="form.sto" theme="bootstrap" name="to">\n                                                                                               <ui-select-match placeholder="To...">{{$item}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="to in form.to | filter:$select.search">\n                                                                                                    {{to}}\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="forms.compose.to.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END TO -->\n\n                                                     <!-- START CC -->\n                                                     <div class="form-group">\n                                                              <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">Cc:</label>\n                                                                              </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select tagging tagging-label="" multiple data-ng-model="form.scc" theme="bootstrap" name="cc" ng-disabled="disabled">\n                                                                                             <ui-select-match placeholder="Cc...">{{$item}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="cc in form.cc">\n                                                                                                    {{cc}}\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END CC -->\n\n                                                     <!-- START SUBJECT -->\n                                                        <div data-ng-hide="mailRoom" class="form-group" data-ng-class="{\'has-error\': forms.compose.subject.$invalid && forms.compose.$submitted}">\n                                                          <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">Subject:</label>\n                                                                         </div>\n                                                                                <div class="col-md-11">\n                                                                                       <input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="Subject..." rows="8" data-ng-model="form.subject">\n                                                                                 <span data-ng-show="forms.compose.subject.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END SUJBECT -->\n\n                                                        <!-- START HTML -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.compose.text.$invalid && forms.compose.$submitted}">\n                                                             <div class="col-md-12">\n                                                                       <div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n                                                                   <span data-ng-show="forms.compose.text.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                        <!-- END HTML -->\n\n                                                   <!-- START CANNED -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': forms.compose.subject.$invalid && forms.compose.$submitted}">\n                                                          <div class="col-md-12">\n                                                                       <input type="text"\n                                                                    data-ng-model="selectedAnswer"\n                                                                        placeholder="{{\'APPLICATION_CANNED_ANSWERS\' | translate | lowercase | capitalize}}.."\n                                                                       typeahead-on-select="onSelectAnswer($item)"\n                                                                   uib-typeahead="answer for answer in getAnswers($viewValue)"\n                                                                   typeahead-loading="loadingAnswers"\n                                                                    typeahead-no-results="noResults"\n                                                                      class="form-control">\n                                                                 <span data-ng-show="forms.compose.subject.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                        <!-- END CANNED -->\n\n                                                 <!-- START ATTACH -->\n                                                 <div class="form-group">\n                                                              <div class="col-md-6">\n                                                                        <input type="file" nv-file-select="" uploader="uploader" multiple="">\n                                                                 <table class="table">\n                                                                         <tbody>\n                                                                                       <tr ng-repeat="item in uploader.queue">\n                                                                                               <td style="border-top:none"><strong>{{ item.file.name }}</strong></td>\n                                                                                                <td style="border-top:none" ng-show="uploader.isHTML5" nowrap>{{ item.file.size/1024/1024|number:2 }} MB</td>\n                                                                                         <td style="border-top:none" ng-show="uploader.isHTML5">\n                                                                                                       <div class="progress" style="margin-bottom: 0;">\n                                                                                                              <div class="progress-bar" role="progressbar" ng-style="{ \'width\': item.progress + \'%\' }"></div>\n                                                                                                   </div>\n                                                                                                </td>\n                                                                                         <td style="border-top-style:none" class="text-center">\n                                                                                                        <span ng-show="item.isSuccess"><i class="glyphicon glyphicon-ok"></i></span>\n                                                                                                  <span ng-show="item.isCancel"><i class="glyphicon glyphicon-ban-circle"></i></span>\n                                                                                                   <span ng-show="item.isError"><i class="glyphicon glyphicon-remove"></i></span>\n                                                                                                </td>\n                                                                                         <td style="border-top-style:none" nowrap>\n                                                                                                     <button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n                                                                                                            <span class="glyphicon glyphicon-trash"></span> {{\'APPLICATION_REMOVE\' | translate}}\n                                                                                                        </button>\n                                                                                             </td>\n                                                                                 </tr>\n                                                                         </tbody>\n                                                                      </table>\n                                                                      <div>\n                                                                 </div>\n                                                                </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="form-actions right todo-form-actions" style="border-top: none;">\n                                                                          <input type="submit" value="{{ \'APPLICATION_SEND\' | translate }}" class="btn btn-sm green-meadow" data-ng-disabled="form.disabled || !form.html">\n                                                                           <input type="button" value="{{ \'APPLICATION_CANCEL\' | translate }}"class="btn btn-sm btn-default" data-ng-click="cancel()">\n                                                                 </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END ATTACH -->\n                                           </div>\n                                        </form>\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n<!-- END TODO CONTENT -->\n'),
-a.put("app/channels/mail/inbox/view/view.templates.modal.html",'<div class="modal-header" data-ng-init="initModal()">\n  <h3 class="modal-title">{{ \'APPLICATION_TEMPLATES\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="note note-info" data-ng-show="!templates.length">\n    <h4 class="block">Info!</h4>\n    <p>\n      {{\'MESSAGE_NO_TEMPLATES_AVAILABLE\' | translate}}\n    </p>\n  </div>\n  <form name="form" data-ng-show="templates.length" novalidate>\n    <div class="form-group">\n      <ui-select data-ng-model="item.template" theme="bootstrap">\n        <ui-select-match placeholder="Select a template in the list or search his name...">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="template in templates | propsFilter: {name: $select.search}">\n          <div ng-bind-html="template.name | highlight: $select.search"></div>\n          <small data-ng-show="template.description">\n            {{\'APPLICATION_DESCRIPTION\' | translate}}: {{template.description}}\n          </small>\n        </ui-select-choices>\n      </ui-select>\n    </div>\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()" data-ng-show="templates.length">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/queue/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid && form.general.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <!-- START TIMEOUT -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid}">\n      <label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="number" min="0" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n      <span data-ng-show="(form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid && form.general.timeout.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TIMEOUT -->\n\n    <!-- START STRATEGY -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid}">\n      <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n        <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid && form.general.strategy.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END STRATEGY -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/queue/list/list.html",'<div class="row">\n   <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-envelope"></i>\n                                         <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-docs"></i>\n                                             <a href="#">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-ng-click="createItem()">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }}\n                                         </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                          <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="note note-warning" data-ng-hide="teams.length">\n                           <h4 class="block">Warning!</h4>\n                               <p>\n                                    {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n                             </p>\n                  </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body">\n                                               <label for="penalty">{{\'APPLICATION_PENALTY\' | translate}}</label>\n                                          <div class="input-group input-small mbottom20">\n                                                       <input type="number" class="spinner-input form-control" maxlength="3" data-ng-model="queue.penalty" readonly>\n                                                 <div class="spinner-buttons input-group-btn btn-group-vertical">\n                                                              <button type="button" class="btn spinner-up btn-xs blue" data-ng-click="queue.penalty=queue.penalty+1">\n                                                                       <i class="fa fa-angle-up"></i>\n                                                                </button>\n                                                             <button type="button" class="btn spinner-down btn-xs blue" data-ng-disabled="!queue.penalty" data-ng-click="queue.penalty=queue.penalty-1">\n                                                                   <i class="fa fa-angle-down"></i>\n                                                              </button>\n                                                     </div>\n                                                </div>\n                                                <div class="form-group last">\n                                                 <div class="col-md-12" id="multi-select-team">\n                                                        </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/mail/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/channels/mail/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                     <i data-ng-show="queue" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="queue">\n                                     <a href="#">{{queue.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET main.channels -->\n                        <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{queue.name}}\n                                        </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                      {{user.role}}\n                         </div> -->\n                    </div>\n                        <!-- END SIDEBAR USER TITLE -->\n\n                     <!-- SIDEBAR MENU -->\n                 <div class="profile-usermenu">\n                                <ul class="nav">\n                                      <li data-ng-class="{active: $state.is(\'main.channels.mail.queues.view.settings\')}">\n                                         <a data-ng-href="/channels/mail/queues/view/{{queue.id}}/settings">\n                                                   <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.mail.queues.view.agents\')}">\n                                                   <a data-ng-href="/channels/mail/queues/view/{{queue.id}}/agents">\n                                                             <i class="icon-people"></i>\n                                                           {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                                  </li>\n                                         </ul>\n                                 </div>\n                                        <!-- END MENU -->\n                             </div>\n                                <!-- END PORTLET main.channels -->\n                    </div>\n                        <!-- END BEGIN PROFILE SIDEBAR -->\n                    <!-- BEGIN PROFILE CONTENT -->\n                        <div ui-view class="profile-content">\n                 </div>\n                        <!-- END PROFILE CONTENT -->\n          </div>\n        </div>\n        <!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/queue/view/view.settings.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateMailQueue()" novalidate>\n                                     <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n                                          <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n                                      </div>\n                                        <!-- END DESCRIPTION -->\n\n                                    <!-- START TIMEOUT -->\n                                        <div class="form-group">\n                                              <label class="control-label">Agent Timeout</label>\n                                            <input type="number" name="timeout" placeholder="Timeout" class="form-control" min="1" data-ng-model="queue.timeout"/>\n                                        </div>\n                                        <!-- END TIMEOUT -->\n\n                                        <!-- START HEADER SHAPE -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n                                         <ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                     <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                 </ui-select-choices>\n                                          </ui-select>\n                                  </div>\n                                        <!-- END HEADER SHAPE -->\n                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                       </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/mail/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns  class="ui-grid" ui-grid-tree-view ui-grid-expandable-row ui-grid-pagination auto-resize>\n                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/realtime/view/agent/agent.modal.info.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_INTERFACE_INFO\' | translate }}</h3>\n</div>\n<div class="modal-body">\n<div data-ng-if="agent.ipaddr" class="well">\n  <div>{{agent.ipaddr}}:{{agent.port}}</div>\n  <div>{{agent.fullcontact}}</div>\n  <div>{{agent.useragent}}</div>\n  <div>{{agent.lastms}}</div>\n</div>\n<div data-ng-if="!agent.ipaddr" class="alert alert-danger" role="alert">\n  {{\'MESSAGE_NO_AVAILABLE_INFO\' | translate}}\n</div>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="close()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/realtime/view/agent/queue.modal.add.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_JOIN_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <div class="form-group row">\n  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n  <div class="col-md-10">\n    <ui-select multiple ng-model="item.queues" theme="bootstrap" required>\n      <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$item.name}}</ui-select-match>\n      <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n        <div ng-bind-html="queue.name | highlight: $select.search"></div>\n      </ui-select-choices>\n    </ui-select>\n  </div>\n</div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/realtime/view/queue/queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initQueues()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns class="ui-grid" ui-grid-tree-view auto-resize>\n                     <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initSessions()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns class="ui-grid" auto-resize>\n                       <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-directions"></i>\n                                       <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-energy"></i>\n                                   <a href="#">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <div>\n                 <nav class="navbar navbar-default" role="navigation">\n                         <div class="collapse navbar-collapse">\n                                        <ul class="nav navbar-nav">\n                                           <li data-ng-class="{\'active\': $state.is(\'channels.mail.realtime.view.agents\')}">\n                                                  <a href="/channels/mail/realtime/view/agents">\n                                                                {{\'APPLICATION_AGENTS\' | translate}}\n                                                        </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                        </nav>\n                </div>\n\n              <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/realtime/view/view.queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n       <div class="col-md-12">\n               <!-- START TABLE -->\n          <div id="grid1" ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-tree-view class="grid">\n                 <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/chanspy/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_CHANSPY\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START PREFIX -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.prefix.$touched || form.$submitted) && form.prefix.$invalid}">\n      <label class="control-label">{{\'APPLICATION_PREFIX\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="prefix" placeholder="{{\'APPLICATION_PREFIX\' | translate}}" class="form-control" data-ng-model="item.prefix" required/>\n      <span data-ng-show="(form.prefix.$touched || form.$submitted) && form.prefix.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END PREFIX -->\n\n    <!-- START OPTIONS -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.options.$touched || form.$submitted) && form.options.$invalid}">\n      <label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select multiple data-ng-model="item.options" name="options" theme="bootstrap" ui-required="true">\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.value}}: {{$item.name | translate}}</ui-select-match>\n        <ui-select-choices repeat="option.value as option in options | filter: $select.search">\n          <div ng-bind-html="option.value + \': \' + (option.name | translate) | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(form.options.$touched || form.$submitted) && form.options.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END OPTIONS -->\n\n    <!-- START AUTH -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_AUTH\' | translate}}</label></br>\n      <input\n      bs-switch\n      class="form-control"\n      ng-model="item.auth"\n      type="checkbox"\n      name="auth"\n      data-ng-init="item.auth = 0"\n      switch-active="{{ recordSwitch.isActive }}"\n      switch-on-text="{{ recordSwitch.onText }}"\n      switch-off-text="{{ recordSwitch.offText }}"\n      switch-on-color="{{ recordSwitch.onColor }}"\n      switch-off-color="{{ recordSwitch.offColor }}"\n      switch-animate="{{ recordSwitch.animate }}"\n      switch-size="{{ recordSwitch.size }}"\n      switch-label="{{ recordSwitch.label }}"\n      switch-icon="{{ recordSwitch.icon }}"\n      switch-radio-off="{{ recordSwitch.radioOff }}"\n      switch-label-width="{{ recordSwitch.labelWidth }}"\n      switch-handle-width="{{ recordSwitch.handleWidth }}">\n    </div>\n    <!-- END AUTH -->\n\n    <!-- START PASSWORD -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.password.$touched || form.$submitted) && form.password.$invalid}">\n      <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span data-ng-show="item.auth" class="required" aria-required="true">*</span></label>\n      <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" data-ng-disabled="!item.auth" data-ng-required="item.auth"/>\n      <span data-ng-show="(form.password.$touched || form.$submitted) && form.password.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END PASSWORD -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/chanspy/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-wrench"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-eye"></i>\n                                      <a href="/channels/voice/chanspys/list">{{ \'APPLICATION_CHANSPY\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_CHANSPY\' | translate }}</a> </span>\n                           </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="createItem()">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CHANSPY\' | translate }}\n                                               </button>\n                                     </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/chanspy/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getChanSpy()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-wrench"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-eye"></i>\n                                      <a href="/channels/voice/chanspys/list">{{ \'APPLICATION_CHANSPY\' | translate }}</a>\n                                 <i data-ng-show="chanspy" class="fa fa-angle-right"></i>\n                              </li>\n                         <li data-ng-show="chanspy">\n                                   <a href="#">{{chanspy.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/chanspy.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chanspy.name}}\n                                      </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.tools.chanspy.view.settings\')}">\n                                                        <a data-ng-href="/tools/chanspy/view/{{chanspy.id}}/settings">\n                                                        <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/chanspy/view/view.settings.html",'<div class="row">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CHANSPY\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateChanSpy()" novalidate>\n\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="chanspy.name" required/>\n                                                                <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START PREFIX -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (form.general.prefix.$touched || form.general.$submitted) && form.general.prefix.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_PREFIX\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="prefix" placeholder="{{\'APPLICATION_PREFIX\' | translate}}" class="form-control" data-ng-model="chanspy.prefix" required/>\n                                                          <span data-ng-show="(form.general.prefix.$touched || form.general.$submitted) && form.general.prefix.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PREFIX -->\n\n                                                 <!-- START OPTIONS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (form.general.options.$touched || form.general.$submitted) && form.general.options.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select multiple data-ng-model="chanspy.options" name="options" theme="bootstrap" ui-required="true">\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.value}}: {{$item.name | translate}}</ui-select-match>\n                                                                    <ui-select-choices repeat="option.value as option in options | filter: $select.search">\n                                                                               <div ng-bind-html="option.value + \': \' + (option.name | translate) | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(form.general.options.$touched || form.general.$submitted) && form.general.options.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END OPTIONS -->\n\n                                                        <!-- START AUTH -->\n                                                   <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_AUTH\' | translate}}</label></br>\n                                                                <input\n                                                                bs-switch\n                                                             class="form-control"\n                                                          ng-model="chanspy.auth"\n                                                               type="checkbox"\n                                                               name="auth"\n                                                           switch-active="{{ recordSwitch.isActive }}"\n                                                           switch-on-text="{{ recordSwitch.onText }}"\n                                                            switch-off-text="{{ recordSwitch.offText }}"\n                                                          switch-on-color="{{ recordSwitch.onColor }}"\n                                                          switch-off-color="{{ recordSwitch.offColor }}"\n                                                                switch-animate="{{ recordSwitch.animate }}"\n                                                           switch-size="{{ recordSwitch.size }}"\n                                                         switch-label="{{ recordSwitch.label }}"\n                                                               switch-icon="{{ recordSwitch.icon }}"\n                                                         switch-radio-off="{{ recordSwitch.radioOff }}"\n                                                                switch-label-width="{{ recordSwitch.labelWidth }}"\n                                                            switch-handle-width="{{ recordSwitch.handleWidth }}">\n                                                 </div>\n                                                        <!-- END AUTH -->\n\n                                                   <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (form.general.password.$touched || form.general.$submitted) && form.general.password.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" data-ng-show="chanspy.auth" aria-required="true">*</span></label>\n                                                         <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="chanspy.password" data-ng-disabled="!chanspy.auth" data-ng-required="chanspy.auth"/>\n                                                                <span data-ng-show="(form.general.password.$touched || form.general.$submitted) && form.general.password.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="chanspy.description"></textarea>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
-a.put("app/channels/voice/context/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_CONTEXT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()" data-ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/context/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="#">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_CONTEXTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <a class="btn green-jungle" href="#" data-ng-click="createItem()">\n                                            <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTEXT\' | translate }}\n                                       </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/context/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getContext()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/channels/voice/contexts/list">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n                                        <i data-ng-show="context" class="fa fa-angle-right"></i>\n                              </li>\n                         <li data-ng-show="context">\n                                   <a href="#">{{context.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET main.channels -->\n                        <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/context.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{context.name}}\n                                      </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.voice.contexts.view.settings\')}">\n                                                      <a data-ng-href="/channels/voice/contexts/view/{{context.id}}/settings">\n                                                              <i class="icon-settings"></i>\n                                                         {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                        </li>\n                                         </ul>\n                                 </div>\n                                        <!-- END MENU -->\n                             </div>\n                                <!-- END PORTLET main.channels -->\n                    </div>\n                        <!-- END BEGIN PROFILE SIDEBAR -->\n                    <!-- BEGIN PROFILE CONTENT -->\n                        <div ui-view class="profile-content">\n                 </div>\n                        <!-- END PROFILE CONTENT -->\n          </div>\n        </div>\n        <!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/context/view/view.settings.html",'<div class="row">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CONTEXT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceContext()" novalidate>\n\n                                                        <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="context.name" required readonly/>\n                                                               <span class="help-block">\n                                                                     {{ \'DESCRIPTION_CANT_EDIT_NAME\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="context.description"></textarea>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/moh/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_MOH_CLASS\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/moh/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-music-tone"></i>\n                                       <a href="#">{{ \'APPLICATION_MOHS\' | translate }}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-music-tone font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_MOHS\' | translate }}</a> </span>\n                              </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-ng-click="createItem()">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_MOH_CLASS\' | translate }}\n                                             </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/moh/view/view.addFiles.html",'\n<div class="row" data-ng-init="getSounds()">\n   <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_MOH\' | translate }} {{ \'APPLICATION_ADD_FILES\' | translate }}</a> </span>\n                           </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="note note-warning" data-ng-hide="soundList.length">\n                                       <h4 class="block">Warning!</h4>\n                                       <p>\n                                            {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n                                    </p>\n                                  <p>\n                                           {{\'APPLICATION_GO_TO\' | translate}} <a href="/tools/sounds/list">{{\'APPLICATION_SOUNDS\' | translate}}</a>\n                                 </p>\n                          </div>\n            <form name="forms.general" data-ng-submit="(item.sounds.length > 0) && addMohs()" data-ng-show="soundList.length" novalidate>\n\n              <!-- START SOUNDS -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sounds.$touched || forms.general.$submitted) && item.sounds.length == 0}">\n                <label class="control-label">{{\'APPLICATION_SOUNDS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <ui-select multiple data-ng-model="item.sounds" theme="bootstrap" name="sounds" required>\n                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.display_name}}</ui-select-match>\n                  <ui-select-choices repeat="sound.id as sound in soundList | filter: $select.search">\n                    {{sound.display_name}}\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="(forms.general.sounds.$touched || forms.general.$submitted) && item.sounds.length == 0" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END OPTIONS -->\n\n                                                       <input type="submit" class="btn green-haze" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </form>\n                       </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/moh/view/view.audios.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getAudioFiles()">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AUDIOS\' | translate}}</span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="audioFiles">\n                                             <a class="btn green-jungle " href="/channels/voice/mohs/view/{{moh.id}}/add" data-toggle="dropdown">\n                                                  <i class="icon-plus"></i> {{ \'APPLICATION_ADD_FILES\' | translate }}\n                                         </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="note note-warning" data-ng-hide="audioFiles">\n                                     <h4 class="block">Warning!</h4>\n                                       <p>\n                                            {{ \'MESSAGE_FOLDER_DOES_NOT_EXIST\' | translate }}\n                                  </p>\n                          </div>\n                                <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover" data-ng-show="audioFiles">\n                                        <thead>\n                                               <tr>\n                                                    <th>{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                           <th width="30%">{{ \'APPLICATION_PREVIEW\' | translate }}</th>\n                                                                <th width="10%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                  </tr>\n                                         </thead>\n                                      <tbody data-ng-model="audioFiles">\n                                      <tr data-ng-repeat="audiofile in audioFiles">\n                                                             <td>{{audiofile}}</td>\n                                                                <td>\n                                                                  <audio controls ng-src="{{getSecureSrc(audioSources[audiofile])}}" preload="none">\n                                        Your browser does not support the audio tag.\n                                        </audio></td>\n                                             <td>\n                                            <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(audiofile,audiofile)">\n                                                                             {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="audioFiles.length">\n                                                         <td colspan="3" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_AUDIOFILES_AVAILABLE\' | translate }}</i>\n                                                          </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/channels/voice/moh/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getMoh()">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-music-tone"></i>\n                                       <a href="/channels/voice/mohs/list">{{ \'APPLICATION_MOH_CLASS\' | translate }}</a>\n                                   <i data-ng-show="moh" class="fa fa-angle-right"></i>\n                          </li>\n                         <li data-ng-show="moh">\n                                       <a href="#">{{moh.name}}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET main.channels -->\n                        <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/moh.png" class="img-responsive">\n                                </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{moh.name}}\n                                  </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.voice.mohs.view.settings\')}">\n                                                  <a data-ng-href="/channels/voice/mohs/view/{{moh.id}}/settings">\n                                                      <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.voice.mohs.view.audios\') || $state.is(\'main.channels.voice.mohs.view.add\')}">\n                                                        <a data-ng-href="/channels/voice/mohs/view/{{moh.id}}/audios">\n                                                        <i class="icon-list"></i>\n                                                     {{ \'APPLICATION_AUDIOS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET main.channels -->\n            </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/moh/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_MOH_CLASS\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                           </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body" data-ng-init="getContexts();">\n                              <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceMoh()" novalidate>\n\n                <!-- START PATH -->\n                   <div class="form-group" >\n               <label class="control-label">{{\'APPLICATION_PATH\' | translate}}</label>\n                     <input type="text" name="path" class="form-control" data-ng-model="moh.directory" disabled/>\n                </div>\n                <!-- END PATH -->\n\n                   <!-- START SORT -->\n                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$invalid}">\n                      <label class="control-label">{{\'APPLICATION_SORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                 <ui-select data-ng-model="moh.sort" theme="bootstrap" name="sort" required>\n                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                  <ui-select-choices repeat="sort.value as sort in sortOptions | filter: $select.search">\n                         {{$translate.instant(sort.name)}}\n                   </ui-select-choices>\n                </ui-select>\n                  <span data-ng-show="(forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$error.required" class="help-block help-block-error">\n                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n               </span>\n             </div>\n                <!-- END SORT -->\n\n                   <!-- START DESCRIPTION -->\n                                      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.description.$invalid}">\n                                        <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                      <textarea type="text" name="description" class="form-control" data-ng-model="moh.description"/></textarea>\n                                                            <span data-ng-show="forms.general.$submitted && forms.general.description.$invalid" class="help-block help-block-error">\n                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                       </span>\n                                     </div>\n                                <!-- END DESCRIPTION -->\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n                              </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/queue/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.queue.name.$touched || form.queue.$submitted) && form.queue.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" data-ng-pattern="settings.patternName" required />\n      <span data-ng-show="(form.queue.name.$touched || form.queue.$submitted) && form.queue.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n      <span data-ng-show="(form.queue.name.$touched || form.queue.$submitted) && form.queue.name.$error.pattern" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START STRATEGY -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.queue.strategy.$touched || form.queue.$submitted) && form.queue.strategy.$invalid}">\n      <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n        <ui-select-choices repeat="strategy in [\'ringall\', \'leastrecent\', \'fewestcalls\', \'random\', \'rrmemory\', \'linear\', \'wrandom\', \'rrordered\'] | filter: $select.search">\n          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span class="help-block">\n        {{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n      </span>\n      <span data-ng-show="(form.queue.strategy.$touched || form.queue.$submitted) && form.queue.strategy.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END STRATEGY -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/queue/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-earphones-alt"></i>\n                                    <a href="#">{{ \'APPLICATION_VOICE\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="#">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <a class="btn green-jungle " href="#"  data-ng-click="createItem()">\n                                          <i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }}\n                                 </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="note note-warning" data-ng-hide="teams.length">\n                           <h4 class="block">Warning!</h4><p>{{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}</p>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body">\n                                               <label for="penalty">{{\'APPLICATION_PENALTY\' | translate}}</label>\n                                          <div class="input-group input-small mbottom20">\n                                                       <input type="number" class="spinner-input form-control" maxlength="3" data-ng-model="queue.penalty" readonly>\n                                                 <div class="spinner-buttons input-group-btn btn-group-vertical">\n                                                              <button type="button" class="btn spinner-up btn-xs blue" data-ng-click="queue.penalty=queue.penalty+1">\n                                                                       <i class="fa fa-angle-up"></i>\n                                                                </button>\n                                                             <button type="button" class="btn spinner-down btn-xs blue" data-ng-disabled="!queue.penalty" data-ng-click="queue.penalty=queue.penalty-1">\n                                                                   <i class="fa fa-angle-down"></i>\n                                                              </button>\n                                                     </div>\n                                                </div>\n                                                <div class="form-group last">\n                                                 <div class="col-md-12" id="multi-select-team">\n                                                        </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-earphones-alt"></i>\n                                    <a href="#">{{ \'APPLICATION_VOICE\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/channels/voice/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                    <i data-ng-show="queue" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="queue">\n                                     <a href="#">{{queue.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET main.channels -->\n                        <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{queue.name}}\n                                        </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.voice.queues.view.settings\')}">\n                                                        <a data-ng-href="/channels/voice/queues/view/{{queue.name}}/settings"> <i class="icon-settings"></i> {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                           </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.voice.queues.view.agents\')}">\n                                                  <a data-ng-href="/channels/voice/queues/view/{{queue.name}}/agents"><i class="icon-people"></i>{{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET main.channels -->\n            </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/queue/view/view.settings.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_QUEUE_SETTINGS\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_PERIODIC_ANNOUNCE\' | translate}}</a>\n                                   </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n                                    </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body" data-ng-init="getContexts();getMohs();getSounds();">\n                                <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceQueue()" novalidate>\n                                                    <div class="row">\n                                                             <div class="col-md-6">\n                                                        <!-- START STRATEGY -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                                     <ui-select-choices repeat="strategy in [\'ringall\', \'leastrecent\', \'fewestcalls\', \'random\', \'rrmemory\', \'linear\', \'wrandom\', \'rrordered\'] | filter: $select.search">\n                                                                           <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                      <!-- END STRATEGY -->\n\n                                                 <!-- START MOH -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.general.musiconhold.$touched || forms.general.$submitted) && forms.general.musiconhold.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_MOH\' | translate}}</label>\n                                                              <ui-select data-ng-model="queue.musiconhold" name="musiconhold" theme="bootstrap">\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="musiconhold.name as musiconhold in voiceMohs | filter: $select.search">\n                                                                            <div ng-bind-html="musiconhold.name | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_VOICE_MOH\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.general.musiconhold.$touched || forms.general.$submitted) && forms.general.musiconhold.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MOH -->\n\n                                                    <!-- START TIMEOUT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <input type="number" min="0" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="queue.timeout" required/>\n                                                               <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_TIMEOUT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TIMEOUT -->\n\n                                                        <!-- START MAXLEN -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.maxlen.$touched || forms.general.$submitted) && forms.general.maxlen.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_MAXLEN\' | translate}}</label>\n                                                           <input type="number" min="0" name="maxlen" placeholder="{{\'APPLICATION_MAXLEN\' | translate}}" class="form-control" data-ng-model="queue.maxlen" required/>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MAXLEN\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.general.maxlen.$touched || forms.general.$submitted) && forms.general.maxlen.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MAXLEN -->\n\n                                                 <!-- START RETRY -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.retry.$touched || forms.general.$submitted) && forms.general.retry.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_RETRY\' | translate}}</label>\n                                                            <input type="number" min="0" name="retry" placeholder="{{\'APPLICATION_RETRY\' | translate}}" class="form-control" data-ng-model="queue.retry" required/>\n                                                             <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_RETRY\' | translate }}\n                                                         </span>\n                                                               <span data-ng-show="(forms.general.retry.$touched || forms.general.$submitted) && forms.general.retry.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END RETRY -->\n\n                                          </div>\n                                                <div class="col-md-6">\n                                                        <!-- START WRAPUPTIME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.general.wrapuptime.$touched || forms.general.$submitted) && forms.general.wrapuptime.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_WRAPUPTIME\' | translate}}</label>\n                                                               <input type="number" min="0" name="wrapuptime" placeholder="{{\'APPLICATION_WRAPUPTIME\' | translate}}" class="form-control" data-ng-model="queue.wrapuptime" required/>\n                                                              <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_WRAPUPTIME\' | translate }}\n                                                            </span>\n                                                               <span data-ng-show="(forms.general.wrapuptime.$touched || forms.general.$submitted) && forms.general.wrapuptime.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END WRAPUPTIME -->\n\n                                                     <!-- START WEIGHT -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.weight.$touched || forms.general.$submitted) && forms.general.weight.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_WEIGHT\' | translate}}</label>\n                                                           <input type="number" min="0" name="weight" placeholder="{{\'APPLICATION_WEIGHT\' | translate}}" class="form-control" data-ng-model="queue.weight" required/>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_WEIGHT\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.general.weight.$touched || forms.general.$submitted) && forms.general.weight.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END WEIGHT -->\n\n                                                 <!-- START JOINEMPTY -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.general.joinempty.$touched || forms.general.$submitted) && forms.general.joinempty.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_JOINEMPTY\' | translate}}</label>\n                                                                <ui-select multiple data-ng-model="queue.joinempty" name="joinempty" theme="bootstrap">\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\',\'strict\',\'loose\',\'paused\',\'penalty\',\'inuse\',\'ringing\',\'unavailable\',\'invalid\',\'unknown\',\'wrapup\'] | filter: $select.search">\n                                                                           <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_JOINEMPTY\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.general.joinempty.$touched || forms.general.$submitted) && forms.general.joinempty.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END JOINEMPTY -->\n\n                                                      <!-- START LEAVEWHENEMPTY -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.leavewhenempty.$touched || forms.general.$submitted) && forms.general.leavewhenempty.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_LEAVEWHENEMPTY\' | translate}}</label>\n                                                           <ui-select multiple data-ng-model="queue.leavewhenempty" name="leavewhenempty" theme="bootstrap">\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\',\'strict\',\'loose\',\'paused\',\'penalty\',\'inuse\',\'ringing\',\'unavailable\',\'invalid\',\'unknown\',\'wrapup\'] | filter: $select.search">\n                                                                           <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_LEAVEWHENEMPTY\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.general.leavewhenempty.$touched || forms.general.$submitted) && forms.general.leavewhenempty.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END LEAVEWHENEMPTY -->\n\n                                                 <!-- START ANNOUNCE -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.general.announce.$touched || forms.general.$submitted) && forms.general.announce.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_ANNOUNCE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <ui-select data-ng-model="queue.announce" name="announce" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in sounds | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_ANNOUNCE\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.general.announce.$touched || forms.general.$submitted) && forms.general.announce.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ANNOUNCE -->\n                                         </div>\n                                        </div>\n                                        <!-- START DESCRIPTION -->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"></textarea>\n                                 </div>\n                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n\n                                      <div class="tab-pane" id="tab_1_2">\n                                           <form name="forms.announce" data-ng-submit="forms.announce.$valid && updateVoiceQueue()" novalidate>\n                                                  <div class="row">\n                                                             <div class="col-md-12">\n                                                       <!-- START PERIODIC_ANNOUNCE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.periodic_announce.$touched || forms.announce.$submitted) && forms.announce.periodic_announce.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_PERIODIC_ANNOUNCE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                            <ui-select multiple data-ng-model="queue.periodic_announce" name="periodic_announce" theme="bootstrap" required data-ng-disabled="!periodicAnnounces.length">\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.display_name}}</ui-select-match>\n                                                                 <ui-select-choices repeat="returnAnnouncePath(announce) as announce in periodicAnnounces | filter: $select.search">\n                                                                           <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <div class="note note-warning" data-ng-hide="periodicAnnounces.length">\n                                                                       <h4 class="block">Warning!</h4>\n                                                                       <p>\n                                                                           {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n                                                                     </p>\n                                                                  <p>\n                                                                           {{\'APPLICATION_GO_TO\' | translate}} <a href="/tools/sounds/list">{{\'APPLICATION_SOUNDS\' | translate}}</a>\n                                                                 </p>\n                                                          </div>\n                                                                <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.announce.periodic_announce.$touched || forms.announce.$submitted) && forms.announce.periodic_announce.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PERIODIC_ANNOUNCE -->\n                                                </div>\n                                        </div>\n                                                        <div class="row">\n                                                             <div class="col-md-6">\n                                                        <p><h3>{{\'APPLICATION_SETTINGS\' | translate}}</h3></p>\n                                                      <!-- START ANNOUNCE_FREQUENCY -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_frequency.$touched || forms.announce.$submitted) && forms.announce.announce_frequency.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_ANNOUNCE_FREQUENCY\' | translate}}</label>\n                                                               <input type="number" min="0" name="announce_frequency" placeholder="{{\'APPLICATION_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.announce_frequency" required/>\n                                                              <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_ANNOUNCE_FREQUENCY\' | translate }}\n                                                            </span>\n                                                               <span data-ng-show="(forms.announce.announce_frequency.$touched || forms.announce.$submitted) && forms.announce.announce_frequency.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ANNOUNCE_FREQUENCY -->\n\n                                                     <!-- START MIN_ANNOUNCE_FREQUENCY -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.min_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.min_announce_frequency.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_MIN_ANNOUNCE_FREQUENCY\' | translate}}</label>\n                                                           <input type="number" min="0" name="min_announce_frequency" placeholder="{{\'APPLICATION_MIN_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.min_announce_frequency" required/>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MIN_ANNOUNCE_FREQUENCY\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.announce.min_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.min_announce_frequency.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MIN_ANNOUNCE_FREQUENCY -->\n\n                                                 <!-- START PERIODIC_ANNOUNCE_FREQUENCY -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.periodic_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.periodic_announce_frequency.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_PERIODIC_ANNOUNCE_FREQUENCY\' | translate}}</label>\n                                                              <input type="number" min="0" name="periodic_announce_frequency" placeholder="{{\'APPLICATION_PERIODIC_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.periodic_announce_frequency"/>\n                                                            <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE_FREQUENCY\' | translate }}\n                                                           </span>\n                                                               <span data-ng-show="(forms.announce.periodic_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.periodic_announce_frequency.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PERIODIC_ANNOUNCE_FREQUENCY -->\n\n                                                    <!-- START RANDOM_PERIODIC_ANNOUNCE -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.random_periodic_announce.$touched || forms.announce.$submitted) && forms.announce.random_periodic_announce.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_RANDOM_PERIODIC_ANNOUNCE\' | translate}}</label>\n                                                         <ui-select data-ng-model="queue.random_periodic_announce" name="random_periodic_announce" theme="bootstrap">\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_RANDOM_PERIODIC_ANNOUNCE\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.announce.random_periodic_announce.$touched || forms.announce.$submitted) && forms.announce.random_periodic_announce.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END RANDOM_PERIODIC_ANNOUNCE -->\n\n                                                       <!-- START ANNOUNCE_HOLDTIME -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_holdtime.$touched || forms.announce.$submitted) && forms.announce.announce_holdtime.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_ANNOUNCE_HOLDTIME\' | translate}}</label>\n                                                                <ui-select data-ng-model="queue.announce_holdtime" name="announce_holdtime" theme="bootstrap">\n                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\',\'once\'] | filter: $select.search">\n                                                                               <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                                  </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_ANNOUNCE_HOLDTIME\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.announce.announce_holdtime.$touched || forms.announce.$submitted) && forms.announce.announce_holdtime.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ANNOUNCE_HOLDTIME -->\n\n                                                      <!-- START ANNOUNCE_POSITION -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_position.$touched || forms.announce.$submitted) && forms.announce.announce_position.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_ANNOUNCE_POSITION\' | translate}}</label>\n                                                                <ui-select data-ng-model="queue.announce_position" name="announce_position" theme="bootstrap">\n                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\',\'limit\',\'more\'] | filter: $select.search">\n                                                                             <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.announce.announce_position.$touched || forms.announce.$submitted) && forms.announce.announce_position.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ANNOUNCE_POSITION -->\n\n                                                      <!-- START ANNOUNCE_POSITION_LIMIT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_position_limit.$touched || forms.announce.$submitted) && forms.announce.announce_position_limit.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_ANNOUNCE_POSITION_LIMIT\' | translate}}</label>\n                                                          <input type="number" min="0" name="announce_position_limit" placeholder="{{\'APPLICATION_ANNOUNCE_POSITION_LIMIT\' | translate}}" class="form-control" data-ng-model="queue.announce_position_limit"/>\n                                                                <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION_LIMIT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.announce.announce_position_limit.$touched || forms.announce.$submitted) && forms.announce.announce_position_limit.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ANNOUNCE_POSITION_LIMIT -->\n\n                                                        <!-- START REPORTHOLDTIME -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.reportholdtime.$touched || forms.announce.$submitted) && forms.announce.reportholdtime.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_REPORTHOLDTIME\' | translate}}</label>\n                                                           <ui-select data-ng-model="queue.reportholdtime" name="reportholdtime" theme="bootstrap">\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_REPORTHOLDTIME\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.announce.reportholdtime.$touched || forms.announce.$submitted) && forms.announce.reportholdtime.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END REPORTHOLDTIME -->\n\n                                         </div>\n                                                        <div class="col-md-6">\n                                                                <p><h3>{{\'APPLICATION_SOUNDS\' | translate}}</h3></p>\n                                                                <!-- START QUEUE_REPORTHOLD -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_reporthold.$touched || forms.announce.$submitted) && forms.announce.queue_reporthold.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_QUEUE_REPORTHOLD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <ui-select data-ng-model="queue.queue_reporthold" name="queue_reporthold" theme="bootstrap" required>\n                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                                      <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                          </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span class="help-block">\n                                                                             {{ \'DESCRIPTION_QUEUE_REPORTHOLD\' | translate }}\n                                                                    </span>\n                                                                       <span data-ng-show="(forms.announce.queue_reporthold.$touched || forms.announce.$submitted) && forms.announce.queue_reporthold.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END QUEUE_REPORTHOLD -->\n\n                                                               <!-- START QUEUE_YOUARENEXT -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_youarenext.$touched || forms.announce.$submitted) && forms.announce.queue_youarenext.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_QUEUE_YOUARENEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <ui-select data-ng-model="queue.queue_youarenext" name="queue_youarenext" theme="bootstrap" required>\n                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                                      <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                          </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span class="help-block">\n                                                                             {{ \'DESCRIPTION_QUEUE_YOUARENEXT\' | translate }}\n                                                                    </span>\n                                                                       <span data-ng-show="(forms.announce.queue_youarenext.$touched || forms.announce.$submitted) && forms.announce.queue_youarenext.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END QUEUE_YOUARENEXT -->\n\n                                                       <!-- START QUEUE_THEREARE -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_thereare.$touched || forms.announce.$submitted) && forms.announce.queue_thereare.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_QUEUE_THEREARE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <ui-select data-ng-model="queue.queue_thereare" name="queue_thereare" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_THEREARE\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.announce.queue_thereare.$touched || forms.announce.$submitted) && forms.announce.queue_thereare.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_THEREARE -->\n\n                                                 <!-- START QUEUE_CALLSWAITING -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_callswaiting.$touched || forms.announce.$submitted) && forms.announce.queue_callswaiting.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_QUEUE_CALLSWAITING\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                           <ui-select data-ng-model="queue.queue_callswaiting" name="queue_callswaiting" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_CALLSWAITING\' | translate }}\n                                                          </span>\n                                                               <span data-ng-show="(forms.announce.queue_callswaiting.$touched || forms.announce.$submitted) && forms.announce.queue_callswaiting.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_CALLSWAITING -->\n\n                                                     <!-- START QUEUE_HOLDTIME -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_holdtime.$touched || forms.announce.$submitted) && forms.announce.queue_holdtime.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_QUEUE_HOLDTIME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <ui-select data-ng-model="queue.queue_holdtime" name="queue_holdtime" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_HOLDTIME\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.announce.queue_holdtime.$touched || forms.announce.$submitted) && forms.announce.queue_holdtime.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_HOLDTIME -->\n\n                                                 <!-- START QUEUE_MINUTES -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_minutes.$touched || forms.announce.$submitted) && forms.announce.queue_minutes.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_QUEUE_MINUTES\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="queue.queue_minutes" name="queue_minutes" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MINUTES\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.announce.queue_minutes.$touched || forms.announce.$submitted) && forms.announce.queue_minutes.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_MINUTES -->\n\n                                                  <!-- START QUEUE_MINUTE -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_minute.$touched || forms.announce.$submitted) && forms.announce.queue_minute.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_QUEUE_MINUTE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <ui-select data-ng-model="queue.queue_minute" name="queue_minute" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MINUTE\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.announce.queue_minute.$touched || forms.announce.$submitted) && forms.announce.queue_minute.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_MINUTE -->\n\n                                                   <!-- START QUEUE_SECONDS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_seconds.$touched || forms.announce.$submitted) && forms.announce.queue_seconds.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_QUEUE_SECONDS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="queue.queue_seconds" name="queue_seconds" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_SECONDS\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.announce.queue_seconds.$touched || forms.announce.$submitted) && forms.announce.queue_seconds.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_SECONDS -->\n\n                                                  <!-- START QUEUE_THANKYOU -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_thankyou.$touched || forms.announce.$submitted) && forms.announce.queue_thankyou.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_QUEUE_THANKYOU\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <ui-select data-ng-model="queue.queue_thankyou" name="QUEUE_THANKYOU" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_THANKYOU\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.announce.queue_thankyou.$touched || forms.announce.$submitted) && forms.announce.queue_thankyou.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_THANKYOU -->\n\n                                         </div>\n                                        </div>\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n                                      <!-- ADVANCED TAB -->\n                                 <div class="tab-pane" id="tab_1_3">\n                                           <form name="forms.advanced" data-ng-submit="forms.advanced.$valid && updateVoiceQueue()" novalidate>\n\n                                                        <div class="row">\n                                                             <div class="col-md-6">\n\n                                                      <!-- START AUTOPAUSE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.autopause.$touched || forms.advanced.$submitted) && forms.advanced.autopause.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_AUTOPAUSE\' | translate}}</label>\n                                                                <ui-select data-ng-model="queue.autopause" name="autopause" theme="bootstrap">\n                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\',\'all\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_AUTOPAUSE\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.advanced.autopause.$touched || forms.advanced.$submitted) && forms.advanced.autopause.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END AUTOPAUSE -->\n\n                                                      <!-- START RINGINUSE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.ringinuse.$touched || forms.advanced.$submitted) && forms.advanced.ringinuse.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_RINGINUSE\' | translate}}</label>\n                                                                <ui-select data-ng-model="queue.ringinuse" name="ringinuse" theme="bootstrap">\n                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_RINGINUSE\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.advanced.ringinuse.$touched || forms.advanced.$submitted) && forms.advanced.ringinuse.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END RINGINUSE -->\n\n                                                      <!-- START MEMBER_DELAY -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.memberdelay.$touched || forms.advanced.$submitted) && forms.advanced.memberdelay.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_MEMBER_DELAY\' | translate}}</label>\n                                                             <input type="number" min="0" name="memberdelay" placeholder="{{\'APPLICATION_MEMBER_DELAY\' | translate}}" class="form-control" data-ng-model="queue.memberdelay" required/>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MEMBER_DELAY\' | translate }}\n                                                          </span>\n                                                               <span data-ng-show="(forms.advanced.memberdelay.$touched || forms.advanced.$submitted) && forms.advanced.memberdelay.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MEMBER_DELAY -->\n\n                                                   <!-- START ACW -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.acw.$touched || forms.advanced.$submitted) && forms.advanced.acw.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_ACW\' | translate}}</label></br>\n                                                         <input\n                                                                bs-switch\n                                                             class="form-control"\n                                                          ng-model="queue.acw"\n                                                          type="checkbox"\n                                                               switch-active="{{ recordSwitch.isActive }}"\n                                                           switch-on-text="{{ recordSwitch.onText }}"\n                                                            switch-off-text="{{ recordSwitch.offText }}"\n                                                          switch-on-color="{{ recordSwitch.onColor }}"\n                                                          switch-off-color="{{ recordSwitch.offColor }}"\n                                                                switch-animate="{{ recordSwitch.animate }}"\n                                                           switch-size="{{ recordSwitch.size }}"\n                                                         switch-label="{{ recordSwitch.label }}"\n                                                               switch-icon="{{ recordSwitch.icon }}"\n                                                         switch-radio-off="{{ recordSwitch.radioOff }}"\n                                                                switch-label-width="{{ recordSwitch.labelWidth }}"\n                                                            switch-handle-width="{{ recordSwitch.handleWidth }}">\n                                                         <span class="help-block">\n                                                                     {{ \'DESCRIPTION_ACW\' | translate }}\n                                                         </span>\n                                                               <span data-ng-show="(forms.advanced.acw.$touched || forms.advanced.$submitted) && forms.advanced.acw.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_ACW\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                             </span>\n                                                       </div>\n                                                        <!-- END ACW -->\n\n                                            </div>\n                                                        <div class="col-md-6">\n\n                                                      <!-- START TIMEOUTRESTART -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.timeoutrestart.$touched || forms.advanced.$submitted) && forms.advanced.timeoutrestart.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_TIMEOUTRESTART\' | translate}}</label>\n                                                           <ui-select data-ng-model="queue.timeoutrestart" name="timeoutrestart" theme="bootstrap">\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_TIMEOUTRESTART\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.advanced.timeoutrestart.$touched || forms.advanced.$submitted) && forms.advanced.timeoutrestart.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TIMEOUTRESTART -->\n\n                                                 <!-- START MONITOR_FORMAT -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.monitor_format.$touched || forms.advanced.$submitted) && forms.advanced.monitor_format.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_MONITOR_FORMAT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <ui-select data-ng-model="queue.monitor_format" name="monitor_format" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="monFormat.value as monFormat in monitorFormats | filter: $select.search">\n                                                                          <div ng-bind-html="monFormat.name | highlight: $select.search"></div>\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MONITOR_FORMAT\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.advanced.monitor_format.$touched || forms.advanced.$submitted) && forms.advanced.monitor_format.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MONITOR_FORMAT -->\n\n                                                 <!-- START CONTEXT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.context.$touched || forms.advanced.$submitted) && forms.advanced.context.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}</label>\n                                                          <ui-select data-ng-model="queue.context" name="context" theme="bootstrap">\n                                                                    <ui-select-match allow-clear placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                  <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                                                                                <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_VOICE_CONTEXT\' | translate }}\n                                                         </span>\n                                                               <span data-ng-show="(forms.advanced.context.$touched || forms.advanced.$submitted) && forms.advanced.context.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONTEXT -->\n\n                                                        <!-- START ACW_TIMEOUT -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.acwTimeout.$touched || forms.advanced.$submitted) && forms.advanced.acwTimeout.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_ACW_TIMEOUT\' | translate}}</label>\n                                                              <input type="number" min="0" name="acwTimeout" placeholder="{{\'APPLICATION_ACW_TIMEOUT\' | translate}}" class="form-control" data-ng-model="queue.acwTimeout" required/>\n                                                             <span class="help-block">\n                                                                     {{ \'DESCRIPTION_ACW_TIMEOUT\' | translate }}\n                                                         </span>\n                                                               <span data-ng-show="(forms.advanced.acwTimeout.$touched || forms.advanced.$submitted) && forms.advanced.acwTimeout.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ACW_TIMEOUT -->\n\n                                            </div>\n                                        </div>\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
+a.put("app/channels/mail/inbox/view/view.templates.modal.html",'<div class="modal-header" data-ng-init="initModal()">\n  <h3 class="modal-title">{{ \'APPLICATION_TEMPLATES\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="note note-info" data-ng-show="!templates.length">\n    <h4 class="block">Info!</h4>\n    <p>\n      {{\'MESSAGE_NO_TEMPLATES_AVAILABLE\' | translate}}\n    </p>\n  </div>\n  <form name="form" data-ng-show="templates.length" novalidate>\n    <div class="form-group">\n      <ui-select data-ng-model="item.template" theme="bootstrap">\n        <ui-select-match placeholder="Select a template in the list or search his name...">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="template in templates | propsFilter: {name: $select.search}">\n          <div ng-bind-html="template.name | highlight: $select.search"></div>\n          <small data-ng-show="template.description">\n            {{\'APPLICATION_DESCRIPTION\' | translate}}: {{template.description}}\n          </small>\n        </ui-select-choices>\n      </ui-select>\n    </div>\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()" data-ng-show="templates.length">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/queue/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid && form.general.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <!-- START TIMEOUT -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid}">\n      <label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="number" min="0" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n      <span data-ng-show="(form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid && form.general.timeout.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TIMEOUT -->\n\n    <!-- START STRATEGY -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid}">\n      <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n        <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid && form.general.strategy.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END STRATEGY -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/queue/list/list.html",'<div class="row">\n   <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-envelope"></i>\n                                         <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-docs"></i>\n                                             <a href="#">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-ng-click="createItem()">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }}\n                                         </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                          <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="note note-warning" data-ng-hide="teams.length">\n                           <h4 class="block">Warning!</h4>\n                               <p>\n                                    {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n                             </p>\n                  </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body">\n                                               <label for="penalty">{{\'APPLICATION_PENALTY\' | translate}}</label>\n                                          <div class="input-group input-small mbottom20">\n                                                       <input type="number" class="spinner-input form-control" maxlength="3" data-ng-model="queue.penalty" readonly>\n                                                 <div class="spinner-buttons input-group-btn btn-group-vertical">\n                                                              <button type="button" class="btn spinner-up btn-xs blue" data-ng-click="queue.penalty=queue.penalty+1">\n                                                                       <i class="fa fa-angle-up"></i>\n                                                                </button>\n                                                             <button type="button" class="btn spinner-down btn-xs blue" data-ng-disabled="!queue.penalty" data-ng-click="queue.penalty=queue.penalty-1">\n                                                                   <i class="fa fa-angle-down"></i>\n                                                              </button>\n                                                     </div>\n                                                </div>\n                                                <div class="form-group last">\n                                                 <div class="col-md-12" id="multi-select-team">\n                                                        </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/mail/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/channels/mail/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                     <i data-ng-show="queue" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="queue">\n                                     <a href="#">{{queue.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET main.channels -->\n                        <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{queue.name}}\n                                        </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                      {{user.role}}\n                         </div> -->\n                    </div>\n                        <!-- END SIDEBAR USER TITLE -->\n\n                     <!-- SIDEBAR MENU -->\n                 <div class="profile-usermenu">\n                                <ul class="nav">\n                                      <li data-ng-class="{active: $state.is(\'main.channels.mail.queues.view.settings\')}">\n                                         <a data-ng-href="/channels/mail/queues/view/{{queue.id}}/settings">\n                                                   <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.mail.queues.view.agents\')}">\n                                                   <a data-ng-href="/channels/mail/queues/view/{{queue.id}}/agents">\n                                                             <i class="icon-people"></i>\n                                                           {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                                  </li>\n                                         </ul>\n                                 </div>\n                                        <!-- END MENU -->\n                             </div>\n                                <!-- END PORTLET main.channels -->\n                    </div>\n                        <!-- END BEGIN PROFILE SIDEBAR -->\n                    <!-- BEGIN PROFILE CONTENT -->\n                        <div ui-view class="profile-content">\n                 </div>\n                        <!-- END PROFILE CONTENT -->\n          </div>\n        </div>\n        <!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/queue/view/view.settings.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateMailQueue()" novalidate>\n                                     <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n                                          <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n                                      </div>\n                                        <!-- END DESCRIPTION -->\n\n                                    <!-- START TIMEOUT -->\n                                        <div class="form-group">\n                                              <label class="control-label">Agent Timeout</label>\n                                            <input type="number" name="timeout" placeholder="Timeout" class="form-control" min="1" data-ng-model="queue.timeout"/>\n                                        </div>\n                                        <!-- END TIMEOUT -->\n\n                                        <!-- START HEADER SHAPE -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n                                         <ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                     <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                 </ui-select-choices>\n                                          </ui-select>\n                                  </div>\n                                        <!-- END HEADER SHAPE -->\n                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                       </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/mail/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns  class="ui-grid" ui-grid-tree-view ui-grid-expandable-row ui-grid-pagination auto-resize>\n                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/realtime/view/agent/agent.modal.info.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_INTERFACE_INFO\' | translate }}</h3>\n</div>\n<div class="modal-body">\n<div data-ng-if="agent.ipaddr" class="well">\n  <div>{{agent.ipaddr}}:{{agent.port}}</div>\n  <div>{{agent.fullcontact}}</div>\n  <div>{{agent.useragent}}</div>\n  <div>{{agent.lastms}}</div>\n</div>\n<div data-ng-if="!agent.ipaddr" class="alert alert-danger" role="alert">\n  {{\'MESSAGE_NO_AVAILABLE_INFO\' | translate}}\n</div>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="close()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/realtime/view/agent/queue.modal.add.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_JOIN_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <div class="form-group row">\n  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n  <div class="col-md-10">\n    <ui-select multiple ng-model="item.queues" theme="bootstrap" required>\n      <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$item.name}}</ui-select-match>\n      <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n        <div ng-bind-html="queue.name | highlight: $select.search"></div>\n      </ui-select-choices>\n    </ui-select>\n  </div>\n</div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/realtime/view/queue/queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initQueues()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns class="ui-grid" ui-grid-tree-view auto-resize>\n                     <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initSessions()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns class="ui-grid" auto-resize>\n                       <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-directions"></i>\n                                       <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-energy"></i>\n                                   <a href="#">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <div>\n                 <nav class="navbar navbar-default" role="navigation">\n                         <div class="collapse navbar-collapse">\n                                        <ul class="nav navbar-nav">\n                                           <li data-ng-class="{\'active\': $state.is(\'channels.mail.realtime.view.agents\')}">\n                                                  <a href="/channels/mail/realtime/view/agents">\n                                                                {{\'APPLICATION_AGENTS\' | translate}}\n                                                        </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                        </nav>\n                </div>\n\n              <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/realtime/view/view.queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n       <div class="col-md-12">\n               <!-- START TABLE -->\n          <div id="grid1" ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-tree-view class="grid">\n                 <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/sms/account/list/list.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="glyphicon glyphicon-comment"></i>\n                                   <a href="#">{{ \'APPLICATION_SMS\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-notebook"></i>\n                                 <a href="/channels/sms/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                          </li>\n                 </ul>\n         </div>\n        </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn btn-default" href="#" data-ng-click="gridOptions.getPage();">\n                                                   <i class="icon-reload"></i>\n                                           </a>\n                                  </div>\n                                        <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/sms/accounts/wizard">\n                                                     <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }}\n                                               </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/sms/account/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/sms/accounts/view/{{account.id}}/actions/wizard" data-toggle="dropdown">\n                                                  <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n                                                </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/sms/account/view/action/view/view.html","<div>This is the view view.</div>\n"),a.put("app/channels/sms/account/view/action/wizard/wizard.html","<div >\n This is action wizard\n</div>\n"),a.put("app/channels/sms/account/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="glyphicon glyphicon-comment"></i>\n                                   <a href="#">{{ \'APPLICATION_SMS\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-notebook"></i>\n                                 <a href="/channels/sms/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                  <i class="fa fa-angle-right" data-ng-show="account"></i>\n                              </li>\n                         <li data-ng-show="account">\n                                   <a href="#">{{ account.description || account.name }}</a>\n                             </li>\n                 </ul>\n         </div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n               <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET main.channels -->\n                        <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img ng-src="assets/images/media/account.png" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{ account.description || account.name }}\n                                     </div>\n                                        <div class="profile-usertitle-job">\n                                           {{account.email}}\n                                     </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li ng-class="{active: $state.is(\'main.channels.sms.accounts.view.settings\')}">\n                                                     <a href="/channels/sms/accounts/view/{{account.id}}/settings">\n                                                        <i class="icon-settings"></i>\n                                                 {{\'APPLICATION_SETTINGS\' | translate}} </a>\n                                         </li>\n                                         <li ng-class="{active: $state.includes(\'main.channels.sms.accounts.view.actions\')}">\n                                                        <a href="/channels/sms/accounts/view/{{account.id}}/actions/list">\n                                                    <i class="icon-directions"></i>\n                                                       {{\'APPLICATION_ACTIONS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <div ui-view class="profile-content"></div>\n           <!-- END PROFILE CONTENT -->\n  </div>\n<!-- END PAGE CONTENT-->\n</div>\n'),a.put("app/channels/sms/account/view/view.settings.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                                 <!-- <li>\n                                             <a href="#" data-target="#tab_1_2" data-toggle="tab">IMAP</a>\n                                 </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">SMTP</a>\n                                 </li> -->\n                             </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.info" data-ng-submit="forms.info.$valid && updateItemSmsAccount()" novalidate>\n                                                      <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n\n\n                                                       <!-- START FIDELITY -->\n                                                       <!-- <div class="form-group">\n                                                         <label class="control-label">{{\'APPLICATION_FIDELITY\' | translate}}</label></br>\n                                                            <input\n                                                                bs-switch\n                                                             class="form-control"\n                                                          data-ng-model="account.fidelity"\n                                                              type="checkbox"\n                                                               name="auth"\n                                                           switch-active="{{ recordSwitch.isActive }}"\n                                                           switch-on-text="{{ recordSwitch.onText }}"\n                                                            switch-off-text="{{ recordSwitch.offText }}"\n                                                          switch-on-color="{{ recordSwitch.onColor }}"\n                                                          switch-off-color="{{ recordSwitch.offColor }}"\n                                                                switch-animate="{{ recordSwitch.animate }}"\n                                                           switch-size="{{ recordSwitch.size }}"\n                                                         switch-label="{{ recordSwitch.label }}"\n                                                               switch-icon="{{ recordSwitch.icon }}"\n                                                         switch-radio-off="{{ recordSwitch.radioOff }}"\n                                                                switch-label-width="{{ recordSwitch.labelWidth }}"\n                                                            switch-handle-width="{{ recordSwitch.handleWidth }}">\n                                                 </div> -->\n                                                    <!-- END FIDELITY -->\n\n                                                       <!-- START TIMEOUT -->\n                                                        <!-- <div class="form-group" data-ng-if="account.fidelity" data-ng-class="{\'has-error\': (forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <input type="number" min="0" name="timeout" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.timeout" required/>\n                                                                <span data-ng-show="(forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid && forms.info.timeout.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid && forms.info.timeout.$error.number" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                          </span>\n                                                       </div> -->\n                                                    <!-- END TIMEOUT -->\n\n                                                        <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <!-- START TYPE -->\n\n                                         <!-- <div class="form-group">\n                                                 <label class="control-label">{{\'APPLICATION_TYPE\' | translate}}</label>\n                                                     <ui-select data-ng-model="account.type" name="type" theme="bootstrap">\n                                                                <ui-select-match placeholder="{{\'APPLICATION_TYPE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                            <ui-select-choices repeat="filter in [\'TWILIO\',\'SKEBBY\'] | filter: $select.search">\n                                                                       <div data-ng-bind="filter | highlight: $select.search"></div>\n                                                         </ui-select-choices>\n                                                  </ui-select>\n                                          </div> -->\n                                                    <!-- END TYPE -->\n                                                     <!-- START PHONE -->\n                                                  <div ng-if= "account.type == \'twilio\' || account.type == \'skebby\'" class="form-group" data-ng-class="{\'has-error\': ( forms.info.phone.$touched ||forms.info.$submitted) && forms.info.phone.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_PHONE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="account.phone" name="phone" required/>\n                                                                <span data-ng-show="(forms.info.phone.$touched || forms.in.$submitted) && forms.info.phone.$invalid && forms.info.phone.$error.required"  class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PHONE -->\n                                                    <!-- START SID -->\n                                                    <div ng-if= "account.type == \'twilio\'" class="form-group" data-ng-class="{\'has-error\': (forms.info.sid.$touched || forms.info.$submitted) && forms.info.sid.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_SID\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <input type="text" name="sid" placeholder="{{\'APPLICATION_SID\' | translate}}" class="form-control" data-ng-model="account.sid" name="sid" required/>\n                                                                <span data-ng-show="(forms.info.sid.$touched || forms.info.$submitted) && forms.info.sid.$invalid && forms.info.sid.$error.required"  class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END SID -->\n                                                      <!-- START TOKEN -->\n                                                  <div ng-if= "account.type == \'twilio\'" class="form-group" data-ng-class="{\'has-error\': (forms.info.token.$touched || forms.info.$submitted) && forms.info.token.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_TOKEN\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="token" placeholder="{{\'APPLICATION_TOKEN\' | translate}}" class="form-control" data-ng-model="account.token" name="token" required/>\n                                                                <span data-ng-show="(forms.info.token.$touched || forms.info.$submitted) && forms.info.token.$invalid && forms.info.token.$error.required"  class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END SID -->\n                                                      <!-- START USERNAME -->\n                                                       <div ng-if= "account.type == \'skebby\'" class="form-group" data-ng-class="{\'has-error\': (forms.info.username.$touched || forms.info.$submitted) && forms.info.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" name="username" required/>\n                                                            <span data-ng-show="(forms.info.username.$touched || forms.info.$submitted) && forms.info.username.$invalid && forms.info.username.$error.required"  class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START PASSWORD -->\n                                                       <div ng-if= "account.type == \'skebby\'" class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n                                                                <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid && forms.info.password.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n                                                 <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n\n\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
+a.put("app/channels/sms/account/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n <div class="col-md-12">\n               <!-- BEGIN PAGE HEADER-->\n             <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="glyphicon glyphicon-comment"></i>\n                                   <a href="#">{{ \'APPLICATION_SMS\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-notebook"></i>\n                                 <a href="/channels/sms/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                          </li>\n                 </ul>\n         </div>\n                <!-- END PAGE HEADER-->\n\n             <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n             <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="formValidation(forms.info.$valid)">\n                                                    <form name="forms.info" novalidate>\n                                                           <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                 <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                                   <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n\n                                                           <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                               </div>\n                                                                <!-- END DESCRIPTION -->\n                <!-- START TYPE -->\n\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.info.type.$touched || forms.info.$submitted) && forms.info.type.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n                              <ui-select-match placeholder="{{\'APPLICATION_TYPE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                    <ui-select-choices repeat="filter in [\'twilio\',\'skebby\'] | filter: $select.search">\n                                 <div data-ng-bind="filter | highlight: $select.search"></div>\n                               </ui-select-choices>\n                                </ui-select>\n                                                                <span data-ng-show="(forms.info.type.$touched || forms.info.$submitted) && forms.info.type.$invalid && forms.info.type.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                <!-- END TYPE -->\n                                                             <!-- START PHONE -->\n                                                          <div ng-if= "item.type == \'TWILIO\' || item.type == \'SKEBBY\'" class="form-group" data-ng-class="{\'has-error\': ( forms.info.phone.$touched ||forms.info.$submitted) && forms.info.phone.$invalid}">\n                                                                       <label class="control-label">{{\'APPLICATION_PHONE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <input type="number"  placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="item.phone" name="phone" required/>\n                                                                     <span data-ng-show="(forms.info.phone.$touched || forms.in.$submitted) && forms.info.phone.$invalid && forms.info.phone.$error.required"  class="help-block help-block-error">\n                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END PHONE -->\n                <!-- START SID -->\n                <div ng-if= "item.type == \'TWILIO\'" class="form-group" data-ng-class="{\'has-error\': ( forms.info.sid.$touched ||forms.info.$submitted) && forms.info.sid.$invalid}">\n                  <label class="control-label">{{\'APPLICATION_SID\' | translate}}<span class="required" aria-required="true">*</span></label>\n                  <input type="text" name="sid" placeholder="{{\'APPLICATION_SID\' | translate}}" class="form-control" data-ng-model="item.sid" name="sid" required/>\n                  <span data-ng-show="(forms.info.sid.$touched || forms.in.$submitted) && forms.info.sid.$invalid && forms.info.sid.$error.required"  class="help-block help-block-error">\n                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                  </span>\n                </div>\n                <!-- END SID -->\n                <!-- START TOKEN -->\n                <div ng-if= "item.type == \'TWILIO\'" class="form-group" data-ng-class="{\'has-error\': (forms.info.token.$touched || forms.info.$submitted) && forms.info.token.$invalid}">\n                  <label class="control-label">{{\'APPLICATION_TOKEN\' | translate}}<span class="required" aria-required="true">*</span></label>\n                  <input type="text" name="token" placeholder="{{\'APPLICATION_TOKEN\' | translate}}" class="form-control" data-ng-model="item.token" name="token" required/>\n                  <span data-ng-show="(forms.info.token.$touched || forms.info.$submitted) && forms.info.token.$invalid && forms.info.token.$error.required"  class="help-block help-block-error">\n                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                  </span>\n                </div>\n                <!-- END SID -->\n                <!-- START USERNAME -->\n                <div ng-if= "item.type == \'SKEBBY\'" class="form-group" data-ng-class="{\'has-error\': (forms.info.username.$touched || forms.info.$submitted) && forms.info.username.$invalid}">\n                  <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                  <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.username" name="username" required/>\n                  <span data-ng-show="(forms.info.username.$touched || forms.info.$submitted) && forms.info.username.$invalid && forms.info.username.$error.required"  class="help-block help-block-error">\n                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                  </span>\n                </div>\n                <!-- END USERNAME -->\n\n                <!-- START PASSWORD -->\n                <div ng-if= "item.type == \'SKEBBY\'" class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n                  <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                  <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                  <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid && forms.info.password.$error.required" class="help-block help-block-error">\n                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                  </span>\n                </div>\n                <!-- END PASSWORD -->\n                                                               <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n\n\n                                              <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/sms/inbox/list/list.html",'<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="glyphicon glyphicon-comment"></i>\n                                   <a href="#">{{ \'APPLICATION_SMS\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-note"></i>\n                                     <a href="/channels/sms/inbox/list">{{ \'APPLICATION_INBOX\' | translate }}</a>\n                                </li>\n                 </ul>\n         </div>\n        </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-note font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_INBOX\' | translate }}</a> </span>\n                             </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn btn-default" href="#" data-ng-click="gridOptions.getPage();">\n                                                   <i class="icon-reload"></i>\n                                           </a>\n                                  </div>\n                                        <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/sms/inbox/view/compose">\n                                                  <i class="icon-plus"></i> {{ \'APPLICATION_NEW_MESSAGE\' | translate }}\n                                               </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/sms/inbox/sms/sms.html",'<div class="message">\n  <div class="row">\n    <div class="col-md-6">\n      <span class="bold">From: </span>\n      <span>{{smsMessage.from}}</span>\n      <br>\n      <span class="bold">To: </span>\n      <span>{{smsMessage.to}} </span>\n      <br>\n      <!-- <span data-ng-if="mailMessage.cc.length" class="bold">Cc: </span>\n      <span data-ng-if="mailMessage.cc.length">{{mailMessage.cc}} </span> -->\n    </div>\n    <div class="col-md-6">\n      <span class="pull-right" data-ng-show="smsMessage.User">{{\'APPLICATION_SENT_BY\' | translate}}: <strong>{{smsMessage.User.fullname}}</strong></span>\n    </div>\n  </div>\n  <div class="row">\n    <div class="col-md-12">\n      <span class="bold">Message: </span>\n      <span>{{smsMessage.body}}</span>\n      <br>\n\n    </div>\n\n  </div>\n  <br>\n  <span class="todo-tasklist-date">\n    <span class="pull-right">\n      <a data-ng-click="(smsMessage.status == \'SENDING\' || smsMessage.status == \'FAILED\') && retry(smsMessage.id)" href="#" class="btn default btn-xs inactive-link" data-ng-class="{\'green-stripe\': smsMessage.status == \'SENT\' || smsMessage.status == \'RECEIVED\', \'blue-stripe\': smsMessage.status == \'SENDING\', \'red-stripe\': smsMessage.status == \'FAILED\'}"> {{smsMessage.status | uppercase}}\n        <i data-ng-class="{\'fa fa-check\': smsMessage.status == \'SENT\' || smsMessage.status == \'RECEIVED\', \'fa fa-warning\': smsMessage.status == \'SENDING\', \'fa fa-times\': smsMessage.status == \'FAILED\'}"></i>\n      </a>\n    </span>\n    <i class="icon-calendar"></i> <span am-time-ago="smsMessage.updatedAt"></span>\n  </span>\n  <hr>\n  <!-- <span class="body text-left" data-ng-bind-html="smsMessage.body" style="white-space: pre-wrap;"></span> -->\n  <!-- <hr data-ng-if="mailMessage.MailAttachments.length">\n  <div data-ng-repeat="mailAttachment in mailMessage.MailAttachments">\n    <strong>{{mailAttachment.name}}</strong>\n    <span>\n      {{mailAttachment.size}}B </span>\n      <a target="_self" download="{{mailAttachment.name}}" href="api/mail/attachments/{{mailAttachment.id}}">\n        {{ \'APPLICATION_DOWNLOAD\' | translate }}\n      </a>\n    </div> -->\n  </div>\n'),a.put("app/channels/sms/inbox/view/view.html",'<div class="row">\n  <div class="col-md-12">\n    <div class="page-bar">\n      <ul class="page-breadcrumb">\n        <li>\n          <i class="icon-rocket"></i>\n          <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n          <i class="fa fa-angle-right"></i>\n        </li>\n        <li>\n          <i class="icon-puzzle"></i>\n          <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n          <i class="fa fa-angle-right"></i>\n        </li>\n        <li>\n          <i class="glyphicon glyphicon-comment"></i>\n          <a href="#">{{ \'APPLICATION_SMS\' | translate }}</a>\n          <i class="fa fa-angle-right"></i>\n        </li>\n        <li>\n                                 <i class="icon-note"></i>\n                                     <a href="/channels/sms/inbox/list">{{ \'APPLICATION_INBOX\' | translate }}</a>\n                                </li>\n      </ul>\n    </div>\n  </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n    <div ui-view></div>\n      </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/sms/inbox/view/view.room.html",'<!-- BEGIN TODO CONTENT -->\n<div class="todo-content" data-ng-init="initRoom()">\n    <div class="portlet light">\n           <!-- <div class="portlet-title">\n                      <div class="caption" data-ng-show="mailRoom">\n                         <i class="icon-bar-chart font-green-sharp hide"></i>\n                          <span class="label label-sm label-default">{{mailRoom.status}}</span> - <span class="caption-subject font-green-sharp bold uppercase">{{mailRoom.subject}}</span>\n                     </div>\n                        <div class="actions" data-ng-switch="mailRoom.status">\n                                <div class="btn-group btn-group-solid" data-ng-show="smsRoom">\n                                        <button type="button" class="btn yellow" data-ng-click="loadNote()" uib-popover="{{\'APPLICATION_ADD_NOTE\' | translate}}" popover-trigger="mouseenter">N</button>\n                            </div>\n                                <div class="btn-group btn-group-solid" data-ng-show="smsRoom">\n                                        <button type="button" class="btn blue" data-ng-click="loadAgents()" uib-popover="{{\'APPLICATION_ASSING_AGENTS\' | translate}}" popover-trigger="mouseenter">A</button>\n                               </div>\n                                <div class="btn-group btn-group-solid">\n                                       <button type="button" class="btn red" data-ng-click="loadTemplate()" uib-popover="{{\'APPLICATION_LOAD_TEMPLATES\' | translate}}" popover-trigger="mouseenter">T</button>\n                             </div>\n                                <div class="btn-group btn-group-solid">\n                                       <button type="button" class="btn green" data-ng-switch-when="NEW" data-ng-click="updateStatus(\'CLOSED\')" uib-popover="{{\'APPLICATION_CLOSE\' | translate}}" popover-trigger="mouseenter">S</button>\n                                        <button type="button" class="btn green" data-ng-switch-when="OPEN" data-ng-click="updateStatus(\'CLOSED\')" uib-popover="{{\'APPLICATION_CLOSE\' | translate}}" popover-trigger="mouseenter">S</button>\n                                       <button type="button" class="btn green" data-ng-switch-when="CLOSED" data-ng-click="updateStatus(\'OPEN\')" uib-popover="{{\'APPLICATION_OPEN\' | translate}}" popover-trigger="mouseenter">O</button>\n                                </div>\n                        </div>\n                </div> -->\n            <div class="portlet-body">\n                    <div class="row">\n                             <div data-ng-show="SmsRoom" data-ng-class="{\'col-md-6 col-sm-6\': SmsRoom}">\n                                 <div ng-scrollbars ng-scrollbars-config="config">\n                                             <ul class="chats">\n                                                    <li data-ng-switch="SmsRoom.status" data-ng-class="{\'in\': smsMessage.status == \'RECEIVED\', \'out\': smsMessage.status == \'SENT\' || smsMessage.status == \'SENDING\' || smsMessage.status == \'FAILED\' || smsMessage.status == \'NOTE\'}" data-ng-repeat="smsMessage in SmsRoom.SmsMessages | orderBy:\'-createdAt\'">\n                                                          <img class="avatar" alt="" data-ng-src="api/users/avatar/{{getCurrentUser().userpic && smsMessage.status === \'SENT\' ? getCurrentUser().userpic : \'unknown_avatar\'}}">\n                                                             <!-- <note message="smsMessage" ng-switch-when="NOTE"></note> -->\n                                                             <sms message="smsMessage" ng-switch-default></sms>\n                                                    </li>\n                                         </ul>\n                                 </div>\n                                </div>\n                                <div data-ng-class="{\'col-md-6 col-sm-6\': SmsRoom, \'col-md-12 col-sm-12\': !SmsRoom}">\n                                     <form name="forms.compose" data-ng-submit="forms.compose.$valid && sendSMS()" class="form-horizontal" novalidate>\n                                             <!-- START HEAD -->\n                                           <div class="form">\n                                                    <!-- START FROM -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.compose.from.$invalid && forms.compose.$submitted}">\n                                                             <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">From:</label>\n                                                                            </div>\n                                                                                <div class="col-md-11">\n                                                                                       <!-- <ui-select data-ng-disabled="form.disableTo" data-ng-model="form.from[0]" theme="bootstrap" name="from" required> -->\n                                                                                    <ui-select data-ng-disabled="form.disableTo" data-ng-model="form.id" theme="bootstrap" name="from" required>\n\n                                                                                                <ui-select-match placeholder="From...">{{$select.selected.name}}</ui-select-match>\n                                                                                            <ui-select-choices repeat="smsAccount.id as smsAccount in smsAccounts | filter: $select.search">\n                                                                                                      <div data-ng-bind-html="smsAccount.name | highlight: $select.search"></div>\n                                                                                                   <small data-ng-bind-html="smsAccount.phone | highlight: $select.search"></small>\n                                                                                              </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="forms.compose.from.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END FROM -->\n\n                                                   <!-- START TO -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.compose.to.$invalid && forms.compose.$submitted}">\n                                                               <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">To:</label>\n                                                                              </div>\n                                                                                <div class="col-md-11">\n                                                                                       <input type="number" name="to" class="form-control todo-taskbody-taskdesc" placeholder="To..." rows="8"  data-ng-disabled="form.disableTo" data-ng-model="form.to">\n\n                                                                                 <!-- <ui-select tagging tagging-label multiple data-ng-model="form.sto" theme="bootstrap" name="to">\n                                                                                          <ui-select-match placeholder="To...">{{$item}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="to in form.to | filter:$select.search">\n                                                                                                    {{to}}\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select> -->\n                                                                                      <span data-ng-show="forms.compose.to.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END TO -->\n\n\n\n                                                 <!-- START SUBJECT -->\n                                                        <!-- <div data-ng-hide="mailRoom" class="form-group" data-ng-class="{\'has-error\': forms.compose.subject.$invalid && forms.compose.$submitted}">\n                                                             <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">Subject:</label>\n                                                                         </div>\n                                                                                <div class="col-md-11">\n                                                                                       <input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="Subject..." rows="8" data-ng-model="form.subject">\n                                                                                 <span data-ng-show="forms.compose.subject.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div> -->\n                                                    <!-- END SUJBECT -->\n\n                                                        <!-- START HTML -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.compose.text.$invalid && forms.compose.$submitted}">\n                                                             <div class="col-md-12">\n                                                                       <!-- <div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.body" name="html"></div> -->\n                                                                  <textarea class="form-control" rows="8" name="name" data-ng-model="form.body" ></textarea>\n                                                                    <span data-ng-show="forms.compose.text.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                        <!-- END HTML -->\n                                                     <div class="col-md-6">\n                                                                <div class="form-actions right todo-form-actions" style="border-top: none;">\n                                                                  <input type="submit" value="{{ \'APPLICATION_SEND\' | translate }}" class="btn btn-sm green-meadow" data-ng-disabled="form.disabled || !form.body || !form.to">\n                                                                       <input type="button" value="{{ \'APPLICATION_CANCEL\' | translate }}"class="btn btn-sm btn-default" data-ng-click="cancel()">\n                                                         </div>\n                                                        </div>\n\n                                              </div>\n                                        </form>\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n<!-- END TODO CONTENT -->\n'),a.put("app/channels/sms/inbox/view/view.templates.modal.html",'<div class="modal-header" data-ng-init="initModal()">\n  <h3 class="modal-title">{{ \'APPLICATION_TEMPLATES\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="note note-info" data-ng-show="!templates.length">\n    <h4 class="block">Info!</h4>\n    <p>\n      {{\'MESSAGE_NO_TEMPLATES_AVAILABLE\' | translate}}\n    </p>\n  </div>\n  <form name="form" data-ng-show="templates.length" novalidate>\n    <div class="form-group">\n      <ui-select data-ng-model="item.template" theme="bootstrap">\n        <ui-select-match placeholder="Select a template in the list or search his name...">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="template in templates | propsFilter: {name: $select.search}">\n          <div ng-bind-html="template.name | highlight: $select.search"></div>\n          <small data-ng-show="template.description">\n            {{\'APPLICATION_DESCRIPTION\' | translate}}: {{template.description}}\n          </small>\n        </ui-select-choices>\n      </ui-select>\n    </div>\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()" data-ng-show="templates.length">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/chanspy/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_CHANSPY\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START PREFIX -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.prefix.$touched || form.$submitted) && form.prefix.$invalid}">\n      <label class="control-label">{{\'APPLICATION_PREFIX\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="prefix" placeholder="{{\'APPLICATION_PREFIX\' | translate}}" class="form-control" data-ng-model="item.prefix" required/>\n      <span data-ng-show="(form.prefix.$touched || form.$submitted) && form.prefix.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END PREFIX -->\n\n    <!-- START OPTIONS -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.options.$touched || form.$submitted) && form.options.$invalid}">\n      <label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select multiple data-ng-model="item.options" name="options" theme="bootstrap" ui-required="true">\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.value}}: {{$item.name | translate}}</ui-select-match>\n        <ui-select-choices repeat="option.value as option in options | filter: $select.search">\n          <div ng-bind-html="option.value + \': \' + (option.name | translate) | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(form.options.$touched || form.$submitted) && form.options.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END OPTIONS -->\n\n    <!-- START AUTH -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_AUTH\' | translate}}</label></br>\n      <input\n      bs-switch\n      class="form-control"\n      ng-model="item.auth"\n      type="checkbox"\n      name="auth"\n      data-ng-init="item.auth = 0"\n      switch-active="{{ recordSwitch.isActive }}"\n      switch-on-text="{{ recordSwitch.onText }}"\n      switch-off-text="{{ recordSwitch.offText }}"\n      switch-on-color="{{ recordSwitch.onColor }}"\n      switch-off-color="{{ recordSwitch.offColor }}"\n      switch-animate="{{ recordSwitch.animate }}"\n      switch-size="{{ recordSwitch.size }}"\n      switch-label="{{ recordSwitch.label }}"\n      switch-icon="{{ recordSwitch.icon }}"\n      switch-radio-off="{{ recordSwitch.radioOff }}"\n      switch-label-width="{{ recordSwitch.labelWidth }}"\n      switch-handle-width="{{ recordSwitch.handleWidth }}">\n    </div>\n    <!-- END AUTH -->\n\n    <!-- START PASSWORD -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.password.$touched || form.$submitted) && form.password.$invalid}">\n      <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span data-ng-show="item.auth" class="required" aria-required="true">*</span></label>\n      <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" data-ng-disabled="!item.auth" data-ng-required="item.auth"/>\n      <span data-ng-show="(form.password.$touched || form.$submitted) && form.password.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END PASSWORD -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/chanspy/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-wrench"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-eye"></i>\n                                      <a href="/channels/voice/chanspys/list">{{ \'APPLICATION_CHANSPY\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_CHANSPY\' | translate }}</a> </span>\n                           </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="createItem()">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CHANSPY\' | translate }}\n                                               </button>\n                                     </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/chanspy/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getChanSpy()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-wrench"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-eye"></i>\n                                      <a href="/channels/voice/chanspys/list">{{ \'APPLICATION_CHANSPY\' | translate }}</a>\n                                 <i data-ng-show="chanspy" class="fa fa-angle-right"></i>\n                              </li>\n                         <li data-ng-show="chanspy">\n                                   <a href="#">{{chanspy.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/chanspy.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chanspy.name}}\n                                      </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.tools.chanspy.view.settings\')}">\n                                                        <a data-ng-href="/tools/chanspy/view/{{chanspy.id}}/settings">\n                                                        <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/channels/voice/chanspy/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CHANSPY\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateChanSpy()" novalidate>\n\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="chanspy.name" required/>\n                                                                <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START PREFIX -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (form.general.prefix.$touched || form.general.$submitted) && form.general.prefix.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_PREFIX\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="prefix" placeholder="{{\'APPLICATION_PREFIX\' | translate}}" class="form-control" data-ng-model="chanspy.prefix" required/>\n                                                          <span data-ng-show="(form.general.prefix.$touched || form.general.$submitted) && form.general.prefix.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PREFIX -->\n\n                                                 <!-- START OPTIONS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (form.general.options.$touched || form.general.$submitted) && form.general.options.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select multiple data-ng-model="chanspy.options" name="options" theme="bootstrap" ui-required="true">\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.value}}: {{$item.name | translate}}</ui-select-match>\n                                                                    <ui-select-choices repeat="option.value as option in options | filter: $select.search">\n                                                                               <div ng-bind-html="option.value + \': \' + (option.name | translate) | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(form.general.options.$touched || form.general.$submitted) && form.general.options.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END OPTIONS -->\n\n                                                        <!-- START AUTH -->\n                                                   <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_AUTH\' | translate}}</label></br>\n                                                                <input\n                                                                bs-switch\n                                                             class="form-control"\n                                                          ng-model="chanspy.auth"\n                                                               type="checkbox"\n                                                               name="auth"\n                                                           switch-active="{{ recordSwitch.isActive }}"\n                                                           switch-on-text="{{ recordSwitch.onText }}"\n                                                            switch-off-text="{{ recordSwitch.offText }}"\n                                                          switch-on-color="{{ recordSwitch.onColor }}"\n                                                          switch-off-color="{{ recordSwitch.offColor }}"\n                                                                switch-animate="{{ recordSwitch.animate }}"\n                                                           switch-size="{{ recordSwitch.size }}"\n                                                         switch-label="{{ recordSwitch.label }}"\n                                                               switch-icon="{{ recordSwitch.icon }}"\n                                                         switch-radio-off="{{ recordSwitch.radioOff }}"\n                                                                switch-label-width="{{ recordSwitch.labelWidth }}"\n                                                            switch-handle-width="{{ recordSwitch.handleWidth }}">\n                                                 </div>\n                                                        <!-- END AUTH -->\n\n                                                   <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (form.general.password.$touched || form.general.$submitted) && form.general.password.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" data-ng-show="chanspy.auth" aria-required="true">*</span></label>\n                                                         <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="chanspy.password" data-ng-disabled="!chanspy.auth" data-ng-required="chanspy.auth"/>\n                                                                <span data-ng-show="(form.general.password.$touched || form.general.$submitted) && form.general.password.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="chanspy.description"></textarea>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/context/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_CONTEXT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()" data-ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/context/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="#">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_CONTEXTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <a class="btn green-jungle" href="#" data-ng-click="createItem()">\n                                            <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTEXT\' | translate }}\n                                       </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/context/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getContext()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/channels/voice/contexts/list">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n                                        <i data-ng-show="context" class="fa fa-angle-right"></i>\n                              </li>\n                         <li data-ng-show="context">\n                                   <a href="#">{{context.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET main.channels -->\n                        <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/context.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{context.name}}\n                                      </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.voice.contexts.view.settings\')}">\n                                                      <a data-ng-href="/channels/voice/contexts/view/{{context.id}}/settings">\n                                                              <i class="icon-settings"></i>\n                                                         {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                        </li>\n                                         </ul>\n                                 </div>\n                                        <!-- END MENU -->\n                             </div>\n                                <!-- END PORTLET main.channels -->\n                    </div>\n                        <!-- END BEGIN PROFILE SIDEBAR -->\n                    <!-- BEGIN PROFILE CONTENT -->\n                        <div ui-view class="profile-content">\n                 </div>\n                        <!-- END PROFILE CONTENT -->\n          </div>\n        </div>\n        <!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/context/view/view.settings.html",'<div class="row">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CONTEXT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceContext()" novalidate>\n\n                                                        <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="context.name" required readonly/>\n                                                               <span class="help-block">\n                                                                     {{ \'DESCRIPTION_CANT_EDIT_NAME\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="context.description"></textarea>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/moh/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_MOH_CLASS\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/moh/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-music-tone"></i>\n                                       <a href="#">{{ \'APPLICATION_MOHS\' | translate }}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-music-tone font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_MOHS\' | translate }}</a> </span>\n                              </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-ng-click="createItem()">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_MOH_CLASS\' | translate }}\n                                             </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/moh/view/view.addFiles.html",'\n<div class="row" data-ng-init="getSounds()">\n   <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_MOH\' | translate }} {{ \'APPLICATION_ADD_FILES\' | translate }}</a> </span>\n                           </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="note note-warning" data-ng-hide="soundList.length">\n                                       <h4 class="block">Warning!</h4>\n                                       <p>\n                                            {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n                                    </p>\n                                  <p>\n                                           {{\'APPLICATION_GO_TO\' | translate}} <a href="/tools/sounds/list">{{\'APPLICATION_SOUNDS\' | translate}}</a>\n                                 </p>\n                          </div>\n            <form name="forms.general" data-ng-submit="(item.sounds.length > 0) && addMohs()" data-ng-show="soundList.length" novalidate>\n\n              <!-- START SOUNDS -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sounds.$touched || forms.general.$submitted) && item.sounds.length == 0}">\n                <label class="control-label">{{\'APPLICATION_SOUNDS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <ui-select multiple data-ng-model="item.sounds" theme="bootstrap" name="sounds" required>\n                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.display_name}}</ui-select-match>\n                  <ui-select-choices repeat="sound.id as sound in soundList | filter: $select.search">\n                    {{sound.display_name}}\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="(forms.general.sounds.$touched || forms.general.$submitted) && item.sounds.length == 0" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END OPTIONS -->\n\n                                                       <input type="submit" class="btn green-haze" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </form>\n                       </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/moh/view/view.audios.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getAudioFiles()">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AUDIOS\' | translate}}</span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="audioFiles">\n                                             <a class="btn green-jungle " href="/channels/voice/mohs/view/{{moh.id}}/add" data-toggle="dropdown">\n                                                  <i class="icon-plus"></i> {{ \'APPLICATION_ADD_FILES\' | translate }}\n                                         </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="note note-warning" data-ng-hide="audioFiles">\n                                     <h4 class="block">Warning!</h4>\n                                       <p>\n                                            {{ \'MESSAGE_FOLDER_DOES_NOT_EXIST\' | translate }}\n                                  </p>\n                          </div>\n                                <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover" data-ng-show="audioFiles">\n                                        <thead>\n                                               <tr>\n                                                    <th>{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                           <th width="30%">{{ \'APPLICATION_PREVIEW\' | translate }}</th>\n                                                                <th width="10%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                  </tr>\n                                         </thead>\n                                      <tbody data-ng-model="audioFiles">\n                                      <tr data-ng-repeat="audiofile in audioFiles">\n                                                             <td>{{audiofile}}</td>\n                                                                <td>\n                                                                  <audio controls ng-src="{{getSecureSrc(audioSources[audiofile])}}" preload="none">\n                                        Your browser does not support the audio tag.\n                                        </audio></td>\n                                             <td>\n                                            <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(audiofile,audiofile)">\n                                                                             {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="audioFiles.length">\n                                                         <td colspan="3" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_AUDIOFILES_AVAILABLE\' | translate }}</i>\n                                                          </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/channels/voice/moh/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getMoh()">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-music-tone"></i>\n                                       <a href="/channels/voice/mohs/list">{{ \'APPLICATION_MOH_CLASS\' | translate }}</a>\n                                   <i data-ng-show="moh" class="fa fa-angle-right"></i>\n                          </li>\n                         <li data-ng-show="moh">\n                                       <a href="#">{{moh.name}}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET main.channels -->\n                        <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/moh.png" class="img-responsive">\n                                </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{moh.name}}\n                                  </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.voice.mohs.view.settings\')}">\n                                                  <a data-ng-href="/channels/voice/mohs/view/{{moh.id}}/settings">\n                                                      <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.voice.mohs.view.audios\') || $state.is(\'main.channels.voice.mohs.view.add\')}">\n                                                        <a data-ng-href="/channels/voice/mohs/view/{{moh.id}}/audios">\n                                                        <i class="icon-list"></i>\n                                                     {{ \'APPLICATION_AUDIOS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET main.channels -->\n            </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/moh/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_MOH_CLASS\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                           </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body" data-ng-init="getContexts();">\n                              <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceMoh()" novalidate>\n\n                <!-- START PATH -->\n                   <div class="form-group" >\n               <label class="control-label">{{\'APPLICATION_PATH\' | translate}}</label>\n                     <input type="text" name="path" class="form-control" data-ng-model="moh.directory" disabled/>\n                </div>\n                <!-- END PATH -->\n\n                   <!-- START SORT -->\n                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$invalid}">\n                      <label class="control-label">{{\'APPLICATION_SORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                 <ui-select data-ng-model="moh.sort" theme="bootstrap" name="sort" required>\n                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                  <ui-select-choices repeat="sort.value as sort in sortOptions | filter: $select.search">\n                         {{$translate.instant(sort.name)}}\n                   </ui-select-choices>\n                </ui-select>\n                  <span data-ng-show="(forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$error.required" class="help-block help-block-error">\n                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n               </span>\n             </div>\n                <!-- END SORT -->\n\n                   <!-- START DESCRIPTION -->\n                                      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.description.$invalid}">\n                                        <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                      <textarea type="text" name="description" class="form-control" data-ng-model="moh.description"/></textarea>\n                                                            <span data-ng-show="forms.general.$submitted && forms.general.description.$invalid" class="help-block help-block-error">\n                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                       </span>\n                                     </div>\n                                <!-- END DESCRIPTION -->\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n                              </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/queue/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.queue.name.$touched || form.queue.$submitted) && form.queue.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" data-ng-pattern="settings.patternName" required />\n      <span data-ng-show="(form.queue.name.$touched || form.queue.$submitted) && form.queue.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n      <span data-ng-show="(form.queue.name.$touched || form.queue.$submitted) && form.queue.name.$error.pattern" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START STRATEGY -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.queue.strategy.$touched || form.queue.$submitted) && form.queue.strategy.$invalid}">\n      <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n        <ui-select-choices repeat="strategy in [\'ringall\', \'leastrecent\', \'fewestcalls\', \'random\', \'rrmemory\', \'linear\', \'wrandom\', \'rrordered\'] | filter: $select.search">\n          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span class="help-block">\n        {{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n      </span>\n      <span data-ng-show="(form.queue.strategy.$touched || form.queue.$submitted) && form.queue.strategy.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END STRATEGY -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/queue/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-earphones-alt"></i>\n                                    <a href="#">{{ \'APPLICATION_VOICE\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="#">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <a class="btn green-jungle " href="#"  data-ng-click="createItem()">\n                                          <i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }}\n                                 </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/channels/voice/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n  <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="note note-warning" data-ng-hide="teams.length">\n                           <h4 class="block">Warning!</h4><p>{{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}</p>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body">\n                                               <label for="penalty">{{\'APPLICATION_PENALTY\' | translate}}</label>\n                                          <div class="input-group input-small mbottom20">\n                                                       <input type="number" class="spinner-input form-control" maxlength="3" data-ng-model="queue.penalty" readonly>\n                                                 <div class="spinner-buttons input-group-btn btn-group-vertical">\n                                                              <button type="button" class="btn spinner-up btn-xs blue" data-ng-click="queue.penalty=queue.penalty+1">\n                                                                       <i class="fa fa-angle-up"></i>\n                                                                </button>\n                                                             <button type="button" class="btn spinner-down btn-xs blue" data-ng-disabled="!queue.penalty" data-ng-click="queue.penalty=queue.penalty-1">\n                                                                   <i class="fa fa-angle-down"></i>\n                                                              </button>\n                                                     </div>\n                                                </div>\n                                                <div class="form-group last">\n                                                 <div class="col-md-12" id="multi-select-team">\n                                                        </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-earphones-alt"></i>\n                                    <a href="#">{{ \'APPLICATION_VOICE\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/channels/voice/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                    <i data-ng-show="queue" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="queue">\n                                     <a href="#">{{queue.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET main.channels -->\n                        <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{queue.name}}\n                                        </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.voice.queues.view.settings\')}">\n                                                        <a data-ng-href="/channels/voice/queues/view/{{queue.name}}/settings"> <i class="icon-settings"></i> {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                           </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.voice.queues.view.agents\')}">\n                                                  <a data-ng-href="/channels/voice/queues/view/{{queue.name}}/agents"><i class="icon-people"></i>{{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET main.channels -->\n            </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/queue/view/view.settings.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_QUEUE_SETTINGS\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_PERIODIC_ANNOUNCE\' | translate}}</a>\n                                   </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n                                    </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body" data-ng-init="getContexts();getMohs();getSounds();">\n                                <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceQueue()" novalidate>\n                                                    <div class="row">\n                                                             <div class="col-md-6">\n                                                        <!-- START STRATEGY -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                                     <ui-select-choices repeat="strategy in [\'ringall\', \'leastrecent\', \'fewestcalls\', \'random\', \'rrmemory\', \'linear\', \'wrandom\', \'rrordered\'] | filter: $select.search">\n                                                                           <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                      <!-- END STRATEGY -->\n\n                                                 <!-- START MOH -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.general.musiconhold.$touched || forms.general.$submitted) && forms.general.musiconhold.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_MOH\' | translate}}</label>\n                                                              <ui-select data-ng-model="queue.musiconhold" name="musiconhold" theme="bootstrap">\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="musiconhold.name as musiconhold in voiceMohs | filter: $select.search">\n                                                                            <div ng-bind-html="musiconhold.name | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_VOICE_MOH\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.general.musiconhold.$touched || forms.general.$submitted) && forms.general.musiconhold.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MOH -->\n\n                                                    <!-- START TIMEOUT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <input type="number" min="0" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="queue.timeout" required/>\n                                                               <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_TIMEOUT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TIMEOUT -->\n\n                                                        <!-- START MAXLEN -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.maxlen.$touched || forms.general.$submitted) && forms.general.maxlen.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_MAXLEN\' | translate}}</label>\n                                                           <input type="number" min="0" name="maxlen" placeholder="{{\'APPLICATION_MAXLEN\' | translate}}" class="form-control" data-ng-model="queue.maxlen" required/>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MAXLEN\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.general.maxlen.$touched || forms.general.$submitted) && forms.general.maxlen.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MAXLEN -->\n\n                                                 <!-- START RETRY -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.retry.$touched || forms.general.$submitted) && forms.general.retry.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_RETRY\' | translate}}</label>\n                                                            <input type="number" min="0" name="retry" placeholder="{{\'APPLICATION_RETRY\' | translate}}" class="form-control" data-ng-model="queue.retry" required/>\n                                                             <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_RETRY\' | translate }}\n                                                         </span>\n                                                               <span data-ng-show="(forms.general.retry.$touched || forms.general.$submitted) && forms.general.retry.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END RETRY -->\n\n                                          </div>\n                                                <div class="col-md-6">\n                                                        <!-- START WRAPUPTIME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.general.wrapuptime.$touched || forms.general.$submitted) && forms.general.wrapuptime.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_WRAPUPTIME\' | translate}}</label>\n                                                               <input type="number" min="0" name="wrapuptime" placeholder="{{\'APPLICATION_WRAPUPTIME\' | translate}}" class="form-control" data-ng-model="queue.wrapuptime" required/>\n                                                              <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_WRAPUPTIME\' | translate }}\n                                                            </span>\n                                                               <span data-ng-show="(forms.general.wrapuptime.$touched || forms.general.$submitted) && forms.general.wrapuptime.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END WRAPUPTIME -->\n\n                                                     <!-- START WEIGHT -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.weight.$touched || forms.general.$submitted) && forms.general.weight.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_WEIGHT\' | translate}}</label>\n                                                           <input type="number" min="0" name="weight" placeholder="{{\'APPLICATION_WEIGHT\' | translate}}" class="form-control" data-ng-model="queue.weight" required/>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_WEIGHT\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.general.weight.$touched || forms.general.$submitted) && forms.general.weight.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END WEIGHT -->\n\n                                                 <!-- START JOINEMPTY -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.general.joinempty.$touched || forms.general.$submitted) && forms.general.joinempty.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_JOINEMPTY\' | translate}}</label>\n                                                                <ui-select multiple data-ng-model="queue.joinempty" name="joinempty" theme="bootstrap">\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\',\'strict\',\'loose\',\'paused\',\'penalty\',\'inuse\',\'ringing\',\'unavailable\',\'invalid\',\'unknown\',\'wrapup\'] | filter: $select.search">\n                                                                           <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_JOINEMPTY\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.general.joinempty.$touched || forms.general.$submitted) && forms.general.joinempty.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END JOINEMPTY -->\n\n                                                      <!-- START LEAVEWHENEMPTY -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.leavewhenempty.$touched || forms.general.$submitted) && forms.general.leavewhenempty.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_LEAVEWHENEMPTY\' | translate}}</label>\n                                                           <ui-select multiple data-ng-model="queue.leavewhenempty" name="leavewhenempty" theme="bootstrap">\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\',\'strict\',\'loose\',\'paused\',\'penalty\',\'inuse\',\'ringing\',\'unavailable\',\'invalid\',\'unknown\',\'wrapup\'] | filter: $select.search">\n                                                                           <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_LEAVEWHENEMPTY\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.general.leavewhenempty.$touched || forms.general.$submitted) && forms.general.leavewhenempty.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END LEAVEWHENEMPTY -->\n\n                                                 <!-- START ANNOUNCE -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.general.announce.$touched || forms.general.$submitted) && forms.general.announce.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_ANNOUNCE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <ui-select data-ng-model="queue.announce" name="announce" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in sounds | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_ANNOUNCE\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.general.announce.$touched || forms.general.$submitted) && forms.general.announce.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ANNOUNCE -->\n                                         </div>\n                                        </div>\n                                        <!-- START DESCRIPTION -->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"></textarea>\n                                 </div>\n                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n\n                                      <div class="tab-pane" id="tab_1_2">\n                                           <form name="forms.announce" data-ng-submit="forms.announce.$valid && updateVoiceQueue()" novalidate>\n                                                  <div class="row">\n                                                             <div class="col-md-12">\n                                                       <!-- START PERIODIC_ANNOUNCE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.periodic_announce.$touched || forms.announce.$submitted) && forms.announce.periodic_announce.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_PERIODIC_ANNOUNCE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                            <ui-select multiple data-ng-model="queue.periodic_announce" name="periodic_announce" theme="bootstrap" required data-ng-disabled="!periodicAnnounces.length">\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.display_name}}</ui-select-match>\n                                                                 <ui-select-choices repeat="returnAnnouncePath(announce) as announce in periodicAnnounces | filter: $select.search">\n                                                                           <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <div class="note note-warning" data-ng-hide="periodicAnnounces.length">\n                                                                       <h4 class="block">Warning!</h4>\n                                                                       <p>\n                                                                           {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n                                                                     </p>\n                                                                  <p>\n                                                                           {{\'APPLICATION_GO_TO\' | translate}} <a href="/tools/sounds/list">{{\'APPLICATION_SOUNDS\' | translate}}</a>\n                                                                 </p>\n                                                          </div>\n                                                                <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.announce.periodic_announce.$touched || forms.announce.$submitted) && forms.announce.periodic_announce.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PERIODIC_ANNOUNCE -->\n                                                </div>\n                                        </div>\n                                                        <div class="row">\n                                                             <div class="col-md-6">\n                                                        <p><h3>{{\'APPLICATION_SETTINGS\' | translate}}</h3></p>\n                                                      <!-- START ANNOUNCE_FREQUENCY -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_frequency.$touched || forms.announce.$submitted) && forms.announce.announce_frequency.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_ANNOUNCE_FREQUENCY\' | translate}}</label>\n                                                               <input type="number" min="0" name="announce_frequency" placeholder="{{\'APPLICATION_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.announce_frequency" required/>\n                                                              <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_ANNOUNCE_FREQUENCY\' | translate }}\n                                                            </span>\n                                                               <span data-ng-show="(forms.announce.announce_frequency.$touched || forms.announce.$submitted) && forms.announce.announce_frequency.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ANNOUNCE_FREQUENCY -->\n\n                                                     <!-- START MIN_ANNOUNCE_FREQUENCY -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.min_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.min_announce_frequency.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_MIN_ANNOUNCE_FREQUENCY\' | translate}}</label>\n                                                           <input type="number" min="0" name="min_announce_frequency" placeholder="{{\'APPLICATION_MIN_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.min_announce_frequency" required/>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MIN_ANNOUNCE_FREQUENCY\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.announce.min_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.min_announce_frequency.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MIN_ANNOUNCE_FREQUENCY -->\n\n                                                 <!-- START PERIODIC_ANNOUNCE_FREQUENCY -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.periodic_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.periodic_announce_frequency.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_PERIODIC_ANNOUNCE_FREQUENCY\' | translate}}</label>\n                                                              <input type="number" min="0" name="periodic_announce_frequency" placeholder="{{\'APPLICATION_PERIODIC_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.periodic_announce_frequency"/>\n                                                            <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE_FREQUENCY\' | translate }}\n                                                           </span>\n                                                               <span data-ng-show="(forms.announce.periodic_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.periodic_announce_frequency.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PERIODIC_ANNOUNCE_FREQUENCY -->\n\n                                                    <!-- START RANDOM_PERIODIC_ANNOUNCE -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.random_periodic_announce.$touched || forms.announce.$submitted) && forms.announce.random_periodic_announce.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_RANDOM_PERIODIC_ANNOUNCE\' | translate}}</label>\n                                                         <ui-select data-ng-model="queue.random_periodic_announce" name="random_periodic_announce" theme="bootstrap">\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_RANDOM_PERIODIC_ANNOUNCE\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.announce.random_periodic_announce.$touched || forms.announce.$submitted) && forms.announce.random_periodic_announce.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END RANDOM_PERIODIC_ANNOUNCE -->\n\n                                                       <!-- START ANNOUNCE_HOLDTIME -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_holdtime.$touched || forms.announce.$submitted) && forms.announce.announce_holdtime.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_ANNOUNCE_HOLDTIME\' | translate}}</label>\n                                                                <ui-select data-ng-model="queue.announce_holdtime" name="announce_holdtime" theme="bootstrap">\n                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\',\'once\'] | filter: $select.search">\n                                                                               <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                                  </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_ANNOUNCE_HOLDTIME\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.announce.announce_holdtime.$touched || forms.announce.$submitted) && forms.announce.announce_holdtime.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ANNOUNCE_HOLDTIME -->\n\n                                                      <!-- START ANNOUNCE_POSITION -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_position.$touched || forms.announce.$submitted) && forms.announce.announce_position.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_ANNOUNCE_POSITION\' | translate}}</label>\n                                                                <ui-select data-ng-model="queue.announce_position" name="announce_position" theme="bootstrap">\n                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\',\'limit\',\'more\'] | filter: $select.search">\n                                                                             <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.announce.announce_position.$touched || forms.announce.$submitted) && forms.announce.announce_position.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ANNOUNCE_POSITION -->\n\n                                                      <!-- START ANNOUNCE_POSITION_LIMIT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_position_limit.$touched || forms.announce.$submitted) && forms.announce.announce_position_limit.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_ANNOUNCE_POSITION_LIMIT\' | translate}}</label>\n                                                          <input type="number" min="0" name="announce_position_limit" placeholder="{{\'APPLICATION_ANNOUNCE_POSITION_LIMIT\' | translate}}" class="form-control" data-ng-model="queue.announce_position_limit"/>\n                                                                <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION_LIMIT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.announce.announce_position_limit.$touched || forms.announce.$submitted) && forms.announce.announce_position_limit.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ANNOUNCE_POSITION_LIMIT -->\n\n                                                        <!-- START REPORTHOLDTIME -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.reportholdtime.$touched || forms.announce.$submitted) && forms.announce.reportholdtime.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_REPORTHOLDTIME\' | translate}}</label>\n                                                           <ui-select data-ng-model="queue.reportholdtime" name="reportholdtime" theme="bootstrap">\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_REPORTHOLDTIME\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.announce.reportholdtime.$touched || forms.announce.$submitted) && forms.announce.reportholdtime.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END REPORTHOLDTIME -->\n\n                                         </div>\n                                                        <div class="col-md-6">\n                                                                <p><h3>{{\'APPLICATION_SOUNDS\' | translate}}</h3></p>\n                                                                <!-- START QUEUE_REPORTHOLD -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_reporthold.$touched || forms.announce.$submitted) && forms.announce.queue_reporthold.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_QUEUE_REPORTHOLD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <ui-select data-ng-model="queue.queue_reporthold" name="queue_reporthold" theme="bootstrap" required>\n                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                                      <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                          </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span class="help-block">\n                                                                             {{ \'DESCRIPTION_QUEUE_REPORTHOLD\' | translate }}\n                                                                    </span>\n                                                                       <span data-ng-show="(forms.announce.queue_reporthold.$touched || forms.announce.$submitted) && forms.announce.queue_reporthold.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END QUEUE_REPORTHOLD -->\n\n                                                               <!-- START QUEUE_YOUARENEXT -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_youarenext.$touched || forms.announce.$submitted) && forms.announce.queue_youarenext.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_QUEUE_YOUARENEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <ui-select data-ng-model="queue.queue_youarenext" name="queue_youarenext" theme="bootstrap" required>\n                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                                      <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                          </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span class="help-block">\n                                                                             {{ \'DESCRIPTION_QUEUE_YOUARENEXT\' | translate }}\n                                                                    </span>\n                                                                       <span data-ng-show="(forms.announce.queue_youarenext.$touched || forms.announce.$submitted) && forms.announce.queue_youarenext.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END QUEUE_YOUARENEXT -->\n\n                                                       <!-- START QUEUE_THEREARE -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_thereare.$touched || forms.announce.$submitted) && forms.announce.queue_thereare.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_QUEUE_THEREARE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <ui-select data-ng-model="queue.queue_thereare" name="queue_thereare" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_THEREARE\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.announce.queue_thereare.$touched || forms.announce.$submitted) && forms.announce.queue_thereare.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_THEREARE -->\n\n                                                 <!-- START QUEUE_CALLSWAITING -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_callswaiting.$touched || forms.announce.$submitted) && forms.announce.queue_callswaiting.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_QUEUE_CALLSWAITING\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                           <ui-select data-ng-model="queue.queue_callswaiting" name="queue_callswaiting" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_CALLSWAITING\' | translate }}\n                                                          </span>\n                                                               <span data-ng-show="(forms.announce.queue_callswaiting.$touched || forms.announce.$submitted) && forms.announce.queue_callswaiting.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_CALLSWAITING -->\n\n                                                     <!-- START QUEUE_HOLDTIME -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_holdtime.$touched || forms.announce.$submitted) && forms.announce.queue_holdtime.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_QUEUE_HOLDTIME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <ui-select data-ng-model="queue.queue_holdtime" name="queue_holdtime" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_HOLDTIME\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.announce.queue_holdtime.$touched || forms.announce.$submitted) && forms.announce.queue_holdtime.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_HOLDTIME -->\n\n                                                 <!-- START QUEUE_MINUTES -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_minutes.$touched || forms.announce.$submitted) && forms.announce.queue_minutes.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_QUEUE_MINUTES\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="queue.queue_minutes" name="queue_minutes" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MINUTES\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.announce.queue_minutes.$touched || forms.announce.$submitted) && forms.announce.queue_minutes.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_MINUTES -->\n\n                                                  <!-- START QUEUE_MINUTE -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_minute.$touched || forms.announce.$submitted) && forms.announce.queue_minute.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_QUEUE_MINUTE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <ui-select data-ng-model="queue.queue_minute" name="queue_minute" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MINUTE\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.announce.queue_minute.$touched || forms.announce.$submitted) && forms.announce.queue_minute.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_MINUTE -->\n\n                                                   <!-- START QUEUE_SECONDS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_seconds.$touched || forms.announce.$submitted) && forms.announce.queue_seconds.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_QUEUE_SECONDS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="queue.queue_seconds" name="queue_seconds" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_SECONDS\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.announce.queue_seconds.$touched || forms.announce.$submitted) && forms.announce.queue_seconds.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_SECONDS -->\n\n                                                  <!-- START QUEUE_THANKYOU -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_thankyou.$touched || forms.announce.$submitted) && forms.announce.queue_thankyou.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_QUEUE_THANKYOU\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <ui-select data-ng-model="queue.queue_thankyou" name="QUEUE_THANKYOU" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_THANKYOU\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.announce.queue_thankyou.$touched || forms.announce.$submitted) && forms.announce.queue_thankyou.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_THANKYOU -->\n\n                                         </div>\n                                        </div>\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n                                      <!-- ADVANCED TAB -->\n                                 <div class="tab-pane" id="tab_1_3">\n                                           <form name="forms.advanced" data-ng-submit="forms.advanced.$valid && updateVoiceQueue()" novalidate>\n\n                                                        <div class="row">\n                                                             <div class="col-md-6">\n\n                                                      <!-- START AUTOPAUSE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.autopause.$touched || forms.advanced.$submitted) && forms.advanced.autopause.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_AUTOPAUSE\' | translate}}</label>\n                                                                <ui-select data-ng-model="queue.autopause" name="autopause" theme="bootstrap">\n                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\',\'all\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_AUTOPAUSE\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.advanced.autopause.$touched || forms.advanced.$submitted) && forms.advanced.autopause.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END AUTOPAUSE -->\n\n                                                      <!-- START RINGINUSE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.ringinuse.$touched || forms.advanced.$submitted) && forms.advanced.ringinuse.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_RINGINUSE\' | translate}}</label>\n                                                                <ui-select data-ng-model="queue.ringinuse" name="ringinuse" theme="bootstrap">\n                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_RINGINUSE\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.advanced.ringinuse.$touched || forms.advanced.$submitted) && forms.advanced.ringinuse.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END RINGINUSE -->\n\n                                                      <!-- START MEMBER_DELAY -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.memberdelay.$touched || forms.advanced.$submitted) && forms.advanced.memberdelay.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_MEMBER_DELAY\' | translate}}</label>\n                                                             <input type="number" min="0" name="memberdelay" placeholder="{{\'APPLICATION_MEMBER_DELAY\' | translate}}" class="form-control" data-ng-model="queue.memberdelay" required/>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MEMBER_DELAY\' | translate }}\n                                                          </span>\n                                                               <span data-ng-show="(forms.advanced.memberdelay.$touched || forms.advanced.$submitted) && forms.advanced.memberdelay.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MEMBER_DELAY -->\n\n                                                   <!-- START ACW -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.acw.$touched || forms.advanced.$submitted) && forms.advanced.acw.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_ACW\' | translate}}</label></br>\n                                                         <input\n                                                                bs-switch\n                                                             class="form-control"\n                                                          ng-model="queue.acw"\n                                                          type="checkbox"\n                                                               switch-active="{{ recordSwitch.isActive }}"\n                                                           switch-on-text="{{ recordSwitch.onText }}"\n                                                            switch-off-text="{{ recordSwitch.offText }}"\n                                                          switch-on-color="{{ recordSwitch.onColor }}"\n                                                          switch-off-color="{{ recordSwitch.offColor }}"\n                                                                switch-animate="{{ recordSwitch.animate }}"\n                                                           switch-size="{{ recordSwitch.size }}"\n                                                         switch-label="{{ recordSwitch.label }}"\n                                                               switch-icon="{{ recordSwitch.icon }}"\n                                                         switch-radio-off="{{ recordSwitch.radioOff }}"\n                                                                switch-label-width="{{ recordSwitch.labelWidth }}"\n                                                            switch-handle-width="{{ recordSwitch.handleWidth }}">\n                                                         <span class="help-block">\n                                                                     {{ \'DESCRIPTION_ACW\' | translate }}\n                                                         </span>\n                                                               <span data-ng-show="(forms.advanced.acw.$touched || forms.advanced.$submitted) && forms.advanced.acw.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_ACW\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                             </span>\n                                                       </div>\n                                                        <!-- END ACW -->\n\n                                            </div>\n                                                        <div class="col-md-6">\n\n                                                      <!-- START TIMEOUTRESTART -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.timeoutrestart.$touched || forms.advanced.$submitted) && forms.advanced.timeoutrestart.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_TIMEOUTRESTART\' | translate}}</label>\n                                                           <ui-select data-ng-model="queue.timeoutrestart" name="timeoutrestart" theme="bootstrap">\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_TIMEOUTRESTART\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.advanced.timeoutrestart.$touched || forms.advanced.$submitted) && forms.advanced.timeoutrestart.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TIMEOUTRESTART -->\n\n                                                 <!-- START MONITOR_FORMAT -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.monitor_format.$touched || forms.advanced.$submitted) && forms.advanced.monitor_format.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_MONITOR_FORMAT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <ui-select data-ng-model="queue.monitor_format" name="monitor_format" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="monFormat.value as monFormat in monitorFormats | filter: $select.search">\n                                                                          <div ng-bind-html="monFormat.name | highlight: $select.search"></div>\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MONITOR_FORMAT\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.advanced.monitor_format.$touched || forms.advanced.$submitted) && forms.advanced.monitor_format.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MONITOR_FORMAT -->\n\n                                                 <!-- START CONTEXT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.context.$touched || forms.advanced.$submitted) && forms.advanced.context.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}</label>\n                                                          <ui-select data-ng-model="queue.context" name="context" theme="bootstrap">\n                                                                    <ui-select-match allow-clear placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                  <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                                                                                <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_VOICE_CONTEXT\' | translate }}\n                                                         </span>\n                                                               <span data-ng-show="(forms.advanced.context.$touched || forms.advanced.$submitted) && forms.advanced.context.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONTEXT -->\n\n                                                        <!-- START ACW_TIMEOUT -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.acwTimeout.$touched || forms.advanced.$submitted) && forms.advanced.acwTimeout.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_ACW_TIMEOUT\' | translate}}</label>\n                                                              <input type="number" min="0" name="acwTimeout" placeholder="{{\'APPLICATION_ACW_TIMEOUT\' | translate}}" class="form-control" data-ng-model="queue.acwTimeout" required/>\n                                                             <span class="help-block">\n                                                                     {{ \'DESCRIPTION_ACW_TIMEOUT\' | translate }}\n                                                         </span>\n                                                               <span data-ng-show="(forms.advanced.acwTimeout.$touched || forms.advanced.$submitted) && forms.advanced.acwTimeout.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ACW_TIMEOUT -->\n\n                                            </div>\n                                        </div>\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
 a.put("app/channels/voice/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns  class="ui-grid" ui-grid-tree-view ui-grid-expandable-row ui-grid-pagination auto-resize>\n                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/realtime/view/agent/agent.modal.info.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_INTERFACE_INFO\' | translate }}</h3>\n</div>\n<div class="modal-body">\n<div data-ng-if="agent.ipaddr" class="well">\n  <div>{{agent.ipaddr}}:{{agent.port}}</div>\n  <div>{{agent.fullcontact}}</div>\n  <div>{{agent.useragent}}</div>\n  <div>{{agent.lastms}}</div>\n</div>\n<div data-ng-if="!agent.ipaddr" class="alert alert-danger" role="alert">\n  {{\'MESSAGE_NO_AVAILABLE_INFO\' | translate}}\n</div>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="close()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/realtime/view/agent/queue.modal.add.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_JOIN_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <div class="form-group row">\n  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n  <div class="col-md-10">\n    <ui-select multiple ng-model="item.queues" theme="bootstrap" required>\n      <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$item.name}}</ui-select-match>\n      <ui-select-choices repeat="queue.name as queue in queues | filter: $select.search">\n        <div ng-bind-html="queue.name | highlight: $select.search"></div>\n      </ui-select-choices>\n    </ui-select>\n  </div>\n</div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/realtime/view/areport/report.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initReport()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <table st-table="displayedAgents" st-safe-src="agents" class="table table-striped table-bordered table-hover">\n                        <div class="table-responsive">\n                          <thead>\n                                     <tr>\n                                          <th colspan="11">\n                                                     <div class="row">\n                                                             <div class="col-md-6">\n                                                                        <ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n                                                                                     <div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n                                                                               </ui-select-choices>\n                                                                  </ui-select>\n                                                          </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="input-group input-medium pull-right">\n                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                         <span class="input-group-addon">\n                                                                                      <i class="fa fa-search"></i>\n                                                                          </span>\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n                                                </th>\n                                 </tr>\n                           <tr>\n                                                <th></th>\n                                             <th st-sort="uniqueid">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n                                    <th st-sort="queue">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n                              <th st-sort="membername">{{ \'APPLICATION_AGENT\' | translate }}</th>\n                                             <th st-sort="calleridname">{{ \'APPLICATION_CALLER\' | translate }}</th>\n                                              <th st-sort="agentcalledAt">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n                                          <th st-sort="agentconnectAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n                                              <th st-sort="agentcompleteAt">{{ \'APPLICATION_COMPLETED_AT\' | translate }}</th>\n                                             <th st-sort="reason">{{ \'APPLICATION_REASON\' | translate }}</th>\n                                            <th st-sort="holdtime">{{ \'APPLICATION_HOLDTIME\' | translate }}</th>\n                                    <th st-sort="talktime">{{ \'APPLICATION_TALKTIME\' | translate }}</th>\n                              </tr>\n                         </thead>\n                      <tbody>\n                         <tr data-ng-repeat="agent in displayedAgents">\n                                            <td><span data-ng-class="{\'icon-call-in font-yellow\': agent.lastevent === \'called\',\n                                                       \'icon-phone font-blue\': agent.lastevent === \'connect\',\n                                                    \'icon-call-end font-green\': agent.lastevent === \'complete\',\n                                                       \'icon-call-end font-red\': agent.lastevent === \'answered_elsewhere\'}"></span>\n                                              </td>\n                                         <td>{{agent.uniqueid}}</td>\n                                           <td>{{agent.queue}}</td>\n                                              <td>{{agent.destcalleridname ? agent.destcalleridname + \' [\' + agent.membername + \']\' : agent.membername }}</td>\n                                          <td>{{agent.calleridname ? agent.calleridname + \' [\' + agent.calleridnum + \']\' : agent.calleridnum }}</td>\n                                                <td>\n                                                  <time is="relative-time" datetime="{{agent.agentcalledAt}}">\n                                                          April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{agent.agentconnectAt}}" data-ng-show="agent.agentconnectAt">\n                                                             April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{agent.agentcompleteAt}}" data-ng-show="agent.agentcompleteAt">\n                                                           April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  {{agent.reason | uppercase}}\n                                          </td>\n                                         <td>{{agent.holdtime || 0 | VoiceRealtimeViewAgentReportFilter | date:\'HH:mm:ss\'}}</td>\n                           <td>{{agent.talktime || 0 | VoiceRealtimeViewAgentReportFilter | date:\'HH:mm:ss\'}}</td>\n                           </tr>\n                                     <tr data-ng-hide="displayedAgents.length">\n                                            <td colspan="11" style="text-align:center;">\n                                                  <i>No agents available</i>\n                                            </td>\n                                 </tr>\n                   </tbody>\n                      <tfoot>\n                                     <tr>\n                                          <td/>\n                                         <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                       </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                      </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                 </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="calleridnum" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CALLER\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                       </div>\n                                    </td>\n                                             <td colspan="7"></td>\n                           </tr>\n                           <tr>\n                            <td colspan="11" class="text-center">\n                                                   <div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n                              </td>\n                       </tr>\n                       </tfoot>\n                    </div>\n                </table>\n              <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/realtime/view/qreport/report.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initReport()">\n  <div class="col-md-12">\n               <!-- START TABLE -->\n          <table st-table="displayedQueues" st-safe-src="queues" class="table table-striped table-bordered table-hover">\n                        <div class="table-responsive">\n                          <thead>\n                                     <tr>\n                                          <th colspan="10">\n                                                     <div class="row">\n                                                             <div class="col-md-6">\n                                                                        <ui-select class="input-xsmall" ng-model="conf.queuesByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="queueByPage in queuesByPage | filter: $select.search">\n                                                                                     <div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n                                                                               </ui-select-choices>\n                                                                  </ui-select>\n                                                          </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="input-group input-medium pull-right">\n                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n                                                                          <span class="input-group-addon">\n                                                                                      <i class="fa fa-search"></i>\n                                                                          </span>\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n                                                </th>\n                                 </tr>\n                           <tr>\n                                                <th></th>\n                                             <th st-sort="uniqueid">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n                                    <th st-sort="queue">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n                              <th st-sort="membername">{{ \'APPLICATION_AGENT\' | translate }}</th>\n                                             <th st-sort="calleridname">{{ \'APPLICATION_CALLER\' | translate }}</th>\n                                              <th st-sort="queuecallerjoinAt">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n                                              <th st-sort="queuecallerleaveAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n                                          <th st-sort="queuecallerabandonAt">{{ \'APPLICATION_ABANDONED_AT\' | translate }}</th>\n                                  </tr>\n                         </thead>\n                      <tbody>\n                         <tr data-ng-repeat="queue in displayedQueues">\n                                            <td><span data-ng-class="{\'icon-call-in font-yellow\': queue.queuecallerjoinAt && !queue.queuecallerleaveAt,\n                                                 \'icon-phone font-blue\': queue.queuecallerjoinAt && queue.queuecallerleaveAt,\n                                                        \'icon-call-end font-red\': queue.queuecallerjoinAt && queue.queuecallerleaveAt && queue.queuecallerabandonAt}"></span>\n                                               </td>\n                                         <td>{{queue.uniqueid}}</td>\n                                           <td>{{queue.queue}}</td>\n                                              <td>{{queue.connectedlinename ? queue.connectedlinename + \' [\' + queue.connectedlinenum + \']\' : queue.connectedlinenum }}</td>\n                                            <td>{{queue.calleridname ? queue.calleridname + \' [\' + queue.calleridnum + \']\' : queue.calleridnum }}</td>\n                                                <td>\n                                                  <time is="relative-time" datetime="{{queue.queuecallerjoinAt}}">\n                                                              April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{queue.queuecallerleaveAt}}" data-ng-show="queue.queuecallerleaveAt">\n                                                             April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{queue.queuecallerabandonAt}}" data-ng-show="queue.queuecallerabandonAt">\n                                                         April 1, 2014\n                                                 </time>\n                                               </td>\n                     </tr>\n                                     <tr data-ng-hide="displayedQueues.length">\n                                            <td colspan="10" style="text-align:center;">\n                                                  <i>No queues available</i>\n                                            </td>\n                                 </tr>\n                   </tbody>\n                      <tfoot>\n                                     <tr>\n                                          <td/>\n                             <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                        </div>\n                                    </td>\n                                             <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                      </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="connectedlinename" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                  </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="calleridnum" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CALLER\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                       </div>\n                                    </td>\n                                             <td colspan="6"></td>\n                           </tr>\n                           <tr>\n                            <td colspan="10" class="text-center">\n                                                   <div class="pagination" st-pagination st-items-by-page="conf.queuesByPage.value" st-displayed-pages="7"></div>\n                              </td>\n                       </tr>\n                       </tfoot>\n                    </div>\n                </table>\n              <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/realtime/view/queue/pause.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_PAUSE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n                <!-- Default panel contents -->\n               <div class="panel-heading">\n                   <h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n           </div>\n                <!-- List group -->\n           <ul class="list-group">\n      <li class="list-group-item">\n                            {{ \'APPLICATION_QUEUE\' | translate }}: <b class="pull-right">{{ selected.queue }}</b>\n                      </li>\n      <li class="list-group-item" data-ng-hide="data.length">\n                           {{ \'APPLICATION_AGENT\' | translate }}: <b class="pull-right">{{ selected.membername }}</b>\n                 </li>\n      <li class="list-group-item">\n        <div class="btn-group">\n          <ui-select ng-model="selected.item" theme="bootstrap" ng-disabled="disabled" class="btn input-xlarge pull-left">\n            <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected}}</ui-select-match>\n            <ui-select-choices repeat="item in items | filter: $select.search">\n              <div ng-bind-html="item | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <button class="btn btn-success pull-right" type="button" ng-click="ok(true)" style="margin-top: 7px;">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n        </div>\n                    </li>\n         </ul>\n </div>\n  <button data-ng-show="(data | isArray) ? (data | where: {paused: true}).length : data.paused " class="btn btn-danger btn-block" type="button" ng-click="ok(false, data.queue)">Exit</button>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/realtime/view/queue/queue.add.modal.html",'<div class="modal-header" data-ng-init="initAdd()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n              <!-- Default panel contents -->\n               <div class="panel-heading">\n                   <h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n           </div>\n                <!-- List group -->\n           <ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n                                     <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n                                     </div>\n                                </div>\n      </li>\n      <li class="list-group-item" data-ng-show="queues.length">\n        <div class="form-group row">\n                                    <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <ui-select ng-model="selected.queue" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="queue.name as queue in queues | filter: $select.search">\n                <div ng-bind-html="queue.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n                                       </div>\n                                </div>\n                        </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                       <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PENALTY\' | translate}}:</label>\n                                       <div class="col-md-10">\n            <input type="number" min="0" max="10" placeholder="{{\'APPLICATION_PENALTY\' | translate}}" class="form-control" data-ng-model="selected.penalty"/>\n                                      </div>\n                                </div>\n                        </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                       <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PAUSE\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.paused" ui-btn-checkbox> {{ selected.paused ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n                                       </div>\n                                </div>\n      </li>\n      <li class="list-group-item" data-ng-show="selected.paused">\n        <div class="form-group row">\n                                  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_REASON\' | translate}}:</label>\n                                        <div class="col-md-10">\n            <ui-select ng-model="selected.reason" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_REASON\' | translate}}">{{$select.selected}}</ui-select-match>\n              <ui-select-choices repeat="pause in pauses | filter: $select.search">\n                <div ng-bind-html="pause | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n                                     </div>\n                                </div>\n                        </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                       <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGIN\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.login" ui-btn-checkbox> {{ selected.login ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n                                 </div>\n                                </div>\n      </li>\n           </ul>\n </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="okAdd()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/realtime/view/queue/queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initQueues()">\n <div class="col-md-12">\n        <div ng-show="selected">Selection from a modal: {{ selected }}</div>\n         <!-- BEGIN TABLE -->\n                  <table st-table="displayedGroups" st-safe-src="groups" class="table table-striped table-bordered table-hover">\n                                <div class="table-responsive">\n                                  <thead>\n                                             <tr>\n                                                  <th colspan="10">\n                                                             <div class="row">\n                                                                     <div class="col-md-6">\n                                                                                <ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                     <ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n                                                                                             <div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n                                                                                       </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                        <div class="col-md-6">\n                                                                                <!-- <div class="input-group input-medium pull-right">\n                                                                                        <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                 <span class="input-group-addon">\n                                                                                              <i class="fa fa-search"></i>\n                                                                                  </span>\n                                                                               </div> -->\n                                                                    </div>\n                                                                </div>\n                                                        </th>\n                                         </tr>\n                                         <tr>\n                                                  <th st-sort="memebername" colspan="3">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n                                        <th st-sort="agent">{{ \'APPLICATION_AGENT\' | translate }}</th>\n                                                  <th>{{ \'APPLICATION_LAST_LOGIN\' | translate }}</th>\n                                                 <th>{{ \'APPLICATION_LAST_PAUSE\' | translate }}</th>\n                                                 <th>{{ \'APPLICATION_LAST_INCOMING_CALL\' | translate }}</th>\n                                                 <th>{{ \'APPLICATION_SERVED\' | translate }}</th>\n                                                     <th colspan="2"></th>\n                                   </tr>\n                                 </thead>\n                                    <tbody>\n                                   <tr data-ng-repeat-start="group in displayedGroups">\n                                                      <td rowspan="{{group.agents.length}}" align="center" style="vertical-align:middle">{{group.queue}}</td>\n                                                       <td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n                                                                <span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n                                                        </td>\n                                                 <td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n                                                                <span class="icon-cup" data-ng-class="agent.paused ? \'font-red\' : \'font-green\'"></span>\n                                                   </td>\n                                                 <td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n                                                                {{agent.membername}}\n                                                  </td>\n                                                 <td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n                                                                <time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n                                                                   April 1, 2014\n                                                         </time>\n                                                                <span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n                                                    </td>\n                                                 <td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n                                                                <time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n                                                                 April 1, 2014\n                                                         </time>\n                                                               <span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n                                                 </td>\n                                                 <td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n                                                                <time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n                                                                 April 1, 2014\n                                                         </time>\n                                                       </td>\n                                                 <td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n                                                                {{agent.callstaken}}\n                                                  </td>\n                                                 <td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n                                                                <span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n                                                              <span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n                                                     </td>\n                                                 <td rowspan="{{group.agents.length}}" align="center" style="vertical-align:middle">\n                                                           <span data-ng-show="group.agents.length > 1" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, group.agents)"> </span>\n                                                            <span class="icon-plus font-green" style="cursor:pointer;" data-ng-click="add(null, group.agents)"> </span>\n                                                           <span data-ng-show="group.agents.length > 1" class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, group.agents)"></span>\n                                                        </td>\n                             </tr>\n                                             <tr data-ng-repeat="agent in group.agents" data-ng-if="$middle">\n                                                      <td align="center">\n                                                           <span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n                                                        </td>\n                                                 <td align="center">\n                                                           <span class="icon-cup" data-ng-class="agent.paused ? \'font-red\' : \'font-green\'"></span>\n                                                   </td>\n                                                 <td align="center">\n                                                           {{agent.membername}}\n                                                  </td>\n                                                 <td align="center">\n                                                           <time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n                                                                   April 1, 2014\n                                                         </time>\n                                                               <span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n                                                     </td>\n                                                 <td align="center">\n                                                           <time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n                                                                 April 1, 2014\n                                                         </time>\n                                                               <span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n                                                 </td>\n                                                 <td align="center">\n                                                           <time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n                                                                 April 1, 2014\n                                                         </time>\n                                                       </td>\n                                                 <td align="center">\n                                                           {{agent.callstaken}}\n                                                  </td>\n                                                 <td align="center">\n                                                           <span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n                                                              <span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n                                                     </td>\n                                         </tr>\n                                         <tr data-ng-repeat="agent in group.agents" data-ng-if="group.agents.length > 1 && $last" data-ng-repeat-end>\n                                                  <td align="center">\n                                                           <span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n                                                        </td>\n                                                 <td align="center">\n                                                           <span class="icon-cup" data-ng-class="agent.paused ? \'font-red\': \'font-green\'"></span>\n                                                    </td>\n                                                 <td align="center">\n                                                           {{agent.membername}}\n                                                  </td>\n                                                 <td align="center">\n                                                           <time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n                                                                   April 1, 2014\n                                                         </time>\n                                                               <span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n                                                     </td>\n                                                 <td align="center">\n                                                           <time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n                                                                 April 1, 2014\n                                                         </time>\n                                                               <span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n                                                 </td>\n                                                 <td align="center">\n                                                           <time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n                                                                 April 1, 2014\n                                                         </time>\n                                                       </td>\n                                                 <td align="center">\n                                                           {{agent.callstaken}}\n                                                  </td>\n                                                 <td align="center">\n                                                           <span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n                                                              <span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n                                                     </td>\n                                         </tr>\n                                         <tr data-ng-hide="displayedGroups.length">\n                                                    <td colspan="9" style="text-align:center;">\n                                                           <i>No agents available</i>\n                                                    </td>\n                                         </tr>\n                           </tbody>\n                              <tfoot>\n                                             <tr>\n                                                  <td colspan="1">\n                                                              <div class="input-icon right">\n                                                                        <i class="fa fa-search"></i>\n                                                                  <input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                              </div>\n                                                        <td colspan="9"></td>\n                                   </tr>\n                                   <tr>\n                                    <td colspan="10" class="text-center">\n                                                           <div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n                                      </td>\n                               </tr>\n                               </tfoot>\n                            </div>\n                        </table>\n              <!-- END TABLE -->\n    </div>\n\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/realtime/view/queue/queue.modal.add.html",'<div class="modal-header" data-ng-init="initAdd()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info" data-ng-show="selected.queue">\n           <!-- Default panel contents -->\n               <div class="panel-heading">\n                   <h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n           </div>\n                <!-- List group -->\n           <ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n                                     <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n                                  </div>\n                                </div>\n      </li>\n      <li class="list-group-item" data-ng-show="agents.length">\n        <div class="form-group row">\n                                    <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <ui-select ng-model="selected.agent" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_AGENT\' | translate}}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="{name: agent.name, id: agent.id} as agent in agents | filter: $select.search">\n                <div ng-bind-html="agent.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n                                 </div>\n                                </div>\n                        </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                       <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PENALTY\' | translate}}:</label>\n                                       <div class="col-md-10">\n            <input type="number" min="0" max="10" placeholder="{{\'APPLICATION_PENALTY\' | translate}}" class="form-control" data-ng-model="selected.penalty"/>\n                                      </div>\n                                </div>\n                        </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                       <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PAUSE\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.paused" btn-checkbox> {{ selected.paused ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n                                  </div>\n                                </div>\n      </li>\n      <li class="list-group-item" data-ng-show="selected.paused">\n        <div class="form-group row">\n                                  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_REASON\' | translate}}:</label>\n                                        <div class="col-md-10">\n            <ui-select ng-model="selected.reason" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_REASON\' | translate}}">{{$select.selected}}</ui-select-match>\n              <ui-select-choices repeat="pause in pauses | filter: $select.search">\n                <div ng-bind-html="pause | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n                                     </div>\n                                </div>\n                        </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                       <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGIN\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.login" btn-checkbox> {{ selected.login ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n                                    </div>\n                                </div>\n      </li>\n           </ul>\n    <!-- End List group -->\n  </div>\n  <div class="note note-warning" data-ng-hide="selected.queue">\n    <h4 class="block">Warning!</h4>\n    <p>\n       {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n    </p>\n  </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="okAdd()" data-ng-show="selected.queue">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),
-a.put("app/channels/voice/realtime/view/queue/queue.modal.remove.html",'<div class="modal-header" data-ng-init="initRemove()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_REMOVAL\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n           <!-- Default panel contents -->\n               <div class="panel-heading">\n                   <h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n           </div>\n                <!-- List group -->\n           <ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row" data-ng-hide="data.length">\n                                  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n                                     </div>\n                                </div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                 <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n                                  </div>\n                                </div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                 <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGOUT\' | translate}}:</label>\n                                        <div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.logout" btn-checkbox> {{ selected.logout ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n            <span class="help-block">{{ \'MESSAGE_PERMANENT_REMOVAL_FROM_QUEUE\' | translate }}. </span>\n          </div>\n                              </div>\n      </li>\n           </ul>\n </div>\n  <button class="btn btn-danger btn-block" type="button" ng-click="okRemove()">{{ \'APPLICATION_REMOVE\' | translate }}</button>\n</div>\n<div class="modal-footer">\n  <!-- <button class="btn btn-success" type="button" ng-click="okRemove()">{{ \'APPLICATION_CONFIRM\' | translate }}</button> -->\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/realtime/view/queue/queue.remove.modal.html",'<div class="modal-header" data-ng-init="initRemove()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_REMOVAL\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n             <!-- Default panel contents -->\n               <div class="panel-heading">\n                   <h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n           </div>\n                <!-- List group -->\n           <ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n                                     <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n                                     </div>\n                                </div>\n      </li>\n      <li class="list-group-item" data-ng-hide="data.length">\n        <div class="form-group row">\n                                      <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n                                  </div>\n                                </div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                 <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGOUT\' | translate}}:</label>\n                                        <div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.logout" btn-checkbox> {{ selected.logout ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n            <span class="help-block">{{ \'MESSAGE_PERMANENT_REMOVAL_FROM_QUEUE\' | translate }}. </span>\n          </div>\n                              </div>\n      </li>\n           </ul>\n </div>\n  <button class="btn btn-danger btn-block" type="button" ng-click="okRemove()">{{ \'APPLICATION_REMOVE\' | translate }}</button>\n</div>\n<div class="modal-footer">\n  <!-- <button class="btn btn-success" type="button" ng-click="okRemove()">{{ \'APPLICATION_CONFIRM\' | translate }}</button> -->\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-directions"></i>\n                                       <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-earphones-alt"></i>\n                                    <a href="#">{{ \'APPLICATION_VOICE\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-energy"></i>\n                                   <a href="/channels/voice/realtime/view/agents">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <div>\n             <nav class="navbar navbar-default" role="navigation">\n                                     <div class="collapse navbar-collapse">\n                                                <ul class="nav navbar-nav">\n                                                   <li data-ng-class="{\'active\': $state.is(\'main.channels.voice.realtime.view.agents\')}">\n                                                            <a href="/channels/voice/realtime/view/agents">\n                                                                       {{\'APPLICATION_AGENTS\' | translate}}\n                                                                </a>\n                                                  </li>\n                                         </ul>\n                                 </div>\n                    </nav>\n            </div>\n                <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/recording/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-control-play"></i>\n                                     <a href="#">{{ \'APPLICATION_RECORDINGS\' | translate }}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-control-play font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_RECORDINGS\' | translate }}</a> </span>\n                                </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                       </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/route/inbound/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_ROUTE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.extension" novalidate>\n\n    <!-- START EXTEN -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.extension.exten.$touched || forms.extension.$submitted) && forms.extension.exten.$invalid || existRoute}">\n      <label class="control-label">{{\'APPLICATION_PHONE_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="exten" placeholder="{{\'APPLICATION_PHONE_NUMBER\' | translate}}" class="form-control" data-ng-model="item.exten" data-ng-pattern="settings.patternName" required/>\n      <span data-ng-show="(forms.extension.exten.$touched || forms.extension.$submitted) && forms.extension.exten.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END EXTEN -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.extension.$invalid || existRoute">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n<!-- <pre>\n  {{item | json}}\n</pre> -->\n'),a.put("app/channels/voice/route/inbound/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-earphones-alt"></i>\n                                    <a href="#">{{ \'APPLICATION_VOICE\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-call-in"></i>\n                                  <a href="/channels/voice/routes/inbound/list">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-users font-green-sharp"></i>\n                                   <span class="caption-subject">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-ng-click="create()">\n                                                       <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }}\n                                         </a>\n                                  </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter class="ui-grid" ui-grid-draggable-rows>\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/route/inbound/view/view.applications.html",'<div ui-view class="profile-content">\n<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle " href="/channels/voice/routes/inbound/view/{{route.id}}/application" data-toggle="dropdown">\n                                                      <i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div data-ng-if="selectedApp === undefined" ui-grid="gridOptions"  ui-grid-resize-columns class="grid" ui-grid-draggable-rows ui-grid-auto-resize>\n                                    <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/channels/voice/route/inbound/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-reload"></i>\n                                   <a href="/channels/voice/routes/inbound/list">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                                  <i data-ng-show="route" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="route">\n                                     <a href="#">{{route.exten}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/inboundroute.png" class="img-responsive">\n                               </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{route.exten}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.voice.routes.inbound.view.settings\')}">\n                                                        <a data-ng-click="deselectAndRedirect(\'/channels/voice/routes/inbound/view/\'+route.id+\'/settings\')">\n                                                      <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n'+"                                              <li data-ng-class=\"{active: $state.is('main.channels.voice.routes.inbound.view.applications') || $state.is('main.channels.voice.routes.inbound.view.application') || $state.is('main.channels.voice.routes.inbound.view.applications.settings')}\">\n                                                  <a data-ng-click=\"deselectAndRedirect('/channels/voice/routes/inbound/view/'+route.id+'/applications')\">\n                                                    <i class=\"icon-list\"></i>\n                                                   {{ 'APPLICATION_ACTIONS' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class=\"profile-content\">\n               </div>\n                <!-- <pre>\n                    {{route | json}}\n              </pre> -->\n            <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n"),a.put("app/channels/voice/route/inbound/view/view.settings.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                              </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body" data-ng-init="getContexts()">\n                               <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n                                                       <!-- START EXTEN -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_PHONE_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="exten" placeholder="{{\'APPLICATION_PHONE_NUMBER\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n                                                                <span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END EXTEN -->\n\n                                                  <!-- START CONTEXT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                                                                                <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONTEXT -->\n\n                                                        <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/route/internal/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_ROUTE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.extension" novalidate>\n\n    <!-- START EXTEN -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.extension.exten.$touched || forms.extension.$submitted) && forms.extension.exten.$invalid || existRoute}">\n      <label class="control-label">{{\'APPLICATION_PHONE_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="exten" placeholder="{{\'APPLICATION_PHONE_NUMBER\' | translate}}" class="form-control" data-ng-model="item.exten" data-ng-pattern="settings.patternName" required/>\n      <span data-ng-show="(forms.extension.exten.$touched || forms.extension.$submitted) && forms.extension.exten.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END EXTEN -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.extension.$invalid || existRoute">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n<!-- <pre>\n  {{item | json}}\n</pre> -->\n'),a.put("app/channels/voice/route/internal/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-reload"></i>\n                                   <a href="/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-users font-green-sharp"></i>\n                                   <span class="caption-subject">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-ng-click="create()">\n                                                       <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }}\n                                         </a>\n                                  </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter class="ui-grid" ui-grid-draggable-rows>\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/route/internal/view/view.applications.html",'<div ui-view class="profile-content">\n<div class="row">\n  <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle " href="/channels/voice/routes/internal/view/{{route.id}}/application" data-toggle="dropdown">\n                                                     <i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div data-ng-if="selectedApp === undefined" ui-grid="gridOptions"  ui-grid-resize-columns class="grid" ui-grid-draggable-rows>\n                                        <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/channels/voice/route/internal/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-reload"></i>\n                                   <a href="/channels/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                                        <i data-ng-show="route" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="route">\n                                     <a href="#">{{route.exten}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/internalroute.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{route.exten}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.voice.routes.internal.view.settings\')}">\n                                                       <a data-ng-click="deselectAndRedirect(\'/channels/voice/routes/internal/view/\'+route.id+\'/settings\')">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n'+"                                              <li data-ng-class=\"{active: $state.is('main.channels.voice.routes.internal.view.applications') || $state.is('main.channels.voice.routes.internal.view.application') || $state.is('main.channels.voice.routes.internal.view.applications.settings')}\">\n                                                       <a data-ng-click=\"deselectAndRedirect('/channels/voice/routes/internal/view/'+route.id+'/applications')\">\n                                                   <i class=\"icon-list\"></i>\n                                                   {{ 'APPLICATION_ACTIONS' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class=\"profile-content\">\n               </div>\n                <!-- <pre>\n                    {{route | json}}\n              </pre> -->\n            <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n"),a.put("app/channels/voice/route/internal/view/view.settings.html",'<div class="row">\n     <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INTERNAL\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body" data-ng-init="getContexts()">\n                               <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n                                                       <!-- START EXTEN -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_PHONE_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="exten" placeholder="{{\'APPLICATION_PHONE_NUMBER\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n                                                                <span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END EXTEN -->\n\n                                                  <!-- START CONTEXT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                                                                                <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONTEXT -->\n\n                                                        <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/route/outbound/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_ROUTE\' | translate }}</h3>\n</div>\n<div class="modal-body" data-ng-init="getTags()">\n  <form name="forms.extension" novalidate>\n\n    <!-- START EXTEN -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.extension.exten.$touched || forms.extension.$submitted) && forms.extension.exten.$invalid || existRoute}">\n      <label class="control-label">{{\'APPLICATION_DESTINATION_PATTERN\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="exten" placeholder="{{\'APPLICATION_DESTINATION_PATTERN\' | translate}}" class="form-control" data-ng-model="item.exten" data-ng-pattern="settings.patternName" required/>\n      <span data-ng-show="(forms.extension.exten.$touched || forms.extension.$submitted) && forms.extension.exten.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END EXTEN -->\n\n    <!-- START TAG -->\n    <div class="form-group"  data-ng-class="{\'has-error\': (forms.extension.tag.$touched || forms.extension.$submitted) && forms.extension.tag.$invalid}">\n      <label class="control-label">{{ \'APPLICATION_TAG\' | translate }}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.tag" name="tag" theme="bootstrap" required>\n        <ui-select-match placeholder="{{ \'APPLICATION_TAG\' | translate }}" data-ng-init="item.tag = \'--\'">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="tag.name as tag in tags | filter: $select.search">\n          <div ng-bind-html="tag.name | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(forms.extension.tag.$touched || forms.extension.$submitted) && forms.extension.tag.$invalid && forms.extension.tag.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TAG -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.extension.$invalid || existRoute">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n<!-- <pre>\n  {{item | json}}\n</pre> -->\n'),
-a.put("app/channels/voice/route/outbound/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-call-out"></i>\n                                 <a href="/channels/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-users font-green-sharp"></i>\n                                   <span class="caption-subject">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-ng-click="create()">\n                                                       <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }}\n                                         </a>\n                                  </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter class="ui-grid" ui-grid-draggable-rows>\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/route/outbound/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-call-out"></i>\n                                 <a href="/channels/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                                        <i data-ng-show="route" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="route">\n                                     <a href="#">{{route.exten}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/outboundroute.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{route.exten}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.voice.routes.outbound.view.settings\')}">\n                                                       <a data-ng-click="deselectAndRedirect(\'/channels/voice/routes/outbound/view/\'+route.id+\'/settings\')">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n'+"                                              <li data-ng-class=\"{active: $state.is('main.channels.voice.routes.outbound.view.routes') || $state.is('main.channels.voice.routes.outbound.view.route') || $state.is('main.channels.voice.routes.outbound.view.routes.settings')}\">\n                                                 <a data-ng-click=\"deselectAndRedirect('/channels/voice/routes/outbound/view/'+route.id+'/routes')\">\n                                                 <i class=\"icon-list\"></i>\n                                                   {{ 'APPLICATION_ACTIONS' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class=\"profile-content\">\n               </div>\n                <!-- <pre>\n                    {{route | json}}\n              </pre> -->\n            <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n"),a.put("app/channels/voice/route/outbound/view/view.route.html",'<div class="row" data-ng-init="initApplication(true);getIntervals();">\n   <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_NEW_ROUTE\' | translate }} WIZARD</a> </span>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="profile-usertitle-name">\n                                  {{(main.app | capitalize) || \'Application\'}}\n                                </div>\n                                <wizard on-finish="addApplication()">\n         <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(forms.info.$valid)">\n                                                        <form name="forms.info" novalidate>\n                                                           <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                          <!-- START APP -->\n                                                            <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid}">\n                                                                      <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n                                                                            <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="app.value as app in applications | filter: $select.search">\n                                                                                        <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                                               </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid && forms.info.app.$error.required" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END APP -->\n                                                              <div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n                                                            <!-- START TRUNK -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = null" name="trunk" theme="bootstrap" required data-ng-disabled="!items.length">\n                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="trunk.name as trunk in items | filter: $select.search">\n                                                                                    <div ng-bind-html="trunk.name | highlight: $select.search"></div>\n                                                                             </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <div class="note note-warning" data-ng-hide="items.length">\n                                                                           <h4 class="block">Warning!</h4>\n                                                                               <p>\n                                                                                   {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n                                                                             </p>\n                                                                          <p>\n                                                                                   {{\'APPLICATION_GO_TO\' | translate}} <a href="/tools/trunks/list">{{\'APPLICATION_TRUNKS\' | translate}}</a>\n                                                                         </p>\n                                                                  </div>\n                                                                        <span data-ng-show="(forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END TRUNK -->\n\n                                                          <!-- <input type="hidden" class="form-control" name="context" data-ng-model="application.appdata[1]" data-ng-init="application.appdata[1] = \'from-sip\'"> -->\n\n                                                              <!-- START CALLERID -->\n                                                               <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid}">\n                                                                    <label class="control-label">{{ \'APPLICATION_CALLERID\' | translate }}</label>\n                                                                       <input type="text" name="callerID" pattern=\'^"[a-zA-Z0-9_.-]*" <[a-zA-Z0-9_.-]*>\' placeholder=\'"name" <number>\' class="form-control" data-ng-model="application.appdata[1]" data-ng-init="application.appdata[1] = null">\n                                                                         <span class="help-block">\n                                                                                     {{ \'DESCRIPTION_OUTBOUND_CALLERID\' | translate }}\n                                                                           </span>\n                                                                       <span data-ng-show="(forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END CALLERID -->\n\n                                                                       <!-- START CUTDIGITS -->\n                                                              <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_CUTDIGITS\' | translate}}</label>\n                                                                        <input type="text" pattern="[0-9]+" class="form-control" name="cutdigits" data-ng-model="application.appdata[2]" data-ng-init="application.appdata[2] = null">\n                                                                        <span class="help-block">\n                                                                             {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                                       </span>\n                                                               </div>\n                                                                <!-- END CUTDIGITS -->\n\n                                                              <!-- START PREFIX -->\n                                                         <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.prefix.$touched || forms.info.$submitted) && forms.info.prefix.$invalid}">\n                                                                        <label class="control-label">{{ \'APPLICATION_PREFIX\' | translate }}</label>\n                                                                 <input type="text" name="prefix"  placeholder="{{ \'APPLICATION_PREFIX\' | translate }}" class="form-control" data-ng-model="application.appdata[3]" data-ng-init="application.appdata[3] = null">\n                                                                            <span class="help-block">\n                                                                                     {{ \'DESCRIPTION_OUTBOUND_PREFIX\' | translate }}\n                                                                             </span>\n                                                                               <span data-ng-show="(forms.info.prefix.$touched || forms.info.$submitted) && forms.info.prefix.$invalid" class="help-block help-block-error">\n                                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END PREFIX -->\n                                                   </div>\n                                                        <div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n                                                              <!-- START CUSTOMAPP -->\n                                                              <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid}">\n                                                                  <label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                 <input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.app" data-ng-init="application.appdata[0] = null" required>\n                                                                    <span data-ng-show="(forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid && forms.info.customApp.$error.required" class="help-block help-block-error">\n                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END CUSTOMAPP -->\n\n                                                              <!-- START APPDATA -->\n                                                                <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n                                                                      <label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n                                                                      <input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata[0]" data-ng-init="application.appdata[1] = null">\n                                                                 <span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END APPDATA -->\n                                                  </div>\n                                                        <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                  </form>\n                                                       </wz-step>\n                                                            <wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n                                                                       <form name="forms.interval" novalidate>\n                                                                               <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                                             <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                                  <!-- START INTERVAL_TYPE -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                          <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                                       {{$translate.instant(intType.name)}}\n                                                                          </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVAL_TYPE -->\n                                                            <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n                                                                                <!-- START TIME -->\n                                                                           <div class="form-group">\n                                                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                                   <div class="input-group input-large">\n                                                                                         <fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                                          <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                                <fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                                               <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                                                                                 </div>\n                                                                                </div>\n                                                                                <!-- END TIME -->\n\n                                                                           <!-- START WEEKDAY -->\n                                                                                <div class="form-group">\n                                                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                                        <div class="input-group input-large">\n                                                                                         <ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n                                                                                                 <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                                {{$translate.instant(weekDay.name)}}\n                                                                                                  </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span class="input-group-addon">to</span>\n                                                                                             <ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n                                                                                                     <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                                {{$translate.instant(weekDay.name)}}\n                                                                                                  </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                  </div>\n                                                                                </div>\n                                                                                <!-- END WEEKDAY -->\n\n                                                                                <!-- START MONTHDAY -->\n                                                                               <div class="form-group">\n                                                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                                       <div class="input-group input-large">\n                                                                                         <ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n                                                                                                 <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                                               {{monthDay}}\n                                                                                                  </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span class="input-group-addon">to</span>\n                                                                                             <ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n                                                                                                     <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                                               {{monthDay}}\n                                                                                                  </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                  </div>\n                                                                                </div>\n                                                                                <!-- END MONTHDAY -->\n\n                                                                               <!-- START MONTH -->\n                                                                          <div class="form-group">\n                                                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                                  <div class="input-group input-large">\n                                                                                         <ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n                                                                                                   <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                                {{$translate.instant(month.name)}}\n                                                                                                    </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span class="input-group-addon">to</span>\n                                                                                             <ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n                                                                                                       <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                                {{$translate.instant(month.name)}}\n                                                                                                    </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                  </div>\n                                                                                </div>\n                                                                                <!-- END MONTH -->\n                                            </div>\n\n                                              <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n                                                        <!-- START INTERVALS -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                            <ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                  <ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n                                                                            {{$translate.instant(interval.name)}}\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INTERVALS -->\n\n                                              </div>\n\n                                              <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                             <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                  </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/route/outbound/view/view.routeSettings.html",'\n<div class="row" data-ng-init="initApplication();getApplication();getIntervals();">\n    <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD</a> </span>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="updateRoute(\'routes\')">\n                                  <div class="profile-usertitle-name">\n                                          {{(main.app | capitalize) || \'Application\'}}\n                                        </div>\n                <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.info.$valid)">\n                                             <form name="forms.info" novalidate>\n                                                   <div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n                                                    <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n\n                                                        <!-- START TRUNK -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="route.Applications[selectedApp].appdata[0]" name="trunk" theme="bootstrap" required data-ng-disabled="!items.length">\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="trunk.name as trunk in items | filter: $select.search">\n                                                                            <div ng-bind-html="trunk.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <div class="note note-warning" data-ng-hide="items.length">\n                                                                   <h4 class="block">Warning!</h4>\n                                                                       <p>\n                                                                           {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n                                                                     </p>\n                                                                  <p>\n                                                                           {{\'APPLICATION_GO_TO\' | translate}} <a href="/tools/trunks/list">{{\'APPLICATION_TRUNKS\' | translate}}</a>\n                                                                 </p>\n                                                          </div>\n                                                                <span data-ng-show="(forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TRUNK -->\n\n                                                  <!-- START CONTEXT -->\n                                                        <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="route.Applications[selectedApp].appdata[1]" name="context" theme="bootstrap" required>\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="context.name as context in items2 | filter: $select.search">\n                                                                               <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div> -->\n                                                    <!-- END CONTEXT -->\n\n                                                        <!-- START CALLERID -->\n                                                       <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid}">\n                                                            <label class="control-label">{{ \'APPLICATION_CALLERID\' | translate }}</label>\n                                                               <input type="text" name="callerID" pattern=\'^"[a-zA-Z0-9_.-]*" <[a-zA-Z0-9_.-]*>\' placeholder=\'"name" <number>\' class="form-control" data-ng-model="route.Applications[selectedApp].appdata[1]">\n                                                                  <span class="help-block">\n                                                                             {{ \'DESCRIPTION_OUTBOUND_CALLERID\' | translate }} "name" &lt;number&gt;\n                                                                     </span>\n                                                               <span data-ng-show="(forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CALLERID -->\n\n                                                               <!-- START CUTDIGITS -->\n                                                      <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_CUTDIGITS\' | translate}}</label>\n                                                                <input type="text" pattern="[0-9]+" class="form-control" name="cutdigits" data-ng-model="route.Applications[selectedApp].appdata[2]">\n                                                         <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                       </div>\n                                                        <!-- END CUTDIGITS -->\n\n                                                      <!-- START PREFIX -->\n                                                 <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.prefix.$touched || forms.info.$submitted) && forms.info.prefix.$invalid}">\n                                                                <label class="control-label">{{ \'APPLICATION_PREFIX\' | translate }}</label>\n                                                         <input type="text" name="prefix"  placeholder="{{ \'APPLICATION_PREFIX\' | translate }}" class="form-control" data-ng-model="route.Applications[selectedApp].appdata[3]">\n                                                             <span class="help-block">\n                                                                     {{ \'DESCRIPTION_OUTBOUND_PREFIX\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.info.prefix.$touched || forms.info.$submitted) && forms.info.prefix.$invalid" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                                <!-- END PREFIX -->\n                                           </div>\n                                                <div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n                                                      <!-- START CUSTOMAPP -->\n                                                      <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid}">\n                                                          <label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="route.Applications[selectedApp].app" required>\n                                                             <span data-ng-show="(forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid && forms.info.customApp.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CUSTOMAPP -->\n\n                                                      <!-- START APPDATA -->\n                                                        <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n                                                              <label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n                                                              <input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="route.Applications[selectedApp].appdata[0]">\n                                                          <span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END APPDATA -->\n                                          </div>\n                                                <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                  </form>\n                                       </wz-step>\n                                            <wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n                                                       <form name="forms.interval" novalidate>\n                                                               <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                             <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                          <!-- START INTERVAL_TYPE -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n                                                   <label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                          <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                       {{$translate.instant(intType.name)}}\n                                                          </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END INTERVAL_TYPE -->\n                                            <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n                                                                <!-- START TIME -->\n                                                           <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                   <div class="input-group input-large">\n                                                                         <fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                          <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                <fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                               <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                                                                 </div>\n                                                                </div>\n                                                                <!-- END TIME -->\n\n                                                           <!-- START WEEKDAY -->\n                                                                <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                        <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n                                                                                 <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{$translate.instant(weekDay.name)}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n                                                                                     <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{$translate.instant(weekDay.name)}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END WEEKDAY -->\n\n                                                                <!-- START MONTHDAY -->\n                                                               <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                       <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n                                                                                 <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n                                                                                     <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTHDAY -->\n\n                                                               <!-- START MONTH -->\n                                                          <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                  <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n                                                                                   <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{$translate.instant(month.name)}}\n                                                                                    </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n                                                                                       <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{$translate.instant(month.name)}}\n                                                                                    </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTH -->\n                                                    </div>\n\n                                                      <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n                                                                <!-- START INTERVALS -->\n                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                          <ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n                                                                                    {{$translate.instant(interval.name)}}\n                                                                         </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVALS -->\n\n                                                      </div>\n                                                        <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                     <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                  </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/channels/voice/route/outbound/view/view.routes.html",'<div ui-view class="profile-content">\n<div class="row">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle " href="/channels/voice/routes/outbound/view/{{route.id}}/route" data-toggle="dropdown">\n                                                   <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }}\n                                         </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div data-ng-if="selectedApp === undefined" ui-grid="gridOptions"  ui-grid-resize-columns class="grid" ui-grid-draggable-rows>\n                                        <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/channels/voice/route/outbound/view/view.settings.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_OUTBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body" data-ng-init="getContexts();getTags();">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n                                                       <!-- START EXTEN -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_DESTINATION_PATTERN\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <input type="text" name="exten" placeholder="{{\'APPLICATION_DESTINATION_PATTERN\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n                                                         <span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END EXTEN -->\n\n                                                  <!-- START TAG -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.general.tag.$touched || forms.general.$submitted) && forms.general.tag.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_TAG\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <ui-select data-ng-model="route.tag" name="tag" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="tag.name as tag in tags | filter: $select.search">\n                                                                         <div ng-bind-html="tag.name | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.general.tag.$touched || forms.general.$submitted) && forms.general.tag.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TAG -->\n\n                                                    <!-- START CONTEXT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                                                                                <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONTEXT -->\n\n                                                        <!-- START RECORD -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.record.$touched || forms.general.$submitted) && forms.general.record.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_RECORDING\' | translate}}</label></br>\n                                                           <input\n                                                                    bs-switch\n                                                                         class="form-control"\n                                                              ng-model="route.record"\n                                                               type="checkbox"\n                                                               switch-active="{{ recordSwitch.isActive }}"\n                                                                   switch-on-text="{{ recordSwitch.onText }}"\n                                                                    switch-off-text="{{ recordSwitch.offText }}"\n                                                                  switch-on-color="{{ recordSwitch.onColor }}"\n                                                                  switch-off-color="{{ recordSwitch.offColor }}"\n                                                                switch-animate="{{ recordSwitch.animate }}"\n                                                                   switch-size="{{ recordSwitch.size }}"\n                                                                 switch-label="{{ recordSwitch.label }}"\n                                                               switch-icon="{{ recordSwitch.icon }}"\n                                                                 switch-radio-off="{{ recordSwitch.radioOff }}"\n                                                                switch-label-width="{{ recordSwitch.labelWidth }}"\n                                                                    switch-handle-width="{{ recordSwitch.handleWidth }}">\n                                                             <span data-ng-show="(forms.general.record.$touched || forms.general.$submitted) && forms.general.record.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END RECORD -->\n\n                                                 <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/route/view.application.html",'\n<div class="row" data-ng-init="initApplication(true); getIntervals();">\n  <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_NEW_APPLICATION\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="addApplication()">\n                                 <div class="profile-usertitle-name">\n                                          {{(main.app | capitalize) || \'Application\'}}\n                                        </div>\n                <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n                                                 <form name="forms.settings" novalidate>\n                                                               <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                                  <!-- START APP -->\n                                                                    <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n                                                                          <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                                <ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n                                                <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                              <ui-select-choices repeat="app.value as app in $application.applications| filter: $select.search">\n                                                      <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                             </ui-select-choices>\n                                                </ui-select>\n                                                                                <span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END APP -->\n\n                                                                    <div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n                                                                          <!-- START QUEUE -->\n                                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n                                                                                       <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                        <ui-select data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = null" name="queue" theme="bootstrap" required data-ng-disabled="!items.length">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n                                                                                                    <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <div class="note note-warning" data-ng-hide="items.length">\n                                                                                           <h4 class="block">Warning!</h4>\n                                                                                               <p>\n                                                                                                   {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n                                                                                             </p>\n                                                                                          <p>\n                                                                                                   {{\'APPLICATION_GO_TO\' | translate}} <a href="/channels/voice/queues/list">{{\'APPLICATION_QUEUES\' | translate}}</a>\n                                                                                                </p>\n                                                                                  </div>\n                                                                                        <span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n                                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END QUEUE -->\n\n                                                                          <!-- START OPTIONS -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n                                                                                  <input type="text" name="app_options" placeholder="{{ \'APPLICATION_OPTIONS\' | translate }}" class="form-control" data-ng-model="application.appdata[1]" data-ng-init="application.appdata[1] = null">\n                                                                                       <span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n                                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END OPTIONS -->\n                                                                          <!-- START URL -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n                                                                                   <label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n                                                                                    <input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.appdata[2]" data-ng-init="application.appdata[2] = null">\n                                                                                   <span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END URL -->\n\n                                                                            <!-- START AUDIOFILE -->\n                                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n                                                                                       <label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n                                                                                       <ui-select data-ng-model="application.appdata[3]" data-ng-init="application.appdata[3] = null" name="audiofile" theme="bootstrap" data-ng-disabled="!items2.length">\n                                                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="soundPath+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n                                                                                                      <div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <div class="note note-warning" data-ng-hide="items2.length">\n                                                                                          <h4 class="block">Warning!</h4>\n                                                                                               <p>\n                                                                                                   {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n                                                                                             </p>\n                                                                                          <p>\n                                                                                                   {{\'APPLICATION_GO_TO\' | translate}} <a href="/tools/sounds/list">{{\'APPLICATION_SOUNDS\' | translate}}</a>\n                                                                                         </p>\n                                                                                  </div>\n                                                                                        <span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n                                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END AUDIOFILE -->\n\n                                                                              <!-- START TIMEOUT -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n                                                                                   <label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n                                                                                        <input type="text" pattern="[0-9]+" name="timeout" placeholder="" class="form-control" data-ng-model="application.appdata[4]" data-ng-init="application.appdata[4] = null">\n                                                                                   <span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n                                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END TIMEOUT -->\n\n                                                                        </div>\n                                                                        <div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n                                                                            <!-- START AUDIOFILE -->\n                                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n                                                                                       <label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                   <ui-select data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = null" name="audiofile" theme="bootstrap" required data-ng-disabled="!items.length">\n                                                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="soundPath+\'/\'+audio.save_name as audio in items | filter: $select.search">\n                                                                                                       <div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <div class="note note-warning" data-ng-hide="items.length">\n                                                                                           <h4 class="block">Warning!</h4>\n                                                                                               <p>\n                                                                                                   {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n                                                                                             </p>\n                                                                                          <p>\n                                                                                                   {{\'APPLICATION_GO_TO\' | translate}} <a href="/tools/sounds/list">{{\'APPLICATION_SOUNDS\' | translate}}</a>\n                                                                                         </p>\n                                                                                  </div>\n                                                                                        <span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n                                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END AUDIOFILE -->\n\n                                                                              <!-- START OPTIONS -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n                                                                                  <input type="text" name="app_options" placeholder="{{ \'APPLICATION_OPTIONS\' | translate }}" class="form-control" data-ng-model="application.appdata[1]" data-ng-init="application.appdata[1] = null">\n                                                                                       <span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n                                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END OPTIONS -->\n                                                                  </div>\n                                                                        <div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n                                                                            <!-- START INTERFACE -->\n                                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n                                                                                       <label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                                  <input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = null" required>\n                                                                                 <span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n                                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END INTERFACE -->\n\n                                                                              <!-- START TIMEOUT -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n                                                                                   <label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n                                                                                        <input type="text" pattern="[0-9]+" name="timeout" placeholder="" class="form-control" data-ng-model="application.appdata[1]" data-ng-init="application.appdata[1] = null">\n                                                                                   <span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n                                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END TIMEOUT -->\n\n                                                                                <!-- START OPTIONS -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n                                                                                   <label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n                                                                                        <input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.appdata[2]" data-ng-init="application.appdata[2] = null">\n                                                                                        <span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END OPTIONS -->\n\n                                                                                <!-- START URL -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n                                                                                   <label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n                                                                                    <input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.appdata[3]" data-ng-init="application.appdata[3] = null">\n                                                                                   <span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END URL -->\n                                                                      </div>\n                                                                        <div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n                                                                              <!-- START PROJECT -->\n                                                                                <input type="hidden" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = \'agi://127.0.0.1/square\'">\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                      <ui-select data-ng-model="application.appdata[1]" data-ng-init="application.appdata[1] = null" name="project" theme="bootstrap" required data-ng-disabled="!items.length">\n                                                                                            <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="project.name as project in items | filter: $select.search">\n                                                                                                        <div ng-bind-html="project.name | highlight: $select.search"></div>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <div class="note note-warning" data-ng-hide="items.length">\n                                                                                           <h4 class="block">Warning!</h4>\n                                                                                               <p>\n                                                                                                   {{ \'MESSAGE_NO_PROJECTS_AVAILABLE\' | translate }}\n                                                                                           </p>\n                                                                                          <p>\n                                                                                                   {{\'APPLICATION_GO_TO\' | translate}} <a href="/square/projects/list">{{\'APPLICATION_PROJECTS\' | translate}}</a>\n                                                                                            </p>\n                                                                                  </div>\n                                                                                        <span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n                                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END PROJECT -->\n\n                                                                        </div>\n                                                                        <div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n                                                                            <!-- START CONTEXT -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                      <ui-select data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = null" name="context" theme="bootstrap" required>\n                                                                                             <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="context.name as context in items | filter: $select.search">\n                                                                                                        <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n                                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END CONTEXT -->\n\n                                                                                <!-- START EXTENSION -->\n                                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n                                                                                       <label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                                  <input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.appdata[1]" data-ng-init="application.appdata[1] = null" required>\n                                                                                 <span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n                                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END EXTENSION -->\n\n                                                                              <!-- START PRIORITY -->\n                                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n                                                                                 <label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                                   <input type="text" pattern="[0-9]+" name="priority" placeholder="" class="form-control" data-ng-model="application.appdata[2]" data-ng-init="application.appdata[2] = null" required>\n                                                                                 <span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n                                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END PRIORITY -->\n                                                                 </div>\n                                                                        <div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n                                                                                <!-- START HANGUPCAUSE -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                 <ui-select data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = null" theme="bootstrap" name="hangupCause" required>\n                                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                          <ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n                                                                                                   <div ng-bind-html="hangupCause.name  | translate | highlight: $select.search"></div>\n                                                                                          </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n                                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END HANGUPCAUSE -->\n                                                                      </div>\n                                                                        <div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n                                                                              <!-- START VARIABLE -->\n                                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n                                                                                 <label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                                   <input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" data-ng-init="application.appdata[0] = null" data-ng-change="updateSetAppdata()" required>\n                                                                                        <span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n                                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END VARIABLE -->\n\n                                                                               <!-- START VARVALUE -->\n                                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n                                                                                 <label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                                      <input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" data-ng-change="updateSetAppdata()" required>\n                                                                                        <span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n                                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END VARVALUE -->\n                                                                 </div>\n                                                                        <div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n                                                                              <!-- START CUSTOMAPP -->\n                                                                              <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n                                                                                      <label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                                 <input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.app" required>\n                                                                                 <span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n                                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END CUSTOMAPP -->\n\n                                                                              <!-- START APPDATA -->\n                                                                                <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n                                                                                  <label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n                                                                                      <input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = null">\n                                                                                 <span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n                                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END APPDATA -->\n                                                                  </div>\n                                                                        <div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n                                                                          <!-- START VOICEMAIL -->\n                                                                              <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n                                                                                      <label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                                  <ui-select data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = null" theme="bootstrap" name="voicemail" required data-ng-disabled="!items.length">\n                                                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.mailbox}}</ui-select-match>\n                                                                                           <ui-select-choices repeat="mailbox.mailbox+\'@\'+mailbox.context as mailbox in items | filter: $select.search">\n                                                                                                       <div ng-bind-html="mailbox.mailbox | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <div class="note note-warning" data-ng-hide="items.length">\n                                                                                           <h4 class="block">Warning!</h4>\n                                                                                               <p>\n                                                                                                   {{ \'MESSAGE_NO_VOICEMAILS_AVAILABLE\' | translate }}\n                                                                                         </p>\n                                                                                          <p>\n                                                                                                   {{\'APPLICATION_GO_TO\' | translate}} <a href="/channels/voice/voicemails/list">{{\'APPLICATION_VOICEMAILS\' | translate}}</a>\n                                                                                                </p>\n                                                                                  </div>\n                                                                                        <span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n                                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END VOICEMAIL -->\n                                                                        </div>\n                                                                        <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                          </form>\n                                                               </wz-step>\n                                                                    <wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n                                                                               <form name="forms.interval" novalidate>\n                                                                               <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                                             <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                                  <!-- START INTERVAL_TYPE -->\n                                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n                                                                           <label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                <ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n                                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                  <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                                               <div ng-bind-html="intType.name | translate | highlight: $select.search"></div>\n                                                                                       </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END INTERVAL_TYPE -->\n                                                                    <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n                                                                                        <!-- START TIME -->\n                                                                                   <div class="form-group">\n                                                                                              <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                                           <div class="input-group input-large">\n                                                                                                 <fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                                                  <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                                        <fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                                                       <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                                                                                         </div>\n                                                                                        </div>\n                                                                                        <!-- END TIME -->\n\n                                                                                   <!-- START WEEKDAY -->\n                                                                                        <div class="form-group">\n                                                                                              <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                                                <div class="input-group input-large">\n                                                                                                 <ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n                                                                                                         <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                               <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                                        {{$translate.instant(weekDay.name)}}\n                                                                                                          </ui-select-choices>\n                                                                                                  </ui-select>\n                                                                                                  <span class="input-group-addon">to</span>\n                                                                                                     <ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n                                                                                                             <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                               <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                                        {{$translate.instant(weekDay.name)}}\n                                                                                                          </ui-select-choices>\n                                                                                                  </ui-select>\n                                                                                          </div>\n                                                                                        </div>\n                                                                                        <!-- END WEEKDAY -->\n\n                                                                                        <!-- START MONTHDAY -->\n                                                                                       <div class="form-group">\n                                                                                              <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                                               <div class="input-group input-large">\n                                                                                                 <ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n                                                                                                         <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                                               <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                                                       {{monthDay}}\n                                                                                                          </ui-select-choices>\n                                                                                                  </ui-select>\n                                                                                                  <span class="input-group-addon">to</span>\n                                                                                                     <ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n                                                                                                             <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                                               <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                                                       {{monthDay}}\n                                                                                                          </ui-select-choices>\n                                                                                                  </ui-select>\n                                                                                          </div>\n                                                                                        </div>\n                                                                                        <!-- END MONTHDAY -->\n\n                                                                                       <!-- START MONTH -->\n                                                                                  <div class="form-group">\n                                                                                              <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                                          <div class="input-group input-large">\n                                                                                                 <ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n                                                                                                           <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                               <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                                        {{$translate.instant(month.name)}}\n                                                                                                            </ui-select-choices>\n                                                                                                  </ui-select>\n                                                                                                  <span class="input-group-addon">to</span>\n                                                                                                     <ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n                                                                                                               <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                               <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                                        {{$translate.instant(month.name)}}\n                                                                                                            </ui-select-choices>\n                                                                                                  </ui-select>\n                                                                                          </div>\n                                                                                        </div>\n                                                                                        <!-- END MONTH -->\n                                                    </div>\n\n                                                      <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n                                                                <!-- START INTERVALS -->\n                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                          <ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n                                                                                    {{$translate.instant(interval.name)}}\n                                                                         </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVALS -->\n\n                                                      </div>\n                                                                <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                             <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                  </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n<!-- <pre>\n  {{application | json}}\n</pre>\n<pre>\n {{interval | json}}\n</pre> -->\n'),
+a.put("app/channels/voice/realtime/view/queue/queue.modal.remove.html",'<div class="modal-header" data-ng-init="initRemove()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_REMOVAL\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n           <!-- Default panel contents -->\n               <div class="panel-heading">\n                   <h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n           </div>\n                <!-- List group -->\n           <ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row" data-ng-hide="data.length">\n                                  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n                                     </div>\n                                </div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                 <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n                                  </div>\n                                </div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                 <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGOUT\' | translate}}:</label>\n                                        <div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.logout" btn-checkbox> {{ selected.logout ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n            <span class="help-block">{{ \'MESSAGE_PERMANENT_REMOVAL_FROM_QUEUE\' | translate }}. </span>\n          </div>\n                              </div>\n      </li>\n           </ul>\n </div>\n  <button class="btn btn-danger btn-block" type="button" ng-click="okRemove()">{{ \'APPLICATION_REMOVE\' | translate }}</button>\n</div>\n<div class="modal-footer">\n  <!-- <button class="btn btn-success" type="button" ng-click="okRemove()">{{ \'APPLICATION_CONFIRM\' | translate }}</button> -->\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/realtime/view/queue/queue.remove.modal.html",'<div class="modal-header" data-ng-init="initRemove()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_REMOVAL\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n             <!-- Default panel contents -->\n               <div class="panel-heading">\n                   <h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n           </div>\n                <!-- List group -->\n           <ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n                                     <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n                                     </div>\n                                </div>\n      </li>\n      <li class="list-group-item" data-ng-hide="data.length">\n        <div class="form-group row">\n                                      <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n                                  </div>\n                                </div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                 <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGOUT\' | translate}}:</label>\n                                        <div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.logout" btn-checkbox> {{ selected.logout ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n            <span class="help-block">{{ \'MESSAGE_PERMANENT_REMOVAL_FROM_QUEUE\' | translate }}. </span>\n          </div>\n                              </div>\n      </li>\n           </ul>\n </div>\n  <button class="btn btn-danger btn-block" type="button" ng-click="okRemove()">{{ \'APPLICATION_REMOVE\' | translate }}</button>\n</div>\n<div class="modal-footer">\n  <!-- <button class="btn btn-success" type="button" ng-click="okRemove()">{{ \'APPLICATION_CONFIRM\' | translate }}</button> -->\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/realtime/view/telephone/telephone.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initTelephones()">\n       <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions" ui-grid-resize-columns  class="ui-grid" ui-grid-pagination auto-resize>\n                    <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/realtime/view/telephone/telephone.modal.info.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_INTERFACE_INFO\' | translate }}</h3>\n</div>\n<div class="modal-body">\n<div data-ng-if="telephone.ipaddr" class="well">\n  <div>{{telephone.ipaddr}}:{{telephone.port}}</div>\n  <div>{{telephone.fullcontact}}</div>\n  <div>{{telephone.useragent}}</div>\n  <div>{{telephone.lastms}}</div>\n</div>\n<div data-ng-if="!telephone.ipaddr" class="alert alert-danger" role="alert">\n  {{\'MESSAGE_NO_AVAILABLE_INFO\' | translate}}\n</div>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="close()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-directions"></i>\n                                       <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-earphones-alt"></i>\n                                    <a href="#">{{ \'APPLICATION_VOICE\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-energy"></i>\n                                   <a href="/channels/voice/realtime/view/agents">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <div>\n             <nav class="navbar navbar-default" role="navigation">\n                                     <div class="collapse navbar-collapse">\n                                                <ul class="nav navbar-nav">\n                                                   <li data-ng-class="{\'active\': $state.is(\'main.channels.voice.realtime.view.agents\')}">\n                                                            <a href="/channels/voice/realtime/view/agents">\n                                                                       {{\'APPLICATION_AGENTS\' | translate}}\n                                                                </a>\n                                                  </li>\n                                                 <li data-ng-class="{\'active\': $state.is(\'main.channels.voice.realtime.view.telephones\')}">\n                                                                <a href="/channels/voice/realtime/view/telephones">\n                                                                   {{\'APPLICATION_TELEPHONES\' | translate}}\n                                                            </a>\n                                                  </li>\n                                         </ul>\n                                 </div>\n                    </nav>\n            </div>\n                <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/recording/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-control-play"></i>\n                                     <a href="#">{{ \'APPLICATION_RECORDINGS\' | translate }}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-control-play font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_RECORDINGS\' | translate }}</a> </span>\n                                </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                       </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/route/inbound/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_ROUTE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.extension" novalidate>\n\n    <!-- START EXTEN -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.extension.exten.$touched || forms.extension.$submitted) && forms.extension.exten.$invalid || existRoute}">\n      <label class="control-label">{{\'APPLICATION_PHONE_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="exten" placeholder="{{\'APPLICATION_PHONE_NUMBER\' | translate}}" class="form-control" data-ng-model="item.exten" data-ng-pattern="settings.patternName" required/>\n      <span data-ng-show="(forms.extension.exten.$touched || forms.extension.$submitted) && forms.extension.exten.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END EXTEN -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.extension.$invalid || existRoute">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n<!-- <pre>\n  {{item | json}}\n</pre> -->\n'),a.put("app/channels/voice/route/inbound/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-earphones-alt"></i>\n                                    <a href="#">{{ \'APPLICATION_VOICE\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-call-in"></i>\n                                  <a href="/channels/voice/routes/inbound/list">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-users font-green-sharp"></i>\n                                   <span class="caption-subject">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-ng-click="create()">\n                                                       <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }}\n                                         </a>\n                                  </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter class="ui-grid" ui-grid-draggable-rows>\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/route/inbound/view/view.applications.html",'<div ui-view class="profile-content">\n<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle " href="/channels/voice/routes/inbound/view/{{route.id}}/application" data-toggle="dropdown">\n                                                      <i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div data-ng-if="showGrid" ui-grid="gridOptions"  ui-grid-resize-columns class="grid" ui-grid-draggable-rows ui-grid-auto-resize>\n                                     <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/channels/voice/route/inbound/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-reload"></i>\n                                   <a href="/channels/voice/routes/inbound/list">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                                  <i data-ng-show="route" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="route">\n                                     <a href="#">{{route.exten}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/inboundroute.png" class="img-responsive">\n                               </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{route.exten}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.voice.routes.inbound.view.settings\')}">\n                                                        <a data-ng-click="deselectAndRedirect(\'/channels/voice/routes/inbound/view/\'+route.id+\'/settings\')">\n                                                      <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n'+"                                              <li data-ng-class=\"{active: $state.is('main.channels.voice.routes.inbound.view.applications') || $state.is('main.channels.voice.routes.inbound.view.application') || $state.is('main.channels.voice.routes.inbound.view.applications.settings')}\">\n                                                  <a data-ng-click=\"deselectAndRedirect('/channels/voice/routes/inbound/view/'+route.id+'/applications')\">\n                                                    <i class=\"icon-list\"></i>\n                                                   {{ 'APPLICATION_ACTIONS' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class=\"profile-content\">\n               </div>\n                <!-- <pre>\n                    {{route | json}}\n              </pre> -->\n            <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n"),a.put("app/channels/voice/route/inbound/view/view.settings.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                              </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body" data-ng-init="getContexts()">\n                               <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n                                                       <!-- START EXTEN -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_PHONE_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="exten" placeholder="{{\'APPLICATION_PHONE_NUMBER\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n                                                                <span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END EXTEN -->\n\n                                                  <!-- START CONTEXT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                                                                                <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONTEXT -->\n\n                                                        <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/route/internal/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_ROUTE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.extension" novalidate>\n\n    <!-- START EXTEN -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.extension.exten.$touched || forms.extension.$submitted) && forms.extension.exten.$invalid || existRoute}">\n      <label class="control-label">{{\'APPLICATION_PHONE_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="exten" placeholder="{{\'APPLICATION_PHONE_NUMBER\' | translate}}" class="form-control" data-ng-model="item.exten" data-ng-pattern="settings.patternName" required/>\n      <span data-ng-show="(forms.extension.exten.$touched || forms.extension.$submitted) && forms.extension.exten.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END EXTEN -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.extension.$invalid || existRoute">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n<!-- <pre>\n  {{item | json}}\n</pre> -->\n'),a.put("app/channels/voice/route/internal/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-reload"></i>\n                                   <a href="/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-users font-green-sharp"></i>\n                                   <span class="caption-subject">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-ng-click="create()">\n                                                       <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }}\n                                         </a>\n                                  </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter class="ui-grid" ui-grid-draggable-rows>\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/route/internal/view/view.applications.html",'<div ui-view class="profile-content">\n<div class="row">\n  <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle " href="/channels/voice/routes/internal/view/{{route.id}}/application" data-toggle="dropdown">\n                                                     <i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div data-ng-if="showGrid" ui-grid="gridOptions"  ui-grid-resize-columns class="grid" ui-grid-draggable-rows>\n                                 <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/channels/voice/route/internal/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-reload"></i>\n                                   <a href="/channels/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                                        <i data-ng-show="route" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="route">\n                                     <a href="#">{{route.exten}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/internalroute.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{route.exten}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.voice.routes.internal.view.settings\')}">\n                                                       <a data-ng-click="deselectAndRedirect(\'/channels/voice/routes/internal/view/\'+route.id+\'/settings\')">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n'+"                                              <li data-ng-class=\"{active: $state.is('main.channels.voice.routes.internal.view.applications') || $state.is('main.channels.voice.routes.internal.view.application') || $state.is('main.channels.voice.routes.internal.view.applications.settings')}\">\n                                                       <a data-ng-click=\"deselectAndRedirect('/channels/voice/routes/internal/view/'+route.id+'/applications')\">\n                                                   <i class=\"icon-list\"></i>\n                                                   {{ 'APPLICATION_ACTIONS' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class=\"profile-content\">\n               </div>\n                <!-- <pre>\n                    {{route | json}}\n              </pre> -->\n            <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n"),a.put("app/channels/voice/route/internal/view/view.settings.html",'<div class="row">\n     <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INTERNAL\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body" data-ng-init="getContexts()">\n                               <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n                                                       <!-- START EXTEN -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_PHONE_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="exten" placeholder="{{\'APPLICATION_PHONE_NUMBER\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n                                                                <span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END EXTEN -->\n\n                                                  <!-- START CONTEXT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                                                                                <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONTEXT -->\n\n                                                        <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
+a.put("app/channels/voice/route/outbound/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_ROUTE\' | translate }}</h3>\n</div>\n<div class="modal-body" data-ng-init="getTags()">\n  <form name="forms.extension" novalidate>\n\n    <!-- START EXTEN -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.extension.exten.$touched || forms.extension.$submitted) && forms.extension.exten.$invalid || existRoute}">\n      <label class="control-label">{{\'APPLICATION_DESTINATION_PATTERN\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="exten" placeholder="{{\'APPLICATION_DESTINATION_PATTERN\' | translate}}" class="form-control" data-ng-model="item.exten" data-ng-pattern="settings.patternName" required/>\n      <span data-ng-show="(forms.extension.exten.$touched || forms.extension.$submitted) && forms.extension.exten.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END EXTEN -->\n\n    <!-- START TAG -->\n    <div class="form-group"  data-ng-class="{\'has-error\': (forms.extension.tag.$touched || forms.extension.$submitted) && forms.extension.tag.$invalid}">\n      <label class="control-label">{{ \'APPLICATION_TAG\' | translate }}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.tag" name="tag" theme="bootstrap" required>\n        <ui-select-match placeholder="{{ \'APPLICATION_TAG\' | translate }}" data-ng-init="item.tag = \'--\'">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="tag.name as tag in tags | filter: $select.search">\n          <div ng-bind-html="tag.name | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(forms.extension.tag.$touched || forms.extension.$submitted) && forms.extension.tag.$invalid && forms.extension.tag.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TAG -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.extension.$invalid || existRoute">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n<!-- <pre>\n  {{item | json}}\n</pre> -->\n'),a.put("app/channels/voice/route/outbound/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-call-out"></i>\n                                 <a href="/channels/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-users font-green-sharp"></i>\n                                   <span class="caption-subject">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle " href="#" data-ng-click="create()">\n                                                       <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }}\n                                         </a>\n                                  </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter class="ui-grid" ui-grid-draggable-rows>\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/route/outbound/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-call-out"></i>\n                                 <a href="/channels/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n                                        <i data-ng-show="route" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="route">\n                                     <a href="#">{{route.exten}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/outboundroute.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{route.exten}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.voice.routes.outbound.view.settings\')}">\n                                                       <a data-ng-click="deselectAndRedirect(\'/channels/voice/routes/outbound/view/\'+route.id+\'/settings\')">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n'+"                                              <li data-ng-class=\"{active: $state.is('main.channels.voice.routes.outbound.view.routes') || $state.is('main.channels.voice.routes.outbound.view.route') || $state.is('main.channels.voice.routes.outbound.view.routes.settings')}\">\n                                                 <a data-ng-click=\"deselectAndRedirect('/channels/voice/routes/outbound/view/'+route.id+'/routes')\">\n                                                 <i class=\"icon-list\"></i>\n                                                   {{ 'APPLICATION_ACTIONS' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class=\"profile-content\">\n               </div>\n                <!-- <pre>\n                    {{route | json}}\n              </pre> -->\n            <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n"),a.put("app/channels/voice/route/outbound/view/view.route.html",'<div class="row" data-ng-init="initApplication(true);getIntervals();">\n   <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_NEW_ROUTE\' | translate }} WIZARD</a> </span>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="profile-usertitle-name">\n                                  {{(main.app | capitalize) || \'Application\'}}\n                                </div>\n                                <wizard on-finish="addApplication()">\n         <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(forms.info.$valid)">\n                                                        <form name="forms.info" novalidate>\n                                                           <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                          <!-- START APP -->\n                                                            <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid}">\n                                                                      <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n                                                                            <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="app.value as app in applications | filter: $select.search">\n                                                                                        <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                                               </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid && forms.info.app.$error.required" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END APP -->\n                                                              <div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n                                                            <!-- START TRUNK -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = null" name="trunk" theme="bootstrap" required data-ng-disabled="!items.length">\n                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="trunk.name as trunk in items | filter: $select.search">\n                                                                                    <div ng-bind-html="trunk.name | highlight: $select.search"></div>\n                                                                             </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <div class="note note-warning" data-ng-hide="items.length">\n                                                                           <h4 class="block">Warning!</h4>\n                                                                               <p>\n                                                                                   {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n                                                                             </p>\n                                                                          <p>\n                                                                                   {{\'APPLICATION_GO_TO\' | translate}} <a href="/tools/trunks/list">{{\'APPLICATION_TRUNKS\' | translate}}</a>\n                                                                         </p>\n                                                                  </div>\n                                                                        <span data-ng-show="(forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END TRUNK -->\n\n                                                          <!-- <input type="hidden" class="form-control" name="context" data-ng-model="application.appdata[1]" data-ng-init="application.appdata[1] = \'from-sip\'"> -->\n\n                                                              <!-- START CALLERID -->\n                                                               <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid}">\n                                                                    <label class="control-label">{{ \'APPLICATION_CALLERID\' | translate }}</label>\n                                                                       <input type="text" name="callerID" pattern=\'^"[a-zA-Z0-9_.-]*" <[a-zA-Z0-9_.-]*>\' placeholder=\'"name" <number>\' class="form-control" data-ng-model="application.appdata[1]" data-ng-init="application.appdata[1] = null">\n                                                                         <span class="help-block">\n                                                                                     {{ \'DESCRIPTION_OUTBOUND_CALLERID\' | translate }}\n                                                                           </span>\n                                                                       <span data-ng-show="(forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END CALLERID -->\n\n                                                                       <!-- START CUTDIGITS -->\n                                                              <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_CUTDIGITS\' | translate}}</label>\n                                                                        <input type="text" pattern="[0-9]+" class="form-control" name="cutdigits" data-ng-model="application.appdata[2]" data-ng-init="application.appdata[2] = null">\n                                                                        <span class="help-block">\n                                                                             {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                                       </span>\n                                                               </div>\n                                                                <!-- END CUTDIGITS -->\n\n                                                              <!-- START PREFIX -->\n                                                         <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.prefix.$touched || forms.info.$submitted) && forms.info.prefix.$invalid}">\n                                                                        <label class="control-label">{{ \'APPLICATION_PREFIX\' | translate }}</label>\n                                                                 <input type="text" name="prefix"  placeholder="{{ \'APPLICATION_PREFIX\' | translate }}" class="form-control" data-ng-model="application.appdata[3]" data-ng-init="application.appdata[3] = null">\n                                                                            <span class="help-block">\n                                                                                     {{ \'DESCRIPTION_OUTBOUND_PREFIX\' | translate }}\n                                                                             </span>\n                                                                               <span data-ng-show="(forms.info.prefix.$touched || forms.info.$submitted) && forms.info.prefix.$invalid" class="help-block help-block-error">\n                                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END PREFIX -->\n                                                   </div>\n                                                        <div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n                                                              <!-- START CUSTOMAPP -->\n                                                              <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid}">\n                                                                  <label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                 <input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.app" data-ng-init="application.appdata[0] = null" required>\n                                                                    <span data-ng-show="(forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid && forms.info.customApp.$error.required" class="help-block help-block-error">\n                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END CUSTOMAPP -->\n\n                                                              <!-- START APPDATA -->\n                                                                <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n                                                                      <label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n                                                                      <input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata[0]" data-ng-init="application.appdata[1] = null">\n                                                                 <span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END APPDATA -->\n                                                  </div>\n                                                        <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                  </form>\n                                                       </wz-step>\n                                                            <wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n                                                                       <form name="forms.interval" novalidate>\n                                                                               <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                                             <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                                  <!-- START INTERVAL_TYPE -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                          <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                                       {{$translate.instant(intType.name)}}\n                                                                          </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVAL_TYPE -->\n                                                            <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n                                                                                <!-- START TIME -->\n                                                                           <div class="form-group">\n                                                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                                   <div class="input-group input-large">\n                                                                                         <fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                                          <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                                <fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                                               <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                                                                                 </div>\n                                                                                </div>\n                                                                                <!-- END TIME -->\n\n                                                                           <!-- START WEEKDAY -->\n                                                                                <div class="form-group">\n                                                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                                        <div class="input-group input-large">\n                                                                                         <ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n                                                                                                 <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                                {{$translate.instant(weekDay.name)}}\n                                                                                                  </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span class="input-group-addon">to</span>\n                                                                                             <ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n                                                                                                     <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                                {{$translate.instant(weekDay.name)}}\n                                                                                                  </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                  </div>\n                                                                                </div>\n                                                                                <!-- END WEEKDAY -->\n\n                                                                                <!-- START MONTHDAY -->\n                                                                               <div class="form-group">\n                                                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                                       <div class="input-group input-large">\n                                                                                         <ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n                                                                                                 <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                                               {{monthDay}}\n                                                                                                  </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span class="input-group-addon">to</span>\n                                                                                             <ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n                                                                                                     <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                                               {{monthDay}}\n                                                                                                  </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                  </div>\n                                                                                </div>\n                                                                                <!-- END MONTHDAY -->\n\n                                                                               <!-- START MONTH -->\n                                                                          <div class="form-group">\n                                                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                                  <div class="input-group input-large">\n                                                                                         <ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n                                                                                                   <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                                {{$translate.instant(month.name)}}\n                                                                                                    </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span class="input-group-addon">to</span>\n                                                                                             <ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n                                                                                                       <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                                {{$translate.instant(month.name)}}\n                                                                                                    </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                  </div>\n                                                                                </div>\n                                                                                <!-- END MONTH -->\n                                            </div>\n\n                                              <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n                                                        <!-- START INTERVALS -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                            <ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                  <ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n                                                                            {{$translate.instant(interval.name)}}\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INTERVALS -->\n\n                                              </div>\n\n                                              <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                             <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                  </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/route/outbound/view/view.routeSettings.html",'\n<div class="row" data-ng-init="initApplication();getApplication();getIntervals();">\n    <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD</a> </span>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="updateRoute(\'routes\')">\n                                  <div class="profile-usertitle-name">\n                                          {{(main.app | capitalize) || \'Application\'}}\n                                        </div>\n                <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.info.$valid)">\n                                             <form name="forms.info" novalidate>\n                                                   <div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n                                                    <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n\n                                                        <!-- START TRUNK -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="route.Applications[selectedApp].appdata[0]" name="trunk" theme="bootstrap" required data-ng-disabled="!items.length">\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="trunk.name as trunk in items | filter: $select.search">\n                                                                            <div ng-bind-html="trunk.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <div class="note note-warning" data-ng-hide="items.length">\n                                                                   <h4 class="block">Warning!</h4>\n                                                                       <p>\n                                                                           {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n                                                                     </p>\n                                                                  <p>\n                                                                           {{\'APPLICATION_GO_TO\' | translate}} <a href="/tools/trunks/list">{{\'APPLICATION_TRUNKS\' | translate}}</a>\n                                                                 </p>\n                                                          </div>\n                                                                <span data-ng-show="(forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TRUNK -->\n\n                                                  <!-- START CONTEXT -->\n                                                        <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="route.Applications[selectedApp].appdata[1]" name="context" theme="bootstrap" required>\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="context.name as context in items2 | filter: $select.search">\n                                                                               <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div> -->\n                                                    <!-- END CONTEXT -->\n\n                                                        <!-- START CALLERID -->\n                                                       <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid}">\n                                                            <label class="control-label">{{ \'APPLICATION_CALLERID\' | translate }}</label>\n                                                               <input type="text" name="callerID" pattern=\'^"[a-zA-Z0-9_.-]*" <[a-zA-Z0-9_.-]*>\' placeholder=\'"name" <number>\' class="form-control" data-ng-model="route.Applications[selectedApp].appdata[1]">\n                                                                  <span class="help-block">\n                                                                             {{ \'DESCRIPTION_OUTBOUND_CALLERID\' | translate }} "name" &lt;number&gt;\n                                                                     </span>\n                                                               <span data-ng-show="(forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CALLERID -->\n\n                                                               <!-- START CUTDIGITS -->\n                                                      <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_CUTDIGITS\' | translate}}</label>\n                                                                <input type="text" pattern="[0-9]+" class="form-control" name="cutdigits" data-ng-model="route.Applications[selectedApp].appdata[2]">\n                                                         <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                       </div>\n                                                        <!-- END CUTDIGITS -->\n\n                                                      <!-- START PREFIX -->\n                                                 <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.prefix.$touched || forms.info.$submitted) && forms.info.prefix.$invalid}">\n                                                                <label class="control-label">{{ \'APPLICATION_PREFIX\' | translate }}</label>\n                                                         <input type="text" name="prefix"  placeholder="{{ \'APPLICATION_PREFIX\' | translate }}" class="form-control" data-ng-model="route.Applications[selectedApp].appdata[3]">\n                                                             <span class="help-block">\n                                                                     {{ \'DESCRIPTION_OUTBOUND_PREFIX\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.info.prefix.$touched || forms.info.$submitted) && forms.info.prefix.$invalid" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                                <!-- END PREFIX -->\n                                           </div>\n                                                <div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n                                                      <!-- START CUSTOMAPP -->\n                                                      <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid}">\n                                                          <label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="route.Applications[selectedApp].app" required>\n                                                             <span data-ng-show="(forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid && forms.info.customApp.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CUSTOMAPP -->\n\n                                                      <!-- START APPDATA -->\n                                                        <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n                                                              <label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n                                                              <input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="route.Applications[selectedApp].appdata[0]">\n                                                          <span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END APPDATA -->\n                                          </div>\n                                                <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                  </form>\n                                       </wz-step>\n                                            <wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n                                                       <form name="forms.interval" novalidate>\n                                                               <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                             <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                          <!-- START INTERVAL_TYPE -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n                                                   <label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                          <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                       {{$translate.instant(intType.name)}}\n                                                          </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END INTERVAL_TYPE -->\n                                            <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n                                                                <!-- START TIME -->\n                                                           <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                   <div class="input-group input-large">\n                                                                         <fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                          <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                <fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                               <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                                                                 </div>\n                                                                </div>\n                                                                <!-- END TIME -->\n\n                                                           <!-- START WEEKDAY -->\n                                                                <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                        <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n                                                                                 <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{$translate.instant(weekDay.name)}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n                                                                                     <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{$translate.instant(weekDay.name)}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END WEEKDAY -->\n\n                                                                <!-- START MONTHDAY -->\n                                                               <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                       <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n                                                                                 <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n                                                                                     <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTHDAY -->\n\n                                                               <!-- START MONTH -->\n                                                          <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                  <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n                                                                                   <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{$translate.instant(month.name)}}\n                                                                                    </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n                                                                                       <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{$translate.instant(month.name)}}\n                                                                                    </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTH -->\n                                                    </div>\n\n                                                      <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n                                                                <!-- START INTERVALS -->\n                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                          <ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n                                                                                    {{$translate.instant(interval.name)}}\n                                                                         </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVALS -->\n\n                                                      </div>\n                                                        <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                     <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                  </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/channels/voice/route/outbound/view/view.routes.html",'<div ui-view class="profile-content">\n<div class="row">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle " href="/channels/voice/routes/outbound/view/{{route.id}}/route" data-toggle="dropdown">\n                                                   <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }}\n                                         </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div data-ng-if="showGrid" ui-grid="gridOptions"  ui-grid-resize-columns class="grid" ui-grid-draggable-rows>\n                                 <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/channels/voice/route/outbound/view/view.settings.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_OUTBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body" data-ng-init="getContexts();getTags();">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n                                                       <!-- START EXTEN -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_DESTINATION_PATTERN\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <input type="text" name="exten" placeholder="{{\'APPLICATION_DESTINATION_PATTERN\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n                                                         <span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END EXTEN -->\n\n                                                  <!-- START TAG -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.general.tag.$touched || forms.general.$submitted) && forms.general.tag.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_TAG\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <ui-select data-ng-model="route.tag" name="tag" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="tag.name as tag in tags | filter: $select.search">\n                                                                         <div ng-bind-html="tag.name | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.general.tag.$touched || forms.general.$submitted) && forms.general.tag.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TAG -->\n\n                                                    <!-- START CONTEXT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                                                                                <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONTEXT -->\n\n                                                        <!-- START RECORD -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.record.$touched || forms.general.$submitted) && forms.general.record.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_RECORDING\' | translate}}</label></br>\n                                                           <input\n                                                                    bs-switch\n                                                                         class="form-control"\n                                                              ng-model="route.record"\n                                                               type="checkbox"\n                                                               switch-active="{{ recordSwitch.isActive }}"\n                                                                   switch-on-text="{{ recordSwitch.onText }}"\n                                                                    switch-off-text="{{ recordSwitch.offText }}"\n                                                                  switch-on-color="{{ recordSwitch.onColor }}"\n                                                                  switch-off-color="{{ recordSwitch.offColor }}"\n                                                                switch-animate="{{ recordSwitch.animate }}"\n                                                                   switch-size="{{ recordSwitch.size }}"\n                                                                 switch-label="{{ recordSwitch.label }}"\n                                                               switch-icon="{{ recordSwitch.icon }}"\n                                                                 switch-radio-off="{{ recordSwitch.radioOff }}"\n                                                                switch-label-width="{{ recordSwitch.labelWidth }}"\n                                                                    switch-handle-width="{{ recordSwitch.handleWidth }}">\n                                                             <span data-ng-show="(forms.general.record.$touched || forms.general.$submitted) && forms.general.record.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END RECORD -->\n\n                                                 <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/route/view.application.html",'\n<div class="row" data-ng-init="initApplication(true); getIntervals();">\n  <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_NEW_APPLICATION\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="addApplication()">\n                                 <div class="profile-usertitle-name">\n                                          {{(main.app | capitalize) || \'Application\'}}\n                                        </div>\n                <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n                                                 <form name="forms.settings" novalidate>\n                                                               <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                                  <!-- START APP -->\n                                                                    <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n                                                                          <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                                <ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n                                                <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                              <ui-select-choices repeat="app.value as app in $application.applications| filter: $select.search">\n                                                      <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                             </ui-select-choices>\n                                                </ui-select>\n                                                                                <span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END APP -->\n\n                                                                    <div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n                                                                          <!-- START QUEUE -->\n                                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n                                                                                       <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                        <ui-select data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = null" name="queue" theme="bootstrap" required data-ng-disabled="!items.length">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n                                                                                                    <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <div class="note note-warning" data-ng-hide="items.length">\n                                                                                           <h4 class="block">Warning!</h4>\n                                                                                               <p>\n                                                                                                   {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n                                                                                             </p>\n                                                                                          <p>\n                                                                                                   {{\'APPLICATION_GO_TO\' | translate}} <a href="/channels/voice/queues/list">{{\'APPLICATION_QUEUES\' | translate}}</a>\n                                                                                                </p>\n                                                                                  </div>\n                                                                                        <span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n                                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END QUEUE -->\n\n                                                                          <!-- START OPTIONS -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n                                                                                  <input type="text" name="app_options" placeholder="{{ \'APPLICATION_OPTIONS\' | translate }}" class="form-control" data-ng-model="application.appdata[1]" data-ng-init="application.appdata[1] = null">\n                                                                                       <span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n                                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END OPTIONS -->\n                                                                          <!-- START URL -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n                                                                                   <label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n                                                                                    <input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.appdata[2]" data-ng-init="application.appdata[2] = null">\n                                                                                   <span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END URL -->\n\n                                                                            <!-- START AUDIOFILE -->\n                                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n                                                                                       <label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n                                                                                       <ui-select data-ng-model="application.appdata[3]" data-ng-init="application.appdata[3] = null" name="audiofile" theme="bootstrap" data-ng-disabled="!items2.length">\n                                                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="soundPath+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n                                                                                                      <div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <div class="note note-warning" data-ng-hide="items2.length">\n                                                                                          <h4 class="block">Warning!</h4>\n                                                                                               <p>\n                                                                                                   {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n                                                                                             </p>\n                                                                                          <p>\n                                                                                                   {{\'APPLICATION_GO_TO\' | translate}} <a href="/tools/sounds/list">{{\'APPLICATION_SOUNDS\' | translate}}</a>\n                                                                                         </p>\n                                                                                  </div>\n                                                                                        <span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n                                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END AUDIOFILE -->\n\n                                                                              <!-- START TIMEOUT -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n                                                                                   <label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n                                                                                        <input type="text" pattern="[0-9]+" name="timeout" placeholder="" class="form-control" data-ng-model="application.appdata[4]" data-ng-init="application.appdata[4] = null">\n                                                                                   <span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n                                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END TIMEOUT -->\n\n                                                                        </div>\n                                                                        <div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n                                                                            <!-- START AUDIOFILE -->\n                                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n                                                                                       <label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                   <ui-select data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = null" name="audiofile" theme="bootstrap" required data-ng-disabled="!items.length">\n                                                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="soundPath+\'/\'+audio.save_name as audio in items | filter: $select.search">\n                                                                                                       <div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <div class="note note-warning" data-ng-hide="items.length">\n                                                                                           <h4 class="block">Warning!</h4>\n                                                                                               <p>\n                                                                                                   {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n                                                                                             </p>\n                                                                                          <p>\n                                                                                                   {{\'APPLICATION_GO_TO\' | translate}} <a href="/tools/sounds/list">{{\'APPLICATION_SOUNDS\' | translate}}</a>\n                                                                                         </p>\n                                                                                  </div>\n                                                                                        <span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n                                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END AUDIOFILE -->\n\n                                                                              <!-- START OPTIONS -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n                                                                                  <input type="text" name="app_options" placeholder="{{ \'APPLICATION_OPTIONS\' | translate }}" class="form-control" data-ng-model="application.appdata[1]" data-ng-init="application.appdata[1] = null">\n                                                                                       <span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n                                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END OPTIONS -->\n                                                                  </div>\n                                                                        <div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n                                                                            <!-- START INTERFACE -->\n                                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n                                                                                       <label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                                  <input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = null" required>\n                                                                                 <span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n                                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END INTERFACE -->\n\n                                                                              <!-- START TIMEOUT -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n                                                                                   <label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n                                                                                        <input type="text" pattern="[0-9]+" name="timeout" placeholder="" class="form-control" data-ng-model="application.appdata[1]" data-ng-init="application.appdata[1] = null">\n                                                                                   <span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n                                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END TIMEOUT -->\n\n                                                                                <!-- START OPTIONS -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n                                                                                   <label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n                                                                                        <input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.appdata[2]" data-ng-init="application.appdata[2] = null">\n                                                                                        <span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END OPTIONS -->\n\n                                                                                <!-- START URL -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n                                                                                   <label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n                                                                                    <input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.appdata[3]" data-ng-init="application.appdata[3] = null">\n                                                                                   <span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END URL -->\n                                                                      </div>\n                                                                        <div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n                                                                              <!-- START PROJECT -->\n                                                                                <input type="hidden" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = \'agi://127.0.0.1/square\'">\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                      <ui-select data-ng-model="application.appdata[1]" data-ng-init="application.appdata[1] = null" name="project" theme="bootstrap" required data-ng-disabled="!items.length">\n                                                                                            <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="project.name as project in items | filter: $select.search">\n                                                                                                        <div ng-bind-html="project.name | highlight: $select.search"></div>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <div class="note note-warning" data-ng-hide="items.length">\n                                                                                           <h4 class="block">Warning!</h4>\n                                                                                               <p>\n                                                                                                   {{ \'MESSAGE_NO_PROJECTS_AVAILABLE\' | translate }}\n                                                                                           </p>\n                                                                                          <p>\n                                                                                                   {{\'APPLICATION_GO_TO\' | translate}} <a href="/square/projects/list">{{\'APPLICATION_PROJECTS\' | translate}}</a>\n                                                                                            </p>\n                                                                                  </div>\n                                                                                        <span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n                                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END PROJECT -->\n\n                                                                        </div>\n                                                                        <div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n                                                                            <!-- START CONTEXT -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                      <ui-select data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = null" name="context" theme="bootstrap" required>\n                                                                                             <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="context.name as context in items | filter: $select.search">\n                                                                                                        <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n                                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END CONTEXT -->\n\n                                                                                <!-- START EXTENSION -->\n                                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n                                                                                       <label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                                  <input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.appdata[1]" data-ng-init="application.appdata[1] = null" required>\n                                                                                 <span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n                                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END EXTENSION -->\n\n                                                                              <!-- START PRIORITY -->\n                                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n                                                                                 <label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                                   <input type="text" pattern="[0-9]+" name="priority" placeholder="" class="form-control" data-ng-model="application.appdata[2]" data-ng-init="application.appdata[2] = null" required>\n                                                                                 <span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n                                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END PRIORITY -->\n                                                                 </div>\n                                                                        <div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n                                                                                <!-- START HANGUPCAUSE -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                 <ui-select data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = null" theme="bootstrap" name="hangupCause" required>\n                                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                          <ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n                                                                                                   <div ng-bind-html="hangupCause.name  | translate | highlight: $select.search"></div>\n                                                                                          </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n                                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END HANGUPCAUSE -->\n                                                                      </div>\n                                                                        <div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n                                                                              <!-- START VARIABLE -->\n                                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n                                                                                 <label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                                   <input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" data-ng-init="application.appdata[0] = null" data-ng-change="updateSetAppdata()" required>\n                                                                                        <span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n                                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END VARIABLE -->\n\n                                                                               <!-- START VARVALUE -->\n                                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n                                                                                 <label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                                      <input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" data-ng-change="updateSetAppdata()" required>\n                                                                                        <span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n                                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END VARVALUE -->\n                                                                 </div>\n                                                                        <div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n                                                                              <!-- START CUSTOMAPP -->\n                                                                              <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n                                                                                      <label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                                 <input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.app" required>\n                                                                                 <span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n                                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END CUSTOMAPP -->\n\n                                                                              <!-- START APPDATA -->\n                                                                                <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n                                                                                  <label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n                                                                                      <input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = null">\n                                                                                 <span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n                                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END APPDATA -->\n                                                                  </div>\n                                                                        <div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n                                                                          <!-- START VOICEMAIL -->\n                                                                              <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n                                                                                      <label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                                  <ui-select data-ng-model="application.appdata[0]" data-ng-init="application.appdata[0] = null" theme="bootstrap" name="voicemail" required data-ng-disabled="!items.length">\n                                                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.mailbox}}</ui-select-match>\n                                                                                           <ui-select-choices repeat="mailbox.mailbox+\'@\'+mailbox.context as mailbox in items | filter: $select.search">\n                                                                                                       <div ng-bind-html="mailbox.mailbox | highlight: $select.search"></div>\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <div class="note note-warning" data-ng-hide="items.length">\n                                                                                           <h4 class="block">Warning!</h4>\n                                                                                               <p>\n                                                                                                   {{ \'MESSAGE_NO_VOICEMAILS_AVAILABLE\' | translate }}\n                                                                                         </p>\n                                                                                          <p>\n                                                                                                   {{\'APPLICATION_GO_TO\' | translate}} <a href="/channels/voice/voicemails/list">{{\'APPLICATION_VOICEMAILS\' | translate}}</a>\n                                                                                                </p>\n                                                                                  </div>\n                                                                                        <span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n                                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END VOICEMAIL -->\n                                                                        </div>\n                                                                        <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                          </form>\n                                                               </wz-step>\n                                                                    <wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n                                                                               <form name="forms.interval" novalidate>\n                                                                               <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                                             <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                                  <!-- START INTERVAL_TYPE -->\n                                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n                                                                           <label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                <ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n                                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                  <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                                               <div ng-bind-html="intType.name | translate | highlight: $select.search"></div>\n                                                                                       </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END INTERVAL_TYPE -->\n                                                                    <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n                                                                                        <!-- START TIME -->\n                                                                                   <div class="form-group">\n                                                                                              <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                                           <div class="input-group input-large">\n                                                                                                 <fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                                                  <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                                        <fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                                                       <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                                                                                         </div>\n                                                                                        </div>\n                                                                                        <!-- END TIME -->\n\n                                                                                   <!-- START WEEKDAY -->\n                                                                                        <div class="form-group">\n                                                                                              <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                                                <div class="input-group input-large">\n                                                                                                 <ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n                                                                                                         <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                               <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                                        {{$translate.instant(weekDay.name)}}\n                                                                                                          </ui-select-choices>\n                                                                                                  </ui-select>\n                                                                                                  <span class="input-group-addon">to</span>\n                                                                                                     <ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n                                                                                                             <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                               <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                                        {{$translate.instant(weekDay.name)}}\n                                                                                                          </ui-select-choices>\n                                                                                                  </ui-select>\n                                                                                          </div>\n                                                                                        </div>\n                                                                                        <!-- END WEEKDAY -->\n\n                                                                                        <!-- START MONTHDAY -->\n                                                                                       <div class="form-group">\n                                                                                              <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                                               <div class="input-group input-large">\n                                                                                                 <ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n                                                                                                         <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                                               <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                                                       {{monthDay}}\n                                                                                                          </ui-select-choices>\n                                                                                                  </ui-select>\n                                                                                                  <span class="input-group-addon">to</span>\n                                                                                                     <ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n                                                                                                             <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                                               <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                                                       {{monthDay}}\n                                                                                                          </ui-select-choices>\n                                                                                                  </ui-select>\n                                                                                          </div>\n                                                                                        </div>\n                                                                                        <!-- END MONTHDAY -->\n\n                                                                                       <!-- START MONTH -->\n                                                                                  <div class="form-group">\n                                                                                              <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                                          <div class="input-group input-large">\n                                                                                                 <ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n                                                                                                           <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                               <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                                        {{$translate.instant(month.name)}}\n                                                                                                            </ui-select-choices>\n                                                                                                  </ui-select>\n                                                                                                  <span class="input-group-addon">to</span>\n                                                                                                     <ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n                                                                                                               <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                               <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                                        {{$translate.instant(month.name)}}\n                                                                                                            </ui-select-choices>\n                                                                                                  </ui-select>\n                                                                                          </div>\n                                                                                        </div>\n                                                                                        <!-- END MONTH -->\n                                                    </div>\n\n                                                      <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n                                                                <!-- START INTERVALS -->\n                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                          <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                          <ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n                                                                                    {{$translate.instant(interval.name)}}\n                                                                         </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVALS -->\n\n                                                      </div>\n                                                                <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                             <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                  </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n<!-- <pre>\n  {{application | json}}\n</pre>\n<pre>\n {{interval | json}}\n</pre> -->\n'),
 a.put("app/channels/voice/route/view.applicationSettings.html",'\n<div class="row" data-ng-init="initApplication();getIntervals();getApplication();">\n        <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD</a> </span>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="updateRoute(\'applications\')">\n                                    <div class="profile-usertitle-name">\n                                          {{(main.app | capitalize) || \'Application\'}}\n                                        </div>\n                <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n                                                 <form name="forms.settings" novalidate>\n\n                                                             <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                          <div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n                                                                  <!-- START QUEUE -->\n                                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n                                                                               <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                <ui-select data-ng-model="route.Applications[selectedApp].appdata[0]" name="queue" theme="bootstrap" required data-ng-disabled="!items.length">\n                                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                      <ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n                                                                                            <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                                                     </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <div class="note note-warning" data-ng-hide="items.length">\n                                                                                   <h4 class="block">Warning!</h4>\n                                                                                       <p>\n                                                                                           {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n                                                                                     </p>\n                                                                                  <p>\n                                                                                           {{\'APPLICATION_GO_TO\' | translate}} <a href="/channels/voice/queues/list">{{\'APPLICATION_QUEUES\' | translate}}</a>\n                                                                                        </p>\n                                                                          </div>\n                                                                                <span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n                                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END QUEUE -->\n\n                                                                  <!-- START OPTIONS -->\n                                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n                                                                           <label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n                                                                          <ui-select multiple data-ng-model="route.Applications[selectedApp].appdata[1]" theme="bootstrap" name="app_options">\n                                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n                                                                                     <ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n                                                                                         {{$translate.instant(queueOpt.name)}}\n                                                                                 </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END OPTIONS -->\n\n                                                                        <!-- START URL -->\n                                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n                                                                           <label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n                                                                            <input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="route.Applications[selectedApp].appdata[2]">\n                                                                            <span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END URL -->\n\n                                                                    <!-- START AUDIOFILE -->\n                                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n                                                                               <label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n                                                                               <ui-select data-ng-model="route.Applications[selectedApp].appdata[3]" name="audiofile" theme="bootstrap" data-ng-disabled="!items2.length">\n                                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                                      <ui-select-choices repeat="soundPath+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n                                                                                              <div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n                                                                                     </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <div class="note note-warning" data-ng-hide="items2.length">\n                                                                                  <h4 class="block">Warning!</h4>\n                                                                                       <p>\n                                                                                           {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n                                                                                     </p>\n                                                                                  <p>\n                                                                                           {{\'APPLICATION_GO_TO\' | translate}} <a href="/tools/sounds/list">{{\'APPLICATION_SOUNDS\' | translate}}</a>\n                                                                                 </p>\n                                                                          </div>\n                                                                                <span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n                                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END AUDIOFILE -->\n\n                                                                      <!-- START TIMEOUT -->\n                                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n                                                                           <label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n                                                                                <input type="text" pattern="[0-9]+" name="timeout" placeholder="" class="form-control" data-ng-model="route.Applications[selectedApp].appdata[4]">\n                                                                            <span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n                                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END TIMEOUT -->\n\n                                                                </div>\n                                                                <div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n                                                                    <!-- START AUDIOFILE -->\n                                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n                                                                               <label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                           <ui-select data-ng-model="route.Applications[selectedApp].appdata[0]" name="audiofile" theme="bootstrap" required data-ng-disabled="!items.length">\n                                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                                      <ui-select-choices repeat="soundPath+\'/\'+audio.save_name as audio in items | filter: $select.search">\n                                                                                               <div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n                                                                                     </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <div class="note note-warning" data-ng-hide="items.length">\n                                                                                   <h4 class="block">Warning!</h4>\n                                                                                       <p>\n                                                                                           {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n                                                                                     </p>\n                                                                                  <p>\n                                                                                           {{\'APPLICATION_GO_TO\' | translate}} <a href="/tools/sounds/list">{{\'APPLICATION_SOUNDS\' | translate}}</a>\n                                                                                 </p>\n                                                                          </div>\n                                                                                <span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n                                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END AUDIOFILE -->\n\n                                                                      <!-- START OPTIONS -->\n                                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n                                                                           <label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n                                                                          <ui-select data-ng-model="route.Applications[selectedApp].appdata[1]" theme="bootstrap" name="app_options">\n                                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                  <ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n                                                                                         {{$translate.instant(audioOpt.name)}}\n                                                                                 </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END OPTIONS -->\n                                                          </div>\n                                                                <div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n                                                                    <!-- START INTERFACE -->\n                                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n                                                                               <label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                          <input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="route.Applications[selectedApp].appdata[0]" required>\n                                                                          <span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n                                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END INTERFACE -->\n\n                                                                      <!-- START TIMEOUT -->\n                                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n                                                                           <label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n                                                                                <input type="text" pattern="[0-9]+" name="timeout" placeholder="" class="form-control" data-ng-model="route.Applications[selectedApp].appdata[1]">\n                                                                            <span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n                                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END TIMEOUT -->\n\n                                                                        <!-- START OPTIONS -->\n                                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n                                                                           <label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n                                                                                <input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="route.Applications[selectedApp].appdata[2]">\n                                                                         <span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END OPTIONS -->\n\n                                                                        <!-- START URL -->\n                                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n                                                                           <label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n                                                                            <input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="route.Applications[selectedApp].appdata[3]">\n                                                                            <span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END URL -->\n                                                              </div>\n                                                                <div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n                                                                      <!-- START PROJECT -->\n                                                                        <input type="hidden" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="route.Applications[selectedApp].appdata[0]" data-ng-init="route.Applications[selectedApp].appdata[0] = \'agi://127.0.0.1/square\'">\n                                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n                                                                           <label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                              <ui-select data-ng-model="route.Applications[selectedApp].appdata[1]" name="project" theme="bootstrap" required data-ng-disabled="!items.length">\n                                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                      <ui-select-choices repeat="project.name as project in items | filter: $select.search">\n                                                                                                <div ng-bind-html="project.name | highlight: $select.search"></div>\n                                                                                   </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <div class="note note-warning" data-ng-hide="items.length">\n                                                                                   <h4 class="block">Warning!</h4>\n                                                                                       <p>\n                                                                                           {{ \'MESSAGE_NO_PROJECTS_AVAILABLE\' | translate }}\n                                                                                   </p>\n                                                                                  <p>\n                                                                                           {{\'APPLICATION_GO_TO\' | translate}} <a href="/square/projects/list">{{\'APPLICATION_PROJECTS\' | translate}}</a>\n                                                                                    </p>\n                                                                          </div>\n                                                                                <span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END PROJECT -->\n\n                                                                        <!-- START URL -->\n                                                                    <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n                                                                              <label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n                                                                            <div class="input-group">\n                                                                                     <input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n                                                                                        <span class="input-group-addon">\n                                                                                              <input type="checkbox" data-ng-model="application.urlEnabled">\n                                                                                        </span>\n                                                                               </div>\n                                                                                <span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                               <span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n                                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n                                                                           </span>\n                                                                       </div> -->\n                                                                    <!-- END URL -->\n\n                                                            </div>\n                                                                <div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n                                                                    <!-- START CONTEXT -->\n                                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n                                                                           <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                              <ui-select data-ng-model="route.Applications[selectedApp].appdata[0]" name="context" theme="bootstrap" required>\n                                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                      <ui-select-choices repeat="context.name as context in items | filter: $select.search">\n                                                                                                <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                                   </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END CONTEXT -->\n\n                                                                        <!-- START EXTENSION -->\n                                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n                                                                               <label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                          <input type="text" name="extension" placeholder="" class="form-control" data-ng-model="route.Applications[selectedApp].appdata[1]" required>\n                                                                          <span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n                                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END EXTENSION -->\n\n                                                                      <!-- START PRIORITY -->\n                                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n                                                                         <label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                           <input type="text" pattern="[0-9]+" name="priority" placeholder="" class="form-control" data-ng-model="route.Applications[selectedApp].appdata[2]" required>\n                                                                          <span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n                                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END PRIORITY -->\n                                                         </div>\n                                                                <div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n                                                                        <!-- START HANGUPCAUSE -->\n                                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n                                                                           <label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                         <ui-select data-ng-model="route.Applications[selectedApp].appdata[0]" theme="bootstrap" name="hangupCause" required>\n                                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                  <ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n                                                                                           {{$translate.instant(hangupCause.name)}}\n                                                                                      </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n                                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END HANGUPCAUSE -->\n                                                              </div>\n                                                                <div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n                                                                      <!-- START VARIABLE -->\n                                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n                                                                         <label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                           <input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" data-ng-change="updateSetAppdataSettings()" required>\n                                                                             <span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n                                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END VARIABLE -->\n\n                                                                       <!-- START VARVALUE -->\n                                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n                                                                         <label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                              <input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" data-ng-change="updateSetAppdataSettings()" required>\n                                                                                <span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n                                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END VARVALUE -->\n                                                         </div>\n                                                                <div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n                                                                      <!-- START CUSTOMAPP -->\n                                                                      <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n                                                                              <label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                         <input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="route.Applications[selectedApp].app" required>\n                                                                             <span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n                                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END CUSTOMAPP -->\n\n                                                                      <!-- START APPDATA -->\n                                                                        <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n                                                                          <label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n                                                                              <input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="route.Applications[selectedApp].appdata[0]">\n                                                                          <span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n                                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END APPDATA -->\n                                                          </div>\n                                                                <div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n                                                                  <!-- START VOICEMAIL -->\n                                                                      <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n                                                                              <label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                          <ui-select data-ng-model="route.Applications[selectedApp].appdata[0]" theme="bootstrap" name="voicemail" required data-ng-disabled="!items.length">\n                                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.mailbox}}</ui-select-match>\n                                                                                   <ui-select-choices repeat="mailbox.mailbox+\'@\'+mailbox.context as mailbox in items | filter: $select.search">\n                                                                                               <div ng-bind-html="mailbox.mailbox | highlight: $select.search"></div>\n                                                                                        </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <div class="note note-warning" data-ng-hide="items.length">\n                                                                                   <h4 class="block">Warning!</h4>\n                                                                                       <p>\n                                                                                           {{ \'MESSAGE_NO_VOICEMAILS_AVAILABLE\' | translate }}\n                                                                                 </p>\n                                                                                  <p>\n                                                                                           {{\'APPLICATION_GO_TO\' | translate}} <a href="/channels/voice/voicemails/list">{{\'APPLICATION_VOICEMAILS\' | translate}}</a>\n                                                                                        </p>\n                                                                          </div>\n                                                                                <span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n                                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <!-- END VOICEMAIL -->\n                                                                </div>\n                                                                <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                  </form>\n                                                       </wz-step>\n                                                            <wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n                                                                       <form name="forms.interval" novalidate>\n                                                                               <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                                             <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                          <!-- START INTERVAL_TYPE -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                          <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                                       {{$translate.instant(intType.name)}}\n                                                                          </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVAL_TYPE -->\n                                                            <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n                                                                                <!-- START TIME -->\n                                                                           <div class="form-group">\n                                                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                                   <div class="input-group input-large">\n                                                                                         <fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                                          <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                                <fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                                                                                               <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                                                                                 </div>\n                                                                                        </div>\n                                                                                <!-- END TIME -->\n\n                                                                           <!-- START WEEKDAY -->\n                                                                                <div class="form-group">\n                                                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                                        <div class="input-group input-large">\n                                                                                         <ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n                                                                                                 <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                                {{$translate.instant(weekDay.name)}}\n                                                                                                  </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span class="input-group-addon">to</span>\n                                                                                             <ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n                                                                                                     <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                                {{$translate.instant(weekDay.name)}}\n                                                                                                  </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                  </div>\n                                                                                </div>\n                                                                                <!-- END WEEKDAY -->\n\n                                                                                <!-- START MONTHDAY -->\n                                                                               <div class="form-group">\n                                                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                                       <div class="input-group input-large">\n                                                                                         <ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n                                                                                                 <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                                               {{monthDay}}\n                                                                                                  </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span class="input-group-addon">to</span>\n                                                                                             <ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n                                                                                                     <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                                               {{monthDay}}\n                                                                                                  </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                  </div>\n                                                                                </div>\n                                                                                <!-- END MONTHDAY -->\n\n                                                                               <!-- START MONTH -->\n                                                                          <div class="form-group">\n                                                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                                  <div class="input-group input-large">\n                                                                                         <ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n                                                                                                   <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                                {{$translate.instant(month.name)}}\n                                                                                                    </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                          <span class="input-group-addon">to</span>\n                                                                                             <ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n                                                                                                       <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                                                       <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                                {{$translate.instant(month.name)}}\n                                                                                                    </ui-select-choices>\n                                                                                          </ui-select>\n                                                                                  </div>\n                                                                                </div>\n                                                                                <!-- END MONTH -->\n                                            </div>\n\n                                              <div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n                                                        <!-- START INTERVALS -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                            <ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                                                                  <ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n                                                                            {{$translate.instant(interval.name)}}\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INTERVALS -->\n\n                                              </div>\n                                                <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                             <button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                                  </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
 a.put("app/channels/voice/voicemail/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope-letter"></i>\n                                  <a href="#">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-envelope-letter font-green-sharp"></i>\n                                 <span class="caption-subject">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a> </span>\n                                </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <a class="btn green-jungle" href="/channels/voice/voicemails/wizard">\n                                         <i class="icon-plus"></i> {{ \'APPLICATION_NEW_VOICEMAIL\' | translate }}\n                                     </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/voicemail/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getVoicemail()">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope-letter"></i>\n                                  <a href="/channels/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n                                    <i data-ng-show="voicemail" class="fa fa-angle-right"></i>\n                            </li>\n                         <li data-ng-show="voicemail">\n                                 <a href="#">{{voicemail.mailbox}}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET main.channels -->\n                        <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/voicemail.png" class="img-responsive">\n                          </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{voicemail.mailbox}}\n                                 </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.voice.voicemails.view.settings\')}">\n                                                    <a data-ng-href="/channels/voice/voicemails/view/{{voicemail.uniqueid}}/settings"><i class="icon-settings"></i>{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                         </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.voice.voicemails.view.messages\')}">\n                                                    <a data-ng-href="/channels/voice/voicemails/view/{{voicemail.uniqueid}}/messages"><i class="icon-speech"></i>{{ \'APPLICATION_MESSAGES\' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET main.channels -->\n            </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/voicemail/view/view.messages.html",'<div class="row" data-ng-init="getMessages()">\n     <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_MESSAGES\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns data-ng-if="gridOptions" ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                 <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/voicemail/view/view.settings.html",'<div class="row" data-ng-init="getContexts()">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_VOICEMAIL\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                           </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                                 <!-- <li>\n                                             <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n                                    </li> -->\n                             </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceVoicemail()" novalidate>\n\n                                                      <!-- START FULLNAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.fullname.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="voicemail.fullname" required/>\n                                                          <span data-ng-show="forms.general.$submitted && forms.general.fullname.$invalid" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FULLNAME -->\n\n                                                       <!-- START EMAIL -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.email.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="voicemail.email" required/>\n                                                          <span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END EMAIL -->\n\n                                                  <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}</label>\n                                                             <input type="password" name="password" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="voicemail.password" />\n                                                          <span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START CONFIRM PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}</label>\n                                                         <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="voicemail.rpassword" nx-equal="voicemail.password"/>\n                                                               <span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid || forms.general.rpassword.$invalid)" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONFIRM PASSWORD -->\n\n                                                       <!-- START MAILBOX -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.mailbox.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="voicemail.mailbox" required readonly/>\n                                                            <span data-ng-show="forms.general.$submitted && forms.general.mailbox.$invalid" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MAILBOX -->\n\n                                                        <!-- START CONTEXT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="voicemail.context" name="context" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                                                                                <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONTEXT -->\n\n                                                        <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n                                      <!-- ADVANCED TAB -->\n                                 <!-- <div class="tab-pane" id="tab_1_2">\n                                              <form name="forms.advanced" data-ng-submit="updateVoiceVoicemail()" novalidate>\n\n\n                                                   <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div> -->\n                                    <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/voicemail/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard()">\n  <!-- BEGIN PAGE HEADER-->\n  <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-puzzle"></i>\n                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                            <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-envelope-letter"></i>\n                          <a href="/channels/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n                            <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-options"></i>\n                          <a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                      </li>\n         </ul>\n </div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getFirstFreeMailbox()">\n     <div class="portlet-title">\n           <div class="caption font-green-sharp">\n                        <i class="icon-envelope-letter font-green-sharp"></i>\n                         <span class="caption-subject">{{ \'APPLICATION_VOICEMAIL\' | translate }} WIZARD</a> </span>\n                  </div>\n        </div>\n        <div class="portlet-body">\n            <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(form.general.$valid)">\n                           <form name="form.general" novalidate>\n\n                                           <!-- START FULLNAME -->\n                                               <div class="form-group" data-ng-class="{\'has-error\': form.general.$submitted && form.general.fullname.$invalid}">\n                                                   <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                     <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n                                                       <span data-ng-show="form.general.$submitted && form.general.fullname.$invalid" class="help-block help-block-error">\n                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END FULLNAME -->\n\n                                               <!-- START EMAIL -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': form.general.$submitted && form.general.email.$invalid}">\n                                                      <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required/>\n                                                       <span data-ng-show="form.general.$submitted && form.general.host.$invalid" class="help-block help-block-error">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END EMAIL -->\n\n                                          <!-- START PASSWORD -->\n                                               <div class="form-group" data-ng-class="{\'has-error\': form.general.$submitted && form.general.password.$invalid}">\n                                                   <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                     <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                                                   <span data-ng-show="form.general.$submitted && form.general.password.$invalid" class="help-block help-block-error">\n                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END PASSWORD -->\n\n                                               <!-- START CONFIRM PASSWORD -->\n                                               <div class="form-group" data-ng-class="{\'has-error\': form.general.$submitted && form.general.rpassword.$invalid}">\n                                                  <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                     <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n                                                        <span data-ng-show="form.general.$submitted && (form.general.rpassword.$invalid || form.general.rpassword.$invalid)" class="help-block help-block-error">\n                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END CONFIRM PASSWORD -->\n\n                                               <!-- START MAILBOX -->\n                                                <div class="form-group" data-ng-class="{\'has-error\': form.general.$submitted && form.general.mailbox.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                      <input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="item.mailbox" required readonly/>\n                                                 <span data-ng-show="form.general.$submitted && form.general.mailbox.$invalid" class="help-block help-block-error">\n                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END MAILBOX -->\n\n                                                <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                    </form>\n                               </wz-step>\n\n                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n            </wizard>\n     </div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/contactmanager/company/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_COMPANY\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.company" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.company.name.$touched || forms.company.$submitted) && forms.company.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.cmopany.name.$touched || forms.company.$submitted) && forms.company.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.company.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/company/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-briefcase"></i>\n                                        <a href="/contactmanager/companies/list">{{ \'APPLICATION_COMPANIES\' | translate }}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-briefcase font-green-sharp"></i>\n                                       <span class="caption-subject">{{ \'APPLICATION_COMPANIES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_COMPANY\' | translate }}\n                                               </button>\n                                     </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/company/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getCompany()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-briefcase"></i>\n                                        <a href="/contactmanager/companies/list">{{ \'APPLICATION_COMPANIES\' | translate }}</a>\n                                      <i data-ng-show="company" class="fa fa-angle-right"></i>\n                              </li>\n                         <li data-ng-show="company">\n                                   <a href="#">{{company.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/company.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{company.name}}\n                                      </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.contactmanager.companies.view.settings\')}">\n                                                     <a data-ng-href="/contactmanager/companies/view/{{company.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/company/view/view.settings.html",'<div class="row">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_COMPANY\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADDRESS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_SHIPMENT_ADDRESS\' | translate}}</a>\n                                    </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateCompany()" novalidate>\n\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="company.name" required/>\n                                                                <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="company.description"></textarea>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n                                     <div class="tab-pane" id="tab_1_2">\n                                           <!-- START STREET -->\n                                         <div class="form-group" data-ng-class="{\'has-error\': (forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$invalid}">\n                                                        <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n                                                   <input type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="company.street"/>\n                                                   <span data-ng-show="(forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$error.required" class="help-block help-block-error">\n                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END STREET -->\n\n                                         <!-- START POSTALCODE -->\n                                             <div class="form-group" data-ng-class="{\'has-error\': (forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$invalid}">\n                                                        <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n                                                       <input type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="company.postalCode"/>\n                                                       <span data-ng-show="(forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$error.required" class="help-block help-block-error">\n                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END POSTALCODE -->\n\n                                             <!-- START CITY -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n                                                     <input type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="company.city"/>\n                                                 <span data-ng-show="(forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$error.required" class="help-block help-block-error">\n                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END CITY -->\n                                             <!-- START COUNTRY -->\n                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$invalid}">\n                                                      <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n                                                  <input type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="company.country"/>\n                                                        <span data-ng-show="(forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$error.required" class="help-block help-block-error">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END COUNTRY -->\n                                          <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                  </div>\n                                        <div class="tab-pane" id="tab_1_3">\n                                           <!-- START STREET -->\n                                         <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sStreet.$touched || forms.general.$submitted) && forms.general.sStreet.$invalid}">\n                                                      <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n                                                   <input type="text" name="sStreet" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="company.sStreet"/>\n                                                 <span data-ng-show="(forms.general.sStreet.$touched || forms.general.$submitted) && forms.general.sStreet.$error.required" class="help-block help-block-error">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END STREET -->\n\n                                         <!-- START POSTALCODE -->\n                                             <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sPostalCode.$touched || forms.general.$submitted) && forms.general.sPostalCode.$invalid}">\n                                                      <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n                                                       <input type="text" name="sPostalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="company.sPostalCode"/>\n                                                     <span data-ng-show="(forms.general.sPostalCode.$touched || forms.general.$submitted) && forms.general.sPostalCode.$error.required" class="help-block help-block-error">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END POSTALCODE -->\n\n                                             <!-- START CITY -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sCity.$touched || forms.general.$submitted) && forms.general.sCity.$invalid}">\n                                                  <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n                                                     <input type="text" name="sCity" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="company.sCity"/>\n                                                       <span data-ng-show="(forms.general.sCity.$touched || forms.general.$submitted) && forms.general.sCity.$error.required" class="help-block help-block-error">\n                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END CITY -->\n                                             <!-- START COUNTRY -->\n                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sCountry.$touched || forms.general.$submitted) && forms.general.sCountry.$invalid}">\n                                                    <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n                                                  <input type="text" name="sCountry" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="company.sCountry"/>\n                                                      <span data-ng-show="(forms.general.sCountry.$touched || forms.general.$submitted) && forms.general.sCountry.$error.required" class="help-block help-block-error">\n                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END COUNTRY -->\n                                          <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                  </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
-a.put("app/contactmanager/contact/list/import.modal.html",'<div class="modal-header" data-ng-init="getServices()">\n  <h3 class="modal-title">{{ \'APPLICATION_IMPORT_FROM_CSV\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.csv" novalidate>\n    <div class="row">\n      <div class="col-md-6">\n        <!-- START SERVICE -->\n        <div class="form-group" data-ng-class="{\'has-error\': forms.csv.ServiceId.$invalid && forms.csv.$submitted}">\n          <label class="control-label">{{\'APPLICATION_SERVICE\' | translate}}</label>\n          <ui-select data-ng-model="item.ServiceId" theme="bootstrap" name="ServiceId" data-ng-disabled="disabled" data-ng-change="getCustomFields()">\n            <ui-select-match placeholder="{{ \'APPLICATION_SERVICE\' | translate }}">{{$select.selected.name}}</ui-select-match>\n            <ui-select-choices repeat="service.id as service in services | filter: $select.search">\n              <div ng-bind-html="service.name | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <span data-ng-show="forms.csv.ServiceId.$invalid && forms.csv.$submitted" class="help-block help-block-error">\n            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n          </span>\n        </div>\n        <!-- END SERVICE -->\n\n        <!-- START FIRSTNAME -->\n        <div class="form-group" data-ng-class="{\'has-error\': forms.csv.firstName.$invalid && forms.csv.$submitted}">\n          <label class="control-label">{{\'APPLICATION_FIRSTNAME\' | translate}}</label>\n          <ui-select data-ng-model="item.firstName" theme="bootstrap" name="firstName" data-ng-disabled="disabled" required>\n            <ui-select-match allow-clear placeholder="{{ \'APPLICATION_FIRSTNAME\' | translate }}">{{$select.selected}}</ui-select-match>\n            <ui-select-choices repeat="index in indexes | filter: $select.search">\n              <div ng-bind-html="index | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <span data-ng-show="forms.csv.firstName.$invalid && forms.csv.$touched" class="help-block help-block-error">\n            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n          </span>\n        </div>\n        <!-- END FIRSTNAME -->\n\n        <!-- START LASTNAME -->\n        <div class="form-group" data-ng-class="{\'has-error\': forms.csv.lastName.$invalid && forms.csv.$submitted}">\n          <label class="control-label">{{\'APPLICATION_LASTNAME\' | translate}}</label>\n          <ui-select data-ng-model="item.lastName" theme="bootstrap" name="lastName" data-ng-disabled="disabled">\n            <ui-select-match allow-clear placeholder="{{ \'APPLICATION_LASTNAME\' | translate }}">{{$select.selected}}</ui-select-match>\n            <ui-select-choices repeat="index in indexes | filter: $select.search">\n              <div ng-bind-html="index | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <span data-ng-show="forms.csv.lastName.$invalid && forms.csv.$touched" class="help-block help-block-error">\n            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n          </span>\n        </div>\n        <!-- END LASTNAME -->\n\n    <!-- START STREET -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.street.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n      <ui-select data-ng-model="item.street" theme="bootstrap" name="street" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_STREET\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.street.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END STREET -->\n\n    <!-- START POSTALCODE -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.postalCode.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n      <ui-select data-ng-model="item.postalCode" theme="bootstrap" name="postalCode" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_POSTALCODE\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.postalCode.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END POSTALCODE -->\n\n    <!-- START CITY -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.city.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n      <ui-select data-ng-model="item.city" theme="bootstrap" name="city" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_CITY\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.city.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END CITY -->\n\n    <!-- START PHONE -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.phone.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_PHONE\' | translate}}</label>\n      <ui-select data-ng-model="item.phone" theme="bootstrap" name="phone" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_PHONE\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.phone.$invalid && forms.phone.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END PHONE -->\n\n    <!-- START MOBILE -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.mobile.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_MOBILE\' | translate}}</label>\n      <ui-select data-ng-model="item.mobile" theme="bootstrap" name="mobile" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_MOBILE\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.mobile.$invalid && forms.mobile.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END MOBILE -->\n\n  </div>\n  <div class="col-md-6">\n\n    <!-- START COUNTRY -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.country.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n      <ui-select data-ng-model="item.country" theme="bootstrap" name="country" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COUNTRY\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.country.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END COUNTRY -->\n\n    <!-- START DATEOFBIRTH -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.dateOfBirth.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_DATEOFBIRTH\' | translate}}</label>\n      <ui-select data-ng-model="item.dateOfBirth" theme="bootstrap" name="dateOfBirth" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_DATEOFBIRTH\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.dateOfBirth.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END DATEOFBIRTH -->\n\n    <!-- START TAGS -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.tags.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_TAGS\' | translate}}</label>\n      <ui-select multiple data-ng-model="item.tags" theme="bootstrap" name="tags" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.tags.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TAGS -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.description.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <ui-select data-ng-model="item.description" theme="bootstrap" name="description" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_DESCRIPTION\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.description.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <!-- START FAX -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.fax.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_FAX\' | translate}}</label>\n      <ui-select data-ng-model="item.fax" theme="bootstrap" name="fax" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_FAX\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.fax.$invalid && forms.fax.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END FAX -->\n\n    <!-- START EMAIL -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.email.$invalid && forms.general.$submitted}">\n      <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}</label>\n      <ui-select data-ng-model="item.email" theme="bootstrap" name="email" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COMPANY\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.email.$invalid && forms.csv.$submitted" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END EMAIL -->\n\n    <!-- START COMPANY -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.CompanyId.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_COMPANY\' | translate}}</label>\n      <ui-select data-ng-model="item.CompanyId" theme="bootstrap" name="CompanyId" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COMPANY\' | translate }}">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="company.id as company in companies | filter: $select.search">\n          <div ng-bind-html="company.name | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.CompanyId.$invalid && forms.csv.$submitted" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END COMPANY -->\n\n  </div>\n  </div>\n\n  <!-- START CUSTOMFIELDS -->\n  <div data-ng-repeat="customField in customFields">\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv[customField.name].$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{customField.alias}}</label>\n      <ui-select data-ng-model="item[customField.name]" theme="bootstrap" name="{{customField.name}}" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{customField.alias}}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv[customField.name].$invalid && forms.csv.$submitted" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n  </div>\n  <!-- END CUSTOMFIELDS -->\n\n  <div>\n    <p>{{\'APPLICATION_IMPORT_SUCCEEDED\' | translate}}: {{import.succeeded}}/{{csvLength}}</p>\n    <div class="progress progress-sm" style="">\n      <div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': import.success + \'%\' }"></div>\n    </div>\n  </div>\n  <div>\n    <p>{{\'APPLICATION_IMPORT_FAILED\' | translate}}: {{import.failed}}/{{csvLength}}</p>\n    <div class="progress progress-sm" style="">\n      <div class="progress-bar progress-bar-danger" role="progressbar" ng-style="{ \'width\': import.fail + \'%\' }"></div>\n    </div>\n  </div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="start()" ng-disabled="forms.csv.$invalid || !forms.csv.firstName || submitted">{{ \'APPLICATION_SUBMIT\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="close()" data-ng-if="!importing">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="stop()" data-ng-if="importing">{{ \'APPLICATION_STOP\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/contact/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-users"></i>\n                                   <a href="/contactmanager/contacts/list">{{ \'APPLICATION_CONTACT_MANAGER\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="fa fa-users font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_CONTACTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle" data-ng-click="newContact();">\n                                                       <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTACT\' | translate }}\n                                               </button>\n                                             <span class="btn default btn-file">\n                                           <span class="fileinput-new">\n                                          <i class="icon-cloud-upload"></i> {{\'APPLICATION_IMPORT_FROM_CSV\' | translate}}</span>\n                                              <input type="file" nv-file-select="" uploader="uploader"/>\n                                            </span>\n                                       </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div data-ng-if="gridOptions"  ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                        <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/service/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_SERVICE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.service" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.service.name.$touched || forms.service.$submitted) && forms.service.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.service.name.$touched || forms.service.$submitted) && forms.service.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.service.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/service/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-tty"></i>\n                                     <a href="/contactmanager/services/list">{{ \'APPLICATION_SERVICES\' | translate }}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="fa fa-tty font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_SERVICES\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_SERVICE\' | translate }}\n                                               </button>\n                                     </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/service/view/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_CUSTOM_FIELD\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.customField" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.customField.name.$touched || forms.customField.$submitted) && forms.customField.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.alias" required/>\n      <span data-ng-show="(forms.customField.name.$touched || forms.customField.$submitted) && forms.customField.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START TYPE -->\n    <div class="form-group"  data-ng-class="{\'has-error\': (forms.customField.type.$touched || forms.customField.$submitted) && forms.customField.type.$invalid}">\n      <label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n        <ui-select-match placeholder="{{ \'APPLICATION_TYPE\' | translate }}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n        <ui-select-choices repeat="type.value as type in types| filter: $select.search">\n          {{$translate.instant(type.name)}}\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(forms.customField.type.$touched || forms.customField.$submitted) && forms.customField.type.$invalid && forms.customField.type.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TYPE -->\n\n    <div ng-slide-down="item.type == \'select\'" lazy-render duration="1">\n      <div>\n        <label class="control-label">{{\'APPLICATION_CHOICES\' | translate}}</label>\n      </div>\n      <div class="padding-bottom" ng-repeat="choice in choices">\n        <div class="form-group">\n          <div class="input-group">\n            <input type="text" class="form-control" ng-model="choice.value" required>\n            <span class="input-group-btn">\n            <button class="btn red" type="button"data-ng-click="removeField($index)" data-ng-disabled="choices.length<=1"><i class="fa fa-times"></i></button>\n            </span>\n          </div>\n        </div>\n      </div>\n      <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n        <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_CHOICE\' | translate}}\n      </button>\n\n    </div>\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.customField.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/service/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="note note-warning" data-ng-hide="teams.length">\n                           <h4 class="block">Warning!</h4>\n                               <p>\n                                    {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n                             </p>\n                  </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body">\n                                               <div class="form-group last">\n                                                 <div class="col-md-12" id="multi-select-team">\n                                                        </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/contactmanager/service/view/view.customFieldSettings.html",'<div class="row" data-ng-init="getCustomField()">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CUSTOM_FIELD\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                                </div>\n                        </div>\n\n                      <div class="portlet-body">\n                                    <!-- GENERAL TAB -->\n                                          <form name="forms.general" data-ng-submit="forms.general.$valid && updateCustomField()" novalidate>\n\n                                                 <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="customField.alias" required/>\n                                                           <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <div ng-slide-down="customField.type == \'select\'" lazy-render duration="1" class="mbottom20">\n                                                               <div>\n                                                                 <label class="control-label">{{\'APPLICATION_CHOICES\' | translate}}</label>\n                                                          </div>\n                                                                <div class="padding-bottom" ng-repeat="choice in choices">\n                                                                    <div class="form-group">\n                                                                              <div class="input-group">\n                                                                                     <input type="text" class="form-control" ng-model="choice.value" required>\n                                                                                     <span class="input-group-btn">\n                                                                                        <button class="btn red" type="button"data-ng-click="removeField($index)" data-ng-disabled="choices.length<=1"><i class="fa fa-times"></i></button>\n                                                                                    </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                                <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n                                                                  <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_CHOICE\' | translate}}\n                                                         </button>\n\n                                                   </div>\n\n                                                      <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="customField.description"></textarea>\n                                                   </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n\n                     </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/contactmanager/service/view/view.customFields.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="initCustomFields()">\n <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CUSTOM_FIELDS\' | translate}}</span>\n                           </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n          <div class="btn-group">\n            <button class="btn green-jungle " ng-click="create()">\n              <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CUSTOM_FIELD\' | translate }}\n            </button>\n          </div>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/contactmanager/service/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getService()">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-tty"></i>\n                                     <a href="/contactmanager/services/list">{{ \'APPLICATION_SERVICES\' | translate }}</a>\n                                        <i data-ng-show="service" class="fa fa-angle-right"></i>\n                              </li>\n                         <li data-ng-show="service">\n                                   <a href="#">{{service.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/service.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{service.name}}\n                                      </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.contactmanager.services.view.settings\')}">\n                                                      <a data-ng-href="/contactmanager/services/view/{{service.id}}/settings">\n                                                      <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.contactmanager.services.view.agents\')}">\n                                                        <a data-ng-href="/contactmanager/services/view/{{service.id}}/agents">\n                                                        <i class="icon-people"></i>\n                                                   {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                          </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.contactmanager.services.view.customfields\')}">\n                                                    <a data-ng-href="/contactmanager/services/view/{{service.id}}/customfields">\n                                                  <i class="icon-pencil"></i>\n                                                   {{ \'APPLICATION_CUSTOM_FIELDS\' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/contactmanager/service/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_SERVICE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateService()" novalidate>\n\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="service.name" data-ng-disabled="service.defaultEntry" required/>\n                                                                <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="service.description"></textarea>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/dashboard/dashboard.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div>\n                 <nav class="navbar navbar-default" role="navigation">\n                         <div class="navbar-header">\n                                   <button type="button" class="navbar-toggle" data-ng-init="navCollapsed = true" data-ng-click="navCollapsed = !navCollapsed">\n                                          <span class="sr-only">Toggle navigation</span>\n                                                <span class="icon-bar"></span>\n                                                <span class="icon-bar"></span>\n                                                <span class="icon-bar"></span>\n                                        </button>\n                             </div>\n\n                              <!-- Collect the nav links, forms, and other content for toggling -->\n                         <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n                                     <ul class="nav navbar-nav">\n                                           <li data-ng-class="{active: $state.is(\'main.dashboard.voice\')}">\n                                                    <a href="/dashboard/voice">\n                                                           <b class=\'icon-earphones-alt\'></b>\n                                                          {{ \'APPLICATION_VOICE\' | translate }}\n                                                       </a>\n                                          </li>\n                                         <!-- <li data-ng-class="{active: $state.is(\'main.dashboard.mail\')}">\n                                                        <a href="/dashboard/mail">\n                                                            <b class=\'icon-envelope\'></b>\n                                                               {{ \'APPLICATION_MAIL\' | translate }}\n                                                        </a>\n                                          </li> -->\n                                     </ul>\n                         </div>\n                                <!-- /.navbar-collapse -->\n                    </nav>\n                </div>\n                <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/dashboard/mail/mail.html",'<div class="col-md-12">\nThis is the mail view.\n</div>\n'),a.put("app/dashboard/voice/voice.html",'<div data-ng-switch="Auth.getRole()">\n  <div ng-switch-when="agent">\n    <div>\n      test\n    </div>\n  </div>\n  <div ng-switch-default>\n    <fieldset>\n      <legend>\n        <span class="caption-subject">{{ \'APPLICATION_INBOUND\' | translate }}</span>\n      </legend>\n\n      <div class="row">\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initWaiting()">\n          <div class="dashboard-stat blue-madison">\n            <div class="visual">\n              <i class="icon-bell"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{waiting || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_WAITING\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initActive()">\n          <div class="dashboard-stat purple-plum">\n            <div class="visual">\n              <i class="icon-control-play"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{active || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_ACTIVE\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initAnswered()">\n          <div class="dashboard-stat green-haze">\n            <div class="visual">\n              <i class="icon-like"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{answered || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_ANSWERED\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initAbandoned()">\n          <div class="dashboard-stat red-intense">\n            <div class="visual">\n              <i class="icon-dislike"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{abandoned || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_ABANDONED\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class="row">\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initAvgAnswerTime()">\n          <div class="dashboard-stat blue-madison">\n            <div class="visual">\n              <i class="icon-clock"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{avganswertime || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_AVG_ANSWER_TIME\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initAvgTalkTime()">\n          <div class="dashboard-stat purple-plum">\n            <div class="visual">\n              <i class="icon-clock"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{avgtalktime || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_AVG_TALK_TIME\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initAnswerRate()">\n          <div class="dashboard-stat green-haze">\n            <div class="visual">\n              <i class="icon-pie-chart"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{answerrate || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_ANSWER_RATE\' | translate}} (%)\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initAbandonRate()">\n          <div class="dashboard-stat red-intense">\n            <div class="visual">\n              <i class="icon-pie-chart"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{abandonrate || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_ABANDON_RATE\' | translate}} (%)\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class="row">\n        <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12" data-ng-init="initTotalOffered()">\n          <div class="dashboard-stat blue-madison">\n            <div class="visual">\n              <i class="icon-info"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{totaloffered || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_TOTAL_OFFERED\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12" data-ng-init="initUnmanaged()">\n          <div class="dashboard-stat purple-plum">\n            <div class="visual">\n              <i class="icon-info"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{unmanaged || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_UNMANAGED\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </fieldset>\n\n    <fieldset>\n      <legend>\n        <span class="caption-subject">{{ \'APPLICATION_OUTBOUND\' | translate }}</span>\n      </legend>\n\n      <div class="row">\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initManualOutbound()">\n          <div class="dashboard-stat blue-madison">\n            <div class="visual">\n              <i class="icon-call-out"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{manualoutbound || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_MANUAL_OUTBOUND\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initManualOutboundGlobalDuration()">\n          <div class="dashboard-stat purple-plum">\n            <div class="visual">\n              <i class="icon-clock"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{manualoutboundglobalduration || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_GLOBAL_DURATION\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initManualOutboundAnswered()">\n          <div class="dashboard-stat green-haze">\n            <div class="visual">\n              <i class="icon-like"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{manualoutboundanswered || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_ANSWERED\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initManualOutboundAvgDuration()">\n          <div class="dashboard-stat red-intense">\n            <div class="visual">\n              <i class="icon-pie-chart"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{manualoutboundavgduration || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_AVG_DURATION\' | translate}} (%)\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class="row">\n        <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12" data-ng-init="initManualOutboundAnswerRate()">\n          <div class="dashboard-stat blue-madison">\n            <div class="visual">\n              <i class="icon-pie-chart"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{manualoutboundanswerrate || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_ANSWER_RATE\' | translate}} (%)\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n    </fieldset>\n  </div>\n</div>\n'),a.put("app/desk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-handbag"></i>\n                                  <a href="/desk/list">{{ \'APPLICATION_DESK_COM\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-handbag font-green-sharp"></i>\n                                 <span class="caption-subject">{{ \'APPLICATION_DESK_COM\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="accounts.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/desk/wizard">\n                                                      <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }}\n                                               </a>\n                                  </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'authType\',\'consumerKey\',\'consumerSecret\',\'token\',\'tokenSecret\',\'password\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Authentication Type\', \'Consumer Key\', \'Consumer Secret\', \'Token\', \'Token Secret\', \'Password\']" field-separator=";" filename="desk_accounts.csv">\n                                   <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedDeskAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                    <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="7">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                               <th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n                                                         <th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                                <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="account in displayedDeskAccounts" class="animate-repeat">\n                                                             <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n                                         <td>{{account.name}}</td>\n                                             <td>{{account.username}}</td>\n                                                           <td>{{account.remoteUri}}</td>\n                                                                <td>{{account.description}}</td>\n                                            <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/desk/view/{{account.id}}/account">\n                                                                           {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                                                  <a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n                                                                          {{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n                                            </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedDeskAccounts.length">\n                                                              <td colspan="7" style="text-align:center;">\n                                                                   <i>No account available</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                 </div>\n                                                    </td>\n                                                 <td/>\n                                                             <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="7" class="text-center">\n                                                                    <div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                                    </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/desk/view/view.account.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n                                                     <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n                                                            <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n                                                            <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START AUTH TYPE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n                                                              <ui-select data-ng-model="account.authType" name="authType" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                        <ui-select-choices repeat="type in [\'basic\', \'oauth\'] | filter: $select.search">\n                                                                          <div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="account.authType == \'basic\'" lazy-render duration="1">\n                                                          <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n                                                                <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START CONSUMER KEY -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerKey.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n                                                               <label class="control-label">{{\'APPLICATION_CONSUMER_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="consumerKey" placeholder="{{\'APPLICATION_CONSUMER_KEY\' | translate}}" class="form-control" data-ng-model="account.consumerKey" required/>\n                                                          <span data-ng-show="forms.formSetting.consumerKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONSUMER KEY -->\n\n              <!-- START CONSUMER SECRET -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerSecret.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n                                                            <label class="control-label">{{\'APPLICATION_CONSUMER_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="consumerSecret" placeholder="{{\'APPLICATION_CONSUMER_SECRET\' | translate}}" class="form-control" data-ng-model="account.consumerSecret" required/>\n                                                         <span data-ng-show="forms.formSetting.consumerSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONSUMER SECRET -->\n\n              <!-- START TOKEN -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n                                                             <label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="token" placeholder="{{\'APPLICATION_TOKEN\' | translate}}" class="form-control" data-ng-model="account.token" required/>\n                                                             <span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN -->\n\n              <!-- START TOKEN SECRET-->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.tokenSecret.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n                                                               <label class="control-label">{{\'APPLICATION_TOKEN_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="tokenSecret" placeholder="{{\'APPLICATION_TOKEN_SECRET\' | translate}}" class="form-control" data-ng-model="account.tokenSecret" required/>\n                                                          <span data-ng-show="forms.formSetting.tokenSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN SECRET-->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/desk/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n        <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n                              </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createConfiguration()">\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n                                                   <form name="formsConfiguration.info" novalidate>\n                                                              <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n                                                                  <span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n                                                             <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n                                                              </div>\n                                                                <!-- END DESCRIPTION -->\n\n                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/desk/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n                            </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n                                      </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n                                  </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- SUBJECT TAB -->\n                                  <div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                          <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n                 <div class="col-md-3">\n                  <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n                        <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n                      </div>\n                      </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n                      <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n                  </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n                                  <div class="tab-pane ui-padding" id="tab_1_2">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                            <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                                                    <div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n                                                               <!-- <pre>\n                                                                    {{descriptionItem|json}}\n                                                              </pre> -->\n                  <div class="col-md-2">\n                  <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                        <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n                     <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n                    <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n                      </div>\n                      </div>\n                                                          <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n                                                                        <input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n                                                         </div>\n                      <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n                        <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n                      </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n                                   <div class="tab-pane ui-padding" id="tab_1_3">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                             <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n                     <div class="col-md-3">\n                  <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n                    <ui-select-choices repeat="item.id as item in accountFields | filter: $select.search">\n                          <div ng-bind-html="item.label | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n                    <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected}}</ui-select-match>\n                                  <ui-select-choices repeat="item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n                                  <div ng-bind-html="item | highlight: $select.search"></div>\n                                 </ui-select-choices>\n                                </ui-select>\n                  </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n                                                                 <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                                <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                                 <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                               </ui-select-choices>\n                                </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n                        <div class="form-group">\n                                                                              <input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n                    </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n                      <div class="form-group">\n                                                                              <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n                    </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END FIELDS TAB -->\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
+a.put("app/contactmanager/contact/list/import.modal.html",'<div class="modal-header" data-ng-init="getLists()">\n  <h3 class="modal-title">{{ \'APPLICATION_IMPORT_FROM_CSV\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.csv" novalidate>\n    <div class="row">\n      <div class="col-md-6">\n        <!-- START LIST -->\n        <div class="form-group" data-ng-class="{\'has-error\': forms.csv.ListId.$invalid && forms.csv.$submitted}">\n          <label class="control-label">{{\'APPLICATION_LIST\' | translate}}</label>\n          <ui-select data-ng-model="item.ListId" theme="bootstrap" name="ListId" data-ng-disabled="disabled" data-ng-change="getCustomFields()">\n            <ui-select-match placeholder="{{ \'APPLICATION_LIST\' | translate }}">{{$select.selected.name}}</ui-select-match>\n            <ui-select-choices repeat="list.id as list in lists | filter: $select.search">\n              <div ng-bind-html="list.name | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <span data-ng-show="forms.csv.ListId.$invalid && forms.csv.$submitted" class="help-block help-block-error">\n            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n          </span>\n        </div>\n        <!-- END LIST -->\n\n        <!-- START FIRSTNAME -->\n        <div class="form-group" data-ng-class="{\'has-error\': forms.csv.firstName.$invalid && forms.csv.$submitted}">\n          <label class="control-label">{{\'APPLICATION_FIRSTNAME\' | translate}}</label>\n          <ui-select data-ng-model="item.firstName" theme="bootstrap" name="firstName" data-ng-disabled="disabled" required>\n            <ui-select-match allow-clear placeholder="{{ \'APPLICATION_FIRSTNAME\' | translate }}">{{$select.selected}}</ui-select-match>\n            <ui-select-choices repeat="index in indexes | filter: $select.search">\n              <div ng-bind-html="index | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <span data-ng-show="forms.csv.firstName.$invalid && forms.csv.$touched" class="help-block help-block-error">\n            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n          </span>\n        </div>\n        <!-- END FIRSTNAME -->\n\n        <!-- START LASTNAME -->\n        <div class="form-group" data-ng-class="{\'has-error\': forms.csv.lastName.$invalid && forms.csv.$submitted}">\n          <label class="control-label">{{\'APPLICATION_LASTNAME\' | translate}}</label>\n          <ui-select data-ng-model="item.lastName" theme="bootstrap" name="lastName" data-ng-disabled="disabled">\n            <ui-select-match allow-clear placeholder="{{ \'APPLICATION_LASTNAME\' | translate }}">{{$select.selected}}</ui-select-match>\n            <ui-select-choices repeat="index in indexes | filter: $select.search">\n              <div ng-bind-html="index | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <span data-ng-show="forms.csv.lastName.$invalid && forms.csv.$touched" class="help-block help-block-error">\n            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n          </span>\n        </div>\n        <!-- END LASTNAME -->\n\n    <!-- START STREET -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.street.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n      <ui-select data-ng-model="item.street" theme="bootstrap" name="street" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_STREET\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.street.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END STREET -->\n\n    <!-- START POSTALCODE -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.postalCode.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n      <ui-select data-ng-model="item.postalCode" theme="bootstrap" name="postalCode" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_POSTALCODE\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.postalCode.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END POSTALCODE -->\n\n    <!-- START CITY -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.city.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n      <ui-select data-ng-model="item.city" theme="bootstrap" name="city" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_CITY\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.city.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END CITY -->\n\n    <!-- START PHONE -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.phone.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_PHONE\' | translate}}</label>\n      <ui-select data-ng-model="item.phone" theme="bootstrap" name="phone" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_PHONE\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.phone.$invalid && forms.phone.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END PHONE -->\n\n    <!-- START MOBILE -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.mobile.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_MOBILE\' | translate}}</label>\n      <ui-select data-ng-model="item.mobile" theme="bootstrap" name="mobile" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_MOBILE\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.mobile.$invalid && forms.mobile.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END MOBILE -->\n\n  </div>\n  <div class="col-md-6">\n\n    <!-- START COUNTRY -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.country.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n      <ui-select data-ng-model="item.country" theme="bootstrap" name="country" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COUNTRY\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.country.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END COUNTRY -->\n\n    <!-- START DATEOFBIRTH -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.dateOfBirth.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_DATEOFBIRTH\' | translate}}</label>\n      <ui-select data-ng-model="item.dateOfBirth" theme="bootstrap" name="dateOfBirth" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_DATEOFBIRTH\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.dateOfBirth.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END DATEOFBIRTH -->\n\n    <!-- START TAGS -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.tags.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_TAGS\' | translate}}</label>\n      <ui-select multiple data-ng-model="item.tags" theme="bootstrap" name="tags" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.tags.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TAGS -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.description.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <ui-select data-ng-model="item.description" theme="bootstrap" name="description" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_DESCRIPTION\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.description.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <!-- START FAX -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.fax.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_FAX\' | translate}}</label>\n      <ui-select data-ng-model="item.fax" theme="bootstrap" name="fax" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_FAX\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.fax.$invalid && forms.fax.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END FAX -->\n\n    <!-- START EMAIL -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.email.$invalid && forms.general.$submitted}">\n      <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}</label>\n      <ui-select data-ng-model="item.email" theme="bootstrap" name="email" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_EMAIL\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.email.$invalid && forms.csv.$submitted" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END EMAIL -->\n\n    <!-- START COMPANY -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.CompanyId.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_COMPANY\' | translate}}</label>\n      <ui-select data-ng-model="item.CompanyId" theme="bootstrap" name="CompanyId" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COMPANY\' | translate }}">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="company.id as company in companies | filter: $select.search">\n          <div ng-bind-html="company.name | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.CompanyId.$invalid && forms.csv.$submitted" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END COMPANY -->\n\n  </div>\n  </div>\n\n  <!-- START CUSTOMFIELDS -->\n  <div data-ng-repeat="customField in customFields">\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv[customField.name].$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{customField.alias}}</label>\n      <ui-select data-ng-model="item[customField.name]" theme="bootstrap" name="{{customField.name}}" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{customField.alias}}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv[customField.name].$invalid && forms.csv.$submitted" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n  </div>\n  <!-- END CUSTOMFIELDS -->\n\n  <div>\n    <p>{{\'APPLICATION_IMPORT_SUCCEEDED\' | translate}}: {{import.succeeded}}/{{csvLength}}</p>\n    <div class="progress progress-sm" style="">\n      <div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': import.success + \'%\' }"></div>\n    </div>\n  </div>\n  <div>\n    <p>{{\'APPLICATION_IMPORT_FAILED\' | translate}}: {{import.failed}}/{{csvLength}}</p>\n    <div class="progress progress-sm" style="">\n      <div class="progress-bar progress-bar-danger" role="progressbar" ng-style="{ \'width\': import.fail + \'%\' }"></div>\n    </div>\n  </div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="start()" ng-disabled="forms.csv.$invalid || !forms.csv.firstName || submitted">{{ \'APPLICATION_SUBMIT\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="close()" data-ng-if="!importing">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="stop()" data-ng-if="importing">{{ \'APPLICATION_STOP\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/contact/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-users"></i>\n                                   <a href="/contactmanager/contacts/list">{{ \'APPLICATION_CONTACT_MANAGER\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="fa fa-users font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_CONTACTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle" data-ng-click="newContact();">\n                                                       <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTACT\' | translate }}\n                                               </button>\n                                             <span class="btn default btn-file">\n                                           <span class="fileinput-new">\n                                          <i class="icon-cloud-upload"></i> {{\'APPLICATION_IMPORT_FROM_CSV\' | translate}}</span>\n                                              <input type="file" nv-file-select="" uploader="uploader"/>\n                                            </span>\n                                       </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div data-ng-if="gridOptions"  ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                        <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/list/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_LIST\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.list" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.list.name.$touched || forms.list.$submitted) && forms.list.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.list.name.$touched || forms.list.$submitted) && forms.list.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.list.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/list/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-tty"></i>\n                                     <a href="/contactmanager/lists/list">{{ \'APPLICATION_LISTS\' | translate }}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="fa fa-tty font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_LISTS\' | translate }}</a> </span>\n                             </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_LIST\' | translate }}\n                                          </button>\n                                     </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/list/view/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_CUSTOM_FIELD\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.customField" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.customField.name.$touched || forms.customField.$submitted) && forms.customField.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.alias" required/>\n      <span data-ng-show="(forms.customField.name.$touched || forms.customField.$submitted) && forms.customField.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START TYPE -->\n    <div class="form-group"  data-ng-class="{\'has-error\': (forms.customField.type.$touched || forms.customField.$submitted) && forms.customField.type.$invalid}">\n      <label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n        <ui-select-match placeholder="{{ \'APPLICATION_TYPE\' | translate }}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n        <ui-select-choices repeat="type.value as type in types| filter: $select.search">\n          {{$translate.instant(type.name)}}\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(forms.customField.type.$touched || forms.customField.$submitted) && forms.customField.type.$invalid && forms.customField.type.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TYPE -->\n\n    <div ng-slide-down="item.type == \'select\'" lazy-render duration="1">\n      <div>\n        <label class="control-label">{{\'APPLICATION_CHOICES\' | translate}}</label>\n      </div>\n      <div class="padding-bottom" ng-repeat="choice in choices">\n        <div class="form-group">\n          <div class="input-group">\n            <input type="text" class="form-control" ng-model="choice.value" required>\n            <span class="input-group-btn">\n            <button class="btn red" type="button"data-ng-click="removeField($index)" data-ng-disabled="choices.length<=1"><i class="fa fa-times"></i></button>\n            </span>\n          </div>\n        </div>\n      </div>\n      <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n        <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_CHOICE\' | translate}}\n      </button>\n\n    </div>\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.customField.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/list/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n  <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="note note-warning" data-ng-hide="teams.length">\n                           <h4 class="block">Warning!</h4>\n                               <p>\n                                    {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n                             </p>\n                  </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body">\n                                               <div class="form-group last">\n                                                 <div class="col-md-12" id="multi-select-team">\n                                                        </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/contactmanager/list/view/view.customFieldSettings.html",'<div class="row" data-ng-init="getCustomField()">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CUSTOM_FIELD\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                                </div>\n                        </div>\n\n                      <div class="portlet-body">\n                                    <!-- GENERAL TAB -->\n                                          <form name="forms.general" data-ng-submit="forms.general.$valid && updateCustomField()" novalidate>\n\n                                                 <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="customField.alias" required/>\n                                                           <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <div ng-slide-down="customField.type == \'select\'" lazy-render duration="1" class="mbottom20">\n                                                               <div>\n                                                                 <label class="control-label">{{\'APPLICATION_CHOICES\' | translate}}</label>\n                                                          </div>\n                                                                <div class="padding-bottom" ng-repeat="choice in choices">\n                                                                    <div class="form-group">\n                                                                              <div class="input-group">\n                                                                                     <input type="text" class="form-control" ng-model="choice.value" required>\n                                                                                     <span class="input-group-btn">\n                                                                                        <button class="btn red" type="button"data-ng-click="removeField($index)" data-ng-disabled="choices.length<=1"><i class="fa fa-times"></i></button>\n                                                                                    </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                                <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n                                                                  <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_CHOICE\' | translate}}\n                                                         </button>\n\n                                                   </div>\n\n                                                      <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="customField.description"></textarea>\n                                                   </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n\n                     </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/contactmanager/list/view/view.customFields.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="initCustomFields()">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CUSTOM_FIELDS\' | translate}}</span>\n                           </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n          <div class="btn-group">\n            <button class="btn green-jungle " ng-click="create()">\n              <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CUSTOM_FIELD\' | translate }}\n            </button>\n          </div>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/contactmanager/list/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getList()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-tty"></i>\n                                     <a href="/contactmanager/lists/list">{{ \'APPLICATION_LISTS\' | translate }}</a>\n                                      <i data-ng-show="list" class="fa fa-angle-right"></i>\n                         </li>\n                         <li data-ng-show="list">\n                                      <a href="#">{{list.name}}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/list.png" class="img-responsive">\n                               </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{list.name}}\n                                 </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.contactmanager.lists.view.settings\')}">\n                                                 <a data-ng-href="/contactmanager/lists/view/{{list.id}}/settings">\n                                                    <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.contactmanager.lists.view.agents\')}">\n                                                   <a data-ng-href="/contactmanager/lists/view/{{list.id}}/agents">\n                                                      <i class="icon-people"></i>\n                                                   {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                          </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.contactmanager.lists.view.customfields\')}">\n                                                       <a data-ng-href="/contactmanager/lists/view/{{list.id}}/customfields">\n                                                        <i class="icon-pencil"></i>\n                                                   {{ \'APPLICATION_CUSTOM_FIELDS\' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/contactmanager/list/view/view.settings.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_LIST\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateList()" novalidate>\n\n                                                        <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="list.name" data-ng-disabled="list.defaultEntry" required/>\n                                                              <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="list.description"></textarea>\n                                                  </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/dashboard/dashboard.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div>\n                 <nav class="navbar navbar-default" role="navigation">\n                         <div class="navbar-header">\n                                   <button type="button" class="navbar-toggle" data-ng-init="navCollapsed = true" data-ng-click="navCollapsed = !navCollapsed">\n                                          <span class="sr-only">Toggle navigation</span>\n                                                <span class="icon-bar"></span>\n                                                <span class="icon-bar"></span>\n                                                <span class="icon-bar"></span>\n                                        </button>\n                             </div>\n\n                              <!-- Collect the nav links, forms, and other content for toggling -->\n                         <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n                                     <ul class="nav navbar-nav">\n                                           <li data-ng-class="{active: $state.is(\'main.dashboard.voice\')}">\n                                                    <a href="/dashboard/voice">\n                                                           <b class=\'icon-earphones-alt\'></b>\n                                                          {{ \'APPLICATION_VOICE\' | translate }}\n                                                       </a>\n                                          </li>\n                                         <!-- <li data-ng-class="{active: $state.is(\'main.dashboard.mail\')}">\n                                                        <a href="/dashboard/mail">\n                                                            <b class=\'icon-envelope\'></b>\n                                                               {{ \'APPLICATION_MAIL\' | translate }}\n                                                        </a>\n                                          </li> -->\n                                     </ul>\n                         </div>\n                                <!-- /.navbar-collapse -->\n                    </nav>\n                </div>\n                <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/dashboard/mail/mail.html",'<div class="col-md-12">\nThis is the mail view.\n</div>\n'),a.put("app/dashboard/voice/voice.html",'<div data-ng-switch="Auth.getRole()">\n  <div ng-switch-when="agent" data-ng-init="initAgent()">\n    <div class="row" style="padding-bottom:10px;">\n      <div class="col-md-12">\n        <!-- START TABLE -->\n        <div ui-grid="table1" ui-grid-resize-columns ui-grid-auto-resize class="ui-grid">\n          <div class="watermark" data-ng-show="!table1.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n        </div>\n        <!-- END TABLE -->\n      </div>\n    </div>\n\n    <div class="row" style="padding-bottom:10px;">\n      <div class="col-md-12">\n        <!-- START TABLE -->\n        <div ui-grid="table2" ui-grid-resize-columns ui-grid-auto-resize class="ui-grid">\n          <div class="watermark" data-ng-show="!table2.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n        </div>\n        <!-- END TABLE -->\n      </div>\n    </div>\n  </div>\n  <div ng-switch-default>\n    <fieldset>\n      <legend>\n        <span class="caption-subject">{{ \'APPLICATION_INBOUND\' | translate }}</span>\n      </legend>\n\n      <div class="row">\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initWaiting()">\n          <div class="dashboard-stat blue-madison">\n            <div class="visual">\n              <i class="icon-bell"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{waiting || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_WAITING\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initActive()">\n          <div class="dashboard-stat purple-plum">\n            <div class="visual">\n              <i class="icon-control-play"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{active || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_ACTIVE\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initAnswered()">\n          <div class="dashboard-stat green-haze">\n            <div class="visual">\n              <i class="icon-like"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{answered || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_ANSWERED\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initAbandoned()">\n          <div class="dashboard-stat red-intense">\n            <div class="visual">\n              <i class="icon-dislike"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{abandoned || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_ABANDONED\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class="row">\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initAvgAnswerTime()">\n          <div class="dashboard-stat blue-madison">\n            <div class="visual">\n              <i class="icon-clock"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{avganswertime || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_AVG_ANSWER_TIME\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initAvgTalkTime()">\n          <div class="dashboard-stat purple-plum">\n            <div class="visual">\n              <i class="icon-clock"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{avgtalktime || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_AVG_TALK_TIME\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initAnswerRate()">\n          <div class="dashboard-stat green-haze">\n            <div class="visual">\n              <i class="icon-pie-chart"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{answerrate || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_ANSWER_RATE\' | translate}} (%)\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initAbandonRate()">\n          <div class="dashboard-stat red-intense">\n            <div class="visual">\n              <i class="icon-pie-chart"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{abandonrate || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_ABANDON_RATE\' | translate}} (%)\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class="row">\n        <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12" data-ng-init="initTotalOffered()">\n          <div class="dashboard-stat blue-madison">\n            <div class="visual">\n              <i class="icon-info"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{totaloffered || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_TOTAL_OFFERED\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12" data-ng-init="initUnmanaged()">\n          <div class="dashboard-stat purple-plum">\n            <div class="visual">\n              <i class="icon-info"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{unmanaged || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_UNMANAGED\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </fieldset>\n\n    <fieldset>\n      <legend>\n        <span class="caption-subject">{{ \'APPLICATION_OUTBOUND\' | translate }}</span>\n      </legend>\n\n      <div class="row">\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initManualOutbound()">\n          <div class="dashboard-stat blue-madison">\n            <div class="visual">\n              <i class="icon-call-out"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{manualoutbound || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_MANUAL_OUTBOUND\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initManualOutboundGlobalDuration()">\n          <div class="dashboard-stat purple-plum">\n            <div class="visual">\n              <i class="icon-clock"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{manualoutboundglobalduration || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_GLOBAL_DURATION\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initManualOutboundAnswered()">\n          <div class="dashboard-stat green-haze">\n            <div class="visual">\n              <i class="icon-like"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{manualoutboundanswered || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_ANSWERED\' | translate}}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" data-ng-init="initManualOutboundAvgDuration()">\n          <div class="dashboard-stat red-intense">\n            <div class="visual">\n              <i class="icon-pie-chart"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{manualoutboundavgduration || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_AVG_DURATION\' | translate}} (%)\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class="row">\n        <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12" data-ng-init="initManualOutboundAnswerRate()">\n          <div class="dashboard-stat blue-madison">\n            <div class="visual">\n              <i class="icon-pie-chart"></i>\n            </div>\n            <div class="details">\n              <div class="number">\n                {{manualoutboundanswerrate || 0}}\n              </div>\n              <div class="desc">\n                {{\'APPLICATION_ANSWER_RATE\' | translate}} (%)\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n    </fieldset>\n  </div>\n</div>\n'),a.put("app/desk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-handbag"></i>\n                                  <a href="/desk/list">{{ \'APPLICATION_DESK_COM\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-handbag font-green-sharp"></i>\n                                 <span class="caption-subject">{{ \'APPLICATION_DESK_COM\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="accounts.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/desk/wizard">\n                                                      <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }}\n                                               </a>\n                                  </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'authType\',\'consumerKey\',\'consumerSecret\',\'token\',\'tokenSecret\',\'password\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Authentication Type\', \'Consumer Key\', \'Consumer Secret\', \'Token\', \'Token Secret\', \'Password\']" field-separator=";" filename="desk_accounts.csv">\n                                   <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedDeskAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                    <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="7">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                               <th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n                                                         <th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                                <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="account in displayedDeskAccounts" class="animate-repeat">\n                                                             <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n                                         <td>{{account.name}}</td>\n                                             <td>{{account.username}}</td>\n                                                           <td>{{account.remoteUri}}</td>\n                                                                <td>{{account.description}}</td>\n                                            <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/desk/view/{{account.id}}/account">\n                                                                           {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                                                  <a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n                                                                          {{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n                                            </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedDeskAccounts.length">\n                                                              <td colspan="7" style="text-align:center;">\n                                                                   <i>No account available</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                 </div>\n                                                    </td>\n                                                 <td/>\n                                                             <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="7" class="text-center">\n                                                                    <div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                                    </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/desk/view/view.account.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n                                                     <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n                                                            <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n                                                            <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START AUTH TYPE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n                                                              <ui-select data-ng-model="account.authType" name="authType" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                        <ui-select-choices repeat="type in [\'basic\', \'oauth\'] | filter: $select.search">\n                                                                          <div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="account.authType == \'basic\'" lazy-render duration="1">\n                                                          <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n                                                                <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START CONSUMER KEY -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerKey.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n                                                               <label class="control-label">{{\'APPLICATION_CONSUMER_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="consumerKey" placeholder="{{\'APPLICATION_CONSUMER_KEY\' | translate}}" class="form-control" data-ng-model="account.consumerKey" required/>\n                                                          <span data-ng-show="forms.formSetting.consumerKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONSUMER KEY -->\n\n              <!-- START CONSUMER SECRET -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerSecret.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n                                                            <label class="control-label">{{\'APPLICATION_CONSUMER_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="consumerSecret" placeholder="{{\'APPLICATION_CONSUMER_SECRET\' | translate}}" class="form-control" data-ng-model="account.consumerSecret" required/>\n                                                         <span data-ng-show="forms.formSetting.consumerSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONSUMER SECRET -->\n\n              <!-- START TOKEN -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n                                                             <label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="token" placeholder="{{\'APPLICATION_TOKEN\' | translate}}" class="form-control" data-ng-model="account.token" required/>\n                                                             <span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN -->\n\n              <!-- START TOKEN SECRET-->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.tokenSecret.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n                                                               <label class="control-label">{{\'APPLICATION_TOKEN_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="tokenSecret" placeholder="{{\'APPLICATION_TOKEN_SECRET\' | translate}}" class="form-control" data-ng-model="account.tokenSecret" required/>\n                                                          <span data-ng-show="forms.formSetting.tokenSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN SECRET-->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/desk/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n        <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n                              </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createConfiguration()">\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n                                                   <form name="formsConfiguration.info" novalidate>\n                                                              <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n                                                                  <span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n                                                             <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n                                                              </div>\n                                                                <!-- END DESCRIPTION -->\n\n                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/desk/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n                            </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n                                      </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n                                  </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- SUBJECT TAB -->\n                                  <div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                          <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n                 <div class="col-md-3">\n                  <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n                        <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n                      </div>\n                      </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n                      <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n                  </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n                                  <div class="tab-pane ui-padding" id="tab_1_2">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                            <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                                                    <div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n                                                               <!-- <pre>\n                                                                    {{descriptionItem|json}}\n                                                              </pre> -->\n                  <div class="col-md-2">\n                  <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                        <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n                     <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n                    <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n                      </div>\n                      </div>\n                                                          <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n                                                                        <input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n                                                         </div>\n                      <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n                        <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n                      </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n                                   <div class="tab-pane ui-padding" id="tab_1_3">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                             <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n                     <div class="col-md-3">\n                  <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n                    <ui-select-choices repeat="item.id as item in accountFields | filter: $select.search">\n                          <div ng-bind-html="item.label | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n                    <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected}}</ui-select-match>\n                                  <ui-select-choices repeat="item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n                                  <div ng-bind-html="item | highlight: $select.search"></div>\n                                 </ui-select-choices>\n                                </ui-select>\n                  </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n                                                                 <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                                <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                                 <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                               </ui-select-choices>\n                                </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n                        <div class="form-group">\n                                                                              <input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n                    </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n                      <div class="form-group">\n                                                                              <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n                    </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END FIELDS TAB -->\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
 a.put("app/desk/view/view.configurations.html",'<div ui-view class="profile-content">\n        <div class="row" data-ng-init="getConfigurations()">\n          <div class="col-md-12">\n                       <div class="portlet light">\n                           <div class="portlet-title  tabbable-line">\n                                    <div class="caption caption-md">\n                                              <i class="icon-globe theme-font hide"></i>\n                                            <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n                                  </div>\n                                        <div class="actions">\n                                         <div class="btn-group">\n                                                       <a class="btn green-jungle " href="/desk/view/{{account.id}}/configuration" data-toggle="dropdown">\n                                                           <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n                                                 </a>\n                                          </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <!-- START TABLE -->\n                                  <table class="table table-striped table-bordered table-hover">\n                                                  <thead>\n                                                       <tr>\n                                                            <th>{{\'APPLICATION_NAME\' | translate}}</th>\n                                                                     <th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n                                                                  <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                      </tr>\n                                                 </thead>\n                                                    <tbody>\n                                                   <tr data-ng-repeat="configuration in configurations">\n                                                                     <td>{{configuration.name}}</td>\n                                                                       <td>{{configuration.description}}</td>\n                                                      <td>\n                                                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/desk/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n                                                                                      {{ \'APPLICATION_SETTINGS\' | translate}}\n                                                     </a>\n                                                  <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n                                                                                    {{ \'APPLICATION_DELETE\' | translate }}\n                                                      </a>\n                                                </td>\n                                               </tr>\n                                                             <tr data-ng-hide="configurations.length">\n                                                                     <td colspan="5" style="text-align:center;">\n                                                                           <i>No configuration available</i>\n                                                                     </td>\n                                                         </tr>\n                                           </tbody>\n                                    </table>\n                                      <!-- END TABLE -->\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/desk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n          <i class="icon-handbag"></i>\n          <a href="/desk/list">{{ \'APPLICATION_DESK_COM\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{account.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/desk.png" class="img-responsive">\n                               </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{account.name}}\n                                      </div>\n                                        <div class="profile-usertitle-job">\n                                           {{account.remoteUri}}\n                                 </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.desk.view.account\')}">\n                                                  <a ng-href="/desk/view/{{account.id}}/account">\n                                                       <i class="icon-user"></i>\n                                                     {{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.desk.view.configurations\') || $state.is(\'main.desk.view.configuration\')}">\n                                                      <a ng-href="/desk/view/{{account.id}}/configurations">\n                                                        <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/desk/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-handbag"></i>\n                                          <a href="/desk/list">{{ \'APPLICATION_DESK_COM\' | translate }}</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n  <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                                <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/desk/accounts/validate/username"/>\n                                                         <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n                                       </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n\n              <!-- START REMOTE ADDRESS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/desk/accounts/validate/remoteUri"/>\n                                                             <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n                                 </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START AUTH TYPE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n                                                              <ui-select data-ng-model="item.authType" name="authType" theme="bootstrap" required>\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                        <ui-select-choices repeat="type in [\'basic\', \'oauth\'] | filter: $select.search">\n                                                                          <div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="item.authType == \'basic\'" lazy-render duration="1">\n                                                             <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                                                               <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n              <!-- START CONSUMER KEY -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerKey.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n                                                          <label class="control-label">{{\'APPLICATION_CONSUMER_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="consumerKey" placeholder="{{\'APPLICATION_CONSUMER_KEY\' | translate}}" class="form-control" data-ng-model="item.consumerKey" required/>\n                                                             <span data-ng-show="forms.formSetting.consumerKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONSUMER KEY -->\n\n              <!-- START CONSUMER SECRET -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerSecret.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n                                                               <label class="control-label">{{\'APPLICATION_CONSUMER_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="consumerSecret" placeholder="{{\'APPLICATION_CONSUMER_SECRET\' | translate}}" class="form-control" data-ng-model="item.consumerSecret" required/>\n                                                            <span data-ng-show="forms.formSetting.consumerSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONSUMER SECRET -->\n\n              <!-- START TOKEN -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n                                                                <label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="token" placeholder="{{\'APPLICATION_TOKEN\' | translate}}" class="form-control" data-ng-model="item.token" required/>\n                                                                <span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN -->\n\n              <!-- START TOKEN SECRET-->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.tokenSecret.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n                                                          <label class="control-label">{{\'APPLICATION_TOKEN_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="tokenSecret" placeholder="{{\'APPLICATION_TOKEN_SECRET\' | translate}}" class="form-control" data-ng-model="item.tokenSecret" required/>\n                                                             <span data-ng-show="forms.formSetting.tokenSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN SECRET-->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n\n                          </wizard>\n\n                   </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/freshdesk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-handbag"></i>\n                                  <a href="/freshdesk/list">{{ \'APPLICATION_FRESHDESK\' | translate }}</a>\n                             </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-handbag font-green-sharp"></i>\n                                 <span class="caption-subject">{{ \'APPLICATION_FRESHDESK\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="accounts.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/freshdesk/wizard">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }}\n                                               </a>\n                                  </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'apiKey\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Api Key\']" field-separator=";" filename="freshdesk_accounts.csv">\n                                        <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedFreshdeskAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                       <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="7">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                               <th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n                                                         <th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                                <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="account in displayedFreshdeskAccounts" class="animate-repeat">\n                                                                <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n                                         <td>{{account.name}}</td>\n                                             <td>{{account.username}}</td>\n                                                           <td>{{account.remoteUri}}</td>\n                                                                <td>{{account.description}}</td>\n                                            <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/freshdesk/view/{{account.id}}/account">\n                                                                              {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                                                  <a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n                                                                          {{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n                                            </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedFreshdeskAccounts.length">\n                                                         <td colspan="7" style="text-align:center;">\n                                                                   <i>No account available</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                 </div>\n                                                    </td>\n                                                 <td/>\n                                                             <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="7" class="text-center">\n                                                                    <div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                                    </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/freshdesk/view/view.account.html",'<div class="row">\n  <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n                                                     <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n                                                            <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n                                                            <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START API KEY -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.apiKey.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_API_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="apiKey" placeholder="{{\'APPLICATION_API_KEY\' | translate}}" class="form-control" data-ng-model="account.apiKey" required/>\n                                                         <span data-ng-show="forms.formSetting.apiKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END API KEY -->\n\n                                                        <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/freshdesk/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n   <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n                              </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createConfiguration()">\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n                                                   <form name="formsConfiguration.info" novalidate>\n                                                              <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n                                                                  <span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n                                                             <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n                                                              </div>\n                                                                <!-- END DESCRIPTION -->\n\n                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/freshdesk/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n                            </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n                                      </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n                                  </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- SUBJECT TAB -->\n                                  <div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                          <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n                 <div class="col-md-3">\n                  <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n                        <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n                      </div>\n                      </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n                      <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n                  </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n                                  <div class="tab-pane ui-padding" id="tab_1_2">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                            <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                                                    <div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n                                                               <!-- <pre>\n                                                                    {{descriptionItem|json}}\n                                                              </pre> -->\n                  <div class="col-md-2">\n                  <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                        <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n                     <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n                    <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n                      </div>\n                      </div>\n                                                          <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n                                                                        <input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n                                                         </div>\n                      <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n                        <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n                      </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n                                   <div class="tab-pane ui-padding" id="tab_1_3">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                             <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n                     <div class="col-md-3">\n                  <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n                    <ui-select-choices repeat="item.name as item in accountFields | filter: $select.search">\n                        <div ng-bind-html="item.label | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n                    <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected[0]}}</ui-select-match>\n                               <ui-select-choices repeat="item[0] as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n                               <div ng-bind-html="item[0] | highlight: $select.search"></div>\n                              </ui-select-choices>\n                                </ui-select>\n                  </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n                                                                 <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                                <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                                 <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                               </ui-select-choices>\n                                </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n                        <div class="form-group">\n                                                                              <input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n                    </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n                      <div class="form-group">\n                                                                              <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n                    </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END FIELDS TAB -->\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
 a.put("app/freshdesk/view/view.configurations.html",'<div ui-view class="profile-content">\n   <div class="row" data-ng-init="getConfigurations()">\n          <div class="col-md-12">\n                       <div class="portlet light">\n                           <div class="portlet-title  tabbable-line">\n                                    <div class="caption caption-md">\n                                              <i class="icon-globe theme-font hide"></i>\n                                            <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n                                  </div>\n                                        <div class="actions">\n                                         <div class="btn-group">\n                                                       <a class="btn green-jungle " href="/freshdesk/view/{{account.id}}/configuration" data-toggle="dropdown">\n                                                              <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n                                                 </a>\n                                          </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <!-- START TABLE -->\n                                  <table class="table table-striped table-bordered table-hover">\n                                                  <thead>\n                                                       <tr>\n                                                            <th>{{\'APPLICATION_NAME\' | translate}}</th>\n                                                                     <th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n                                                                  <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                      </tr>\n                                                 </thead>\n                                                    <tbody>\n                                                   <tr data-ng-repeat="configuration in configurations">\n                                                                     <td>{{configuration.name}}</td>\n                                                                       <td>{{configuration.description}}</td>\n                                                      <td>\n                                                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/freshdesk/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n                                                                                 {{ \'APPLICATION_SETTINGS\' | translate}}\n                                                     </a>\n                                                  <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n                                                                                    {{ \'APPLICATION_DELETE\' | translate }}\n                                                      </a>\n                                                </td>\n                                               </tr>\n                                                             <tr data-ng-hide="configurations.length">\n                                                                     <td colspan="5" style="text-align:center;">\n                                                                           <i>No configuration available</i>\n                                                                     </td>\n                                                         </tr>\n                                           </tbody>\n                                    </table>\n                                      <!-- END TABLE -->\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/freshdesk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n          <i class="icon-handbag"></i>\n          <a href="/freshdesk/list">{{ \'APPLICATION_FRESHDESK\' | translate }}</a>\n                                     <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{account.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/freshdesk.png" class="img-responsive">\n                          </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{account.name}}\n                                      </div>\n                                        <div class="profile-usertitle-job">\n                                           {{account.remoteUri}}\n                                 </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.freshdesk.view.account\')}">\n                                                     <a ng-href="/freshdesk/view/{{account.id}}/account">\n                                                  <i class="icon-user"></i>\n                                                     {{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.freshdesk.view.configurations\') || $state.is(\'main.freshdesk.view.configuration\')}">\n                                                    <a ng-href="/freshdesk/view/{{account.id}}/configurations">\n                                                   <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/freshdesk/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n   <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-handbag"></i>\n                                          <a href="/freshdesk/list">{{ \'APPLICATION_FRESHDESK\' | translate }}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n  <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                                <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/freshdesk/accounts/validate/username"/>\n                                                                <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n                                       </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n\n              <!-- START REMOTE ADDRESS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/freshdesk/accounts/validate/remoteUri"/>\n                                                                <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                <span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n                                 </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START API KEY -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.apiKey.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_API_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="apiKey" placeholder="{{\'APPLICATION_API_KEY\' | translate}}" class="form-control" data-ng-model="item.apiKey" required/>\n                                                            <span data-ng-show="forms.formSetting.apiKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END API KEY -->\n\n                                                        <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n\n                          </wizard>\n\n                   </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/integration/list/list.html",'\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-game-controller"></i>\n                                  <a href="/integrations/list">{{ \'APPLICATION_INTEGRATIONS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initList()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-eye font-green-sharp"></i>\n                                     <span class="caption-subject">{{ \'APPLICATION_INTEGRATIONS\' | translate }}</a> </span>\n                              </div>\n                                <div class="actions">\n                           <span class="btn green-jungle btn-file">\n            <span> <i class="icon-plus"></i> New App </span>\n            <input type="file" accept=".zip" nv-file-select="" uploader="uploader"/>\n          </span>\n          <a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedIntegrations" filename="integrations.csv">\n                                    <i class="icon-cloud-download"></i></a>\n                                       <a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedIntegrations" st-safe-src="integrations" class="table table-striped table-bordered table-hover">\n                                    <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="6">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <select class="form-control input-small select2me" data-ng-model="integrationsByPage">\n                                                                                                <option value="10">10</option>\n                                                                                                <option value="25">25</option>\n                                                                                                <option value="50">50</option>\n                                                                                                <option value="{{integrations.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n                                                                                        </select>\n                                                                             </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th>\n                                                   <th st-sort="fullname">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                                <th st-sort="name">{{ \'APPLICATION_FILENAME\' | translate }}</th>\n                                                            <th st-sort="name">{{ \'APPLICATION_VERSION\' | translate }}</th>\n                                                 <th st-sort="name">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                 <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                  </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="integration in displayedIntegrations">\n                                                                <td>{{integration.id}}</td>\n                                                           <td>{{integration.name}}</td>\n                                                         <td>{{integration.filename}}</td>\n                                                             <td>{{integration.version}}</td>\n                                            <td>{{integration.description}}</td>\n                                                            <td>\n                                                                  <span class="btn default btn-xs blue-stripe btn-file">\n                                            <span> {{ \'APPLICATION_UPDATE\' | translate }} </span>\n                                       <input type="file" accept=".zip" nv-file-select="" uploader="uploader"/>\n                                    </span>\n                                             <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(integration.name, integration.id)">\n                                                                                {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="integrations.length">\n                                                               <td colspan="6" style="text-align:center;">\n                                                                   <i>No integrations available</i>\n                                                              </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="id" class="form-control" type="search"/>\n                                                                    </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="filename" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FILENAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                              </td>\n                                                             <td>\n                                              </td>\n                                                             <td>\n                                              </td>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="6" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="integrationsByPage" st-displayed-pages="7"></div>\n                                           </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/jscripty/project/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_PROJECT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/jscripty/project/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n        <li>\n          <i class="fa fa-slack"></i>\n          <a href="/jscripty/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n        </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_PROJECTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" ng-click="createItem()">\n                                                  <i class="icon-plus"></i> {{ \'APPLICATION_NEW_PROJECT\' | translate }}\n                                               </a>\n                                  </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n\n                                        <!-- <div class="table-responsive"> -->\n\n\n                           <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n\n                          </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/jscripty/project/report/report.detail.html",'<div class="row">\n        <div class="col-md-12">\n               <!-- <div class="tab-pane" id="tab_1_3" data-ng-init="getQuestionDetail()"> -->\n               <div  id="tab_1_3" data-ng-init="getQuestionDetail()">\n\n                      <div class="row">\n                                             <div class="col-md-12">\n                                                       <div class="portlet ">\n                                                                                                        <div class="portlet-title">\n                                                                                                           <div class="caption">\n                                                                                                                 <i class="fa fa-list"></i>Questions Detail\n                                                                                                            </div>\n                                                                                                                <!-- <div class="tools">\n                                                                                                                      <a href="" class="fullscreen" data-original-title="" title="">\n                                                                                                                        </a>\n                                                                                                          </div> -->\n                                                                                                    </div>\n                                                                                                        <div class="portlet-body" id="questionDetail" >\n                                                                                                               <div class="row  margin-top-20">\n                                                                                                                      <div class="col-md-10 col-md-offset-1">\n                                                                                                                               <div class="panel panel-info" ng-show="!questionDetail">\n                                                                                                                                      {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}\n\n                                                                                                                          </div>\n                                                                                                                                <div class="panel panel-info" ng-repeat= " (id ,labels) in questionDetail ">\n                                                                                                                                                                  <div class="panel-heading">\n                                                                                                                                                                           <h3 class="panel-title">\n                                                                                                                                                                                              <i class="fa-chart "></i>Question Id: {{id}}\n                                                                                                                                                                                          </h3>\n\n                                                                                                                                                                       </div>\n                                                                                                                                                                        <div class="panel-body">\n                                                                                                                                                                                              <div class="row" ng-repeat= " (label , questions) in labels ">\n                                                                                                                                                                                                        <div class="col-md-10 col-md-offset-1">\n                                                                                                                                                                                                                       <div class="row">\n                                                                                                                                                                                                                             <h3 >\n                                                                                                                                                                                                                                         <i class="icon-bar-chart "></i> {{label}}\n                                                                                                                                                                                                                                             </h3>\n\n                                                                                                                                                                                                                       </div>\n                                                                                                                                                                                                                        <div class="row" ng-repeat= " (question , answers) in questions ">\n                                                                                                                                                                                                                            <div class="col-md-10 col-md-offset-1">\n                                                                                                                                                                                                                                       <div class="row" style="word-wrap: break-word;">\n                                                                                                                                                                                                                                              <h3 >\n                                                                                                                                                                                                                                                         <i class="icon-bar-chart "></i>\n\n                                                                                                                                                                                                                                                             </h3>\n                                                                                                                                                                                                                                                         {{question}}\n                                                                                                                                                                                                                                  </div>\n                                                                                                                                                                                                                                        <div class="row">\n                                                                                                                                                                                                                                             <div class="col-md-6 col-md-offset-3 ">\n                                                                                                                                                                                                                                               <table class="table  table-hover">\n                                                                                                                                                                                                                                                    <thead>\n                                                                                                                                                                                                                                                               <tr>\n                                                                                                                                                                                                                                                                  <th style="width=5%"> Answer  </th>\n                                                                                                                                                                                                                                                                   <th style="width=5%"> Count </th>\n                                                                                                                                                                                                                                                             </tr>\n                                                                                                                                                                                                                                                 </thead>\n                                                                                                                                                                                                                                                      <tbody>\n                                                                                                                                                                                                                                                               <tr ng-if= "answer.question_answer"  ng-repeat="answer in answers ">\n\n                                                                                                                                                                                                                                                                                                <td>{{answer.question_answer || \'No answer\'}}</td>\n                                                                                                                                                                                                                                                                                          <td>{{answer.count}}</td>\n\n                                                                                                                                                                                                                                                           </tr>\n\n                                                                                                                                                                                                                                                       </tbody>\n                                                                                                                                                                                                                                              </table>\n                                                                                                                                                                                                                                              </div>\n                                                                                                                                                                                                                                        </div>\n\n                                                                                                                                                                                                                              </div>\n                                                                                                                                                                                                                </div>\n                                                                                                                                                                                                        </div>\n\n\n                                                                                                                                                                                                    </div>\n\n\n                                                                                                                                                                    </div>\n                                                                                                                                </div>\n                                                                                                                                <!-- <div class="panel panel-info" ng-repeat= " question in questionDetail ">\n                                                                                                                                 <div class="panel-heading">\n                                                                                                                                           <h3 class="panel-title">\n                                                                                                                                                              <i class="icon-bar-chart "></i>\n                                                                                                                                                               {{question.question_label}}</h3>\n\n                                                                                                                                    </div>\n                                                                                                                                        <div class="panel-body">\n                                                                                                                                              <div class="row">\n                                                                                                                                                     <div class="col-md-10 col-md-offset-1 ">\n                                                                                                                                                              <strong>ID:      </strong>{{question.question_id}}\n                                                                                                                                                    </div>\n                                                                                                                                                </div>\n                                                                                                                                                <div class="row">\n                                                                                                                                                     <div class="col-md-10 col-md-offset-1 ">\n                                                                                                                                                              <strong>Question:        </strong>{{question.question_text}}\n                                                                                                                                                  </div>\n                                                                                                                                                </div>\n\n                                                                                                                                              <div class="row">\n                                                                                                                                                     <div class="col-md-6 col-md-offset-3 ">\n                                                                                                                                                       <table class="table  table-hover">\n                                                                                                                                                            <thead>\n                                                                                                                                                                       <tr>\n                                                                                                                                                                          <th style="width=5%"> Answer  </th>\n                                                                                                                                                                           <th style="width=5%"> Count </th>\n                                                                                                                                                                     </tr>\n                                                                                                                                                         </thead>\n                                                                                                                                                              <tbody>\n                                                                                                                                                                       <tr ng-if= "answer"  ng-repeat="answer in question.question_answers ">\n\n                                                                                                                                                                                                      <td>{{answer || \'No answer\'}}</td>\n                                                                                                                                                                                                  <td>{{question.count[$index]}}</td>\n\n                                                                                                                                                                 </tr>\n\n                                                                                                                                                               </tbody>\n                                                                                                                                                      </table>\n                                                                                                                                                      </div>\n                                                                                                                                                </div>\n                                                                                                                                                <div class="row" ng-if="question.question_other_label">\n                                                                                                                                                       <div class="col-md-10 col-md-offset-1 ">\n                                                                                                                                                              <i class="fa fa-cog "></i>\n                                                                                                                                                                    {{question.question_other_label}}\n                                                                                                                                                     </div>\n                                                                                                                                                </div>\n\n                                                                                                                                              <div class="row" ng-if="question.question_other_label">\n                                                                                                                                                       <div class="col-md-6 col-md-offset-3 ">\n                                                                                                                                                       <table class="table  table-hover">\n                                                                                                                                                            <thead>\n                                                                                                                                                                       <tr>\n                                                                                                                                                                          <th style="width=5%"> Value  </th>\n                                                                                                                                                                            <th style="width=5%"> Count </th>\n                                                                                                                                                                     </tr>\n                                                                                                                                                         </thead>\n                                                                                                                                                              <tbody>\n\n                                                                                                                                                                     <tr ng-if= "answer" ng-repeat="answer in question.question_other_answer ">\n\n                                                                                                                                                                                                  <td>{{answer || \'No value\'}}</td>\n                                                                                                                                                                                                   <td>{{question.question_other_count[$index]}}</td>\n\n                                                                                                                                                                  </tr>\n\n                                                                                                                                                               </tbody>\n                                                                                                                                                      </table>\n                                                                                                                                                      </div>\n                                                                                                                                                </div>\n                                                                                                                                        </div>\n                                                                                                                                </div> -->\n                                                                                                                    </div>\n\n                                                                                                              </div>\n\n                                                                                                      </div>\n                                                                                                </div>\n\n               </div>\n\n                     </div>\n\n              </div>\n                </div>\n                        </div>\n'),a.put("app/jscripty/project/report/report.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row margin-top-20" data-ng-init="initView()">\n                             <div class="col-md-12">\n\n                             <!-- BEGIN PROFILE SIDEBAR -->\n                                        <div class="profile-sidebar">\n               <div class="portlet light profile-sidebar-portlet">\n                                                                             <!-- SIDEBAR USERPIC -->\n                                                                              <div class="profile-userpic">\n                                                                                         <img src="assets/images/xcally.png" class="img-responsive" >\n                                                                          </div>\n                                                                                <!-- END SIDEBAR USERPIC -->\n                                                                          <!-- SIDEBAR USER TITLE -->\n                                                                           <div class="profile-usertitle">\n                                                                                               <div class="profile-usertitle-name">\n                                                                                          </div>\n                                                                                                <div class="profile-usertitle-job">\n\n                                                                                         </div>\n                                                                                </div>\n                                                                                <!-- END SIDEBAR USER TITLE -->\n\n                                                                             <!-- SIDEBAR MENU -->\n                                                                         <div class="profile-usermenu">\n                                                                                                        <ul class="nav">\n                                                                                                              <li data-ng-class="{active: $state.is(\'main.jscripty.projects.report.sessions\')}">\n                                                                                                          <!-- <li class="active"> -->\n\n                                                                                                                                        <a data-ng-href=\'/jscripty/projects/report/{{projectId}}/sessions\'>\n                                                                 <i class="icon-settings"></i>\n                                                                 Project Sessions</a>\n                                                                                                          </li>\n                                                         <li data-ng-class="{active: $state.is(\'main.jscripty.projects.report.summary\')}">\n                                                                                                                           <a data-ng-href=\'/jscripty/projects/report/{{projectId}}/summary\'>\n                                                                                          <i class="fa fa-bar-chart"></i>\n                                                                     Questions Summary</a>\n                                                           </li>\n                                                         <li data-ng-class="{active: $state.is(\'main.jscripty.projects.report.detail\')}">\n                                                                                                                            <a data-ng-href=\'/jscripty/projects/report/{{projectId}}/detail\'>\n                                                                                                           <i class="fa fa-list"></i>\n                                                                  Questions Detail</a>\n                                                            </li>\n                                                                                                 </ul>\n                                                                         </div>\n                                                                                <!-- END MENU -->\n\n                   </div>\n\n              </div>\n\n              <div class="profile-content margin-top-20">\n                                                                   <div class="row">\n                                                                             <div class="col-md-12">\n                                                                                                               <div class="col-lg-4 col-md-4 col-sm-6 col-xs-12">\n                                                                                                                    <div class="dashboard-stat2">\n                                                                                                                         <div class="display">\n                                                                                                                                 <div class="number">\n                                                                                                                                          <h3 class="font-green-sharp">{{projectStats.started}}</h3>\n                                                                                                                                            <small>Started</small>\n                                                                                                                                        </div>\n                                                                                                                                        <div class="icon">\n                                                                                                                                            <i class="icon-pie-chart"></i>\n                                                                                                                                        </div>\n                                                                                                                                </div>\n                                                                                                                                <div class="progress-info">\n                                                                                                                                   <div class="progress">\n                                                                                                                                                <span style="width: 100%;" class="progress-bar progress-bar-success green-sharp">\n                                                                                                                                             </span>\n                                                                                                                                       </div>\n                                                                                                                                        <div class="status">\n                                                                                                                                  </div>\n                                                                                                                                </div>\n                                                                                                                        </div>\n                                                                                                                </div>\n                                                                                                                <div class="col-lg-4 col-md-4 col-sm-6 col-xs-12">\n                                                                                                                    <div class="dashboard-stat2">\n                                                                                                                         <div class="display">\n                                                                                                                                 <div class="number">\n                                                                                                                                          <h3 class="font-red-haze">{{projectStats.incomplete}}</h3>\n                                                                                                                                            <small>Incomplete</small>\n                                                                                                                                     </div>\n                                                                                                                                        <div class="icon">\n                                                                                                                                            <i class="icon-chart"></i>\n                                                                                                                                    </div>\n                                                                                                                                </div>\n                                                                                                                                <div class="progress-info">\n                                                                                                                                   <div class="progress">\n                                                                                                                                                <span style="width: 100%;" class="progress-bar progress-bar-success red-haze">\n                                                                                                                                                </span>\n                                                                                                                                       </div>\n                                                                                                                                        <div class="status">\n                                                                                                                                  </div>\n                                                                                                                                </div>\n                                                                                                                        </div>\n                                                                                                                </div>\n                                                                                                                <div class="col-lg-4 col-md-4 col-sm-6 col-xs-12">\n                                                                                                                    <div class="dashboard-stat2">\n                                                                                                                         <div class="display">\n                                                                                                                                 <div class="number">\n                                                                                                                                          <h3 class="font-blue-sharp">{{projectStats.completed}}</h3>\n                                                                                                                                           <small>Completed</small>\n                                                                                                                                      </div>\n                                                                                                                                        <div class="icon">\n                                                                                                                                            <i class="icon-like"></i>\n                                                                                                                                     </div>\n                                                                                                                                </div>\n                                                                                                                                <div class="progress-info">\n                                                                                                                                   <div class="progress">\n                                                                                                                                                <span style="width: 100%;" class="progress-bar progress-bar-success blue-sharp">\n                                                                                                                                              </span>\n                                                                                                                                       </div>\n                                                                                                                                        <div class="status">\n                                                                                                                                  </div>\n                                                                                                                                </div>\n                                                                                                                        </div>\n                                                                                                                </div>\n                                                                                        </div>\n                                                        </div>\n\n                      <div class="row">\n                       <div ui-view class="col-md-12">\n                       </div>\n                        </div>\n              </div>\n        </div>\n        </div>\n'),a.put("app/jscripty/project/report/report.session.detail.html",'\n\n<div class="row" data-ng-init="getSessionDetails()">\n                   <div class="col-md-12">\n                                       <div class="portlet" >\n                                                                        <div class="portlet-title">\n                                                                           <div class="caption">\n                                                                                 <i class="fa fa-list"></i>Session Detail\n                                                                              </div>\n                                                                                <div class="tools">\n                                                                                   <a href="" class="fullscreen" data-original-title="" title="">\n                                                                                        </a>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="portlet-body"  id="sessionDetail" style="height: auto;">\n                                                                          <div class="row  margin-top-20">\n                                                                                      <div class="col-md-10 col-md-offset-1">\n                                                                                               <div class="panel panel-default">\n                                                                                                     <div class="panel-heading">\n                                                                                                           <p>\n                                                                                                                   <h3 class="panel-title">\n                                                                                                                              Session Id: {{sessionQuestions.session_id}}</h3>\n                                                                                                              </p>\n                                                                                                          <p>\n                                                                                                                   <h3 class="panel-title">\n                                                                                                                              Status: {{sessionQuestions.status}}</h3>\n                                                                                                              </p>\n                                                                                                          <p>\n                                                                                                                   <h3 class="panel-title">\n                                                                                                                              Started At: {{sessionQuestions.createdAt}}</h3>\n                                                                                                               </p>\n                                                                                                          <p ng-if="sessionQuestions.completedAt">\n                                                                                                                      <h3 class="panel-title">\n                                                                                                                              Closed At: {{sessionQuestions.completedAt}}</h3>\n                                                                                                              </p>\n                                                                                                  </div>\n\n                                                                                              </div>\n\n                                                                                              <div class="panel panel-info" ng-repeat=" question in sessionQuestions.ReportJscriptyQuestions |orderBy:\'id\'">\n                                                                                                      <div class="panel-heading">\n                                                                                                           <h3 class="panel-title">\n                                                                                                                              <i class="icon-bar-chart "></i>\n                                                                                                                               {{question.question_label}} [ID : {{question.question_id}}]</h3>\n\n                                                                                                    </div>\n                                                                                                        <div class="panel-body"  ng-if="question.question_text" >\n\n                                                                                                           <div class="row" style="word-wrap: break-word;">\n                                                                                                                      <div class="col-md-10 col-md-offset-1 ">\n                                                                                                                              <h4><strong>Question:    </strong></h4>{{question.question_text}}\n                                                                                                                     </div>\n                                                                                                                </div>\n                                                                                                                <div class="row" style="word-wrap: break-word;">\n                                                                                                                      <div class="col-md-10 col-md-offset-1 " ng-if="question.question_answer ">\n                                                                                                                            <h4><strong>Answer:      </strong></h4>{{question.question_answer}}\n                                                                                                                   </div>\n                                                                                                                </div>\n                                                                                                                <div ng-if="question.question_other_label" class="col-md-10 col-md-offset-1 ">\n                                                                                                                        <h4>\n                                                                                                                                  <i class="fa fa-cog "></i>\n                                                                                                                                    <strong>{{question.question_other_label}}: </strong>\n                                                                                                                  </h4>\n                                                                                                                 {{question.question_other_answer}}\n                                                                                                            </div>\n                                                                                                        </div>\n\n\n                                                                                                            <div class="row">\n                                                                                                                     <div class="col-md-6 col-md-offset-3 ">\n                                                                                                                               <table class="table  table-hover" ng-if="question.ReportJscriptyInputs.length">\n                                                                                                                                       <thead>\n                                                                                                                                               <tr>\n                                                                                                                                                  <th style="width=5%"> Label </th>\n                                                                                                                                                     <th style="width=5%">Answer </th>\n                                                                                                                                             </tr>\n                                                                                                                                 </thead>\n                                                                                                                                      <tbody>\n\n                                                                                                                                             <tr ng-repeat="input in question.ReportJscriptyInputs |orderBy:\'id\'">\n\n                                                                                                                                                                             <td>{{input.input_label}}</td>\n                                                                                                                                                                                <td>{{input.input_value || \'No Answer\'}}</td>\n\n                                                                                                                                             </tr>\n\n                                                                                                                                       </tbody>\n                                                                                                                              </table>\n\n                                                                                                                    </div>\n                                                                                                                </div>\n                                                                                                        </div>\n                                                                                                </div>\n                                                                                        </div>\n\n                                                                              </div>\n\n                                                                      </div>\n\n                                                              </div>\n                                        </div>\n        </div>\n'),
-a.put("app/jscripty/project/report/report.sessions.html",'<!-- <div ui-view class="profile-content"> -->\n\n   <div class="row" data-ng-init="getProjectSessions()">\n         <div class="col-md-12">\n                       <!-- <div class="tab-pane active" id="tab_1_1" > -->\n                          <div class="portlet box blue">\n                                                        <div class="portlet-title">\n                                                           <div class="caption">\n                                                                 <i class="icon-settings"></i>Project Sessions\n                                                         </div>\n                                                                <div class="tools">\n                                                                   <a href="" class="fullscreen" data-original-title="" title="">\n                                                                        </a>\n                                                          </div>\n                                                        </div>\n                                                        <div class="portlet-body" style="height: auto;">\n                                                              <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n\n                                                          </div>\n                                                        </div>\n                                </div>\n                        <!-- </div> -->\n                       </div>\n        </div>\n<!-- </div> -->\n'),a.put("app/jscripty/project/report/report.summary.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="tab-pane" id="tab_1_2" data-ng-init="getQuestionSummary()" >\n                      <div class="portlet box blue">\n                                                                        <div class="portlet-title">\n                                                                           <div class="caption">\n                                                                                 <i class="fa fa-bar-chart"></i>Questions Summary\n\n                                                                            </div>\n                                                                                <div class="tools">\n                                                                                   <a href="" class="fullscreen" data-original-title="" title="">\n                                                                                        </a>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="portlet-body" style="height: auto;">\n                                                                              <div ui-grid="gridOptions" ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                                                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n\n                                                                          </div>\n\n                                                                      </div>\n\n                              </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/jscripty/project/view/view.html",'<div class="row" data-ng-init="getProject()">\n <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="fa fa-edit"></i>\n                                            <a href="/jscripty/projects/list">{{ \'APPLICATION_JSCRIPTY\' | translate }}</a>\n                                              <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="fa fa-slack"></i>\n                                           <a href="/jscripty/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n                                       </li>\n          <li>\n                                         <a ng-href="/jscripty/projects/view/{{jscriptyProject.id}}">{{jscriptyProject.name}}</a>\n          </li>\n                             </ul>\n                 </div>\n                </div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n              <div id="geEditor" class="geEditor"></div>\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n<script>\n\n\n</script>\n'),a.put("app/login/login.html",'<!-- BEGIN LOGO -->\n<div class="logo">\n     <a href="index.html">\n <img src="assets/images/logo-big.png" alt=""/>\n        </a>\n</div>\n<!-- END LOGO -->\n<!-- BEGIN LOGIN -->\n<div class="content">\n  <!-- BEGIN LOGIN FORM -->\n     <form class="login-form" name="loginForm" data-ng-show="!flagLogin1" data-ng-submit="login(loginForm)" novalidate>\n            <h3 class="form-title">Sign In</h3>\n           <div class="alert alert-danger" data-ng-class="{\'display-hide\': !loginSubmitted || !errorLogin}">\n                   <button class="close" data-close="alert"></button>\n                    <span>{{ errorLog ? errorLog : \'Enter any username and password.\'}}</span>\n          </div>\n                <div class="form-group" data-ng-class="{\'has-error\': loginSubmitted && loginForm.name.$invalid}">\n                   <label class="control-label">Username</label>\n      <div class="input-icon">\n        <i class="fa fa-user"></i>\n        <input ng-enter="login(loginForm)" class="form-control form-control-solid placeholder-no-fix" type="text" autocomplete="off" placeholder="Username" name="name" ng-model="userLogin.name" required/>\n      </div>\n      <span data-ng-show="loginSubmitted && loginForm.name.$invalid" class="help-block">Username is required.</span>\n           </div>\n                <div class="form-group" data-ng-class="{\'has-error\': loginSubmitted && loginForm.password.$invalid}">\n                       <label class="control-label">Password</label>\n      <div class="input-icon">\n        <i class="fa fa-lock"></i>\n        <input ng-enter="login(loginForm)" class="form-control form-control-solid placeholder-no-fix" type="password" autocomplete="off" placeholder="Password" name="password" ng-model="userLogin.password" required/>\n      </div>\n      <span data-ng-show="loginSubmitted && loginForm.password.$invalid" class="help-block">Password is required.</span>\n           </div>\n                <div class="form-actions">\n                    <button type="submit" class="btn btn-success uppercase">Login</button>\n      <label class="rememberme check">\n        <input type="checkbox"> Remember me\n      </label>\n                   <!-- <label class="rememberme check">\n                 <input type="checkbox" name="remember" value="1"/>Remember </label> -->\n                       <!-- <a href="javascript:;" id="forget-password" class="forget-password">Forgot Password?</a> -->\n             </div>\n                <div class="login-options">\n                   <h4>Follow Us on</h4>\n                 <ul class="social-icons">\n                             <li>\n                                  <a class="social-icon-color facebook" data-original-title="facebook" href="https://www.facebook.com/xenialab"></a>\n                            </li>\n                         <li>\n                                  <a class="social-icon-color twitter" data-original-title="Twitter" href="https://twitter.com/xenialab"></a>\n                           </li>\n                         <li>\n                                  <a class="social-icon-color googleplus" data-original-title="Goole Plus" href="#"></a>\n                                </li>\n                         <li>\n                                  <a class="social-icon-color linkedin" data-original-title="Linkedin" href="#"></a>\n                            </li>\n                 </ul>\n         </div>\n        </form>\n</div>\n<div class="copyright">\n       xCALLY Motion | {{year}} - {{year + 1}} &copy; Powered by Xenialab\n</div>\n<!-- END LOGIN -->\n'),a.put("app/main/chooseContact.modal.html",'<div class="modal-header" data-ng-init="getContacts()">\n  <h3 class="modal-title">{{ \'APPLICATION_CHOOSE_CONTACT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <table st-table="rowCollection" class="table table-striped">\n     <tbody>\n       <tr ng-repeat="contact in contacts">\n                  <td>{{contact.fullname}}</td>\n                 <td>{{contact.Service.name}}</td>\n             <td>\n        <button class="btn default btn-xs green-stripe" data-ng-click="open(contact)">\n          {{ \'APPLICATION_OPEN\' | translate}}\n        </button>\n      </td>\n         </tr>\n    <tr data-ng-hide="contacts.length">\n      <td colspan="3" style="text-align:center;">\n        <i>{{ \'MESSAGE_NO_CONTACTS_AVAILABLE\' | translate }}</i>\n      </td>\n    </tr>\n         </tbody>\n  </table>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="open()"><i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTACT\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/main/closeEditedTab.modal.html",'<div class="modal-header" data-ng-init="getContacts()">\n  <h3 class="modal-title">{{ \'APPLICATION_WARNING\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <p>{{\'MESSAGE_CLOSE_EDITED_TAB\' | translate}}</p>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-danger" type="button" ng-click="close()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/main/main.html",'<!-- BEGIN HEADER -->\n<div data-ng-include="\'components/header/header.html\'" data-ng-controller="HeaderController" class="page-header navbar navbar-fixed-top">\n</div>\n<!-- END HEADER -->\n\n<div class="clearfix">\n</div>\n<!-- BEGIN CONTAINER -->\n<div class="page-container" data-ng-init="initMain()">\n\n  <!-- BEGIN SIDEBAR -->\n  <div data-ng-include="\'components/sidebar/sidebar.html\'" data-ng-controller="SidebarController" class="page-sidebar-wrapper">\n  </div>\n  <!-- END SIDEBAR -->\n\n  <!-- BEGIN CONTENT -->\n  <div class="page-content-wrapper">\n    <div class="page-content" data-ng-class="{\'demo\': !license.expiration}">\n\n      <!-- BEGIN PAGE CONTENT -->\n      <uib-tabset>\n        <uib-tab select="addWorkspace()" active="mainTab.active">\n          <uib-tab-heading>\n            Motion <i class="icon-rocket"></i>\n          </uib-tab-heading>\n          <div ui-view class=""></div>\n        </uib-tab>\n        <uib-tab data-ng-repeat="workspace in workspaces" active="workspace.active" data-ng-switch="workspace.type">\n          <uib-tab-heading>\n            {{workspace.name}} <i class="icon-close pointer-cursor" data-ng-click="closeTab($index)"></i>\n          </uib-tab-heading>\n          <div class="" data-ng-switch="workspace.type">\n            <new-contact data-ng-switch-when="newContact" workspace="workspace" index="$index" on-submit="createContact(index,item)"></new-contact>\n            <contact data-ng-switch-when="contact" workspace="workspace" index="$index" on-submit="updateContact(index,item)"></contact>\n            <jscripty data-ng-switch-when="jscripty" workspace="workspace" index="$index" on-submit="closeTab(index)"></jscripty>\n          </div>\n        </uib-tab>\n      </uib-tabset>\n      <!-- END PAGE CONTENT  -->\n\n    </div>\n  </div>\n  <!-- END CONTENT -->\n\n  <!-- BEGIN QUICK SIDEBAR -->\n  <a href="javascript:;" class="page-quick-sidebar-toggler"><i class="icon-close"></i></a>\n  <div data-ng-include="\'components/quickSidebar/quickSidebar.html\'" data-ng-controller="QuickSidebarController" class="page-quick-sidebar-wrapper">\n  </div>\n  <!-- END QUICK SIDEBAR -->\n\n</div>\n<!-- END CONTAINER -->\n\n<!-- BEGIN FOOTER -->\n<div data-ng-include="\'components/footer/footer.html\'" data-ng-controller="FooterController" class="page-footer">\n</div>\n<!-- END FOOTER -->\n\n<!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->\n<!-- BEGIN CORE PLUGINS -->\n<!--[if lt IE 9]>\n<script src="../../assets/global/plugins/respond.min.js"></script>\n<script src="../../assets/global/plugins/excanvas.min.js"></script>\n<![endif]-->\n\n<!-- END JAVASCRIPTS -->\n'),a.put("app/main/template/actionBuilder/template.actionBuilderIntegration.html",'<div data-ng-if="randomName" class="form-group col-md-2" data-ng-class="{\'has-error\': (form[\'data1\'+randomName].$touched || form.$submitted) && form[\'data1\'+randomName].$invalid}">\n  <ui-select data-ng-model="element.data1" name="data1{{randomName}}" theme="bootstrap" data-ng-change="changeIntegration()" required>\n    <ui-select-match>{{$select.selected.name}}</ui-select-match>\n    <ui-select-choices repeat="integration.state as integration in integrations | filter: $select.search">\n      <div ng-bind-html="integration.name | highlight: $select.search"></div>\n    </ui-select-choices>\n  </ui-select>\n  <span data-ng-show="(form[\'data1\'+randomName].$touched || form.$submitted) && form[\'data1\'+randomName].$error.required" class="help-block help-block-error">\n    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n  </span>\n</div>\n<div class="form-group col-md-2" data-ng-if="element.data1 && accounts && randomName" data-ng-class="{\'has-error\': (form[\'data2\'+randomName].$touched || form.$submitted) && form[\'data2\'+randomName].$invalid}">\n  <ui-select data-ng-model="element.data2" name="data2{{randomName}}" theme="bootstrap" data-ng-change="changeAccount();" required>\n    <ui-select-match>{{$select.selected.name}}</ui-select-match>\n    <ui-select-choices repeat="account.id as account in accounts | filter: $select.search">\n      <div ng-bind-html="account.name | highlight: $select.search"></div>\n    </ui-select-choices>\n  </ui-select>\n  <span data-ng-show="(form[\'data2\'+randomName].$touched || form.$submitted) && form[\'data2\'+randomName].$error.required" class="help-block help-block-error">\n    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n  </span>\n</div>\n<div class="form-group col-md-2" data-ng-if="element.data2 && configurations && randomName" data-ng-class="{\'has-error\': (form[\'data3\'+randomName].$touched || form.$submitted) && form[\'data3\'+randomName].$invalid}">\n  <ui-select data-ng-model="element.data3" name="data3{{randomName}}" theme="bootstrap" required>\n    <ui-select-match>{{$select.selected.name}}</ui-select-match>\n    <ui-select-choices repeat="config.id as config in configurations | filter: $select.search">\n      <div ng-bind-html="config.name | highlight: $select.search"></div>\n    </ui-select-choices>\n  </ui-select>\n  <span data-ng-show="(form[\'data3\'+randomName].$touched || form.$submitted) && form[\'data3\'+randomName].$error.required" class="help-block help-block-error">\n'+"    <strong>{{'APPLICATION_WARNING' | translate}}!</strong> {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n  </span>\n</div>\n"),a.put("app/main/template/actionBuilder/template.actionBuilderStatus.html",'<div data-ng-if="randomName" class="form-group col-md-2" data-ng-class="{\'has-error\': (form[\'data1\'+randomName].$touched || form.$submitted) && form[\'data1\'+randomName].$invalid}">\n  <ui-select data-ng-model="element.data1" name="data1{{randomName}}" theme="bootstrap" required>\n    <ui-select-match>{{$select.selected.name | translate}}</ui-select-match>\n    <ui-select-choices repeat="status.value as status in states | filter: $select.search">\n      <div ng-bind-html="status.name | translate | highlight: $select.search"></div>\n    </ui-select-choices>\n  </ui-select>\n  <span data-ng-show="(form[\'data1\'+randomName].$touched || form.$submitted) && form[\'data1\'+randomName].$error.required" class="help-block help-block-error">\n'+"    <strong>{{'APPLICATION_WARNING' | translate}}!</strong> {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n  </span>\n</div>\n"),a.put("app/main/template/actionBuilder/template.actionBuilderTemplate.html",'<div data-ng-if="randomName" class="form-group col-md-2" data-ng-class="{\'has-error\': (form[\'data1\'+randomName].$touched || form.$submitted) && form[\'data1\'+randomName].$invalid}">\n  <ui-select data-ng-model="element.data1" name="data1{{randomName}}" theme="bootstrap" required>\n    <ui-select-match>{{$select.selected.name}}</ui-select-match>\n    <ui-select-choices repeat="template.id as template in templates | filter: $select.search">\n      <div ng-bind-html="template.name | highlight: $select.search"></div>\n    </ui-select-choices>\n  </ui-select>\n  <span data-ng-show="(form[\'data1\'+randomName].$touched || form.$submitted) && form[\'data1\'+randomName].$error.required" class="help-block help-block-error">\n    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n  </span>\n</div>\n<div data-ng-if="randomName" class="form-group col-md-2" data-ng-class="{\'has-error\': (form[\'data2\'+randomName].$touched || form.$submitted) && form[\'data2\'+randomName].$invalid}">\n  <input type="text" ng-model="element.data2" name="data2{{randomName}}" class="form-control" required/>\n  <span data-ng-show="(form[\'data2\'+randomName].$touched || form.$submitted) && form[\'data2\'+randomName].$error.required" class="help-block help-block-error">\n    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n  </span>\n</div>\n<div class="col-md-2">\n  <input type="text" ng-model="element.data3" class="form-control"/>\n</div>\n'),a.put("app/main/template/template.conditionBuilder.html",'<div data-ng-if="randomName" class="form-group col-md-3" data-ng-class="{\'has-error\': (form[\'field\'+randomName].$touched || form.$submitted) && form[\'field\'+randomName].$invalid}">\n  <ui-select data-ng-model="element.field" name="field{{randomName}}" theme="bootstrap" data-ng-change="checkCondition(element.field)" required>\n    <ui-select-match>{{$select.selected.name | translate}}</ui-select-match>\n    <ui-select-choices repeat="condition.value as condition in service.services[serviceindex].conditions | filter: $select.search">\n      <div ng-bind-html="condition.name | translate | highlight: $select.search"></div>\n    </ui-select-choices>\n  </ui-select>\n  <span data-ng-show="(form[\'field\'+randomName].$touched || form.$submitted) && form[\'field\'+randomName].$error.required" class="help-block help-block-error">\n    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n  </span>\n</div>\n<div data-ng-if="randomName && element.field" class="form-group col-md-3" data-ng-class="{\'has-error\': (form[\'operator\'+randomName].$touched || form.$submitted) && form[\'operator\'+randomName].$invalid}">\n  <ui-select data-ng-model="element.operator" name="operator{{randomName}}" theme="bootstrap" required>\n    <ui-select-match>{{$select.selected.name | translate}}</ui-select-match>\n    <ui-select-choices repeat="operator.value as operator in _.find(service.services[serviceindex].conditions,{value:element.field}).operators | filter: $select.search">\n      <div ng-bind-html="operator.name | translate | highlight: $select.search"></div>\n    </ui-select-choices>\n  </ui-select>\n  <span data-ng-show="(form[\'operator\'+randomName].$touched || form.$submitted) && form[\'operator\'+randomName].$error.required" class="help-block help-block-error">\n    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n  </span>\n</div>\n<div class="col-md-3" data-ng-if="elementType === \'input\' && randomName && element.field" data-ng-class="{\'has-error\': (form[\'value\'+randomName].$touched || form.$submitted) && form[\'value\'+randomName].$invalid}">\n  <input type="text" ng-model="element.value" class="form-control" name="value{{randomName}}" required/>\n  <span data-ng-show="(form[\'value\'+randomName].$touched || form.$submitted) && form[\'value\'+randomName].$error.required" class="help-block help-block-error">\n      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n    </span>\n</div>\n<div class="form-group col-md-3" data-ng-if="elementType === \'select\' && randomName && element.field" data-ng-class="{\'has-error\': (form[\'value\'+randomName].$touched || form.$submitted) && form[\'value\'+randomName].$invalid}">\n  <ui-select data-ng-model="element.value" name="value{{randomName}}" theme="bootstrap" required>\n    <ui-select-match>{{$select.selected.name | translate}}</ui-select-match>\n    <ui-select-choices repeat="value.value as value in values| filter: $select.search">\n      <div ng-bind-html="value.name | translate | highlight: $select.search"></div>\n    </ui-select-choices>\n  </ui-select>\n  <span data-ng-show="(form[\'value\'+randomName].$touched || form.$submitted) && form[\'value\'+randomName].$error.required" class="help-block help-block-error">\n'+"    <strong>{{'APPLICATION_WARNING' | translate}}!</strong> {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n  </span>\n</div>\n"),a.put("app/main/template/template.contactTab.html",'<div class="row margin-top-20 contact-tab-container">\n  <div class="col-md-12 contact-tab">\n    <form name="forms.general" data-ng-submit="submit({index:index,item:contact})" novalidate>\n    <!-- BEGIN PROFILE CONTENT -->\n    <div class="profile-content">\n      <ul class="nav nav-tabs">\n  <li class="active">\n    <a href="#tab_1_1{{contact.id || \'\'}}" data-toggle="tab">{{\'APPLICATION_DETAIL\' | translate}}</a>\n  </li>\n  <li data-ng-if="contact.id">\n    <a href="#tab_1_2{{contact.id || \'\'}}" data-toggle="tab">{{\'APPLICATION_LOG\' | translate}}</a>\n  </li>\n</ul>\n<div class="tab-content">\n  <div class="tab-pane fade active in" id="tab_1_1{{contact.id || \'\'}}">\n    <!--end add-portfolio-->\n    <div class="row portfolio-block" data-ng-if="workspace.data">\n      <div class="col-md-6">\n        <div class="portfolio-text">\n          <img src="assets/images/media/CmCall.png" alt=""/>\n          <div class="portfolio-text-info">\n            <h4>{{\'MESSAGE_INBOUND_CALL_FROM\' | translate}} - {{data.calleridnum}}</h4>\n            <p>\n              {{\'MESSAGE_CALL_UNIQUEID\' | translate}} : {{data.uniqueid}}\n            </p>\n          </div>\n        </div>\n      </div>\n      <div class="col-md-2 portfolio-stat">\n        <div class="portfolio-info">\n          {{\'APPLICATION_QUEUE\' | translate}} <span>\n            {{workspace.data.queue}} </span>\n          </div>\n        </div>\n        <div class="col-md-2 portfolio-stat">\n          <div class="portfolio-info">\n            {{\'APPLICATION_AGENT\' | translate}} <span>\n              {{workspace.data.membername}} </span>\n            </div>\n          </div>\n          <div class="col-md-2 portfolio-stat">\n            <div class="portfolio-info">\n              {{\'APPLICATION_DATE\' | translate}} <span>\n                {{workspace.data.agentcalledAt}} </span>\n              </div>\n            </div>\n          </div>\n            <!--end row-->\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light ">\n            <div class="portlet-title">\n              <div class="caption caption-md">\n                <i class="icon-bar-chart theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAIL\' | translate}}</span>\n              </div>\n              <div class="actions">\n                <div class="btn-group btn-group-devided" data-toggle="buttons">\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="detail.tab=\'main\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_MAIN\' | translate}}</label>\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="detail.tab=\'other\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_OTHER\' | translate}}</label>\n                </div>\n              </div>\n            </div>\n            <div class="portlet-body">\n              <div data-ng-class="{\'hidden\':detail.tab != \'main\'}" class="portlet-body contact-portlet row">\n                <div class="col-md-4">\n              <!-- START FIRSTNAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.firstName.$touched || forms.general.$submitted) && forms.general.firstName.$invalid}">\n                <label class="control-label">{{\'APPLICATION_FIRSTNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <input type="text" name="firstName" placeholder="{{\'APPLICATION_FIRSTNAME\' | translate}}" class="form-control" data-ng-model="contact.firstName" required/>\n                <span data-ng-show="(forms.general.firstName.$touched || forms.general.$submitted) && forms.general.firstName.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END FIRSTNAME -->\n\n              <!-- START LASTNAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.lastName.$touched || forms.general.$submitted) && forms.general.lastName.$invalid}">\n                <label class="control-label">{{\'APPLICATION_LASTNAME\' | translate}}</label>\n                <input type="text" name="lastName" placeholder="{{\'APPLICATION_LASTNAME\' | translate}}" class="form-control" data-ng-model="contact.lastName"/>\n                <span data-ng-show="(forms.general.lastName.$touched || forms.general.$submitted) && forms.general.lastName.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END LASTNAME -->\n\n              <!-- START COMPANY -->\n              <div class="form-group" data-ng-class="{\'has-error\': forms.general.CompanyId.$invalid && forms.general.$submitted}">\n                <label class="control-label">{{\'APPLICATION_COMPANY\' | translate}}</label>\n                <ui-select data-ng-model="contact.CompanyId" theme="bootstrap" name="CompanyId" ng-disabled="!companies.length">\n                  <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COMPANY\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                  <ui-select-choices repeat="company.id as company in companies | filter: $select.search">\n                    <div ng-bind-html="company.name | highlight: $select.search"></div>\n                  </ui-select-choices>\n                </ui-select>\n                <div class="note note-warning" data-ng-hide="companies.length">\n                  <h4 class="block">Warning!</h4>\n                  <p>\n                    {{ \'MESSAGE_NO_COMPANIES_AVAILABLE\' | translate }}\n                  </p>\n                  <p>\n                    {{\'APPLICATION_GO_TO\' | translate}} <a href="/contactmanager/companies/list">{{\'APPLICATION_COMPANIES\' | translate}}</a>\n                  </p>\n                </div>\n                <span data-ng-show="forms.general.CompanyId.$invalid && forms.general.$submitted" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END COMPANY -->\n            </div>\n            <div class="col-md-4">\n              <!-- START PHONE -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.phone.$touched || forms.general.$submitted) && forms.general.phone.$invalid}">\n                <label class="control-label">{{\'APPLICATION_PHONE\' | translate}}</label>\n                <input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="contact.phone"/>\n                <span data-ng-show="(forms.general.phone.$touched || forms.general.$submitted) && forms.general.phone.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END PHONE -->\n              <!-- START MOBILE -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.mobile.$touched || forms.general.$submitted) && forms.general.mobile.$invalid}">\n                <label class="control-label">{{\'APPLICATION_MOBILE\' | translate}}</label>\n                <input type="text" name="mobile" placeholder="{{\'APPLICATION_MOBILE\' | translate}}" class="form-control" data-ng-model="contact.mobile"/>\n                <span data-ng-show="(forms.general.mobile.$touched || forms.general.$submitted) && forms.general.mobile.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END MOBILE -->\n              <!-- START EMAIL -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.email.$touched || forms.general.$submitted) && forms.general.email.$invalid}">\n                <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}</label>\n                <input type="text" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="contact.email"/>\n                <span data-ng-show="(forms.general.email.$touched || forms.general.$submitted) && forms.general.email.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END EMAIL -->\n            </div>\n            <div class="col-md-4">\n              <!-- START FAX -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.fax.$touched || forms.general.$submitted) && forms.general.fax.$invalid}">\n                <label class="control-label">{{\'APPLICATION_FAX\' | translate}}</label>\n                <input type="text" name="fax" placeholder="{{\'APPLICATION_FAX\' | translate}}" class="form-control" data-ng-model="contact.fax"/>\n                <span data-ng-show="(forms.general.fax.$touched || forms.general.$submitted) && forms.general.fax.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END FAX -->\n              <!-- START TAGS -->\n              <div class="form-group" data-ng-class="{\'has-error\': forms.general.tags.$invalid && forms.general.$submitted}">\n                <label class="control-label">{{\'APPLICATION_TAGS\' | translate}}</label>\n                <ui-select tagging tagging-label="" multiple=\'true\' data-ng-model="contact.tags" theme="bootstrap" name="tags" ng-disabled="disabled">\n                  <ui-select-match placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n                  <ui-select-choices repeat="tag in tags | filter: $select.search">\n                    {{tag}}\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="forms.general.tags.$invalid && forms.general.$submitted" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END TAGS -->\n              <!-- START SERVICE -->\n              <div class="form-group" data-ng-if="contact.id">\n                <label class="control-label">{{\'APPLICATION_SERVICE\' | translate}}</label>\n                <input type="text" name="service" placeholder="{{\'APPLICATION_SERVICE\' | translate}}" class="form-control" data-ng data-ng-model="contact.Service.name" disabled/>\n              </div>\n              <!-- END SERVICE -->\n              <!-- START SERVICE -->\n              <div data-ng-if="!contact.id" class="form-group" data-ng-class="{\'has-error\': forms.general.ServiceId.$invalid && forms.general.$submitted}">\n                <label class="control-label">{{\'APPLICATION_SERVICE\' | translate}}</label>\n                <ui-select data-ng-model="contact.ServiceId" theme="bootstrap" name="ServiceId" data-ng-change="getCustomFields()">\n                  <ui-select-match placeholder="{{ \'APPLICATION_SERVICE\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                  <ui-select-choices repeat="service.id as service in services | filter: $select.search">\n                    <div ng-bind-html="service.name | highlight: $select.search"></div>\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="forms.general.ServiceId.$invalid && forms.general.$submitted" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END SERVICE -->\n            </div>\n            </div>\n            <div data-ng-class="{\'hidden\':detail.tab != \'other\'}" class="portlet-body contact-portlet row">\n              <div class="col-md-4">\n              <!-- START STREET -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$invalid}">\n                <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n                <input type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="contact.street"/>\n                <span data-ng-show="(forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END STREET -->\n\n              <!-- START POSTALCODE -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$invalid}">\n                <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n                <input type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="contact.postalCode"/>\n                <span data-ng-show="(forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END POSTALCODE -->\n\n              <!-- START CITY -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$invalid}">\n                <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n                <input type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="contact.city"/>\n                <span data-ng-show="(forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END CITY -->\n            </div>\n            <div class="col-md-4">\n              <!-- START COUNTRY -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$invalid}">\n                <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n                <input type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="contact.country"/>\n                <span data-ng-show="(forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END COUNTRY -->\n\n              <!-- START DATEOFBIRTH -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$invalid}">\n                <label class="control-label">{{\'APPLICATION_DATEOFBIRTH\' | translate}}</label>\n                <input name="dateOfBirth" type="date" placeholder="{{\'APPLICATION_DATEOFBIRTH\' | translate}}" class="form-control date-picker" data-ng-model="contact.dateOfBirth"/>\n                <span data-ng-show="(forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END DATEOFBIRTH -->\n\n              <!-- START DESCRIPTION -->\n              <div class="form-group">\n                <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                <textarea style="resize: vertical;" type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="contact.description"></textarea>\n              </div>\n              <!-- END DESCRIPTION -->\n            </div>\n            <div class="col-md-4">\n              <!-- START CREATED_BY -->\n              <div class="form-group" data-ng-if="contact.id">\n                <label class="control-label">{{\'APPLICATION_CREATED_BY\' | translate}}</label>\n                <input type="text" name="createdBy" placeholder="{{\'APPLICATION_CREATED_BY\' | translate}}" class="form-control" data-ng-model="contact.User.name" disabled/>\n              </div>\n              <!-- END CREATED_BY -->\n            </div>\n            </div>\n            </div>\n            <button type="submit" class="btn btn-circle green-haze btn-sm" data-ng-disabled="!contact.firstName">{{submitButtonLabel}}</button>\n          </div>\n          <!-- END PORTLET -->\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light" data-ng-if="customFields.length">\n            <div class="portlet-title tabbable-line">\n              <div class="caption caption-md">\n                <i class="icon-globe theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CUSTOM_FIELDS\' | translate}}</span>\n              </div>\n            </div>\n            <div class="portlet-body">\n              <div data-ng-repeat="customField in customFields">\n                <div data-ng-if="customField.type==\'text\'" class="form-group" data-ng-class="{\'has-error\': (forms.general[customField.name].$touched || forms.general.$submitted) && forms.general[customField.name].$invalid}">\n                  <label class="control-label">{{customField.alias}}</label>\n                  <input type="text" name="{{customField.name}}" placeholder="{{customField.alias}}" class="form-control" data-ng-model="contact[customField.name]"/>\n                  <span data-ng-show="(forms.general[customField.name].$touched || forms.general.$submitted) && forms.general[customField.name].$error.required" class="help-block help-block-error">\n                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                  </span>\n                </div>\n                <div data-ng-if="customField.type==\'select\'" class="form-group" data-ng-class="{\'has-error\': forms.general[customField.name].$invalid && forms.general.$submitted}">\n                  <label class="control-label">{{customField.alias}}</label>\n                  <ui-select data-ng-model="contact[customField.name]" theme="bootstrap" name="{{customField.name}}" data-ng-disabled="disabled">\n                    <ui-select-match allow-clear placeholder="{{customField.alias}}">{{$select.selected.value}}</ui-select-match>\n                    <ui-select-choices repeat="choice.value as choice in customField.values | filter: $select.search">\n                      <div ng-bind-html="choice.value | highlight: $select.search"></div>\n                    </ui-select-choices>\n                  </ui-select>\n                  <span data-ng-show="forms.general[customField.name].$invalid && forms.general.$submitted" class="help-block help-block-error">\n                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                  </span>\n                </div>\n              </div>\n              <button type="submit" class="btn btn-circle green-haze btn-sm" data-ng-disabled="!contact.firstName">{{submitButtonLabel}}</button>\n            </div>\n        </div>\n        <!-- END PORTLET -->\n      </div>\n      <div class="tab-pane fade" id="tab_1_2{{contact.id || \'\'}}">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light">\n            <div class="portlet-title tabbable-line">\n              <div class="caption caption-md">\n                <i class="icon-globe theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_LOG\' | translate}}</span>\n              </div>\n              <ul class="nav nav-tabs">\n                <li class="active">\n                  <a href="#" data-target="#tab_2_1" data-toggle="tab">{{ \'APPLICATION_JOURNAL\' | translate}}</a>\n                </li>\n                <li>\n                  <a href="#" data-target="#tab_2_2" data-toggle="tab">{{ \'APPLICATION_HISTORY\' | translate}}</a>\n                </li>\n              </ul>\n            </div>\n            <div class="portlet-body">\n              <!--BEGIN TABS-->\n              <div class="tab-content">\n                <div class="tab-pane active" id="tab_2_1">\n                  <div class="contact-portlet">\n                    <div class="actions">\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.journal.show === \'phone\'}" data-ng-click="updateLog(\'journal\',\'phone\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_PHONES\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.journal.show === \'email\'}" data-ng-click="updateLog(\'journal\',\'email\',\'general\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_EMAILS\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.journal.type === \'inbound\'}" data-ng-click="updateLog(\'journal\',false,false,\'inbound\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_INBOUND\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.journal.type === \'outbound\'}" data-ng-click="updateLog(\'journal\',false,\'general\',\'outbound\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_OUTBOUND\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons" data-ng-if="log.journal.show==\'phone\'">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.journal.detail === \'general\'}" data-ng-click="updateLog(\'journal\',false,\'general\',false)">\n                        <input type="radio" class="toggle">{{\'APPLICATION_GENERAL\' | translate}}</label>\n                        <label data-ng-if="log.journal.type===\'inbound\'" class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.journal.detail === \'queue\'}" data-ng-click="updateLog(\'journal\',false,\'queue\',\'inbound\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_QUEUES\' | translate}}</label>\n                      </div>\n                    </div>\n                    <div data-ng-if="gridOptionsjournal"  ui-grid="gridOptionsjournal"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                      <div class="watermark" ng-show="!gridOptionsjournal.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                    </div>\n                  </div>\n              </div>\n                <div class="tab-pane" id="tab_2_2">\n                  <div class="contact-portlet">\n                    <div class="actions">\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.history.show === \'phone\'}" data-ng-click="updateLog(\'history\',\'phone\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_PHONES\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.history.show === \'email\'}" data-ng-click="updateLog(\'history\',\'email\',\'general\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_EMAILS\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.history.type === \'inbound\'}" data-ng-click="updateLog(\'history\',false,false,\'inbound\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_INBOUND\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.history.type === \'outbound\'}" data-ng-click="updateLog(\'history\',false,\'general\',\'outbound\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_OUTBOUND\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons" data-ng-if="log.history.show==\'phone\'">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.history.detail === \'general\'}" data-ng-click="updateLog(\'history\',false,\'general\',false)">\n                        <input type="radio" class="toggle">{{\'APPLICATION_GENERAL\' | translate}}</label>\n                        <label data-ng-if="log.history.type===\'inbound\'" class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.history.detail === \'queue\'}" data-ng-click="updateLog(\'history\',false,\'queue\',\'inbound\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_QUEUES\' | translate}}</label>\n                      </div>\n                    </div>\n                    <div data-ng-if="gridOptionshistory"  ui-grid="gridOptionshistory"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                      <div class="watermark" ng-show="!gridOptionshistory.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <!--END TABS-->\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n    <!-- END PROFILE CONTENT -->\n  </form>\n</div>\n  </div>\n</div>\n'),
+a.put("app/jscripty/project/report/report.sessions.html",'<!-- <div ui-view class="profile-content"> -->\n\n   <div class="row" data-ng-init="getProjectSessions()">\n         <div class="col-md-12">\n                       <!-- <div class="tab-pane active" id="tab_1_1" > -->\n                          <div class="portlet box blue">\n                                                        <div class="portlet-title">\n                                                           <div class="caption">\n                                                                 <i class="icon-settings"></i>Project Sessions\n                                                         </div>\n                                                                <div class="tools">\n                                                                   <a href="" class="fullscreen" data-original-title="" title="">\n                                                                        </a>\n                                                          </div>\n                                                        </div>\n                                                        <div class="portlet-body" style="height: auto;">\n                                                              <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n\n                                                          </div>\n                                                        </div>\n                                </div>\n                        <!-- </div> -->\n                       </div>\n        </div>\n<!-- </div> -->\n'),a.put("app/jscripty/project/report/report.summary.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="tab-pane" id="tab_1_2" data-ng-init="getQuestionSummary()" >\n                      <div class="portlet box blue">\n                                                                        <div class="portlet-title">\n                                                                           <div class="caption">\n                                                                                 <i class="fa fa-bar-chart"></i>Questions Summary\n\n                                                                            </div>\n                                                                                <div class="tools">\n                                                                                   <a href="" class="fullscreen" data-original-title="" title="">\n                                                                                        </a>\n                                                                          </div>\n                                                                        </div>\n                                                                        <div class="portlet-body" style="height: auto;">\n                                                                              <div ui-grid="gridOptions" ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                                                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n\n                                                                          </div>\n\n                                                                      </div>\n\n                              </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/jscripty/project/view/view.html",'<div class="row" data-ng-init="getProject()">\n <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="fa fa-edit"></i>\n                                            <a href="/jscripty/projects/list">{{ \'APPLICATION_JSCRIPTY\' | translate }}</a>\n                                              <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="fa fa-slack"></i>\n                                           <a href="/jscripty/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n                                       </li>\n          <li>\n                                         <a ng-href="/jscripty/projects/view/{{jscriptyProject.id}}">{{jscriptyProject.name}}</a>\n          </li>\n                             </ul>\n                 </div>\n                </div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n              <div id="geEditor" class="geEditor"></div>\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n<script>\n\n\n</script>\n'),a.put("app/login/login.html",'<!-- BEGIN LOGO -->\n<div class="logo">\n     <a href="index.html">\n <img src="assets/images/logo-big.png" alt=""/>\n        </a>\n</div>\n<!-- END LOGO -->\n<!-- BEGIN LOGIN -->\n<div class="content">\n  <!-- BEGIN LOGIN FORM -->\n     <form class="login-form" name="loginForm" data-ng-show="!flagLogin1" data-ng-submit="login(loginForm)" novalidate>\n            <h3 class="form-title">Sign In</h3>\n           <div class="alert alert-danger" data-ng-class="{\'display-hide\': !loginSubmitted || !errorLogin}">\n                   <button class="close" data-close="alert"></button>\n                    <span>{{ errorLog ? errorLog : \'Enter any username and password.\'}}</span>\n          </div>\n                <div class="form-group" data-ng-class="{\'has-error\': loginSubmitted && loginForm.name.$invalid}">\n                   <label class="control-label">Username</label>\n      <div class="input-icon">\n        <i class="fa fa-user"></i>\n        <input ng-enter="login(loginForm)" class="form-control form-control-solid placeholder-no-fix" type="text" autocomplete="off" placeholder="Username" name="name" ng-model="userLogin.name" required/>\n      </div>\n      <span data-ng-show="loginSubmitted && loginForm.name.$invalid" class="help-block">Username is required.</span>\n           </div>\n                <div class="form-group" data-ng-class="{\'has-error\': loginSubmitted && loginForm.password.$invalid}">\n                       <label class="control-label">Password</label>\n      <div class="input-icon">\n        <i class="fa fa-lock"></i>\n        <input ng-enter="login(loginForm)" class="form-control form-control-solid placeholder-no-fix" type="password" autocomplete="off" placeholder="Password" name="password" ng-model="userLogin.password" required/>\n      </div>\n      <span data-ng-show="loginSubmitted && loginForm.password.$invalid" class="help-block">Password is required.</span>\n           </div>\n                <div class="form-actions">\n                    <button type="submit" class="btn btn-success uppercase">Login</button>\n      <label class="rememberme check">\n        <input type="checkbox"> Remember me\n      </label>\n                   <!-- <label class="rememberme check">\n                 <input type="checkbox" name="remember" value="1"/>Remember </label> -->\n                       <!-- <a href="javascript:;" id="forget-password" class="forget-password">Forgot Password?</a> -->\n             </div>\n                <div class="login-options">\n                   <h4>Follow Us on</h4>\n                 <ul class="social-icons">\n                             <li>\n                                  <a class="social-icon-color facebook" data-original-title="facebook" href="https://www.facebook.com/xenialab"></a>\n                            </li>\n                         <li>\n                                  <a class="social-icon-color twitter" data-original-title="Twitter" href="https://twitter.com/xenialab"></a>\n                           </li>\n                         <li>\n                                  <a class="social-icon-color googleplus" data-original-title="Goole Plus" href="#"></a>\n                                </li>\n                         <li>\n                                  <a class="social-icon-color linkedin" data-original-title="Linkedin" href="#"></a>\n                            </li>\n                 </ul>\n         </div>\n        </form>\n</div>\n<div class="copyright">\n       xCALLY Motion | {{year}} - {{year + 1}} &copy; Powered by Xenialab\n</div>\n<!-- END LOGIN -->\n'),a.put("app/main/chooseContact.modal.html",'<div class="modal-header" data-ng-init="getContacts()">\n  <h3 class="modal-title">{{ \'APPLICATION_CHOOSE_CONTACT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <table st-table="rowCollection" class="table table-striped">\n     <tbody>\n       <tr ng-repeat="contact in contacts">\n                  <td>{{contact.firstName}} {{contact.lastName || \'\'}}</td>\n           <td>{{contact.List.name}}</td>\n                <td>\n        <button class="btn default btn-xs green-stripe" data-ng-click="open(contact)">\n          {{ \'APPLICATION_OPEN\' | translate}}\n        </button>\n      </td>\n         </tr>\n    <tr data-ng-hide="contacts.length">\n      <td colspan="3" style="text-align:center;">\n        <i>{{ \'MESSAGE_NO_CONTACTS_AVAILABLE\' | translate }}</i>\n      </td>\n    </tr>\n         </tbody>\n  </table>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="open()"><i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTACT\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/main/closeEditedTab.modal.html",'<div class="modal-header" data-ng-init="getContacts()">\n  <h3 class="modal-title">{{ \'APPLICATION_WARNING\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <p>{{\'MESSAGE_CLOSE_EDITED_TAB\' | translate}}</p>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-danger" type="button" ng-click="close()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/main/main.html",'<!-- BEGIN HEADER -->\n<div data-ng-include="\'components/header/header.html\'" data-ng-controller="HeaderController" class="page-header navbar navbar-fixed-top">\n</div>\n<!-- END HEADER -->\n\n<div class="clearfix">\n</div>\n<!-- BEGIN CONTAINER -->\n<div class="page-container" data-ng-init="initMain()">\n\n  <!-- BEGIN SIDEBAR -->\n  <div data-ng-include="\'components/sidebar/sidebar.html\'" data-ng-controller="SidebarController" class="page-sidebar-wrapper">\n  </div>\n  <!-- END SIDEBAR -->\n\n  <!-- BEGIN CONTENT -->\n  <div class="page-content-wrapper">\n    <div class="page-content" data-ng-class="{\'demo\': !license.expiration}">\n\n      <!-- BEGIN PAGE CONTENT -->\n      <uib-tabset>\n        <uib-tab select="addWorkspace()" active="mainTab.active">\n          <uib-tab-heading>\n            Motion <i class="icon-rocket"></i>\n          </uib-tab-heading>\n          <div ui-view class=""></div>\n        </uib-tab>\n        <uib-tab data-ng-repeat="workspace in workspaces" active="workspace.active" data-ng-switch="workspace.type">\n          <uib-tab-heading>\n            {{workspace.name}} <i class="icon-close pointer-cursor" data-ng-click="closeTab($index)"></i>\n          </uib-tab-heading>\n          <div class="" data-ng-switch="workspace.type">\n            <new-contact data-ng-switch-when="newContact" workspace="workspace" index="$index" on-submit="createContact(index,item)"></new-contact>\n            <contact data-ng-switch-when="contact" workspace="workspace" index="$index" on-submit="updateContact(index,item)"></contact>\n            <jscripty data-ng-switch-when="jscripty" workspace="workspace" index="$index" on-submit="closeTab(index)"></jscripty>\n          </div>\n        </uib-tab>\n      </uib-tabset>\n      <!-- END PAGE CONTENT  -->\n\n    </div>\n  </div>\n  <!-- END CONTENT -->\n\n  <!-- BEGIN QUICK SIDEBAR -->\n  <a href="javascript:;" class="page-quick-sidebar-toggler"><i class="icon-close"></i></a>\n  <div data-ng-include="\'components/quickSidebar/quickSidebar.html\'" data-ng-controller="QuickSidebarController" class="page-quick-sidebar-wrapper">\n  </div>\n  <!-- END QUICK SIDEBAR -->\n\n</div>\n<!-- END CONTAINER -->\n\n<!-- BEGIN FOOTER -->\n<div data-ng-include="\'components/footer/footer.html\'" data-ng-controller="FooterController" class="page-footer">\n</div>\n<!-- END FOOTER -->\n\n<!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->\n<!-- BEGIN CORE PLUGINS -->\n<!--[if lt IE 9]>\n<script src="../../assets/global/plugins/respond.min.js"></script>\n<script src="../../assets/global/plugins/excanvas.min.js"></script>\n<![endif]-->\n\n<!-- END JAVASCRIPTS -->\n'),a.put("app/main/template/actionBuilder/template.actionBuilderIntegration.html",'<div data-ng-if="randomName" class="form-group col-md-2" data-ng-class="{\'has-error\': (form[\'data1\'+randomName].$touched || form.$submitted) && form[\'data1\'+randomName].$invalid}">\n  <ui-select data-ng-model="element.data1" name="data1{{randomName}}" theme="bootstrap" data-ng-change="changeIntegration()" required>\n    <ui-select-match>{{$select.selected.name}}</ui-select-match>\n    <ui-select-choices repeat="integration.state as integration in integrations | filter: $select.search">\n      <div ng-bind-html="integration.name | highlight: $select.search"></div>\n    </ui-select-choices>\n  </ui-select>\n  <span data-ng-show="(form[\'data1\'+randomName].$touched || form.$submitted) && form[\'data1\'+randomName].$error.required" class="help-block help-block-error">\n    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n  </span>\n</div>\n<div class="form-group col-md-2" data-ng-if="element.data1 && accounts && randomName" data-ng-class="{\'has-error\': (form[\'data2\'+randomName].$touched || form.$submitted) && form[\'data2\'+randomName].$invalid}">\n  <ui-select data-ng-model="element.data2" name="data2{{randomName}}" theme="bootstrap" data-ng-change="changeAccount();" required>\n    <ui-select-match>{{$select.selected.name}}</ui-select-match>\n    <ui-select-choices repeat="account.id as account in accounts | filter: $select.search">\n      <div ng-bind-html="account.name | highlight: $select.search"></div>\n    </ui-select-choices>\n  </ui-select>\n  <span data-ng-show="(form[\'data2\'+randomName].$touched || form.$submitted) && form[\'data2\'+randomName].$error.required" class="help-block help-block-error">\n    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n  </span>\n</div>\n<div class="form-group col-md-2" data-ng-if="element.data2 && configurations && randomName" data-ng-class="{\'has-error\': (form[\'data3\'+randomName].$touched || form.$submitted) && form[\'data3\'+randomName].$invalid}">\n  <ui-select data-ng-model="element.data3" name="data3{{randomName}}" theme="bootstrap" required>\n    <ui-select-match>{{$select.selected.name}}</ui-select-match>\n    <ui-select-choices repeat="config.id as config in configurations | filter: $select.search">\n      <div ng-bind-html="config.name | highlight: $select.search"></div>\n    </ui-select-choices>\n  </ui-select>\n  <span data-ng-show="(form[\'data3\'+randomName].$touched || form.$submitted) && form[\'data3\'+randomName].$error.required" class="help-block help-block-error">\n'+"    <strong>{{'APPLICATION_WARNING' | translate}}!</strong> {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n  </span>\n</div>\n"),a.put("app/main/template/actionBuilder/template.actionBuilderStatus.html",'<div data-ng-if="randomName" class="form-group col-md-2" data-ng-class="{\'has-error\': (form[\'data1\'+randomName].$touched || form.$submitted) && form[\'data1\'+randomName].$invalid}">\n  <ui-select data-ng-model="element.data1" name="data1{{randomName}}" theme="bootstrap" required>\n    <ui-select-match>{{$select.selected.name | translate}}</ui-select-match>\n    <ui-select-choices repeat="status.value as status in states | filter: $select.search">\n      <div ng-bind-html="status.name | translate | highlight: $select.search"></div>\n    </ui-select-choices>\n  </ui-select>\n  <span data-ng-show="(form[\'data1\'+randomName].$touched || form.$submitted) && form[\'data1\'+randomName].$error.required" class="help-block help-block-error">\n'+"    <strong>{{'APPLICATION_WARNING' | translate}}!</strong> {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n  </span>\n</div>\n"),a.put("app/main/template/actionBuilder/template.actionBuilderTemplate.html",'<div data-ng-if="randomName" class="form-group col-md-2" data-ng-class="{\'has-error\': (form[\'data1\'+randomName].$touched || form.$submitted) && form[\'data1\'+randomName].$invalid}">\n  <ui-select data-ng-model="element.data1" name="data1{{randomName}}" theme="bootstrap" required>\n    <ui-select-match>{{$select.selected.name}}</ui-select-match>\n    <ui-select-choices repeat="template.id as template in templates | filter: $select.search">\n      <div ng-bind-html="template.name | highlight: $select.search"></div>\n    </ui-select-choices>\n  </ui-select>\n  <span data-ng-show="(form[\'data1\'+randomName].$touched || form.$submitted) && form[\'data1\'+randomName].$error.required" class="help-block help-block-error">\n    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n  </span>\n</div>\n<div data-ng-if="randomName" class="form-group col-md-2" data-ng-class="{\'has-error\': (form[\'data2\'+randomName].$touched || form.$submitted) && form[\'data2\'+randomName].$invalid}">\n  <input type="text" ng-model="element.data2" name="data2{{randomName}}" class="form-control" required/>\n  <span data-ng-show="(form[\'data2\'+randomName].$touched || form.$submitted) && form[\'data2\'+randomName].$error.required" class="help-block help-block-error">\n    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n  </span>\n</div>\n<div class="col-md-2">\n  <input type="text" ng-model="element.data3" class="form-control"/>\n</div>\n'),a.put("app/main/template/template.conditionBuilder.html",'<div data-ng-if="randomName" class="form-group col-md-3" data-ng-class="{\'has-error\': (form[\'field\'+randomName].$touched || form.$submitted) && form[\'field\'+randomName].$invalid}">\n  <ui-select data-ng-model="element.field" name="field{{randomName}}" theme="bootstrap" data-ng-change="checkCondition(element.field)" required>\n    <ui-select-match>{{$select.selected.name | translate}}</ui-select-match>\n    <ui-select-choices repeat="condition.value as condition in service.services[serviceindex].conditions | filter: $select.search">\n      <div ng-bind-html="condition.name | translate | highlight: $select.search"></div>\n    </ui-select-choices>\n  </ui-select>\n  <span data-ng-show="(form[\'field\'+randomName].$touched || form.$submitted) && form[\'field\'+randomName].$error.required" class="help-block help-block-error">\n    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n  </span>\n</div>\n<div data-ng-if="randomName && element.field" class="form-group col-md-3" data-ng-class="{\'has-error\': (form[\'operator\'+randomName].$touched || form.$submitted) && form[\'operator\'+randomName].$invalid}">\n  <ui-select data-ng-model="element.operator" name="operator{{randomName}}" theme="bootstrap" required>\n    <ui-select-match>{{$select.selected.name | translate}}</ui-select-match>\n    <ui-select-choices repeat="operator.value as operator in _.find(service.services[serviceindex].conditions,{value:element.field}).operators | filter: $select.search">\n      <div ng-bind-html="operator.name | translate | highlight: $select.search"></div>\n    </ui-select-choices>\n  </ui-select>\n  <span data-ng-show="(form[\'operator\'+randomName].$touched || form.$submitted) && form[\'operator\'+randomName].$error.required" class="help-block help-block-error">\n    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n  </span>\n</div>\n<div class="col-md-3" data-ng-if="elementType === \'input\' && randomName && element.field" data-ng-class="{\'has-error\': (form[\'value\'+randomName].$touched || form.$submitted) && form[\'value\'+randomName].$invalid}">\n  <input type="text" ng-model="element.value" class="form-control" name="value{{randomName}}" required/>\n  <span data-ng-show="(form[\'value\'+randomName].$touched || form.$submitted) && form[\'value\'+randomName].$error.required" class="help-block help-block-error">\n      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n    </span>\n</div>\n<div class="form-group col-md-3" data-ng-if="elementType === \'select\' && randomName && element.field" data-ng-class="{\'has-error\': (form[\'value\'+randomName].$touched || form.$submitted) && form[\'value\'+randomName].$invalid}">\n  <ui-select data-ng-model="element.value" name="value{{randomName}}" theme="bootstrap" required>\n    <ui-select-match>{{$select.selected.name | translate}}</ui-select-match>\n    <ui-select-choices repeat="value.value as value in values| filter: $select.search">\n      <div ng-bind-html="value.name | translate | highlight: $select.search"></div>\n    </ui-select-choices>\n  </ui-select>\n  <span data-ng-show="(form[\'value\'+randomName].$touched || form.$submitted) && form[\'value\'+randomName].$error.required" class="help-block help-block-error">\n'+"    <strong>{{'APPLICATION_WARNING' | translate}}!</strong> {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n  </span>\n</div>\n"),a.put("app/main/template/template.contactTab.html",'<div class="row margin-top-20 contact-tab-container">\n  <div class="col-md-12 contact-tab">\n    <form name="forms.general" data-ng-submit="submit({index:index,item:contact})" novalidate>\n    <!-- BEGIN PROFILE CONTENT -->\n    <div class="profile-content">\n      <ul class="nav nav-tabs">\n  <li class="active">\n    <a href="#tab_1_1{{contact.id || \'\'}}" data-toggle="tab">{{\'APPLICATION_DETAIL\' | translate}}</a>\n  </li>\n  <li data-ng-if="contact.id">\n    <a href="#tab_1_2{{contact.id || \'\'}}" data-toggle="tab">{{\'APPLICATION_LOG\' | translate}}</a>\n  </li>\n</ul>\n<div class="tab-content">\n  <div class="tab-pane fade active in" id="tab_1_1{{contact.id || \'\'}}">\n    <!--end add-portfolio-->\n    <div class="row portfolio-block" data-ng-if="workspace.data">\n      <div class="col-md-3">\n        <div class="portfolio-text">\n          <img src="assets/images/media/CmCall.png" alt=""/>\n          <div class="portfolio-text-info">\n            <h4>{{\'MESSAGE_INBOUND_CALL_FROM\' | translate}} - {{workspace.data.calleridnum}}</h4>\n            <p>\n              {{\'MESSAGE_CALL_UNIQUEID\' | translate}} : {{workspace.data.uniqueid}}\n            </p>\n          </div>\n        </div>\n      </div>\n      <div class="col-md-2 portfolio-stat">\n        <div>{{\'APPLICATION_QUEUE\' | translate}} </div>\n        <p>  {{workspace.data.queue}} </p>\n      </div>\n      <div class="col-md-3 portfolio-stat">\n        <div>{{\'APPLICATION_AGENT\' | translate}} </div>\n        <p>  {{workspace.data.membername}} </p>\n      </div>\n      <div class="col-md-3 portfolio-stat">\n        <div>{{\'APPLICATION_DATE\' | translate}} </div>\n        <p>  {{workspace.data.agentcalledAt | date:\'dd/MM/yyyy HH:mm:ss\'}} </p>\n      </div>\n    </div>\n            <!--end row-->\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light ">\n            <div class="portlet-title">\n              <div class="caption caption-md">\n                <i class="icon-bar-chart theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAIL\' | translate}}</span>\n              </div>\n              <div class="actions">\n                <div class="btn-group btn-group-devided" data-toggle="buttons">\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="detail.tab=\'main\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_MAIN\' | translate}}</label>\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="detail.tab=\'other\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_OTHER\' | translate}}</label>\n                </div>\n              </div>\n            </div>\n            <div class="portlet-body">\n              <div data-ng-class="{\'hidden\':detail.tab != \'main\'}" class="portlet-body contact-portlet row">\n                <div class="col-md-4">\n              <!-- START FIRSTNAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.firstName.$touched || forms.general.$submitted) && forms.general.firstName.$invalid}">\n                <label class="control-label">{{\'APPLICATION_FIRSTNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <input type="text" name="firstName" placeholder="{{\'APPLICATION_FIRSTNAME\' | translate}}" class="form-control" data-ng-model="contact.firstName" required/>\n                <span data-ng-show="(forms.general.firstName.$touched || forms.general.$submitted) && forms.general.firstName.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END FIRSTNAME -->\n\n              <!-- START LASTNAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.lastName.$touched || forms.general.$submitted) && forms.general.lastName.$invalid}">\n                <label class="control-label">{{\'APPLICATION_LASTNAME\' | translate}}</label>\n                <input type="text" name="lastName" placeholder="{{\'APPLICATION_LASTNAME\' | translate}}" class="form-control" data-ng-model="contact.lastName"/>\n                <span data-ng-show="(forms.general.lastName.$touched || forms.general.$submitted) && forms.general.lastName.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END LASTNAME -->\n\n              <!-- START COMPANY -->\n              <div class="form-group" data-ng-class="{\'has-error\': forms.general.CompanyId.$invalid && forms.general.$submitted}">\n                <label class="control-label">{{\'APPLICATION_COMPANY\' | translate}}</label>\n                <ui-select data-ng-model="contact.CompanyId" theme="bootstrap" name="CompanyId" ng-disabled="!companies.length">\n                  <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COMPANY\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                  <ui-select-choices repeat="company.id as company in companies | filter: $select.search">\n                    <div ng-bind-html="company.name | highlight: $select.search"></div>\n                  </ui-select-choices>\n                </ui-select>\n                <div class="note note-warning" data-ng-hide="companies.length">\n                  <h4 class="block">Warning!</h4>\n                  <p>\n                    {{ \'MESSAGE_NO_COMPANIES_AVAILABLE\' | translate }}\n                  </p>\n                  <p>\n                    {{\'APPLICATION_GO_TO\' | translate}} <a href="/contactmanager/companies/list">{{\'APPLICATION_COMPANIES\' | translate}}</a>\n                  </p>\n                </div>\n                <span data-ng-show="forms.general.CompanyId.$invalid && forms.general.$submitted" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END COMPANY -->\n            </div>\n            <div class="col-md-4">\n              <!-- START PHONE -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.phone.$touched || forms.general.$submitted) && forms.general.phone.$invalid}">\n                <label class="control-label">{{\'APPLICATION_PHONE\' | translate}}</label>\n                <input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="contact.phone"/>\n                <span data-ng-show="(forms.general.phone.$touched || forms.general.$submitted) && forms.general.phone.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END PHONE -->\n              <!-- START MOBILE -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.mobile.$touched || forms.general.$submitted) && forms.general.mobile.$invalid}">\n                <label class="control-label">{{\'APPLICATION_MOBILE\' | translate}}</label>\n                <input type="text" name="mobile" placeholder="{{\'APPLICATION_MOBILE\' | translate}}" class="form-control" data-ng-model="contact.mobile"/>\n                <span data-ng-show="(forms.general.mobile.$touched || forms.general.$submitted) && forms.general.mobile.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END MOBILE -->\n              <!-- START EMAIL -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.email.$touched || forms.general.$submitted) && forms.general.email.$invalid}">\n                <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}</label>\n                <input type="text" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="contact.email"/>\n                <span data-ng-show="(forms.general.email.$touched || forms.general.$submitted) && forms.general.email.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END EMAIL -->\n            </div>\n            <div class="col-md-4">\n              <!-- START FAX -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.fax.$touched || forms.general.$submitted) && forms.general.fax.$invalid}">\n                <label class="control-label">{{\'APPLICATION_FAX\' | translate}}</label>\n                <input type="text" name="fax" placeholder="{{\'APPLICATION_FAX\' | translate}}" class="form-control" data-ng-model="contact.fax"/>\n                <span data-ng-show="(forms.general.fax.$touched || forms.general.$submitted) && forms.general.fax.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END FAX -->\n              <!-- START TAGS -->\n              <div class="form-group" data-ng-class="{\'has-error\': forms.general.tags.$invalid && forms.general.$submitted}">\n                <label class="control-label">{{\'APPLICATION_TAGS\' | translate}}</label>\n                <ui-select tagging tagging-label="" multiple=\'true\' data-ng-model="contact.tags" theme="bootstrap" name="tags" ng-disabled="disabled">\n                  <ui-select-match placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n                  <ui-select-choices repeat="tag in tags | filter: $select.search">\n                    {{tag}}\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="forms.general.tags.$invalid && forms.general.$submitted" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END TAGS -->\n              <!-- START LIST -->\n              <div class="form-group" data-ng-if="contact.id">\n                <label class="control-label">{{\'APPLICATION_LIST\' | translate}}</label>\n                <input type="text" name="list" placeholder="{{\'APPLICATION_LIST\' | translate}}" class="form-control" data-ng data-ng-model="contact.List.name" disabled/>\n              </div>\n              <!-- END LIST -->\n              <!-- START LIST -->\n              <div data-ng-if="!contact.id" class="form-group" data-ng-class="{\'has-error\': forms.general.ListId.$invalid && forms.general.$submitted}">\n                <label class="control-label">{{\'APPLICATION_LIST\' | translate}}</label>\n                <ui-select data-ng-model="contact.ListId" theme="bootstrap" name="ListId" data-ng-change="getCustomFields()">\n                  <ui-select-match placeholder="{{ \'APPLICATION_LIST\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                  <ui-select-choices repeat="list.id as list in lists | filter: $select.search">\n                    <div ng-bind-html="list.name | highlight: $select.search"></div>\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="forms.general.ListId.$invalid && forms.general.$submitted" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END LIST -->\n            </div>\n            </div>\n            <div data-ng-class="{\'hidden\':detail.tab != \'other\'}" class="portlet-body contact-portlet row">\n              <div class="col-md-4">\n              <!-- START STREET -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$invalid}">\n                <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n                <input type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="contact.street"/>\n                <span data-ng-show="(forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END STREET -->\n\n              <!-- START POSTALCODE -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$invalid}">\n                <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n                <input type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="contact.postalCode"/>\n                <span data-ng-show="(forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END POSTALCODE -->\n\n              <!-- START CITY -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$invalid}">\n                <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n                <input type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="contact.city"/>\n                <span data-ng-show="(forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END CITY -->\n            </div>\n            <div class="col-md-4">\n              <!-- START COUNTRY -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$invalid}">\n                <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n                <input type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="contact.country"/>\n                <span data-ng-show="(forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END COUNTRY -->\n\n              <!-- START DATEOFBIRTH -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$invalid}">\n                <label class="control-label">{{\'APPLICATION_DATEOFBIRTH\' | translate}}</label>\n                <input name="dateOfBirth" type="date" placeholder="{{\'APPLICATION_DATEOFBIRTH\' | translate}}" class="form-control date-picker" data-ng-model="contact.dateOfBirth"/>\n                <span data-ng-show="(forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END DATEOFBIRTH -->\n\n              <!-- START DESCRIPTION -->\n              <div class="form-group">\n                <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                <textarea style="resize: vertical;" type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="contact.description"></textarea>\n              </div>\n              <!-- END DESCRIPTION -->\n            </div>\n            <div class="col-md-4">\n              <!-- START CREATED_BY -->\n              <div class="form-group" data-ng-if="contact.id">\n                <label class="control-label">{{\'APPLICATION_CREATED_BY\' | translate}}</label>\n                <input type="text" name="createdBy" placeholder="{{\'APPLICATION_CREATED_BY\' | translate}}" class="form-control" data-ng-model="contact.User.name" disabled/>\n              </div>\n              <!-- END CREATED_BY -->\n            </div>\n            </div>\n            </div>\n            <button type="submit" class="btn btn-circle green-haze btn-sm" data-ng-disabled="!contact.firstName">{{submitButtonLabel}}</button>\n          </div>\n          <!-- END PORTLET -->\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light" data-ng-if="customFields.length">\n            <div class="portlet-title tabbable-line">\n              <div class="caption caption-md">\n                <i class="icon-globe theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CUSTOM_FIELDS\' | translate}}</span>\n              </div>\n            </div>\n            <div class="portlet-body">\n              <div data-ng-repeat="customField in customFields">\n                <div data-ng-if="customField.type==\'text\'" class="form-group" data-ng-class="{\'has-error\': (forms.general[customField.name].$touched || forms.general.$submitted) && forms.general[customField.name].$invalid}">\n                  <label class="control-label">{{customField.alias}}</label>\n                  <input type="text" name="{{customField.name}}" placeholder="{{customField.alias}}" class="form-control" data-ng-model="contact[customField.name]"/>\n                  <span data-ng-show="(forms.general[customField.name].$touched || forms.general.$submitted) && forms.general[customField.name].$error.required" class="help-block help-block-error">\n                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                  </span>\n                </div>\n                <div data-ng-if="customField.type==\'select\'" class="form-group" data-ng-class="{\'has-error\': forms.general[customField.name].$invalid && forms.general.$submitted}">\n                  <label class="control-label">{{customField.alias}}</label>\n                  <ui-select data-ng-model="contact[customField.name]" theme="bootstrap" name="{{customField.name}}" data-ng-disabled="disabled">\n                    <ui-select-match allow-clear placeholder="{{customField.alias}}">{{$select.selected.value}}</ui-select-match>\n                    <ui-select-choices repeat="choice.value as choice in customField.values | filter: $select.search">\n                      <div ng-bind-html="choice.value | highlight: $select.search"></div>\n                    </ui-select-choices>\n                  </ui-select>\n                  <span data-ng-show="forms.general[customField.name].$invalid && forms.general.$submitted" class="help-block help-block-error">\n                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                  </span>\n                </div>\n              </div>\n              <button type="submit" class="btn btn-circle green-haze btn-sm" data-ng-disabled="!contact.firstName">{{submitButtonLabel}}</button>\n            </div>\n        </div>\n        <!-- END PORTLET -->\n      </div>\n      <div class="tab-pane fade" id="tab_1_2{{contact.id || \'\'}}">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light">\n            <div class="portlet-title tabbable-line">\n              <div class="caption caption-md">\n                <i class="icon-globe theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_LOG\' | translate}}</span>\n              </div>\n              <ul class="nav nav-tabs">\n                <li class="active">\n                  <a href="#" data-target="#tab_2_1" data-toggle="tab">{{ \'APPLICATION_JOURNAL\' | translate}}</a>\n                </li>\n                <li>\n                  <a href="#" data-target="#tab_2_2" data-toggle="tab">{{ \'APPLICATION_HISTORY\' | translate}}</a>\n                </li>\n              </ul>\n            </div>\n            <div class="portlet-body">\n              <!--BEGIN TABS-->\n              <div class="tab-content">\n                <div class="tab-pane active" id="tab_2_1">\n                  <div class="contact-portlet">\n                    <div class="actions">\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.journal.show === \'phone\'}" data-ng-click="updateLog(\'journal\',\'phone\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_PHONES\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.journal.show === \'email\'}" data-ng-click="updateLog(\'journal\',\'email\',\'general\',\'inbound\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_EMAILS\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.journal.type === \'inbound\'}" data-ng-click="updateLog(\'journal\',false,false,\'inbound\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_INBOUND\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-if="log.journal.show==\'phone\'" data-ng-class="{\'active\':log.journal.type === \'outbound\'}" data-ng-click="updateLog(\'journal\',false,\'general\',\'outbound\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_OUTBOUND\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons" data-ng-if="log.journal.show==\'phone\'">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.journal.detail === \'general\'}" data-ng-click="updateLog(\'journal\',false,\'general\',false)">\n                        <input type="radio" class="toggle">{{\'APPLICATION_GENERAL\' | translate}}</label>\n                        <label data-ng-if="log.journal.type===\'inbound\'" class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.journal.detail === \'queue\'}" data-ng-click="updateLog(\'journal\',false,\'queue\',\'inbound\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_QUEUES\' | translate}}</label>\n                      </div>\n                    </div>\n                    <div data-ng-if="gridOptionsjournal"  ui-grid="gridOptionsjournal"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                      <div class="watermark" ng-show="!gridOptionsjournal.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                    </div>\n                  </div>\n              </div>\n                <div class="tab-pane" id="tab_2_2">\n                  <div class="contact-portlet">\n                    <div class="actions">\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.history.show === \'phone\'}" data-ng-click="updateLog(\'history\',\'phone\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_PHONES\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.history.show === \'email\'}" data-ng-click="updateLog(\'history\',\'email\',\'general\',\'inbound\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_EMAILS\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.history.type === \'inbound\'}" data-ng-click="updateLog(\'history\',false,false,\'inbound\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_INBOUND\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-if="log.history.show==\'phone\'" data-ng-class="{\'active\':log.history.type === \'outbound\'}" data-ng-click="updateLog(\'history\',false,\'general\',\'outbound\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_OUTBOUND\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons" data-ng-if="log.history.show==\'phone\'">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.history.detail === \'general\'}" data-ng-click="updateLog(\'history\',false,\'general\',false)">\n                        <input type="radio" class="toggle">{{\'APPLICATION_GENERAL\' | translate}}</label>\n                        <label data-ng-if="log.history.type===\'inbound\'" class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-class="{\'active\':log.history.detail === \'queue\'}" data-ng-click="updateLog(\'history\',false,\'queue\',\'inbound\')">\n                        <input type="radio" class="toggle">{{\'APPLICATION_QUEUES\' | translate}}</label>\n                      </div>\n                    </div>\n                    <div data-ng-if="gridOptionshistory"  ui-grid="gridOptionshistory"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                      <div class="watermark" ng-show="!gridOptionshistory.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <!--END TABS-->\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n    <!-- END PROFILE CONTENT -->\n  </form>\n</div>\n  </div>\n</div>\n'),
 a.put("app/main/template/template.jscriptyTab.html",'<div class="portlet light bordered">\n\n    <!-- BEGIN PORTLET BODY -->\n    <div class="portlet-body">\n          <div class="row">\n              <!-- BEGIN SIDEBAR -->\n                <div  class="profile-sidebar" style="width: 250px;">\n                  <!-- PORTLET MAIN -->\n                                       <!-- SIDEBAR MENU -->\n                                         <div class="profile-usermenu">\n                                                <ul class="nav">\n                                                              <li  ng-repeat= \'question in questions track by $index\' ng-class="{active: $index == count}">\n\n                                                                     <a  ng-click="setCurrentQuestion($index)" >\n                                                                                                                                   <i class="fa fa-check"></i> <label ng-if="attribute.nodeName == \'label\'" ng-repeat=\'attribute in question.value.attributes track by $index\'>{{attribute.value}}</label>\n\n                            </a>\n                                                       </li>\n                                                 </ul>\n                                         </div>\n                                        <!-- END SIDEBAR MENU -->\n                    <!-- END PORTLET MAIN -->\n                </div>\n                  <!-- END SIDEBAR -->\n                  <div   class="profile-content">\n                        <div class="portlet box blue-hoki">\n                                                                                                      <div class="portlet-title">\n\n                                                                                                         <div class="caption" >\n                                                                                                                        <i class="fa fa-edit"></i>\n                                 <span ng-if="attribute.nodeName ==\'label\'" ng-repeat=\'attribute in currentQuestion.value.attributes\' class="caption-subject">{{attribute.value}} </span>\n\n                                                                                                           </div>\n\n\n                                                                                                    </div>\n                                <div class="portlet-body form ">\n                                  <div class="row">\n                                                                                                                                         <div class="col-md-11 col-md-offset-1 ">\n                                        <form >\n                                          <div class="form-body" style="height: 400px; overflow-y: auto;overflow-x:hidden">\n\n                                             <!-- Question  -->\n                                             <div class="form-group" style="word-wrap: break-word;" >\n                                                <h3 ng-if="attribute.nodeName ==\'question\'" ng-repeat=\'attribute in currentQuestion.value.attributes\'>{{attribute.value}}</h3>\n                                              </div>\n                                              <!-- Buttons  -->\n\n                                                <div class="row">\n                                                  <div class="col-md-6">\n                                                    <ul class="nav nav-pills nav-stacked" >\n                                                      <li  ng-repeat=\'edge in currentQuestion.edges track by $index\'  style="background-color: #E8F7FC" ng-show="(edge.source.id == currentQuestion.id) && edge.value" ng-class="{active: (edge.value) == currentQuestion.answer}">\n                                                        <a  ng-click="next(edge.target, edge.value)" >\n                                                                <span style=" display:block;word-break:break-all;">{{edge.value}}</span>\n                                                            </a>\n                                                      </li>\n                                                    </ul>\n                                                  </div>\n                                                </div>\n\n\n                                               <!-- Question Other Option  -->\n\n                                               <div class="form-group" ng-if= "attribute.nodeName ==\'other\' && attribute.value " ng-repeat=\'attribute in currentQuestion.value.attributes track by $index\'>\n                                                 <div class="col-md-4">\n                                                   <label class="control-label">{{attribute.value}}</label>\n                                                 </div>\n                                                    <div class="col-md-8">\n                                                      <textarea  style="overflow:auto" ng-model="currentQuestion.otheranswer" placeholder="Enter text" rows="8" cols="40" ></textarea>\n                                                    </div>\n\n                                                                                                                          </div>\n                                              <!--  Inputs -->\n\n                                                  <div class="row margin-top-10"  ng-repeat=\'question in currentQuestion.children track by $index\'>\n                                                              <div class="col-md-10 col-md-offset-1">\n                                                                <div  ng-repeat=\'attribute in question.value.attributes track by $index\'>\n                                                                      <div  ng-switch="attribute.nodeName">\n                                                                          <div ng-class="col-md-2" ng-switch-when="label">\n                                                                            <label class="control-label" style=" display:block;word-break:break-all;" >{{attribute.value}}</label>\n\n                                                                          </div>\n\n                                                                          <div ng-class="attribute.value != \'checkbox\' ? \'col-md-10 pull-right\': \'col-md-2\'" ng-switch-when="type" ng-switch="attribute.value">\n                                                                              <input class="form-control" ng-switch-when="text" type="text" ng-model="question.answer" />\n                                                                              <input  class="form-control" ng-switch-when="number" type="number" ng-model="question.answer" />\n                                                                              <input  class=" pull-right"  ng-switch-when="checkbox" type="checkbox" ng-model="question.answer" ng-true-value="\'Selected\'" ng-false-value="\'Not Selected\'"/>\n                                                                              <textarea  class="form-control" ng-switch-when="textarea" ng-model="question.answer" rows="8" cols="40"></textarea>\n\n                                                                          </div>\n\n                                                                      </div>\n                                                                </div>\n                                                              </div>\n\n                                                  </div>\n\n                                          </div>\n                                          <!-- actions -->\n                                          <div class="form-actions">\n                                            <div class="btn-set pull-left">\n                                              <button class="btn red-haze "   ng-click="end()"><span class="fa fa-times" > End</span></button>\n\n                                            </div>\n                                            <div class="btn-set pull-right">\n                                               <button class="btn blue-haze"  ng-show="count" ng-click="back()"><span class="glyphicon glyphicon-chevron-left"></span>Back</button>\n                                                <button ng-repeat=\'edge in currentQuestion.edges track by $index\' ng-show="(edge.source.id == currentQuestion.id) && !edge.value" class="btn blue-hoki"   ng-click="next(edge.target)">Next<span class="glyphicon glyphicon-chevron-right" ></span></button>\n\n                                            </div>\n                                          </div>\n                                          </form>\n                                  </div>\n                                </div>\n                            </div>\n                        </div>\n                 </div>\n          </div>\n  </div>\n  <!-- END PORTLET BODY -->\n</div>\n'),a.put("app/main/template/template.reportBuilderView.html",'<div class="alert alert-warning alert-group">\n        <div class="form-inline" data-ng-class="{\'has-error\': forms.report.$submitted && !group.rules.length}">\n            <select ng-options="o.name as o.name for o in operators" ng-model="group.operator" class="form-control input-sm"></select>\n            <button style="margin-left: 5px" type="button" ng-click="addCondition()" class="btn btn-sm btn-success"><span class="glyphicon glyphicon-plus-sign"></span> {{\'APPLICATION_ADD_CONDITION\' | translate}}</button>\n            <button style="margin-left: 5px" type="button" ng-click="addGroup()" class="btn btn-sm btn-success"><span class="glyphicon glyphicon-plus-sign"></span> {{\'APPLICATION_ADD_GROUP\' | translate}}</button>\n            <button style="margin-left: 5px" type="button" ng-click="removeGroup()" class="btn btn-sm btn-danger"><span class="glyphicon glyphicon-minus-sign"></span> {{\'APPLICATION_REMOVE_GROUP\' | translate}}</button>\n        </div>\n        <div class="group-conditions">\n            <div ng-repeat="rule in group.rules | orderBy:\'index\'" class="condition">\n                <div ng-switch="rule.hasOwnProperty(\'group\')">\n                    <div ng-switch-when="true">\n                        <report-builder group="rule.group" fields="fields" forms="forms"></report-builder>\n                    </div>\n                    <div ng-switch-default="ng-switch-default">\n                        <div class="row">\n                          <div class="col-md-2" data-ng-class="{\'has-error\': forms.report.$submitted && !rule.field}">\n                          <ui-select data-ng-model="rule.field" theme="bootstrap" dynamic-name="randomName()" required>\n                            <ui-select-match placeholder="">{{$select.selected.field | translate}}</ui-select-match>\n                            <ui-select-choices repeat="field.field as field in fields | filter: $select.search">\n                              <div ng-bind-html="field.field | highlight: $select.search"></div>\n                            </ui-select-choices>\n                          </ui-select>\n                          <span data-ng-show="forms.report.$submitted && !rule.field" class="help-block help-block-error">\n                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                          </span>\n                        </div>\n                          <ui-select data-ng-model="rule.condition" theme="bootstrap" class="col-md-1" dynamic-name="randomName()">\n                            <ui-select-match placeholder="">{{$select.selected.name}}</ui-select-match>\n                            <ui-select-choices repeat="condition.name as condition in conditions | filter: $select.search">\n                              <div ng-bind-html="condition.name | highlight: $select.search"></div>\n                            </ui-select-choices>\n                          </ui-select>\n                          <div class="col-md-2 left-margin" data-ng-class="{\'has-error\': forms.report.$submitted && !rule.value}">\n                            <input type="text" ng-model="rule.value" class="form-control" dynamic-name="randomName()" required/>\n                            <span data-ng-show="forms.report.$submitted && !rule.value" class="help-block help-block-error">\n                                                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                                         </span>\n                          </div>\n                            <button style="margin-left: 5px" ng-click="removeCondition($index)" class="btn btn-sm btn-danger" type="button"><span class="glyphicon glyphicon-minus-sign"></span></button>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n'),a.put("app/market/market.html",'<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-handbag"></i>\n                                          <a href="/market">Market Place</a>\n          </li>\n        </ul>\n                    </div>\n                </div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n  <div class="col-md-12">\n    <!-- Our Integration -->\n    <div class="headline">\n      <h3>Our Integrations</h3>\n    </div>\n    <div class="row thumbnails" data-ng-repeat="group in groupedIntegration">\n      <div class="col-md-3" data-ng-repeat="integration in group">\n        <div class="our-integrations">\n          <h3> {{integration.name}} <small> {{integration.author}}</small></h3>\n          <img data-ng-src="{{integration.logo}}" alt="{{integration.name}}" class="img-responsive"/>\n          <div class="integration-info" data-ng-if="!integration.downloading">\n            <p>\n              {{integration.description}}\n            </p>\n            <div class="pull-right">\n                  <a data-ng-disabled="isProgressing" data-ng-if="!integration.active" data-ng-click="installIntegration(integration)" href="#" class="btn btn-xs green-meadow">Install <i class="fa fa-download"></i></a>\n                                                  <a data-ng-disabled="isProgressing" data-ng-if="integration.active" data-ng-click="uninstallIntegration(integration)" href="#" class="btn btn-xs red-sunglo">Uninstall <i class="fa fa-trash"></i></a>\n                    <a href="https://wiki.xcallymotion.com/" class="btn btn-xs grey-cascade" target="_blank">More <i class="fa fa-link"></i></a>\n            </div>\n          </div>\n                                        <div class="integration-info" data-ng-if="integration.downloading">\n                                           <div>\n                                                 <uib-progressbar class="progress-striped active" value="percentage" type="success"><i style="color:black;">{{status}}</i></uib-progressbar>\n                                           </div>\n          </div>\n        </div>\n      </div>\n                </div>\n    <!--/thumbnails-->\n    <!-- //End Meer Our Team -->\n  </div>\n</div>\n'),a.put("app/motionbar/motionbar.chat.html",'<div data-ng-include="\'components/quickSidebar/quickSidebar.html\'" data-ng-controller="QuickSidebarController" class="page-quick-sidebar-wrapper" style="margin-top: -92px;"></div>\n'),a.put("app/salesforce/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-handbag"></i>\n                                  <a href="/salesforce/list">{{ \'APPLICATION_SALESFORCE\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-handbag font-green-sharp"></i>\n                                 <span class="caption-subject">{{ \'APPLICATION_SALESFORCE\' | translate }}</a> </span>\n                                </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="accounts.checked.length">\n                                                <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/salesforce/wizard">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }}\n                                               </a>\n                                  </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'password\',\'clientId\',\'clientSecret\',\'securityToken\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Password\', \'Client Id\', \'Client Secret\', \'Security token\']" field-separator=";" filename="salesforce_accounts.csv">\n                                      <i class="icon-cloud-download"></i></a>\n                               </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedSalesforceAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                      <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="7">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n                                                                                                 <div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n                                                  <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n                                                               <th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n                                                         <th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                                <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="account in displayedSalesforceAccounts" class="animate-repeat">\n                                                               <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n                                         <td>{{account.name}}</td>\n                                             <td>{{account.username}}</td>\n                                                           <td>{{account.remoteUri}}</td>\n                                                                <td>{{account.description}}</td>\n                                            <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/salesforce/view/{{account.id}}/account">\n                                                                             {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                                                  <a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n                                                                          {{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n                                            </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n                                                                         {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedSalesforceAccounts.length">\n                                                                <td colspan="7" style="text-align:center;">\n                                                                   <i>No account available</i>\n                                                           </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td/>\n                                             <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                 </div>\n                                                    </td>\n                                                 <td/>\n                                                             <td/>\n                                           </tr>\n                                           <tr>\n                                            <td colspan="7" class="text-center">\n                                                                    <div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n                                            </td>\n                                       </tr>\n                                       </tfoot>\n                                    </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/salesforce/view/view.account.html",'<div class="row">\n <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n                                                     <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n                                                            <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n                                                            <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n                                                                <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n              <!-- START CLIENT ID -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientId.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_CLIENT_ID\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                           <input type="text" name="clientId" placeholder="{{\'APPLICATION_CLIENT_ID\' | translate}}" class="form-control" data-ng-model="account.clientId" required/>\n                                                           <span data-ng-show="forms.formSetting.clientId.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CLIENT ID -->\n\n              <!-- START CLIENT SECRET -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientSecret.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_CLIENT_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="clientSecret" placeholder="{{\'APPLICATION_CLIENT_SECRET\' | translate}}" class="form-control" data-ng-model="account.clientSecret" required/>\n                                                               <span data-ng-show="forms.formSetting.clientSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CLIENT SECRET -->\n\n              <!-- START SECURITY TOKEN -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.securityToken.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_SECURITY_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="text" name="securityToken" placeholder="{{\'APPLICATION_SECURITY_TOKEN\' | translate}}" class="form-control" data-ng-model="account.securityToken" required/>\n                                                            <span data-ng-show="forms.formSetting.securityToken.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END SECURITY TOKEN -->\n\n                                                 <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/salesforce/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n  <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n                              </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createConfiguration()">\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n                                                   <form name="formsConfiguration.info" novalidate>\n                                                              <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n                                                                  <span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n                                                             <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n                                                              </div>\n                                                                <!-- END DESCRIPTION -->\n\n                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/salesforce/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n     <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n                            </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n                                      </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n                                  </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- SUBJECT TAB -->\n                                  <div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                          <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n                 <div class="col-md-3">\n                  <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n                        <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n                      </div>\n                      </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n                      <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n                  </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n                                  <div class="tab-pane ui-padding" id="tab_1_2">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                            <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                                                    <div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n                                                               <!-- <pre>\n                                                                    {{descriptionItem|json}}\n                                                              </pre> -->\n                  <div class="col-md-2">\n                  <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                        <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n                     <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n                    <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n                      </div>\n                      </div>\n                                                          <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n                                                                       <ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                     <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                         <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                    </ui-select-choices>\n                        </ui-select>\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n                                                                        <input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n                                                         </div>\n                      <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n                        <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n                      </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n                                   <div class="tab-pane ui-padding" id="tab_1_3">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                             <!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n                <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n                     <div class="col-md-3">\n                  <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n                    <ui-select-choices repeat="item.name as item in accountFields | filter: $select.search">\n                        <div ng-bind-html="item.label | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n                    <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n                            <ui-select-choices repeat="item.value as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n                                    <div ng-bind-html="item.value | highlight: $select.search"></div>\n                           </ui-select-choices>\n                                </ui-select>\n                  </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n                                                                 <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                                <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                                 <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                               </ui-select-choices>\n                                </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n                        <div class="form-group">\n                                                                              <input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n                    </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n                      <div class="form-group">\n                                                                              <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                              <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n                    </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END FIELDS TAB -->\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
 a.put("app/salesforce/view/view.configurations.html",'<div ui-view class="profile-content">\n  <div class="row" data-ng-init="getConfigurations()">\n          <div class="col-md-12">\n                       <div class="portlet light">\n                           <div class="portlet-title  tabbable-line">\n                                    <div class="caption caption-md">\n                                              <i class="icon-globe theme-font hide"></i>\n                                            <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n                                  </div>\n                                        <div class="actions">\n                                         <div class="btn-group">\n                                                       <a class="btn green-jungle " href="/salesforce/view/{{account.id}}/configuration" data-toggle="dropdown">\n                                                             <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n                                                 </a>\n                                          </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <!-- START TABLE -->\n                                  <table class="table table-striped table-bordered table-hover">\n                                                  <thead>\n                                                       <tr>\n                                                            <th>{{\'APPLICATION_NAME\' | translate}}</th>\n                                                                     <th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n                                                                  <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                      </tr>\n                                                 </thead>\n                                                    <tbody>\n                                                   <tr data-ng-repeat="configuration in configurations">\n                                                                     <td>{{configuration.name}}</td>\n                                                                       <td>{{configuration.description}}</td>\n                                                      <td>\n                                                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/salesforce/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n                                                                                        {{ \'APPLICATION_SETTINGS\' | translate}}\n                                                     </a>\n                                                  <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n                                                                                    {{ \'APPLICATION_DELETE\' | translate }}\n                                                      </a>\n                                                </td>\n                                               </tr>\n                                                             <tr data-ng-hide="configurations.length">\n                                                                     <td colspan="5" style="text-align:center;">\n                                                                           <i>No configuration available</i>\n                                                                     </td>\n                                                         </tr>\n                                           </tbody>\n                                    </table>\n                                      <!-- END TABLE -->\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/salesforce/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n          <i class="icon-handbag"></i>\n          <a href="/salesforce/list">{{ \'APPLICATION_SALESFORCE\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{account.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/salesforce.png" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{account.name}}\n                                      </div>\n                                        <div class="profile-usertitle-job">\n                                           {{account.remoteUri}}\n                                 </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.salesforce.view.account\')}">\n                                                    <a ng-href="/salesforce/view/{{account.id}}/account">\n                                                 <i class="icon-user"></i>\n                                                     {{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.salesforce.view.configurations\') || $state.is(\'main.salesforce.view.configuration\')}">\n                                                  <a ng-href="/salesforce/view/{{account.id}}/configurations">\n                                                  <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/salesforce/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n  <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-handbag"></i>\n                                          <a href="/salesforce/list">{{ \'APPLICATION_SALESFORCE\' | translate }}</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n  <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                                <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/salesforce/accounts/validate/username"/>\n                                                               <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n                                       </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n\n              <!-- START REMOTE ADDRESS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required/>\n                                                                <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START PASSWORD -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                                                           <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n              <!-- START CLIENT ID -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientId.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_CLIENT_ID\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                           <input type="text" name="clientId" placeholder="{{\'APPLICATION_CLIENT_ID\' | translate}}" class="form-control" data-ng-model="item.clientId" required/>\n                                                              <span data-ng-show="forms.formSetting.clientId.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CLIENT ID -->\n\n              <!-- START CLIENT SECRET -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientSecret.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_CLIENT_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="clientSecret" placeholder="{{\'APPLICATION_CLIENT_SECRET\' | translate}}" class="form-control" data-ng-model="item.clientSecret" required/>\n                                                          <span data-ng-show="forms.formSetting.clientSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CLIENT SECRET -->\n\n              <!-- START SECURITY TOKEN -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.securityToken.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_SECURITY_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="text" name="securityToken" placeholder="{{\'APPLICATION_SECURITY_TOKEN\' | translate}}" class="form-control" data-ng-model="item.securityToken" required/>\n                                                               <span data-ng-show="forms.formSetting.securityToken.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END SECURITY TOKEN -->\n\n                                                 <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n\n                          </wizard>\n\n                   </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/setting/license/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div\n class="row" data-ng-init="initView()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="#">{{ \'APPLICATION_SETTINGS\' | translate }}</a>\n          <i class="fa fa-angle-right"></i>\n                               </li>\n        <li>\n          <i class="icon-info"></i>\n          <a href="#">{{ \'APPLICATION_LICENSE\' | translate }}</a>\n        </li>\n                  </ul>\n         </div>\n\n              <!-- BEGIN PROFILE CONTENT -->\n                <div class="profile-content">\n                 <div class="row">\n                             <div class="col-md-6">\n                                        <div class="pricing hover-effect">\n                                            <div class="pricing-head" data-ng-switch="license.months">\n                                                    <h3 ng-switch-when="1">{{\'APPLICATION_MONTH_TO_MONTH\' | translate}}<span>{{license.token || \'unknown\'}} </span></h3>\n                                                      <h3 ng-switch-when="12">{{\'APPLICATION_YEARLY\' | translate}}<span>{{license.token || \'unknown\'}} </span></h3>\n                                                     <h3 ng-switch-when="36">{{\'APPLICATION_PERPETUAL\' | translate}}<span>{{license.token || \'unknown\'}} </span></h3>\n                                                  <h3 ng-switch-default>{{\'APPLICATION_UNKNOWN\' | translate}}<span>{{license.token || \'unknown\'}} </span></h3>\n                                                      <h4><i>{{license.expiration ? (license.expiration | date:\'medium\') : \'DEMO\'}}</i>\n                                                 <span data-ng-show="license.expiration">Expiration Date </span>\n                                                       </h4>\n                                         </div>\n                                                <ul class="pricing-content list-unstyled">\n                                                    <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-eye"></i> {{\'APPLICATION_USERS\' | translate}}:\n                                                               </div>\n                                                                <div class="col-md-3 text-center">\n                                                                    {{(license.users || license.users >= 0) ? license.users : \'unknown\'}}\n                                                               </div>\n                                                        </li>\n                                                 <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-people"></i> {{\'APPLICATION_AGENTS\' | translate}} ({{\'APPLICATION_CONCURRENTS\' | translate}}):\n                                                             </div>\n                                                                <div class="col-md-3 text-center">\n                                                                    {{(license.agents || license.agents >= 0)  ? license.agents : \'unknown\'}}\n                                                           </div>\n                                                        </li>\n                                                 <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-phone"></i> {{\'APPLICATION_TELEPHONES\' | translate}}:\n                                                                </div>\n                                                                <div class="col-md-3 text-center">\n                                                                    {{(license.telephones || license.telephones >= 0) ? license.telephones : \'unknown\'}}\n                                                                </div>\n                                                        </li>\n                                                 <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-bubble"></i> {{\'APPLICATION_CHAT\' | translate}}:\n                                                             </div>\n                                                                <div class="col-md-3 text-center">\n                                                                    <span class="label label-sm" data-ng-class="license.chat ? \'label-success\' : \'label-danger\'">{{license.chat ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}</span>\n                                                             </div>\n                                                        </li>\n                                                 <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-envelope"></i> {{\'APPLICATION_MAIL\' | translate}}:\n                                                           </div>\n                                                                <div class="col-md-3 text-center">\n                                                             <span class="label label-sm" data-ng-class="license.mail ? \'label-success\' : \'label-danger\'">{{license.mail ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}</span>\n                                                            </div>\n                                                        </li>\n                                                 <li class="row">\n                                                              <div class="col-md-9">\n                                                                        <i class="icon-paper-plane"></i> {{\'APPLICATION_FAX\' | translate}}:\n                                                         </div>\n                                                                <div class="col-md-3 text-center">\n                                                                     <span class="label label-sm" data-ng-class="license.fax ? \'label-success\' : \'label-danger\'">{{license.fax ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}</span>\n                                                              </div>\n                                                        </li>\n                                         </ul>\n                                         <div class="pricing-footer">\n                                                  <p>\n                                                            {{license.description}}\n                                                      </p>\n                                                  <a href="#" class="btn yellow-crusta">\n                                                        {{\'APPLICATION_PRICES\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n                                                  </a>\n                                          </div>\n                                        </div>\n                                </div>\n                                <div class="col-md-6">\n                                        <div class="portlet light bordered">\n                                          <div class="portlet-title">\n                                                   <div class="caption font-green-sharp">\n                                                                <i class="icon-info font-green-sharp"></i>\n                                                            <span class="caption-subject">FORM {{ \'APPLICATION_LICENSE\' | translate }}</a> </span>\n                                                      </div>\n                                                </div>\n                                                <div class="portlet-body">\n                                                    <form name="form" novalidate data-ng-submit="submitRequest()">\n\n                                                              <!-- START USERS -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (form.users.$touched || form.$submitted) && form.users.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_USERS\' | translate}}</label>\n                                                                    <div class="input-icon">\n                                                                              <i class="icon-eye"></i>\n                                                                              <input type="number" name="users" placeholder="{{\'APPLICATION_USERS\' | translate}}" class="form-control" data-ng-model="item.users" min="0" required>\n                                                                       </div>\n                                                                        <span data-ng-show="(form.users.$touched || forms.$submitted) && form.users.$error.required" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END USERS -->\n\n                                                          <!-- START AGENTS -->\n                                                         <div class="form-group" data-ng-class="{\'has-error\': (form.agents.$touched || form.$submitted) && form.agents.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_AGENTS\' | translate}} ({{\'APPLICATION_CONCURRENTS\' | translate}})</label>\n                                                                     <div class="input-icon">\n                                                                              <i class="icon-people"></i>\n                                                                           <input type="number" name="agents" placeholder="{{\'APPLICATION_AGENTS\' | translate}} ({{\'APPLICATION_CONCURRENTS\' | translate}})" class="form-control" data-ng-model="item.agents" min="0" required>\n                                                                      </div>\n                                                                        <span data-ng-show="(form.users.$touched || forms.$submitted) && form.users.$error.required" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END AGENTS -->\n\n                                                         <!-- START TELEPHONES -->\n                                                             <div class="form-group" data-ng-class="{\'has-error\': (form.telephones.$touched || form.$submitted) && form.telephones.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_TELEPHONES\' | translate}}</label>\n                                                                       <div class="input-icon">\n                                                                              <i class="icon-phone"></i>\n                                                                            <input type="number" name="telephones" placeholder="{{\'APPLICATION_TELEPHONES\' | translate}}" class="form-control" data-ng-model="item.telephones" min="0" required>\n                                                                        </div>\n                                                                        <span data-ng-show="(form.telephones.$touched || forms.$submitted) && form.telephones.$error.required" class="help-block help-block-error">\n                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END TELEPHONES -->\n\n                                                             <!-- START CHAT -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (form.chat.$touched || form.$submitted) && form.chat.$invalid}">\n                                                                       <label class="control-label">{{\'APPLICATION_CHAT\' | translate}}</label>\n                                                                     <div class="input-group input-icon">\n                                                                          <i class="icon-bubble"></i>\n                                                                           <input type="text" placeholder="{{\'APPLICATION_CHAT\' | translate}}" class="form-control" readonly>\n                                                                          <span class="input-group-addon">\n                                                                                      <input type="checkbox" name="chat" data-ng-model="item.chat" required>\n                                                                                </span>\n                                                                       </div>\n                                                                        <span data-ng-show="(form.chat.$touched || forms.$submitted) && form.chat.$error.required" class="help-block help-block-error">\n                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END CHAT -->\n\n                                                           <!-- START MAIL -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (form.mail.$touched || form.$submitted) && form.mail.$invalid}">\n                                                                       <label class="control-label">{{\'APPLICATION_MAIL\' | translate}}</label>\n                                                                     <div class="input-group input-icon">\n                                                                          <i class="icon-envelope"></i>\n                                                                         <input type="text" placeholder="{{\'APPLICATION_MAIL\' | translate}}" class="form-control" readonly>\n                                                                          <span class="input-group-addon">\n                                                                                      <input type="checkbox" name="mail" data-ng-model="item.mail" required>\n                                                                                </span>\n                                                                       </div>\n                                                                        <span data-ng-show="(form.mail.$touched || forms.$submitted) && form.mail.$error.required" class="help-block help-block-error">\n                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END MAIL -->\n\n                                                           <!-- START FAX -->\n                                                            <div class="form-group" data-ng-class="{\'has-error\': (form.fax.$touched || form.$submitted) && form.fax.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_FAX\' | translate}}</label>\n                                                                      <div class="input-group input-icon">\n                                                                          <i class="icon-paper-plane"></i>\n                                                                              <input type="text" placeholder="{{\'APPLICATION_FAX\' | translate}}" class="form-control" readonly>\n                                                                           <span class="input-group-addon">\n                                                                                      <input type="checkbox" name="fax" data-ng-model="item.fax" required>\n                                                                          </span>\n                                                                       </div>\n                                                                        <span data-ng-show="(form.fax.$touched || forms.$submitted) && form.fax.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END FAX -->\n\n                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_SUBMIT\' | translate}} {{\'APPLICATION_REQUEST\' | translate}}"/>\n                                                  </form>\n                                               </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/setting/smtp/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="#">{{ \'APPLICATION_SETTINGS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">SMTP</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE CONTENT -->\n                <div class="profile-content">\n                 <!-- START SMTP TAB -->\n                       <form name="form" data-ng-submit="form.$valid && updateItem()" novalidate>\n\n                          <!-- START HOST -->\n                           <div class="form-group" data-ng-class="{\'has-error\': (form.host.$touched || form.$submitted) && form.host.$invalid}">\n                                       <label class="control-label">{{\'APPLICATION_OUTGOING_MAIL_SERVER\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                        <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n                                   <span data-ng-show="(form.host.$touched || form.$submitted) && form.host.$invalid && form.host.$error.required" class="help-block help-block-error">\n                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                 </span>\n                               </div>\n                                <!-- END HOST -->\n\n                           <!-- START USERNAME -->\n                               <div class="form-group" data-ng-class="{\'has-error\': (form.username.$touched || form.$submitted) && form.username.$invalid}">\n                                       <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                     <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.username" required/>\n                                       <span data-ng-show="(form.username.$touched || form.$submitted) && form.username.$invalid && form.username.$error.required" class="help-block help-block-error">\n                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                 </span>\n                               </div>\n                                <!-- END USERNAME -->\n\n                               <!-- START PASSWORD -->\n                               <div class="form-group" data-ng-class="{\'has-error\': (form.password.$touched || form.$submitted) && form.password.$invalid}">\n                                       <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                     <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                                   <span data-ng-show="(form.password.$touched || form.$submitted) && form.password.$invalid && form.password.$error.required" class="help-block help-block-error">\n                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                 </span>\n                               </div>\n                                <!-- END PASSWORD -->\n\n                               <!-- START PORT -->\n                           <div class="form-group" data-ng-class="{\'has-error\': (form.port.$touched || form.$submitted) && form.port.$invalid}">\n                                       <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                 <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="item.port" required/>\n                                 <span data-ng-show="(form.form.$touched || form.$submitted) && form.port.$invalid && form.port.$error.required" class="help-block help-block-error">\n                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                 </span>\n                                       <span data-ng-show="(form.form.$touched || form.$submitted) && form.port.$invalid && form.port.$error.number" class="help-block help-block-error">\n                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                  </span>\n                               </div>\n                                <!-- END PORT -->\n\n                           <!-- START SSL -->\n                            <div class="form-group row">\n                                  <label class="col-md-3">\n                                              SSL\n                                   </label>\n                                      <label class="col-md-9">\n                                                      <input type="checkbox" data-ng-model="item.ssl">\n                                      </label>\n                              </div>\n                                <!-- END SSL -->\n                              <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          <input class="btn blue-madison" type="button" value="Test" data-ng-click="test()"/>\n                   </form>\n                       <!-- END SMTP TAB -->\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/setting/update/list/landing.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n    <div class="page-bar">\n      <ul class="page-breadcrumb">\n        <li>\n          <i class="icon-rocket"></i>\n          <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n          <i class="fa fa-angle-right"></i>\n        </li>\n        <li>\n          <i class="icon-settings"></i>\n          <a href="#">{{ \'APPLICATION_SETTINGS\' | translate }}</a>\n          <i class="fa fa-angle-right"></i>\n        </li>\n        <li>\n          <i class="icon-cloud-download"></i>\n          <a href="#">{{ \'APPLICATION_UPDATES\' | translate }}</a>\n        </li>\n      </ul>\n    </div>\n    <!-- BEGIN PAGE CONTENT-->\n    <div class="row" data-ng-init="initCounter()">\n      <div class="col-md-12 page-500">\n        <div class="number">\n          <timer interval="1000" countdown="120">{{countdown}}</timer>\n        </div>\n        <div class="details">\n          <h3>Wait! We need to restart xCALLY Motion server.</h3>\n          <p>\n            We are updatig it!<br/>\n            xCALLY Motion Team<br/><br/>\n          </p>\n        </div>\n      </div>\n    </div>\n    <!-- END PAGE CONTENT-->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/setting/update/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-settings"></i>\n                                 <a href="#">{{ \'APPLICATION_SETTINGS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-cloud-download"></i>\n                                   <a href="#">{{ \'APPLICATION_UPDATES\' | translate }}</a>\n                             </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-cloud-download font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_UPDATES\' | translate }}</a> </span>\n                           </div>\n                                <div class="actions">\n                                 <a class="btn btn-default" href="#" data-ng-click="pull()">\n                                           <i class="icon-cloud-download"></i> {{ \'APPLICATION_UPDATE\' | translate }}\n                                  </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body" data-ng-init="initView()">\n                          <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                        <!-- END Portlet PORTLET-->\n           </div>\n        </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/setting/update/list/list.pull.html",'<div class="modal-header">\n  <button data-ng-if="modal.dismissable" type="button" data-ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p data-ng-if="modal.text" data-ng-bind="modal.text"></p>\n  <div data-ng-if="modal.html" data-ng-bind-html="modal.html"></div>\n</div>\n<div class="modal-footer">\n  <button data-ng-repeat="button in modal.buttons" data-ng-class="button.classes" data-ng-click="button.click($event)" data-ng-bind="button.text" class="btn"></button>\n</div>\n'),a.put("app/square/odbc/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_PROJECT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DSN -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.dsn.$touched || form.$submitted) && form.dsn.$invalid}">\n      <label class="control-label">{{\'APPLICATION_ODBC\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="dsn" placeholder="DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion" class="form-control" data-ng-model="item.dsn" required/>\n      <p class="help-block">Es. DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion</p>\n      <span data-ng-show="(form.dsn.$touched || form.$submitted) && form.dsn.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END DSN -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),
 a.put("app/square/odbc/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-superscript"></i>\n                                     <a>{{ \'APPLICATION_CALLYSQUARE\' | translate }}</a>\n                                  <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="#">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_ODBCS\' | translate }}</a> </span>\n                             </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="createItem()">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ODBC\' | translate }}\n                                          </button>\n                                     </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/odbc/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getOdbc()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-superscript"></i>\n                                     <a>{{ \'APPLICATION_CALLYSQUARE\' | translate }}</a>\n                                  <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/square/odbc/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n                                       <i data-ng-show="odbc" class="fa fa-angle-right"></i>\n                         </li>\n                         <li data-ng-show="odbc">\n                                      <a href="#">{{odbc.name}}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/odbc.png" class="img-responsive">\n                               </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{odbc.name}}\n                                 </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.square.odbc.view.settings\')}">\n                                                  <a data-ng-href="/square/odbc/view/{{odbc.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/odbc/view/view.settings.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_ODBC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateOdbc()" novalidate>\n\n                                                        <!-- START NAME -->\n                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                 <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="odbc.name" required/>\n                                                           <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                       </span>\n                                     </div>\n                                <!-- END NAME -->\n\n                                                     <!-- START DSN -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_ODBC\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="dsn" placeholder="{{\'APPLICATION_DSN\' | translate}}" class="form-control" data-ng-model="odbc.dsn" required/>\n                                                              <p class="help-block">Es. DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion</p>\n                                          <span data-ng-show="(forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END DSN -->\n\n                                                    <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="odbc.description"></textarea>\n                                                  </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/square/project/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_PROJECT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/square/project/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-superscript"></i>\n                                     <a>{{ \'APPLICATION_CALLYSQUARE\' | translate }}</a>\n                                  <i class="fa fa-angle-right"></i>\n                             </li>\n        <li>\n          <i class="fa fa-slack"></i>\n          <a href="#">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n        </li>\n                       </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_PROJECTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="createItem()">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_PROJECT\' | translate }}\n                                               </button>\n                                     </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/project/view/view.html",'<div class="row" data-ng-init="getProject()">\n <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="fa fa-superscript"></i>\n                                             <a>{{ \'APPLICATION_CALLYSQUARE\' | translate }}</a>\n                                          <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="fa fa-slack"></i>\n                                           <a href="/square/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n                                 </li>\n          <li>\n                                         <a ng-href="/square/projects/view/{{squareProject.id}}">{{squareProject.name}}</a>\n          </li>\n                           </ul>\n                 </div>\n                </div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n              <div id="geEditor" class="geEditor"></div>\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n<script>\n\n\n</script>\n'),a.put("app/staff/agent/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_STAFF\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-people"></i>\n                                   <a href="#">{{ \'APPLICATION_AGENTS\' | translate }}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-people font-green-sharp"></i>\n                                  <span class="caption-subject">{{ \'APPLICATION_AGENTS\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/staff/agents/wizard">\n                                                      <i class="icon-plus"></i> {{ \'APPLICATION_NEW_AGENT\' | translate }}\n                                         </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/staff/agent/view/view.account.html",'<div class="row" data-ng-init="initView()">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n                               </div>\n                                <ul class="nav nav-tabs">\n                                     <li data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()">\n                                               <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PERSONAL_INFO\' | translate}}</a>\n                                       </li>\n                                 <li data-ng-show="Auth.isAdmin()">\n                                            <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_CHANGE_AVATAR\' | translate}}</a>\n                                       </li>\n                                 <li data-ng-show="Auth.isAdmin() || agent.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && agent.id === Auth.getCurrentUser().id}">\n                                            <a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_CHANGE_PASSWORD\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- PERSONAL INFO TAB -->\n                                    <div class="tab-pane" data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()" id="tab_1_1">\n                                                <form name="forms.info" data-ng-submit="updateItem()" novalidate>\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="agent.fullname" required/>\n                                                          <span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START USERNAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="agent.name" required/>\n                                                              <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START EMAIL -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="agent.email" required/>\n                                                              <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n                                                           </span>\n                                                       </div>\n                                                        <!-- END EMAIL -->\n\n                                                  <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="agent.description"></textarea>\n                                                 </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <!-- START INTERNAL -->\n                                                       <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <input type="text" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="agent.internal" required disabled/>\n                                                              <span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div> -->\n                                                    <!-- END INTERNAL -->\n\n                                                       <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END PERSONAL INFO TAB -->\n                                        <!-- CHANGE AVATAR TAB -->\n                                    <div class="tab-pane" data-ng-show="Auth.isAdmin()" id="tab_1_2">\n                                             <form action="#" role="form">\n                                                 <div class="form-group">\n                                                              <div class="fileinput fileinput-new" data-provides="fileinput">\n                                                                       <div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">\n                                                                            <img src="http://www.placehold.it/200x150/EFEFEF/AAAAAA&amp;text=no+image" alt=""/>\n                                                                   </div>\n                                                                        <div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;">\n                                                                       </div>\n                                                                        <div>\n                                                                         <span class="btn default btn-file" data-ng-show="!uploader.queue[0]">\n                                                                                 <span> {{ \'APPLICATION_SELECT_IMAGE\' | translate }} </span>\n                                                                                 <input type="file" nv-file-select="" uploader="uploader" /><br/>\n                                                                              </span>\n                                                                               <button type="button" class="btn default" data-ng-show="uploader.queue[0]" data-dismiss="fileinput" ng-click="uploader.queue[0].remove()">\n                                                                                    {{ \'APPLICATION_REMOVE\' | translate }}\n                                                                              </button>\n                                                                             <button type="button" class="btn green-haze" data-ng-show="uploader.queue[0]" data-ng-click="uploader.queue[0].upload()" ng-disabled="uploader.queue[0].isReady || uploader.queue[0].isUploading || uploader.queue[0].isSuccess">\n                                                                                     {{ \'APPLICATION_CONFIRM\' | translate }}\n                                                                             </button>\n                                                                     </div>\n                                                                        <p>\n                                                                           </br> {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>jpg, png, jpeg</b>.\n                                                                  </p>\n                                                          </div>\n                                                        </div>\n                                                </form>\n                                               <div class="row">\n                                                     <div class="col-md-2">\n                                                                <table class="table" border="0">\n                                                                      <tbody>\n                                                                       <tr data-ng-repeat="item in uploader.queue">\n                                                                                  <td style="border-top-style:none">\n                                                                                            <strong>\n                                                                                                      {{ item.file.name }}\n                                                                                          </strong>\n                                                                                     </td>\n                                                                                 <td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n                                                                                             {{ item.file.size/1024/1024|number:2 }} MB\n                                                                                    </td>\n                                                                                 <td nowrap style="border-top-style:none">\n                                                                                             <button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n                                                                                                            <span class="glyphicon glyphicon-trash"></span> Remove\n                                                                                                </button>\n                                                                                     </td>\n                                                                         </tr>\n                                                                 </tbody>\n                                                              </table>\n                                                      </div>\n                                                </div>\n                                        </div>\n                                        <!-- END CHANGE AVATAR TAB -->\n                                        <!-- CHANGE PASSWORD TAB -->\n                                  <div class="tab-pane" data-ng-show="Auth.isAdmin() || agent.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && agent.id === Auth.getCurrentUser().id}" id="tab_1_3">\n                                             <form name="forms.changePwd" data-ng-submit="forms.changePwd.$valid && updatePassword()" novalidate>\n                                                  <!-- START CURRENT PWD -->\n                                                    <div class="form-group" data-ng-if="!Auth.isAdmin()" data-ng-class="{\'has-error\': (forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="password" name="current_pwd" placeholder="{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}" class="form-control" data-ng-model="agent.currentPwd" required/>\n                                                             <span data-ng-show="(forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CURRENT PWD -->\n                                                      <!-- START NEW PWD -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="password" name="new_pwd" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="agent.newPwd" required/>\n                                                         <span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NEW PWD -->\n                                                  <!-- START RE-NEW PWD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.re_new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.re_new_pwd.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="password" name="re_new_pwd" placeholder="{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="agent.reNewPwd" nx-equal="agent.newPwd" required/>\n                                                            <span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END RE-NEW PWD -->\n                                                       <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END CHANGE PASSWORD TAB -->\n                              </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/staff/agent/view/view.chat.html",'<div class="row" data-ng-init="initView()">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_CHAT\' | translate}}</span>\n                          </div>\n                        </div>\n\n                      <div class="portlet-body">\n                            <!-- START CHAT TAB -->\n                               <form name="form" data-ng-submit="patchItem()" novalidate>\n                                    <!-- START CAPACITY -->\n                                       <div class="form-group" data-ng-class="{\'has-error\': (form.capacity.$touched || form.$submitted) && form.name.$invalid}">\n                                           <label class="control-label">{{\'APPLICATION_CAPACITY\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                             <input type="number" name="chatCapacity" placeholder="{{\'APPLICATION_CAPACITY\' | translate}}" class="form-control" data-ng-model="agent.chatCapacity" min="0" required/>\n                                            <span class="help-block">\n                                                     {{\'MESSAGE_ZERO_MEANS_UNLIMITED\' | translate}}\n                                              </span>\n                                               <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END CAPACITY -->\n                                 <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                               <!-- END CHAT TAB -->\n                 </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/staff/agent/view/view.fax.html",'<div class="row" data-ng-init="initView()">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_FAX\' | translate}}</span>\n                           </div>\n                        </div>\n\n                      <div class="portlet-body">\n                            <!-- START CHAT TAB -->\n                               <form name="form" data-ng-submit="patchItem()" novalidate>\n                                    <!-- START CAPACITY -->\n                                       <div class="form-group" data-ng-class="{\'has-error\': (form.capacity.$touched || form.$submitted) && form.name.$invalid}">\n                                           <label class="control-label">{{\'APPLICATION_CAPACITY\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                             <input type="number" name="faxCapacity" placeholder="{{\'APPLICATION_CAPACITY\' | translate}}" class="form-control" data-ng-model="agent.faxCapacity" min="0" required/>\n                                              <span class="help-block">\n                                                     {{\'MESSAGE_ZERO_MEANS_UNLIMITED\' | translate}}\n                                              </span>\n                                               <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END CAPACITY -->\n                                 <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                               <!-- END CHAT TAB -->\n                 </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/staff/agent/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_STAFF\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-people"></i>\n                                   <a href="/staff/agents/list">{{ \'APPLICATION_AGENTS\' | translate }}</a>\n                                     <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{agent.fullname}}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-userpic">\n                                 <img ng-src="api/users/avatar/{{agent.userpic ? agent.userpic : \'unknown_avatar\'}}" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- START SIDEBAR USER TITLE -->\n                             <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{agent.fullname}}\n                                    </div>\n                                        <div class="profile-usertitle-job">\n                                           {{agent.role}}\n                                        </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.staff.agents.view.account\')}">\n                                                  <a data-ng-href="/staff/agents/view/{{agent.id}}/account">\n                                                    <i class="icon-user"></i>\n                                                     {{ \'APPLICATION_ACCOUNT\' | translate}} </a>\n                                         </li>\n\n                                               <li data-ng-class="{active: $state.is(\'main.staff.agents.view.voice\')}" data-ng-show="Auth.isAdmin()">\n                                                      <a data-ng-href="/staff/agents/view/{{agent.id}}/voice">\n                                                      <i class="icon-earphones-alt"></i>\n                                                    {{ \'APPLICATION_VOICE\' | translate}} </a>\n                                           </li>\n\n                                               <li data-ng-class="{active: $state.is(\'main.staff.agents.view.chat\')}" data-ng-show="Auth.isAdmin()">\n                                                       <a data-ng-href="/staff/agents/view/{{agent.id}}/chat">\n                                                       <i class="icon-bubble"></i>\n                                                   {{ \'APPLICATION_CHAT\' | translate}} </a>\n                                            </li>\n\n                                               <li data-ng-class="{active: $state.is(\'main.staff.agents.view.mail\')}" data-ng-show="Auth.isAdmin()">\n                                                       <a data-ng-href="/staff/agents/view/{{agent.id}}/mail">\n                                                       <i class="icon-envelope"></i>\n                                                 {{ \'APPLICATION_MAIL\' | translate}} </a>\n                                            </li>\n\n                                               <li data-ng-class="{active: $state.is(\'main.staff.agents.view.fax\')}" data-ng-show="Auth.isAdmin()">\n                                                        <a data-ng-href="/staff/agents/view/{{agent.id}}/fax">\n                                                        <i class="icon-paper-plane"></i>\n                                                      {{ \'APPLICATION_FAX\' | translate}} </a>\n                                             </li>\n\n                                               <li data-ng-class="{active: $state.is(\'main.staff.agents.view.phonebar\')}" data-ng-show="Auth.isAdmin()">\n                                                   <a data-ng-href="/staff/agents/view/{{agent.id}}/phonebar">\n                                                   <i class="icon-screen-desktop"></i>\n                                                   {{ \'APPLICATION_PHONE_BAR\' | translate}} </a>\n                                               </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n\n          <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/staff/agent/view/view.mail.html",'<div class="row" data-ng-init="initView()">\n <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_MAIL\' | translate}}</span>\n                          </div>\n                        </div>\n\n                      <div class="portlet-body">\n                            <!-- START CHAT TAB -->\n                               <form name="form" data-ng-submit="patchItem()" novalidate>\n                                    <!-- START CAPACITY -->\n                                       <div class="form-group" data-ng-class="{\'has-error\': (form.capacity.$touched || form.$submitted) && form.name.$invalid}">\n                                           <label class="control-label">{{\'APPLICATION_CAPACITY\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                             <input type="number" name="mailCapacity" placeholder="{{\'APPLICATION_CAPACITY\' | translate}}" class="form-control" data-ng-model="agent.mailCapacity" min="0" required/>\n                                            <span class="help-block">\n                                                     {{\'MESSAGE_ZERO_MEANS_UNLIMITED\' | translate}}\n                                              </span>\n                                               <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END CAPACITY -->\n                                 <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                               <!-- END CHAT TAB -->\n                 </div>\n                </div>\n        </div>\n</div>\n</div>\n'),
@@ -47,5 +49,5 @@ a.put("app/tools/tag/list/list.create.modal.html",'<div class="modal-header">\n
 a.put("app/tools/trigger/wizard/wizard.html",'<div class="row">\n      <div class="col-md-12">\n               <!-- BEGIN PAGE HEADER-->\n             <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bulb"></i>\n                                     <a href="/tools/triggers/list">{{ \'APPLICATION_TRIGGERS\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n                <!-- END PAGE HEADER-->\n\n             <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-bulb font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_TRIGGERS\' | translate }} WIZARD</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n                                     <wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n                                              <form name="forms.general" novalidate>\n                                                        <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START STATUS -->\n                                                 <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_STATUS\' | translate}}</label></br>\n                                                      <input\n                                                                    bs-switch\n                                                                         class="form-control"\n                                                              ng-model="item.status"\n                                                                type="checkbox"\n                                                                           name="status"\n                                                                         data-ng-init="item.status = 0"\n                                                                    switch-active="{{ recordSwitch.isActive }}"\n                                                                   switch-on-text="{{ recordSwitch.onText }}"\n                                                                    switch-off-text="{{ recordSwitch.offText }}"\n                                                                  switch-on-color="{{ recordSwitch.onColor }}"\n                                                                  switch-off-color="{{ recordSwitch.offColor }}"\n                                                                switch-animate="{{ recordSwitch.animate }}"\n                                                                   switch-size="{{ recordSwitch.size }}"\n                                                                 switch-label="{{ recordSwitch.label }}"\n                                                               switch-icon="{{ recordSwitch.icon }}"\n                                                                 switch-radio-off="{{ recordSwitch.radioOff }}"\n                                                                switch-label-width="{{ recordSwitch.labelWidth }}"\n                                                                    switch-handle-width="{{ recordSwitch.handleWidth }}">\n                                                     </div>\n                                                        <!-- END STATUS -->\n\n                                                 <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n            <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitSettingsValidation(forms.settings.$valid)">\n                                            <form name="forms.settings" novalidate>\n                                               <div class="portlet light bordered">\n                                                  <div class="portlet-title">\n                                                           <div class="caption font-blue-hoki">\n                                                                  <i class="icon-tag font-blue-hoki"></i>\n                                                                       <span class="caption-subject">{{ \'APPLICATION_CHANNEL\' | translate }}</span>\n                                                                </div>\n                                                        </div>\n                                                        <div class="portlet-body">\n                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.channel.$touched || forms.settings.$submitted) && forms.settings.channel.$invalid}">\n                                                                   <label class="control-label">{{ \'APPLICATION_CHANNEL\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="item.channel" name="channel" theme="bootstrap" required>\n                                                                            <ui-select-match placeholder="{{ \'APPLICATION_CHANNEL\' | translate }}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                          <ui-select-choices repeat="channel in $triggers.channels | filter: $select.search">\n                                                                                   <div ng-bind-html="channel | highlight: $select.search | capitalize"></div>\n                                                                           </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.settings.channel.$touched || forms.settings.$submitted) && forms.settings.channel.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                </div>\n                                                <div class="portlet light bordered">\n                                                  <div class="portlet-title">\n                                                           <div class="caption font-blue-hoki">\n                                                                  <i class="icon-tag font-blue-hoki"></i>\n                                                                       <span class="caption-subject" ng-bind-html="\'APPLICATION_MEET_ALL_CONDITIONS\' | translate"></span>:\n                                                         </div>\n                                                        </div>\n                                                        <div class="portlet-body">\n                                                            <div class="padding-bottom row" ng-repeat="all in item.All">\n                                                                  <condition-builder element="all" serviceindex="item.channel" service="$triggers" form="forms.settings"></condition-builder>\n                                                                   <button type="button" ng-click="removeCondition(\'All\',$index)" class="btn btn-danger remove-condition col-md-1 left-margin"><span class="glyphicon glyphicon-minus-sign"></span></button>\n                                                           </div>\n                                                                <button type="button" class="btn btn-sm green padding-bottom" data-ng-click="addCondition(\'All\')">\n                                                                  <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_CONDITION\' | translate}}\n                                                              </button>\n                                                     </div>\n                                                </div>\n                                                <div class="portlet light bordered">\n                                                  <div class="portlet-title">\n                                                           <div class="caption font-blue-hoki">\n                                                                  <i class="icon-tag font-blue-hoki"></i>\n                                                                       <span class="caption-subject" ng-bind-html="\'APPLICATION_MEET_ANY_CONDITIONS\' | translate"></span>:\n                                                         </div>\n                                                        </div>\n                                                        <div class="portlet-body">\n                                                            <div class="padding-bottom row" ng-repeat="any in item.Any">\n                                                                  <condition-builder element="any" serviceindex="item.channel" service="$triggers" form="forms.settings"></condition-builder>\n                                                                   <button type="button" ng-click="removeCondition(\'Any\',$index)" class="btn btn-danger remove-condition col-md-1 left-margin"><span class="glyphicon glyphicon-minus-sign"></span></button>\n                                                           </div>\n                                                                <button type="button" class="btn btn-sm green padding-bottom" data-ng-click="addCondition(\'Any\')">\n                                                                  <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_CONDITION\' | translate}}\n                                                              </button>\n                                                     </div>\n                                                </div>\n                                                <div class="portlet light bordered">\n                                                  <div class="portlet-title">\n                                                           <div class="caption font-blue-hoki">\n                                                                  <i class="icon-tag font-blue-hoki"></i>\n                                                                       <span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</span>:\n                                                               </div>\n                                                        </div>\n                                                        <div class="portlet-body">\n                                                            <div class="padding-bottom row" ng-repeat="action in item.Actions">\n                                                                   <div class="form-group col-md-2" data-ng-class="{\'has-error\': (forms.settings[\'action\'+$index].$touched || forms.settings.$submitted) && forms.settings[\'action\'+$index].$invalid}">\n                                                                            <ui-select data-ng-model="action.action" theme="bootstrap" data-ng-change="resetActionData(action)" name="action{{$index}}" required>\n                                                                                 <ui-select-match placeholder="{{ \'APPLICATION_ACTION\' | translate }}">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="tAction.value as tAction in $triggers.services[item.channel].actions | filter: $select.search">\n                                                                                            <div ng-bind-html="tAction.name | translate | highlight: $select.search"></div>\n                                                                                       </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span data-ng-show="(forms.settings[\'action\'+$index].$touched || forms.settings.$submitted) && forms.settings[\'action\'+$index].$error.required" class="help-block help-block-error">\n                                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                         </span>\n                                                                       </div>\n                                                                        <div ng-switch="action.action">\n                                                                               <action-builder-template ng-switch-when="template" element="action" form="forms.settings"></action-builder-template>\n                                                                          <action-builder-integration ng-switch-when="integration" element="action" form="forms.settings"></action-builder-integration>\n                                                                 </div>\n                                                                        <button type="button" ng-click="removeAction($index)" class="btn btn-danger remove-condition col-md-1 left-margin"><span class="glyphicon glyphicon-minus-sign"></span></button>\n                                                              </div>\n                                                                <button type="button" class="btn btn-sm green padding-bottom" data-ng-click="addAction()">\n                                                                    <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_ACTION\' | translate}}\n                                                         </button>\n                                                     </div>\n                                                </div>\n                                                <div class="has-error" data-ng-show="forms.settings.$submitted && !item.All.length && !item.Any.length">\n                                                      <span class="help-block help-block-error form-control">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_INSERT_AT_LEAST_ONE_CONDITION\' | translate}}.\n                                                  </span>\n                                               </div>\n                                                <div class="has-error" data-ng-show="forms.settings.$submitted && !item.Actions.length">\n                                                      <span class="help-block help-block-error form-control">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_INSERT_AT_LEAST_ONE_ACTION\' | translate}}.\n                                                     </span>\n                                               </div>\n                                                <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                             <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                      </form>\n                                       </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                             <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tools/trunk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-wrench"></i>\n                                   <a href="#">{{ \'APPLICATION_TOOLS\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-link"></i>\n                                     <a href="#">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-link font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_TRUNKS\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <a class="btn green-jungle" href="/tools/trunks/wizard" data-toggle="dropdown">\n                                               <i class="icon-plus"></i> {{ \'APPLICATION_NEW_TRUNK\' | translate }}\n                                 </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tools/trunk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-wrench"></i>\n                                   <a href="#">{{ \'APPLICATION_TOOLS\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-link"></i>\n                                     <a href="/tools/trunks/list">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n                                     <i data-ng-show="trunk" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="trunk">\n                                     <a href="#">{{trunk.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/trunk.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{trunk.name}}\n                                        </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.tools.trunks.view.settings\')}">\n                                                 <a data-ng-href="/tools/trunks/view/{{trunk.name}}/settings"><i class="icon-settings"></i> {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                             </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tools/trunk/view/view.settings.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_TRUNK\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                               </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n                                    </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_OTHER_FIELDS\' | translate}}</a>\n                                        </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body" data-ng-init="getContexts();">\n                              <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateTrunk()" novalidate>\n                                                 <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="trunk.name" required readonly/>\n                                                         <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n                                                     <div class="row">\n                                                             <div class="col-md-6">\n\n                                                      <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.host.$touched || forms.general.$submitted) && forms.general.host.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="trunk.host" required/>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n                                                          </span>\n                                                               <span data-ng-show="(forms.general.host.$touched || forms.general.$submitted) && forms.general.host.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <!-- START SECRET -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.secret.$touched || forms.general.$submitted) && forms.general.secret.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_SECRET\' | translate}}</label>\n                                                           <input type="password" name="secret" placeholder="{{\'APPLICATION_SECRET\' | translate}}" class="form-control" data-ng-model="trunk.secret">\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.general.secret.$touched || forms.general.$submitted) && forms.general.secret.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END SECRET -->\n\n                                                 <!-- START CONTEXT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="trunk.context" name="context" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                                                                                <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_VOICE_CONTEXT\' | translate }}\n                                                         </span>\n                                                               <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONTEXT -->\n\n                                                        <!-- START CALLERID -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.general.callerid.$touched || forms.general.$submitted) && forms.general.callerid.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_CALLERID\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="callerid" pattern=\'^"[a-zA-Z0-9_.-]*" <[a-zA-Z0-9_.-]*>\' placeholder="{{\'APPLICATION_CALLERID\' | translate}}" class="form-control" data-ng-model="trunk.callerid"/>\n                                                              <span class="help-block">\n                                                                             {{ \'DESCRIPTION_OUTBOUND_CALLERID\' | translate }} "name" &lt;number&gt;\n                                                                     </span>\n                                                               <span data-ng-show="(forms.general.callerid.$touched || forms.general.$submitted) && forms.general.callerid.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CALLERID -->\n\n                                                       <!-- START TYPE -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.type.$touched || forms.general.$submitted) && forms.general.type.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <ui-select data-ng-model="trunk.type" name="type" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'user\',\'peer\',\'friend\'] | filter: $select.search">\n                                                                          <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_TYPE\' | translate }}\n                                                          </span>\n                                                               <span data-ng-show="(forms.general.type.$touched || forms.general.$submitted) && forms.general.type.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TYPE -->\n\n                                                   <!-- START DTMFMODE -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.general.dtmfmode.$touched || forms.general.$submitted) && forms.general.dtmfmode.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_DTMFMODE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <ui-select data-ng-model="trunk.dtmfmode" name="dtmfmode" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                   <ui-select-choices repeat="item in [\'rfc2833\', \'info\', \'shortinfo\', \'inband\',\'auto\'] | filter: $select.search">\n                                                                             <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_DTMFMODE\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.general.dtmfmode.$touched || forms.general.$submitted) && forms.general.dtmfmode.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END DTMFMODE -->\n\n                                               </div>\n                                                <div class="col-md-6">\n\n                                                      <!-- START DEFAULT USER -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.defaultuser.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_DEFAULT_USER\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="defaultuser" placeholder="{{\'APPLICATION_DEFAULT_USER\' | translate}}" class="form-control" data-ng-model="trunk.defaultuser" required/>\n                                                            <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n                                                          </span>\n                                                               <span data-ng-show="forms.general.$submitted && (forms.general.defaultuser.$invalid)" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END DEFAULT USER -->\n\n                                                   <!-- START NAT -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.general.nat.$touched || forms.general.$submitted) && forms.general.nat.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_NAT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <ui-select multiple data-ng-model="trunk.nat" name="nat" theme="bootstrap" ui-required="true">\n                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\', \'no\', \'never\', \'route\', \'force_rport\', \'comedia\'] | filter: $select.search">\n                                                                           <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_NAT\' | translate }}\n                                                           </span>\n                                                               <span data-ng-show="(forms.general.nat.$touched || forms.general.$submitted) && forms.general.nat.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAT -->\n\n                                                    <!-- START QUALIFY -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.qualify.$touched || forms.general.$submitted) && forms.general.qualify.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_QUALIFY\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="trunk.qualify" name="qualify" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_QUALIFY\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.general.qualify.$touched || forms.general.$submitted) && forms.general.qualify.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUALIFY -->\n\n                                                        <!-- START ALLOW -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.allow.$touched || forms.general.$submitted) && forms.general.allow.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_ALLOW_CODEC\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <ui-select multiple data-ng-model="trunk.allow" name="allow" theme="bootstrap" ui-required="true">\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'g723\',\'gsm\',\'ulaw\',\'alaw\',\'g726\',\'g722\',\'g729\',\'ilbc\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_ALLOW_CODEC\' | translate }}\n                                                           </span>\n                                                               <span data-ng-show="(forms.general.allow.$touched || forms.general.$submitted) && forms.general.allow.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ALLOW -->\n\n                                                  <!-- START INSECURE -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.general.insecure.$touched || forms.general.$submitted) && forms.general.insecure.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_INSECURE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <ui-select multiple data-ng-model="trunk.insecure" name="insecure" theme="bootstrap" ui-required="true">\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'port\',\'invite\',\'very\'] | filter: $select.search">\n                                                                          <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_INSECURE\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.general.insecure.$touched || forms.general.$submitted) && forms.general.insecure.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INSECURE -->\n\n                                                       <!-- START CALLLIMIT -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.general.call_limit.$touched || forms.general.$submitted) && forms.general.call_limit.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_CALLLIMIT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                            <input type="number" min="0" name="call-limit" placeholder="{{\'APPLICATION_CALLLIMIT\' | translate}}" class="form-control" data-ng-model="trunk.call_limit"/>\n                                                                <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_CALLLIMIT\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.general.call_limit.$touched || forms.general.$submitted) && forms.general.call_limit.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CALLLIMIT -->\n\n                                              </div>\n                                        </div>\n\n                                                      <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="trunk.description"></textarea>\n                                                 </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n                                      <!-- ADVANCED TAB -->\n                                 <div class="tab-pane" id="tab_1_2">\n                                           <form name="forms.advanced" data-ng-submit="forms.advanced.$valid && updateTrunk()" novalidate>\n                                                       <div class="row">\n                                                             <div class="col-md-6">\n\n                                                      <!-- START REGISTRY -->\n                                                       <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_REGISTRY\' | translate}}</label>\n                                                         <input type="text" name="registry" placeholder="{{\'APPLICATION_REGISTRY\' | translate}}" class="form-control" data-ng-model="trunk.registry"/>\n                                                               <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n                                                              </span>\n                                                       </div>\n                                                        <!-- END REGISTRY -->\n\n                                                       <!-- START DIRECTMEDIA -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.directmedia.$touched || forms.advanced.$submitted) && forms.advanced.directmedia.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_DIRECTMEDIA\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <ui-select data-ng-model="trunk.directmedia" name="directmedia" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\', \'no\', \'nonat\', \'update\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_DIRECTMEDIA\' | translate }}\n                                                           </span>\n                                                               <span data-ng-show="(forms.advanced.directmedia.$touched || forms.advanced.$submitted) && forms.advanced.directmedia.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END DIRECTMEDIA -->\n\n                                                    <!-- START CALLCOUNTER -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.callcounter.$touched || forms.advanced.$submitted) && forms.advanced.callcounter.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_CALLCOUNTER\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <ui-select data-ng-model="trunk.callcounter" name="callcounter" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_CALLCOUNTER\' | translate }}\n                                                           </span>\n                                                               <span data-ng-show="(forms.advanced.callcounter.$touched || forms.advanced.$submitted) && forms.advanced.callcounter.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CALLCOUNTER -->\n\n                                                    <!-- START FROMDOMAIN -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.fromdomain.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_FROMDOMAIN\' | translate}}</label>\n                                                               <input type="text" name="fromdomain" placeholder="{{\'APPLICATION_FROMDOMAIN\' | translate}}" class="form-control" data-ng-model="trunk.fromdomain" />\n                                                                <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_FROMDOMAIN\' | translate }}\n                                                            </span>\n                                                               <span data-ng-show="forms.advanced.$submitted && (forms.advanced.fromdomain.$invalid)" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FROMDOMAIN -->\n\n                                                     <!-- START FROMUSER -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.fromuser.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_FROMUSER\' | translate}}</label>\n                                                         <input type="text" name="fromuser" placeholder="{{\'APPLICATION_FROMUSER\' | translate}}" class="form-control" data-ng-model="trunk.fromuser" />\n                                                              <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_FROMUSER\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="forms.advanced.$submitted && (forms.advanced.fromuser.$invalid)" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FROMUSER -->\n\n                                               </div>\n                                                <div class="col-md-6">\n\n                                                      <!-- START OUTBOUNDPROXY -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.outboundproxy.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_OUTBOUNDPROXY\' | translate}}</label>\n                                                            <input type="text" name="outboundproxy" placeholder="{{\'APPLICATION_OUTBOUNDPROXY\' | translate}}" class="form-control" data-ng-model="trunk.outboundproxy" />\n                                                               <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_OUTBOUNDPROXY\' | translate }}\n                                                         </span>\n                                                               <span data-ng-show="forms.advanced.$submitted && (forms.advanced.outboundproxy.$invalid)" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END OUTBOUNDPROXY -->\n\n                                                  <!-- START USEREQPHONE -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.usereqphone.$touched || forms.advanced.$submitted) && forms.advanced.usereqphone.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_USEREQPHONE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                          <ui-select data-ng-model="trunk.usereqphone" name="usereqphone" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_USEREQPHONE\' | translate }}\n                                                           </span>\n                                                               <span data-ng-show="(forms.advanced.usereqphone.$touched || forms.advanced.$submitted) && forms.advanced.usereqphone.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USEREQPHONE -->\n\n                                                    <!-- START TRUSTRPID -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.trustrpid.$touched || forms.advanced.$submitted) && forms.advanced.trustrpid.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_TRUSTRPID\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                            <ui-select data-ng-model="trunk.trustrpid" name="trustrpid" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_TRUSTRPID\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.advanced.trustrpid.$touched || forms.advanced.$submitted) && forms.advanced.trustrpid.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TRUSTRPID -->\n\n                                                      <!-- START SENDRPID -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.sendrpid.$touched || forms.advanced.$submitted) && forms.advanced.sendrpid.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_SENDRPID\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <ui-select data-ng-model="trunk.sendrpid" name="sendrpid" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_SENDRPID\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.advanced.sendrpid.$touched || forms.advanced.$submitted) && forms.advanced.sendrpid.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END SENDRPID -->\n\n                                                       <!-- START ENCRYPTION -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.encryption.$touched || forms.advanced.$submitted) && forms.advanced.encryption.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_ENCRYPTION\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                           <ui-select data-ng-model="trunk.encryption" name="encryption" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_ENCRYPTION\' | translate }}\n                                                            </span>\n                                                               <span data-ng-show="(forms.advanced.encryption.$touched || forms.advanced.$submitted) && forms.advanced.encryption.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ENCRYPTION -->\n\n                                                     <!-- START PORT -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.port.$touched || forms.advanced.$submitted) && forms.advanced.port.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_PORT\' | translate}}</label>\n                                                             <input type="number" min="0" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="trunk.port"/>\n                                                         <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_PORT\' | translate }}\n                                                          </span>\n                                                               <span data-ng-show="(forms.advanced.port.$touched || forms.advanced.$submitted) && forms.advanced.port.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PORT -->\n\n                                                   <!-- START TRANSPORT -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.transport.$touched || forms.advanced.$submitted) && forms.advanced.transport.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_TRANSPORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                            <ui-select multiple data-ng-model="trunk.transport" name="transport" theme="bootstrap" ui-required="true">\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'udp\',\'wss\',\'ws\',\'tcp\',\'tls\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_TRUNK_TRANSPORT\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.advanced.transport.$touched || forms.advanced.$submitted) && forms.advanced.transport.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TRANSPORT -->\n\n                                              </div>\n                                        </div>\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n                                     <!-- START OTHER FIELDS TAB -->\n                                       <div class="tab-pane" id="tab_1_3">\n                                           <div class="row">\n                                                     <div class="col-md-6">\n                                                                <!-- START OTHER FIELDS-->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_OTHER_FIELDS\' | translate}}</label>\n                                                                     <textarea name="otherFields" placeholder="{{\'APPLICATION_OTHER_FIELDS\' | translate}}" class="form-control otherfields-col" data-ng-model="trunk.otherFields"></textarea>\n                                                                    <span class="help-block">\n                                                                             {{ \'DESCRIPTION_TRUNK_OTHER_FIELDS\' | translate }}\n                                                                  </span>\n                                                               </div>\n                                                                <!-- END OTHER FIELDS -->\n                                                     </div>\n                                                        <div class="col-md-6">\n                                                                <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_EXAMPLE\' | translate}}</label>\n                                                                  <div class="well">\n                                                                            <div>host=dynamicp</div>\n                                                                              <div>secret=********</div>\n                                                                            <div>regcontext=tammari-internal</div>\n                                                                                <div>regexten=1005</div>\n                                                                              <div>dtmfmode=rfc2833</div>\n                                                                           <div>insecure=invite,port</div>\n                                                                               <div>canreinvite=yes</div>\n                                                                            <div>nat=yes</div>\n                                                                            <div>qualify=yes</div>\n                                                                                <div>context=merus-sipphone</div>\n                                                                             <div>pickupgroup=1</div>\n                                                                              <div>callgroup=1</div>\n                                                                                <div>mailbox=1000@default</div>\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n                                                </div>\n                                        </div>\n                                        <!-- END OTHER FIELDS TAB -->\n                         </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
 a.put("app/tools/trunk/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard()">\n      <!-- BEGIN PAGE HEADER-->\n     <div class="page-bar">\n                <ul class="page-breadcrumb">\n                  <li>\n                          <i class="icon-rocket"></i>\n                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                           <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-wrench"></i>\n                           <a href="#">{{ \'APPLICATION_TOOLS\' | translate }}</a>\n                               <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-link"></i>\n                             <a href="/tools/trunks/list">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n                             <i class="fa fa-angle-right"></i>\n                     </li>\n                 <li>\n                          <i class="icon-options"></i>\n                          <a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n                      </li>\n         </ul>\n </div>\n        <!-- END PAGE HEADER-->\n\n     <!-- BEGIN PORTLET-->\n <div class="portlet light bordered">\n          <div class="portlet-title">\n                   <div class="caption font-green-sharp">\n                                <i class="icon-link font-green-sharp"></i>\n                            <span class="caption-subject">{{ \'APPLICATION_TRUNK\' | translate }} WIZARD</a> </span>\n                      </div>\n                </div>\n                <div class="portlet-body">\n                    <wizard on-finish="createItem()">\n                             <wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n                                      <form name="forms.general" novalidate>\n\n                                              <!-- START NAME -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.name.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                 <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                   <span data-ng-show="forms.general.$submitted && forms.general.name.$invalid" class="help-block help-block-error">\n                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END NAME -->\n\n                                           <!-- START HOST -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.host.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                 <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n                                                   <span class="help-block">\n                                                             {{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n                                                  </span>\n                                                       <span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END HOST -->\n\n                                           <!-- START PASSWORD -->\n                                               <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n                                                 <label class="control-label">{{\'APPLICATION_SECRET\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                       <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.secret" required/>\n                                                     <span class="help-block">\n                                                             {{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n                                                        </span>\n                                                       <span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END PASSWORD -->\n\n                                               <!-- START DEFAULT USER -->\n                                           <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.defaultuser.$invalid}">\n                                                      <label class="control-label">{{\'APPLICATION_DEFAULT_USER\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                 <input type="text" name="defaultuser" placeholder="{{\'APPLICATION_DEFAULT\' | translate}} {{\'APPLICATION_USER\' | translate}}" class="form-control" data-ng-model="item.defaultuser" required/>\n                                                     <span class="help-block">\n                                                             {{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n                                                  </span>\n                                                       <span data-ng-show="forms.general.$submitted && (forms.general.defaultuser.$invalid)" class="help-block help-block-error">\n                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END DEFAULT USER -->\n\n                                           <!-- START DESCRIPTION -->\n                                            <div class="form-group">\n                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n                                          </div>\n                                                <!-- END DESCRIPTION -->\n\n                                            <button class="btn green-haze" type="submit" ng-click="next(true)">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                        </form>\n                               </wz-step>\n\n                          <wz-step title="{{\'APPLICATION_ADVANCED\' | translate}}" canexit="exitValidation(forms.advanced.$valid)">\n                                    <form name="forms.advanced" novalidate>\n\n                                             <!-- START REGISTRY -->\n                                               <div class="form-group">\n                                                      <label class="control-label">{{\'APPLICATION_REGISTRY\' | translate}}</label>\n                                                 <input type="text" name="registry" placeholder="{{\'APPLICATION_REGISTRY\' | translate}}" class="form-control" data-ng-model="item.registry"/>\n                                                        <span class="help-block">\n                                                             {{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n                                                      </span>\n                                               </div>\n                                                <!-- END REGISTRY -->\n                                         <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                             <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n                                    </form>\n                               </wz-step>\n\n                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                    <button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n                                     <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                         </wz-step>\n                    </wizard>\n             </div>\n        </div>\n        <!-- END PORTLET-->\n</div>\n'),a.put("app/tools/variable/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_VARIABLE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/tools/variable/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-wrench"></i>\n                                   <a href="#">{{ \'APPLICATION_TOOLS\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-eye"></i>\n                                      <a href="#">{{ \'APPLICATION_VARIABLES\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_VARIABLES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="createItem()">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_VARIABLE\' | translate }}\n                                              </button>\n                                     </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tools/variable/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getVariable()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-wrench"></i>\n                                   <a href="#">{{ \'APPLICATION_TOOLS\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-eye"></i>\n                                      <a href="/tools/variables/list">{{ \'APPLICATION_VARIABLES\' | translate }}</a>\n                                       <i data-ng-show="variable" class="fa fa-angle-right"></i>\n                             </li>\n                         <li data-ng-show="variable">\n                                  <a href="#">{{variable.name}}</a>\n                             </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/variable.png" class="img-responsive">\n                           </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{variable.name}}\n                                     </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.tools.variables.view.settings\')}">\n                                                      <a data-ng-href="/tools/variables/view/{{variable.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tools/variable/view/view.settings.html",'<div class="row">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_VARIABLE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                            </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateVariable()" novalidate>\n\n                                                    <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="variable.name" required/>\n                                                               <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="variable.description"></textarea>\n                                                      </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/tools/yourdashboard/list/clone.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_CLONE_DASHBOARD\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.dashboard" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.dashboard.name.$touched || forms.dashboard.$submitted) && forms.dashboard.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.dashboard.name.$touched || forms.dashboard.$submitted) && forms.dashboard.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.dashboard.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/tools/yourdashboard/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_DASHBOARD\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.dashboard" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.dashboard.name.$touched || forms.dashboard.$submitted) && forms.dashboard.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.dashboard.name.$touched || forms.dashboard.$submitted) && forms.dashboard.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.dashboard.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/tools/yourdashboard/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-screen-desktop"></i>\n                                   <a href="/tools/yourdashboards/list">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a> </span>\n                           </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_DASHBOARD\' | translate }}\n                                             </button>\n                                     </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tools/yourdashboard/show/show.html",'<div class="row" style="min-height: 466px;">\n  <div class="col-md-12" ng-init="getDashboard()">\n    <adf-dashboard\n    data-ng-if="dashboard"\n    name="{{dashboard.name}}"\n    collapsible="{{dashboard.collapsible}}"\n    maximizable="{{dashboard.maximizable}}"\n    enableconfirmdelete="{{dashboard.enableconfirmdelete}}"\n    structure="{{dashboard.structure}}"\n    editable="{{dashboard.editable}}"\n    adf-model="dashboard.model"/>\n  </div>\n</div>\n'),a.put("app/tools/yourdashboard/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getDashboard()">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-screen-desktop"></i>\n                                   <a href="/tools/yourdashboards/list">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a>\n                                    <i data-ng-show="dashboard" class="fa fa-angle-right"></i>\n                            </li>\n                         <li data-ng-show="dashboard">\n                                 <a href="#">{{dashboard.name}}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/dashboard.png" class="img-responsive">\n                          </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{dashboard.name}}\n                                    </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.tools.yourdashboards.view.settings\')}">\n                                                 <a data-ng-href="/tools/yourdashboards/view/{{dashboard.id}}/settings">\n                                                       <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tools/yourdashboard/view/view.settings.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_DASHBOARD\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                           </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateDashboard()" novalidate>\n\n                                                   <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="dashboard.name" required/>\n                                                              <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START VISIBLE TO ADMIN -->\n                                                       <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_VISIBLE_TO_ADMIN\' | translate}}</label><br>\n                                                             <input\n                                                                        bs-switch\n                                                                     ng-model="dashboard.admin"\n                                                                    type="checkbox"\n                                                                       switch-active="{{ radioSwitch.isActive }}"\n                                                                    switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                        switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                        switch-on-color="{{ radioSwitch.onColor }}"\n                                                                   switch-off-color="{{ radioSwitch.offColor }}"\n                                                                 switch-animate="{{ radioSwitch.animate }}"\n                                                                    switch-size="{{ radioSwitch.size }}"\n                                                                  switch-label="{{ radioSwitch.label }}"\n                                                                        switch-icon="{{ radioSwitch.icon }}"\n                                                                  switch-radio-off="{{ radioSwitch.radioOff }}"\n                                                                 switch-label-width="{{ radioSwitch.labelWidth }}"\n                                                                     switch-handle-width="{{ radioSwitch.handleWidth }}">\n                                                  </div>\n                                                        <!-- END VISIBLE TO ADMIN -->\n\n                                                       <!-- START VISIBLE TO USER -->\n                                                        <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_VISIBLE_TO_USER\' | translate}}</label><br>\n                                                              <input\n                                                                        bs-switch\n                                                                     ng-model="dashboard.user"\n                                                                     type="checkbox"\n                                                                       switch-active="{{ radioSwitch.isActive }}"\n                                                                    switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                        switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                        switch-on-color="{{ radioSwitch.onColor }}"\n                                                                   switch-off-color="{{ radioSwitch.offColor }}"\n                                                                 switch-animate="{{ radioSwitch.animate }}"\n                                                                    switch-size="{{ radioSwitch.size }}"\n                                                                  switch-label="{{ radioSwitch.label }}"\n                                                                        switch-icon="{{ radioSwitch.icon }}"\n                                                                  switch-radio-off="{{ radioSwitch.radioOff }}"\n                                                                 switch-label-width="{{ radioSwitch.labelWidth }}"\n                                                                     switch-handle-width="{{ radioSwitch.handleWidth }}">\n                                                  </div>\n                                                        <!-- END VISIBLE TO USER -->\n\n                                                        <!-- START VISIBLE TO AGENT -->\n                                                       <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_VISIBLE_TO_AGENT\' | translate}}</label><br>\n                                                             <input\n                                                                        bs-switch\n                                                                     ng-model="dashboard.agent"\n                                                                    type="checkbox"\n                                                                       switch-active="{{ radioSwitch.isActive }}"\n                                                                    switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                        switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                        switch-on-color="{{ radioSwitch.onColor }}"\n                                                                   switch-off-color="{{ radioSwitch.offColor }}"\n                                                                 switch-animate="{{ radioSwitch.animate }}"\n                                                                    switch-size="{{ radioSwitch.size }}"\n                                                                  switch-label="{{ radioSwitch.label }}"\n                                                                        switch-icon="{{ radioSwitch.icon }}"\n                                                                  switch-radio-off="{{ radioSwitch.radioOff }}"\n                                                                 switch-label-width="{{ radioSwitch.labelWidth }}"\n                                                                     switch-handle-width="{{ radioSwitch.handleWidth }}">\n                                                  </div>\n                                                        <!-- END VISIBLE TO AGENT -->\n\n                                                       <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="dashboard.description"></textarea>\n                                                     </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/zendesk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-handbag"></i>\n                                  <a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-handbag font-green-sharp"></i>\n                                 <span class="caption-subject">{{ \'APPLICATION_ZENDESK\' | translate }}</a> </span>\n                           </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/zendesk/wizard" data-toggle="dropdown">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }}\n                                               </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/zendesk/view/configuration/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.name.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.name.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/zendesk/view/configuration/list/list.html",'<div ui-view class="profile-content">\n    <div class="row">\n             <div class="col-md-12">\n                       <div class="portlet light" data-ng-init="initView()">\n                         <div class="portlet-title  tabbable-line">\n                                    <div class="caption caption-md">\n                                              <i class="icon-globe theme-font hide"></i>\n                                            <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n                                  </div>\n                                        <div class="actions">\n                                         <div class="btn-group" data-ng-show="id.length">\n                                                      <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                            <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                                   </a>\n                                          </div>\n                                                <div class="btn-group">\n                                                       <a class="btn green-jungle" href="#" data-ng-click="createItem()">\n                                                            <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n                                                 </a>\n                                          </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <!-- START TABLE -->\n                                  <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                          <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                                      </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
 a.put("app/zendesk/view/configuration/view/view.html",'<div class="row" data-ng-init="initView();getConfiguration();getCustomVariables();getFields();getTags();">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n                            </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n                                      </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n                                  </li>\n          <li>\n                                         <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n                                       </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_TAGS\' | translate}}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- SUBJECT TAB -->\n                                  <div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItem(\'subject\')"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                              <!-- <div id="subject-item-list" ng-scrollbars ng-scrollbars-config="config"> -->\n                 <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n                 <div class="col-md-3">\n                  <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                    <ui-select-choices repeat="item.type as item in fieldType | filter: $select.search">\n                            <div ng-bind-html="item.title | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n                        <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n                      </div>\n                      </div>\n                                                          <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n                    <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.variableName" data-ng-change="updateField(subjectItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                            <ui-select-choices group-by="groupVariableByGroup" repeat="variable.name as variable in variables | filter: $select.search">\n                            <div ng-bind-html="variable.title | highlight: $select.search"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-8" data-ng-if="subjectItem.type==\'customVariable\'">\n                        <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in customVariables | filter: $select.search">\n                        <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n                  </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n                                  <div class="tab-pane ui-padding" id="tab_1_2">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItem(\'description\')"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                                <!-- <div id="description-item-list" ng-scrollbars ng-scrollbars-config="config"> -->\n                                                 <div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n                     <div class="col-md-2">\n                  <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                    <ui-select-choices repeat="item.type as item in descFieldType | filter: $select.search">\n                        <div ng-bind-html="item.title | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n                    <div class="form-group">\n                        <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n                      </div>\n                      </div>\n                                                          <div class="col-md-3" data-ng-if="descriptionItem.type==\'keyValue\'">\n                                                                        <input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'keyValue\'">\n                                                                        <ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                    <ui-select-choices repeat="item.type as item in fieldType | filter: $select.search">\n                            <div ng-bind-html="item.title | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                                                          </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'keyValue\' && descriptionItem.keyType==\'string\'">\n                                                                 <input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n                                                         </div>\n                                                                <div class="col-md-3" data-ng-if="descriptionItem.type==\'keyValue\' && descriptionItem.keyType==\'variable\'">\n                       <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.variableName" data-ng-change="updateField(descriptionItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                            <ui-select-choices group-by="groupVariableByGroup" repeat="variable.name as variable in variables | filter: $select.search">\n                            <div ng-bind-html="variable.title | highlight: $select.search"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-3" data-ng-if="descriptionItem.type==\'keyValue\' && descriptionItem.keyType==\'customVariable\'">\n                   <div class="form-group">\n                        <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in customVariables | filter: $select.search">\n                        <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n                      </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n                                   <div class="tab-pane ui-padding" id="tab_1_3">\n                                                <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItem(\'field\')"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n                                         <!-- <div id="field-item-list" ng-scrollbars ng-scrollbars-config="config"> -->\n                   <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n                     <div class="col-md-3">\n                  <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                    <ui-select-choices repeat="item.id as item in accountFields | filter: $select.search">\n                          <div ng-bind-html="item.title | highlight: $select.search"></div>\n                   </ui-select-choices>\n                        </ui-select>\n                </div>\n                <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n                    <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                             <ui-select-choices repeat="item.value as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n                                    <div ng-bind-html="item.name | highlight: $select.search"></div>\n                            </ui-select-choices>\n                                </ui-select>\n                  </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n                                                                 <div class="form-group">\n                                                                              <ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                            <ui-select-choices repeat="item.type as item in fieldType | filter: $select.search">\n                                    <div ng-bind-html="item.title | highlight: $select.search | ucfirst"></div>\n                                 </ui-select-choices>\n                                </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n                        <div class="form-group">\n                                                                              <input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n                    </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n                      <div class="form-group">\n                                                                              <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.variableName" data-ng-change="updateField(fieldItem)">\n                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n                            <ui-select-choices group-by="groupVariableByGroup" repeat="variable.name as variable in variables | filter: $select.search">\n                            <div ng-bind-html="variable.title | highlight: $select.search"></div>\n                       </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                                                          <div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'customVariable\'">\n                        <div class="form-group">\n                                                                              <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                     <ui-select-choices repeat="variable.id as variable in customVariables | filter: $select.search">\n                        <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                        </ui-select-choices>\n                        </ui-select>\n                        </div>\n                      </div>\n                <div class="col-md-1">\n                  <div class="form-group">\n                        <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n                    </div>\n                      </div>\n              </div>\n                                            <!-- </div> -->\n                                       </div>\n                                        <!-- END FIELDS TAB -->\n                                       <!-- TAG TAB -->\n                                      <div class="tab-pane ui-padding" id="tab_1_4">\n                                                <div class="row">\n              <div class="col-md-12">\n                <span class="caption-subject">Select tags that you want add in the ticket:</span>\n              </div>\n            </div>\n            <hr>\n                                               <form name="forms.tags" data-ng-submit="updateTags()" novalidate>\n                                                     <!-- TAG -->\n                                                  <div class="form-group">\n                                                              <ui-select multiple data-ng-model="selectedTags.tags" theme="bootstrap" name="tags" ng-disabled="disabled">\n                                                                   <ui-select-match placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item.name}}</ui-select-match>\n                                                                        <ui-select-choices repeat="tag.id as tag in tags | filter: $select.search">\n                                                                           {{tag.name}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END TAG -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END TAG TAB -->\n                          </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/zendesk/view/view.account.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n                                                     <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n                                                                <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n                                                            <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START AUTH TYPE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n                                                              <ui-select data-ng-model="account.authType" name="authType" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                        <ui-select-choices repeat="type in [\'password\', \'token\'] | filter: $select.search">\n                                                                               <div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="account.authType == \'password\'" lazy-render duration="1">\n                                                               <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n                                                            <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n              <!-- START TOKEN -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="account.authType == \'token\'" lazy-render duration="1">\n                                                             <label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="token" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.token" required/>\n                                                              <span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN -->\n\n                                                  <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/zendesk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n          <i class="icon-handbag"></i>\n          <a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{account.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/zendesk.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{account.name}}\n                                      </div>\n                                        <div class="profile-usertitle-job">\n                                           {{account.remoteUri}}\n                                 </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.zendesk.view.account\')}">\n                                                       <a ng-href="/zendesk/view/{{account.id}}/account">\n                                                    <i class="icon-user"></i>\n                                                     {{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.zendesk.view.configurations\') || $state.is(\'main.zendesk.view.configuration\')}">\n                                                        <a ng-href="/zendesk/view/{{account.id}}/configurations/list">\n                                                        <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/zendesk/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n     <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-handbag"></i>\n                                          <a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n  <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                                <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/zendesk/accounts/validate/username"/>\n                                                              <span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n                                       </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/zendesk/accounts/validate/remoteUri"/>\n                                                          <span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n                                 </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START AUTH TYPE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n                                                              <ui-select data-ng-model="item.authType" name="authType" theme="bootstrap" required>\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                        <ui-select-choices repeat="type in [\'password\', \'token\'] | filter: $select.search">\n                                                                               <div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="item.authType == \'password\'" lazy-render duration="1">\n                                                          <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                            <input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n                                                               <span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n              <!-- START TOKEN -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="item.authType == \'token\'" lazy-render duration="1">\n                                                                <label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="token" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.token" required/>\n                                                         <span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TOKEN -->\n\n                                                  <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n\n                          </wizard>\n\n                   </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("components/footer/footer.html",'<!-- BEGIN FOOTER -->\n<div class="page-footer" data-ng-init="initFooter()">\n  <div class="page-footer-inner">\n     xCALLY Motion v. {{info.version}} | {{year}} - {{year + 1}} &copy; Powered by Xenialab\n  </div>\n  <div class="scroll-to-top">\n    <i class="icon-arrow-up"></i>\n  </div>\n</div>\n<!-- END FOOTER -->\n'),a.put("components/header/header.html",'<!-- BEGIN HEADER INNER -->\n<div class="page-header-inner" data-ng-init="initHeader()">\n  <!-- BEGIN LOGO -->\n  <div class="page-logo">\n    <a href="/">\n      <img src="assets/images/logo.png" alt="logo" class="logo-default"/>\n    </a>\n    <div class="menu-toggler sidebar-toggler" data-ng-click="toogleSidebar()">\n      <!-- DOC: Remove the above "hide" to enable the sidebar toggler button on header -->\n    </div>\n  </div>\n  <!-- END LOGO -->\n  <!-- BEGIN HEADER SEARCH BOX -->\n  <!-- DOC: Apply "search-form-expanded" right after the "search-form" class to have half expanded search box -->\n  <form class="search-form hide" action="extra_search.html" method="GET">\n    <div class="input-group">\n      <input type="text" class="form-control" placeholder="Search..." name="query">\n      <span class="input-group-btn">\n        <a href="javascript:;" class="btn submit"><i class="icon-magnifier"></i></a>\n      </span>\n    </div>\n  </form>\n  <!-- END HEADER SEARCH BOX -->\n  <!-- BEGIN RESPONSIVE MENU TOGGLER -->\n  <a href="javascript:;" class="menu-toggler responsive-toggler" data-toggle="collapse" data-target=".navbar-collapse">\n  </a>\n  <!-- END RESPONSIVE MENU TOGGLER -->\n  <!-- BEGIN TOP NAVIGATION MENU -->\n  <div class="top-menu">\n    <ul class="nav navbar-nav pull-right">\n      <!-- BEGIN LANGUAGE BAR -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-language">\n        <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n          <img ng-src="assets/images/flags/{{ language }}.png">\n          <i class="fa fa-angle-down"></i>\n        </a>\n        <ul class="dropdown-menu dropdown-menu-default">\n          <li>\n            <a href="#" ng-click="changeLanguage(\'ar\')">\n              <img alt="" src="assets/images/flags/ar.png"> {{\'APPLICATION_ARABIC\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'de\')">\n              <img alt="" src="assets/images/flags/de.png"> {{\'APPLICATION_GERMAN\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'en_EN\')">\n              <img alt="" src="assets/images/flags/en_EN.png"> {{\'APPLICATION_ENGLISH\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'es\')">\n              <img alt="" src="assets/images/flags/es.png"> {{\'APPLICATION_SPANISH\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'fr\')">\n              <img alt="" src="assets/images/flags/fr.png"> {{\'APPLICATION_FRENCH\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'it\')">\n              <img alt="" src="assets/images/flags/it.png"> {{\'APPLICATION_ITALIAN\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'ja\')">\n              <img alt="" src="assets/images/flags/ja.png"> {{\'APPLICATION_JAPANASE\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'ko\')">\n              <img alt="" src="assets/images/flags/ko.png"> {{\'APPLICATION_KOREAN\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'pt\')">\n              <img alt="" src="assets/images/flags/pt.png"> {{\'APPLICATION_PORTUGUESE\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'ru\')">\n              <img alt="" src="assets/images/flags/ru.png"> {{\'APPLICATION_RUSSIAN\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'sv\')">\n              <img alt="" src="assets/images/flags/sv.png"> {{\'APPLICATION_SWEDISH\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'zh-CN\')">\n              <img alt="" src="assets/images/flags/zh-CN.png"> {{\'APPLICATION_CHINESE_SIMPLIFIED\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'zh-TW\')">\n              <img alt="" src="assets/images/flags/zh-TW.png"> {{\'APPLICATION_CHINESE_TRADITIONAL\' | translate}}\n            </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END LANGUAGE BAR -->\n      <!-- BEGIN USER LOGIN DROPDOWN -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-user">\n        <a href="#" class="dropdown-toggle" dropdown-menu-hover data-toggle="dropdown" data-close-others="true">\n          <img class="img-circle" data-ng-src="api/users/avatar/{{getCurrentUser().userpic || \'unknown_avatar\'}}" alt="...">\n          <span class="username username-hide-on-mobile">\n            {{ getCurrentUser().fullname }}\n          </span>\n          <i class="fa fa-angle-down"></i>\n        </a>\n        <ul class="dropdown-menu dropdown-menu-default">\n          <li>\n            <a ng-href=" {{isAdmin() ? \'/staff/users/view/\'+getCurrentUser().id+\'/account\' : \'/staff/agents/view/\'+getCurrentUser().id+\'/account\'}}">\n              <i class="icon-key"></i>{{\'APPLICATION_CHANGE_PASSWORD\' | translate}}\n            </a>\n          </li>\n          <li data-ng-click="logout()">\n            <a href="#">\n              <i class="icon-logout"></i> Log Out\n            </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END USER LOGIN DROPDOWN -->\n      <!-- BEGIN QUICK SIDEBAR TOGGLER -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-quick-sidebar-toggler" data-ng-click="toggleQuickSidebar()">\n        <a href="#" class="dropdown-toggle">\n          <i class="icon-logout"></i>\n        </a>\n      </li>\n      <!-- END QUICK SIDEBAR TOGGLER -->\n    </ul>\n  </div>\n  <!-- END TOP NAVIGATION MENU -->\n</div>\n<!-- END HEADER INNER -->\n'),a.put("components/modal/delete.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text"></p>\n  <div ng-if="modal.html" ng-bind-html="modal.html"></div>\n</div>\n<div class="modal-footer">\n  <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button>\n</div>\n'),a.put("components/quickSidebar/modal/add.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title | translate" class="modal-title"></h4>\n</div>\n\n<div class="modal-body">\n  <div class="portlet box blue">\n              <div class="portlet-title">\n                   <div class="caption">\n                         <i class="icon-people"></i>{{\'APPLICATION_SELECTED_AGENTS\' | translate}}\n                    </div>\n                </div>\n                <div class="portlet-body">\n                    <ul>\n                          <li data-ng-repeat="item in items">\n                                    {{item.fullname}}\n                            </li>\n\n        <li data-ng-repeat="item in selected.items">\n                                  {{item.fullname}}\n                            </li>\n                 </ul>\n         </div>\n        </div>\n\n  <ui-select multiple name="items" ng-model="selected.items" theme="bootstrap">\n    <ui-select-match placeholder="{{\'APPLICATION_SELECTED_AGENTS\' | translate}}">{{$item.fullname}}</ui-select-match>\n    <ui-select-choices repeat="{id: agent.id, fullname: agent.fullname} as agent in agents.rows | filter: $select.search">\n      {{agent.fullname}}\n    </ui-select-choices>\n  </ui-select>\n</div>\n\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()" data-ng-show="selected.items.length">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("components/quickSidebar/modal/close.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title | translate" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text | translate"></p>\n  <!-- <div ng-if="modal.html" ng-bind-html="modal.html"></div> -->\n</div>\n<div class="modal-footer">\n  <button class="btn btn-danger" type="button" ng-click="ok()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n  <!-- <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button> -->\n</div>\n'),a.put("components/quickSidebar/quickSidebar.html",'<div class="page-quick-sidebar">\n  <div class="nav-justified">\n    <ul class="nav nav-tabs nav-justified">\n      <li data-ng-class="{active:currentTab==0}" data-ng-click="goToTab(0)">\n        <a href="#">\n          <i class="icon-people"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==1}" data-ng-click="goToTab(1)">\n        <a href="#">\n        <i class="icon-eye"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==2}" data-ng-click="goToTab(2)">\n        <a href="#">\n        <i class="icon-globe"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==3}" data-ng-click="goToTab(3)">\n        <a href="#">\n        <i class="icon-bubbles"></i>\n        </a>\n      </li>\n    </ul>\n    <div class="tab-content">\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==0 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list" >\n          <div class="quicksidebar-search">\n            <div class="input-group">\n                                                       <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_AGENT\' | translate}}..." ng-model="searchAgent">\n                                                       <span class="input-group-btn">\n                                                        <i class="icon-magnifier"></i>\n                                                        </span>\n                                               </div>\n          </div>\n          <ul class="media-list list-items" data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="agent in agents.rows | orderBy:\'-online\' | filter:searchAgent as resultsAgent" data-ng-if="agent.id !== currentUser.id">\n              <img class="media-object" data-ng-src="api/users/avatar/{{agent.userpic ? agent.userpic : \'unknown_avatar\'}}" alt="{{agent.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(agent.id)">\n                <h4 class="media-heading"><span class="item-status">{{agent.fullname | characters:15 :true}} {{agent.internal}}</h4>\n                <div class="media-heading-small">\n                   <span class="badge badge-empty" data-ng-class="agent.online ? \'badge-success\' : \'badge-danger\'"></span></span> {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{agent.updatedAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="agents.rows.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_AGENTS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="resultsAgent.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_AGENTS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==1 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." ng-model="searchUser">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="user in users.rows | orderBy:\'-online\' | filter:searchUser as resultsUser" data-ng-if="user.id !== currentUser.id">\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(user.id)">\n                <h4 class="media-heading">{{user.fullname | characters:15 :true}} {{user.internal}}</h4>\n                <div class="media-heading-small">\n                   <span class="badge badge-empty" data-ng-class="user.online ? \'badge-success\' : \'badge-danger\'"></span> {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{user.updatedAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="users.rows.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_USERS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="resultsUser.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_USERS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==2 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_CHAT\' | translate}}..." data-ng-model="searchChatRoomsExternals">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="chatRoom in chatRooms | QuickSidebarFilterUsersLowerThan:2 | filter:{type:\'external\'} | filter:searchChatRoomsExternals as resultsChatRoomsExternals">\n              <div class="media-status">\n                <i class="icon icon-close" data-ng-show="chatRoom.status === \'CLOSED\'"></i>\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(null, chatRoom.id)">\n                <h4 class="media-heading">{{chatRoom.ChatVisitor.fullname}}</h4>\n                <div class="media-heading-small">\n                   {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{chatRoom.createdAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" data-ng-if="resultsChatRoomsExternals.length === 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHATS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==3 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_GROUP\' | translate}}..." data-ng-model="searchChatRoomsGroups">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="chatRoom in chatRooms | QuickSidebarFilterUsersGreaterThan:2 | filter:searchChatRoomsGroups as resultsChatRoomsGroups">\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(null, chatRoom.id)">\n                <h4 class="media-heading">{{chatRoom.ChatVisitor.fullname}}</h4>\n                <div class="media-heading-small">\n                   {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{chatRoom.updatedAt}}">April 1, 2014</time>\n                </div>\n                <div class="media-heading-small">\n                  <div data-ng-repeat="user in chatRoom.Users | map: \'fullname\'" class="inline">\n                    {{ $last ? user : user + \', \'}}\n                  </div>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" data-ng-if="resultsChatRoomsGroups.length === 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHATS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat page-quick-sidebar-content-item-shown" ng-class="{active:messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list" >\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_CHAT\' | translate}}..." ng-model="searchMessage">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n        </div>\n        <div class="page-quick-sidebar-item">\n          <div class="page-quick-sidebar-chat-user" data-wrapper-class="page-quick-sidebar-list">\n            <div class="page-quick-sidebar-nav">\n                <a href="#" class="page-quick-sidebar-back-to-list" data-ng-click="goBack()"><i class="icon-arrow-left"></i>Back</a>\n            </div>\n            <div id="page-quick-sidebar-chat-user-messages" class="page-quick-sidebar-chat-user-messages" data-ng-style="style2" ng-scrollbars>\n              <div class="post animate-repeat" data-ng-repeat="chatMessage in chatRoom.ChatMessages | filter:searchMessage as resultsMessage" data-ng-class="chatMessage.UserId === currentUser.id ? \'in\' : \'out\'">\n                <img class="avatar" alt="" ng-src="api/users/avatar/unknown_avatar"/>\n                <div class="message">\n                  <span class="arrow"></span>\n                  <a href="#" class="name">{{chatMessage.User.fullname || chatMessage.ChatVisitor .fullname}}</a> -\n                  <span class="datetime">\n                    <time is="relative-time" datetime="{{chatMessage.createdAt}}">\n                      April 1, 2014\n                    </time>\n                  </span>\n                  <ng-emoticons class="body" emoticons-data="chatMessage.body" emoticons-options="options"/>\n                </div>\n              </div>\n\n              <div class="media-body" style="text-align: center;" data-ng-if="resultsMessage.length == 0">\n                <h5 class="media-heading"><i>{{\'MESSAGE_NO_MESSAGES_FOUND\' | translate | lowercase}}</i></h5>\n              </div>\n\n              <div class="media-body" style="text-align: center;" data-ng-if="chatRoom.status === \'CLOSED\'">\n                <h5 class="media-heading"><i>{{\'MESSAGE_CHAT_CLOSED\' | translate | lowercase}}</i></h5>\n              </div>\n\n            </div>\n            <div class="page-quick-sidebar-chat-user-form">\n              <textarea rows="3" class="form-control" style="border:none;resize: none;" placeholder="Type a message here..." ng-enter="sendMessage()" data-ng-model="message.body" data-ng-disabled="chatRoom.status === \'CLOSED\'"></textarea>\n              <div class="btn-group" style="width:100%;background-color:white">\n                <button type="button" class="btn btn-default" style="border:none" data-ng-disabled="chatRoom.status === \'CLOSED\'" data-ng-click="addAgent(chatRoom.id)"><i class="icon-plus font-blue"></i></button>\n                <button type="button" class="btn btn-default pull-right" style="border:none" data-ng-disabled="chatRoom.status === \'CLOSED\'" data-ng-click="closeChatRoom(chatRoom.id)" data-ng-show="chatRoom.type === \'external\'"><i class="icon-close font-red"></i></button>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n'),a.put("components/sidebar/sidebar.html",'<div id="page-sidebar" class="page-sidebar navbar-collapse collapse">\n  <!-- BEGIN SIDEBAR MENU -->\n  <!-- DOC: Apply "page-sidebar-menu-light" class right after "page-sidebar-menu" to enable light sidebar menu style(without borders) -->\n  <!-- DOC: Apply "page-sidebar-menu-hover-submenu" class right after "page-sidebar-menu" to enable hoverable(hover vs accordion) sub menu mode -->\n  <!-- DOC: Apply "page-sidebar-menu-closed" class right after "page-sidebar-menu" to collapse("page-sidebar-closed" class must be applied to the body element) the sidebar sub menu mode -->\n  <!-- DOC: Set data-auto-scroll="false" to disable the sidebar from auto scrolling/focusing -->\n  <!-- DOC: Set data-keep-expand="true" to keep the submenues expanded -->\n  <!-- DOC: Set data-auto-speed="200" to adjust the sub menu slide up/down speed -->\n  <ul data-ng-click="mainTab.active=true" class="page-sidebar-menu" data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200" data-ng-class="{\'page-sidebar-menu-closed\': settings.layout.pageSidebarClosed}" data-ng-init="getSidebarIntegrations()">\n    <!-- DOC: To remove the search box from the sidebar you just need to completely remove the below "sidebar-search-wrapper" LI element -->\n    <li class="sidebar-search-wrapper">\n      <!-- BEGIN RESPONSIVE QUICK SEARCH FORM -->\n      <!-- DOC: Apply "sidebar-search-bordered" class the below search form to have bordered search box -->\n      <!-- DOC: Apply "sidebar-search-bordered sidebar-search-solid" class the below search form to have bordered & solid search box -->\n      <form class="sidebar-search sidebar-search-bordered" action="extra_search.html" method="POST">\n        <a href="javascript:;" class="remove">\n          <i class="icon-close"></i>\n        </a>\n      </form>\n      <!-- END RESPONSIVE QUICK SEARCH FORM -->\n    </li>\n\n    <!-- START DASHBOARD CASE -->\n    <li class="start" data-ng-class="{active: $state.includes(\'main.dashboard\')}">\n      <a href="/dashboard/channels/voice">\n        <i class="icon-rocket"></i>\n        <span class="title">{{\'APPLICATION_DASHBOARD\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.dashboard\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END DASHBOARD CASE -->\n\n    <!-- START YOURDASHBOARD LIST CASE -->\n    <li data-ng-class="{active: $state.is(\'main.tools.yourdashboards.show\')}" data-ng-show="Auth.isAdmin()">\n      <a href="javascript:;">\n        <i class="icon-screen-desktop"></i>\n        <span class="title" >{{\'APPLICATION_YOUR_DASHBOARDS\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.tools.yourdashboards.show\') }"></span>\n      </a>\n      <ul class="sub-menu" data-ng-init="getSidebarDashboards()">\n        <li data-ng-class="{active: $stateParams.id == dashboard.id && $state.includes(\'main.tools.yourdashboards.show\')}" data-ng-repeat="dashboard in dashboards" data-ng-show="dashboard[Auth.getRole()] && dashboard.visible">\n          <a href="/tools/yourdashboards/show/{{dashboard.id}}" >\n            <i class="icon-screen-tablet"></i>\n            <span class="title" >{{dashboard.name}}  </span>\n          </a>\n        </li>\n      </ul>\n    </li>\n    <!-- END YOURDASHBOARD LIST CASE -->\n\n    <!-- START STAFF LIST CASE -->\n    <li data-ng-class="{active: $state.includes(\'main.staff\')}" data-ng-show="Auth.isAdmin()">\n      <a href="javascript:;">\n        <i class="icon-puzzle"></i>\n        <span class="title" >{{\'APPLICATION_STAFF\' | translate}}</span>\n        <span class="arrow" data-ng-class="{open: $state.includes(\'main.staff\')}"></span>\n      </a>\n      <ul class="sub-menu">\n        <!-- START USERS CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.staff.users\')}">\n          <a href="/staff/users/list">\n            <i class="icon-eye"></i>\n            <span class="title" >{{\'APPLICATION_USERS\' | translate}}</span>\n            <span data-ng-show="$state.includes(\'main.staff.users\')" class="selected"></span>\n          </a>\n        </li>\n        <!-- END USERS CASE -->\n\n        <!-- START AGENTS CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.staff.agents\')}">\n          <a href="/staff/agents/list">\n            <i class="icon-people"></i>\n            <span class="title" >{{\'APPLICATION_AGENTS\' | translate}}</span>\n            <span data-ng-show="$state.includes(\'main.staff.agents\')" class="selected"></span>\n          </a>\n        </li>\n        <!-- END AGENTS CASE -->\n\n        <!-- START AGENTS CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.staff.telephones\')}">\n          <a href="/staff/telephones/list">\n            <i class="icon-phone"></i>\n            <span class="title" >{{\'APPLICATION_TELEPHONES\' | translate}}</span>\n            <span data-ng-show="$state.includes(\'main.staff.telephones\')" class="selected"></span>\n          </a>\n        </li>\n        <!-- END AGENTS CASE -->\n\n        <!-- START TEAMS CASE -->\n        <li data-ng-class="{active: $state.includes(\'main.staff.teams\')}">\n          <a href="/staff/teams/list">\n            <i class="icon-shield"></i>\n            <span class="title" >{{\'APPLICATION_TEAMS\' | translate}}</span>\n            <span data-ng-show="$state.includes(\'main.staff.teams\')" class="selected"></span>\n          </a>\n        </li>\n        <!-- END TEAMS CASE -->\n      </ul>\n    </li>\n    <!-- END STAFF LIST CASE -->\n\n    <!-- START CONTACT MANAGER LIST CASE -->\n    <li data-ng-class="{active: $state.includes(\'main.contactmanager.contacts\')\n    || $state.includes(\'main.contactmanager.companies\')\n    || $state.includes(\'main.contactmanager.services\')}" data-ng-show="Auth.isAdmin()">\n    <a href="javascript:;">\n      <i class="icon-notebook"></i>\n      <span class="title" >{{\'APPLICATION_CONTACT_MANAGER\' | translate}}</span>\n      <span class="arrow" data-ng-class="{ open: $state.includes(\'main.contactmanager.contacts\')\n      || $state.includes(\'main.contactmanager.companies\')\n      || $state.includes(\'main.contactmanager.services\') }"></span>\n    </a>\n    <ul class="sub-menu">\n      <!-- START CONTACTS CASE -->\n      <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.contacts\')}">\n        <a href="/contactmanager/contacts/list">\n          <i class=" fa fa-users"></i>\n          <span class="title" >{{\'APPLICATION_CONTACTS\' | translate}}</span>\n          <span data-ng-show="$state.includes(\'main.contactmanager.contacts\')" class="selected"></span>\n        </a>\n      </li>\n      <!-- END CONTACTS CASE -->\n      <!-- START COMPANIES CASE -->\n      <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.companies\')}">\n        <a href="/contactmanager/companies/list">\n          <i class="icon-briefcase"></i>\n          <span class="title" >{{\'APPLICATION_COMPANIES\' | translate}}</span>\n          <span data-ng-show="$state.includes(\'main.contactmanager.companies\')" class="selected"></span>\n        </a>\n      </li>\n      <!-- END COMPANIES CASE -->\n      <!-- START SERVICES CASE -->\n      <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.services\')}">\n        <a href="/contactmanager/services/list">\n          <i class="fa fa-tty"></i>\n          <span class="title" >{{\'APPLICATION_SERVICES\' | translate}}</span>\n          <span data-ng-show="$state.includes(\'main.contactmanager.services\')" class="selected"></span>\n        </a>\n      </li>\n      <!-- END SERVICES CASE -->\n    </ul>\n  </li>\n  <!-- END CONTACT MANAGER LIST CASE -->\n\n  <!-- START CHANNEL LIST CASE -->\n  <li data-ng-class="{active: $state.includes(\'main.channels\')}">\n    <a href="javascript:;">\n      <i class="icon-directions"></i>\n      <span class="title" >{{\'APPLICATION_CHANNELS\' | translate}}</span>\n      <span class="arrow" data-ng-class="{open: $state.includes(\'main.channels\')}"></span>\n    </a>\n    <ul class="sub-menu">\n      <!-- START VOICE CASE -->\n      <li data-ng-show="Auth.isAdmin()" data-ng-class="{ active: $state.includes(\'main.channels.voice\') }">\n        <a href="javascript:;">\n          <i class="icon-earphones-alt"></i>\n          <span class="title">{{ \'APPLICATION_VOICE\' | translate}}</span>\n          <span class="arrow" data-ng-class="{ open: $state.includes(\'main.channels.voice\') }"></span>\n        </a>\n\n        <ul class="sub-menu">\n          <li data-ng-class="{active: $state.includes(\'main.channels.voice.queues\')}">\n            <a href="/channels/voice/queues/list">\n              <i class="icon-docs"></i>\n              <span class="title">{{\'APPLICATION_QUEUES\' | translate}}</span>\n            </a>\n          </li>\n          <li>\n            <a href="javascript:;">\n              <i class="icon-directions"></i>\n              <span class="title"> {{ \'APPLICATION_ROUTES\' | translate}} </span>\n              <span class="arrow" data-ng-class="{ open: $state.includes(\'main.channels.voice.routes\') }"></span>\n              <ul class="sub-menu">\n                <li data-ng-class="{active: $state.includes(\'main.channels.voice.routes.inbound\')}">\n                  <a href="/channels/voice/routes/inbound/list">\n                    <i class="icon-call-in"></i>\n                    <span class="title"> {{\'APPLICATION_INBOUND\' | translate}} </span>\n                  </a>\n                </li>\n                <li data-ng-class="{active: $state.includes(\'main.channels.voice.routes.outbound\')}">\n                  <a href="/channels/voice/routes/outbound/list">\n                    <i class="icon-call-out"></i>\n                    <span class="title"> {{\'APPLICATION_OUTBOUND\' | translate}} </span>\n                  </a>\n                </li>\n                <li data-ng-class="{active: $state.includes(\'main.channels.voice.routes.internal\')}">\n                  <a href="/channels/voice/routes/internal/list">\n                    <i class="icon-reload"></i>\n                    <span class="title"> {{\'APPLICATION_INTERNALS\' | translate}} </span>\n                  </a>\n                </li>\n              </ul>\n            </a>\n          </li>\n          <li data-ng-class="{active: $state.includes(\'main.channels.voice.contexts\')}">\n            <a href="/channels/voice/contexts/list">\n              <i class="icon-docs"></i>\n              <span class="title"> {{\'APPLICATION_CONTEXTS\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-class="{active: $state.includes(\'main.channels.voice.voicemails\')}">\n            <a href="/channels/voice/voicemails/list">\n              <i class="icon-envelope-letter"></i>\n              <span class="title"> {{\'APPLICATION_VOICEMAILS\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-class="{active: $state.includes(\'main.channels.voice.mohs\')}">\n            <a href="/channels/voice/mohs/list">\n              <i class="icon-music-tone"></i>\n              <span class="title"> {{\'APPLICATION_MOH\' | translate}} </span>\n            </a>\n          </li>\n          <!-- START RECORDING CASE -->\n          <li data-ng-class="{active: $state.includes(\'main.channels.voice.recordings\')}">\n            <a href="/channels/voice/recordings/list">\n              <i class="icon-control-play"></i>\n              <span class="title">{{\'APPLICATION_RECORDINGS\' | translate}}</span>\n            </a>\n          </li>\n          <!-- END RECORDING CASE -->\n          <!-- START REALTIME CASE -->\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.voice.realtime\')}">\n            <a href="/channels/voice/realtime/view/agents">\n              <i class="icon-energy"></i>\n              <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n            </a>\n          </li>\n          <!-- END REALTIME CASE -->\n          <!-- START CHANSPY CASE -->\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.voice.chanspy\')}">\n            <a href="/channels/voice/chanspy/list">\n              <i class="icon-magnifier"></i>\n              <span class="title" >{{\'APPLICATION_CHANSPY\' | translate}}</span>\n              <!-- <span data-ng-show="$state.includes(\'main.chanspy\')" class="selected"></span> -->\n            </a>\n          </li>\n          <!-- END CHANSPY CASE -->\n        </ul>\n      </li>\n      <!-- END VOICE CASE -->\n\n      <!-- START CHAT CASE -->\n      <li data-ng-class="{active: $state.includes(\'main.channels.chat\')}" data-ng-if="license.chat && Auth.isAdmin()">\n        <a href="javascript:;">\n          <i class="icon-bubble"></i>\n          <span class="title">{{\'APPLICATION_CHAT\' | translate}}</span>\n          <span class="arrow" data-ng-class="{open: $state.includes(\'main.channels.chat\')}"></span>\n        </a>\n        <ul class="sub-menu">\n          <li data-ng-class="{active: $state.includes(\'main.channels.chat.websites\')}">\n            <a href="/channels/chat/websites/list">\n              <i class="icon-globe"></i>\n              <span class="title"> {{\'APPLICATION_WEB_SITES\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-class="{active: $state.includes(\'main.channels.chat.queues\')}">\n            <a href="/channels/chat/queues/list">\n              <i class="icon-docs"></i>\n              <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-class="{active: $state.includes(\'main.channels.chat.online\')}">\n            <a href="/channels/chat/online/list">\n              <i class="icon-login"></i>\n              <span class="title"> {{\'APPLICATION_ONLINE_MESSAGES\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-class="{active: $state.includes(\'main.channels.chat.offline\')}">\n            <a href="/channels/chat/offline/list">\n              <i class="icon-logout"></i>\n              <span class="title"> {{\'APPLICATION_OFFLINE_MESSAGES\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.chat.realtime\')}">\n            <a href="/channels/chat/realtime/view/agents">\n              <i class="icon-energy"></i>\n              <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n            </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END CHAT CASE -->\n\n      <!-- START MAIL CASE -->\n      <li data-ng-class="{active: $state.includes(\'main.channels.mail\')}" data-ng-if="license.mail">\n        <a href="javascript:;">\n          <i class="icon-envelope"></i>\n          <span class="title">{{\'APPLICATION_MAIL\' | translate}}</span>\n          <span class="arrow" data-ng-class="{ open: $state.includes(\'main.channels.mail\') }"></span>\n        </a>\n\n        <ul class="sub-menu">\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.mail.accounts\') || $state.includes(\'main.channels.mail.account\')}">\n            <a href="/channels/mail/accounts/list">\n              <i class="icon-notebook"></i>\n              <span class="title"> {{\'APPLICATION_ACCOUNTS\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.mail.queues\') || $state.includes(\'main.channels.mail.queue\')}">\n            <a href="/channels/mail/queues/list">\n              <i class="icon-docs"></i>\n              <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-class="{active: $state.includes(\'main.channels.mail.inbox\')}">\n            <a href="/channels/mail/inbox/list">\n              <i class="icon-note"></i>\n              <span class="title"> {{\'APPLICATION_INBOX\' | translate}} </span>\n            </a>\n          </li>\n          <!-- START REALTIME CASE -->\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.mail.realtime\')}">\n            <a href="/channels/mail/realtime/view/agents">\n              <i class="icon-energy"></i>\n              <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n            </a>\n          </li>\n          <!-- END REALTIME CASE -->\n        </ul>\n      </li>\n      <!-- END MAIL CASE -->\n\n      <!-- START FAX CASE -->\n      <li data-ng-class="{active: $state.includes(\'main.channels.fax\')}" data-ng-if="license.fax">\n        <a href="javascript:;">\n          <i class="icon-paper-plane"></i>\n          <span class="title"> {{ \'APPLICATION_FAX\' | translate}}</span>\n          <span class="arrow" data-ng-class="{ open: $state.includes(\'main.channels.fax\') }"></span>\n        </a>\n        <ul class="sub-menu">\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.fax.accounts\')}">\n            <a href="/channels/fax/accounts/list">\n              <i class="icon-notebook"></i>\n              <span class="title"> {{ \'APPLICATION_ACCOUNTS\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.fax.queues\')}">\n            <a href="/channels/fax/queues/list">\n              <i class="icon-docs"></i>\n              <span class="title"> {{ \'APPLICATION_QUEUES\' | translate }} </span>\n            </a>\n          </li>\n          <li data-ng-class="{active: $state.includes(\'main.channels.fax.inbox\')}">\n            <a href="/channels/fax/inbox/incoming">\n              <i class="icon-note"></i>\n              <span class="title"> {{ \'APPLICATION_INBOX\' | translate }} </span>\n            </a>\n          </li>\n          <!-- START REALTIME CASE -->\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.fax.realtime\')}">\n            <a href="/channels/fax/realtime/view/agents">\n              <i class="icon-energy"></i>\n              <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n            </a>\n          </li>\n          <!-- END REALTIME CASE -->\n        </ul>\n      </li>\n      <!-- END FAX CASE -->\n    </ul>\n  </li>\n  <!-- END CHANNEL LIST CASE -->\n\n  <!-- START CALLYSQUARE CASE -->\n  <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.square\')}">\n    <a href="javascript:;">\n      <i class="fa fa-superscript"></i>\n      <span class="title" >{{\'APPLICATION_CALLYSQUARE\' | translate}}</span>\n      <span class="arrow"></span>\n    </a>\n    <ul class="sub-menu">\n      <li data-ng-class="{active: $state.includes(\'main.square.projects\')}">\n        <a href="/square/projects/list">\n          <i class="fa fa-slack"></i>\n          <span class="title" >{{\'APPLICATION_PROJECTS\' | translate}}  </span>\n        </a>\n      </li>\n      <li data-ng-class="{active: $state.includes(\'main.square.odbc\')}">\n        <a href="/square/odbc/list">\n          <i class="fa fa-database"></i>\n          <span class="title" >{{\'APPLICATION_ODBC\' | translate}}  </span>\n        </a>\n      </li>\n    </ul>\n  </li>\n  <!-- END CALLYSQUARE CASE -->\n\n  <!-- START ANALYTIC LIST CASE -->\n  <li data-ng-class="{active: $state.includes(\'main.analytics.reports\')\n  || $state.includes(\'main.analytics.extracted\')\n  || $state.includes(\'main.analytics.metrics\')}" data-ng-show="Auth.isAdmin()">\n  <a href="javascript:;">\n    <i class="icon-calculator"></i>\n    <span class="title" >{{\'APPLICATION_ANALYTICS\' | translate}}</span>\n    <span class="arrow" data-ng-class="{ open: $state.includes(\'main.analytics.reports\')\n    || $state.includes(\'main.analytics.extracted\')\n    || $state.includes(\'main.analytics.metrics\') }"></span>\n  </a>\n  <ul class="sub-menu">\n    <!-- START REPORT CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.analytics.reports\')}">\n      <a href="/analytics/reports/list">\n        <i class="icon-book-open"></i>\n        <span class="title" >{{\'APPLICATION_REPORTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.analytics.reports\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END REPORT CASE -->\n    <!-- START EXTRA REPORT CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.analytics.extracted\')}">\n      <a href="/analytics/extracted/list">\n        <i class="fa fa-file-pdf-o"></i>\n        <span class="title" >{{\'APPLICATION_EXTRACTED_REPORTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.analytics.extracted\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END EXTRA REPORT CASE -->\n    <!-- START METRICS CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.analytics.metrics\')}">\n      <a href="/analytics/metrics/list">\n        <i class="icon-calculator"></i>\n        <span class="title" >{{\'APPLICATION_METRICS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.metrics.reports\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END METRICS CASE -->\n  </ul>\n</li>\n<!-- END ANALYTIC LIST CASE -->\n\n<!-- START TOOLS LIST CASE -->\n<li data-ng-class="{active: $state.includes(\'main.tools\') && !$state.is(\'main.tools.yourdashboards.show\')}" data-ng-show="Auth.isAdmin()">\n  <a href="javascript:;">\n    <i class="icon-wrench"></i>\n    <span class="title" >{{\'APPLICATION_TOOLS\' | translate}}</span>\n    <span class="arrow" data-ng-class="{ open: $state.includes(\'main.tools\') && !$state.is(\'main.tools.yourdashboards.show\')}"></span>\n  </a>\n  <ul class="sub-menu">\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.triggers\')}">\n      <a href="/tools/triggers/list">\n        <i class="icon-bulb"></i>\n        <span class="title"> {{\'APPLICATION_TRIGGERS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.automations\')}">\n      <a href="/tools/automations/list">\n        <i class="icon-settings"></i>\n        <span class="title"> {{\'APPLICATION_AUTOMATIONS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.trunks\')}">\n      <a href="/tools/trunks/list">\n        <i class="icon-link"></i>\n        <span class="title"> {{\'APPLICATION_TRUNKS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.intervals\')}">\n      <a href="/tools/intervals/list">\n        <i class="icon-clock"></i>\n        <span class="title"> {{\'APPLICATION_INTERVALS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.variables\')}">\n      <a href="/tools/variables/list">\n        <i class="fa fa-eye"></i>\n        <span class="title" >{{\'APPLICATION_VARIABLES\' | translate}}  </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.tags\')}">\n      <a href="/tools/tags/list">\n        <i class="icon-tag"></i>\n        <span class="title" >{{\'APPLICATION_TAGS\' | translate}}  </span>\n      </a>\n    </li>\n    <!-- START TEMPLATE CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.templates\')}">\n      <a href="/tools/templates/list">\n        <i class="icon-docs"></i>\n        <span class="title"> {{\'APPLICATION_TEMPLATES\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END TEMPLATE CASE -->\n\n    <!-- START PAUSE CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.pauses\')}">\n      <a href="/tools/pauses/list">\n        <i class="icon-control-pause"></i>\n        <span class="title"> {{\'APPLICATION_PAUSES\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END PAUSE CASE -->\n    <!-- START ANSWER CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.answers\')}">\n      <a href="/tools/answers/list">\n        <i class="icon-magic-wand"></i>\n        <span class="title"> {{\'APPLICATION_CANNED_ANSWERS\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END ANSWER CASE -->\n    <!-- START DASHBOARD MANAGER CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.yourdashboards\') && !$state.is(\'main.tools.yourdashboards.show\')}">\n      <a href="/tools/yourdashboards/list">\n        <i class="icon-grid"></i>\n        <span class="title"> {{\'APPLICATION_DASHBOARDS_MANAGER\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END DASHBOARD MANAGER CASE -->\n    <!-- START SOUND CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.sounds\')}">\n      <a href="/tools/sounds/list">\n        <i class="icon-music-tone-alt"></i>\n        <span class="title" >{{\'APPLICATION_SOUNDS\' | translate}}</span>\n        <!-- <span data-ng-show="$state.includes(\'main.sounds\')" class="selected"></span> -->\n      </a>\n    </li>\n    <!-- END SOUND CASE -->\n  </ul>\n</li>\n<!-- END TOOLS LIST CASE -->\n\n<!-- START JSCRIPTY LIST -->\n<li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.jscripty\')}">\n  <a href="javascript:;">\n    <i class="icon-note"></i>\n    <span class="title" >{{\'APPLICATION_JSCRIPTY\' | translate}} <span class="badge">Beta</span></span>\n    <span class="arrow"></span>\n  </a>\n  <ul class="sub-menu">\n    <!-- START PROJECTS CASE -->\n    <li data-ng-class="{active: $state.includes(\'main.jscripty.projects\')}">\n      <a href="/jscripty/projects/list">\n        <i class="fa fa-slack"></i>\n        <span class="title" >{{\'APPLICATION_PROJECTS\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END PROJECTS CASE -->\n  </ul>\n</li>\n<!-- END JSCRIPTY LIST -->\n\n<!-- START SETTINGS LIST -->\n<li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting\')}">\n  <a href="javascript:;">\n    <i class="icon-settings"></i>\n    <span class="title" >{{\'APPLICATION_SETTINGS\' | translate}}</span>\n    <span class="arrow"></span>\n  </a>\n  <ul class="sub-menu">\n    <!-- START UPDATES CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting.updates\')}">\n      <a href="/setting/updates/list">\n        <i class="icon-cloud-download"></i>\n        <span class="title" >{{\'APPLICATION_UPDATES\' | translate}}</span>\n        <!-- <span data-ng-show="$state.includes(\'main.updates\')" class="selected"></span> -->\n      </a>\n    </li>\n    <!-- END UPDATES CASE -->\n\n    <!-- START SMTP CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting.smtp\')}">\n      <a href="/setting/smtp/view">\n        <i class="icon-envelope"></i>\n        <span class="title">SMTP</span>\n        <!-- <span data-ng-show="$state.includes(\'main.smtp\')" class="selected"></span> -->\n      </a>\n    </li>\n    <!-- END SMTP CASE -->\n\n    <!-- START LICENSE CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting.license\')}">\n      <a href="/setting/license/view">\n        <i class="icon-info"></i>\n        <span class="title"> {{\'APPLICATION_LICENSE\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END LICENSE CASE -->\n  </ul>\n</li>\n<!-- END SETTINGS LIST -->\n\n<!-- START INTEGRATION CASE -->\n<li data-ng-repeat="integration in integrations" data-ng-if="integration.active" data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.{{integration.state}}\')}">\n  <a href="/{{integration.state}}/list">\n    <i class="icon-handbag"></i>\n    <span class="title" >{{integration.name}}</span>\n    <span data-ng-show="$state.includes(\'main.{{integration.state}}\')" class="selected"></span>\n  </a>\n</li>\n\n<li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.is(\'main.market\')}">\n  <a href="/market">\n    <i class="icon-handbag"></i>\n    <span class="title" translate>Market Place</span>\n    <span data-ng-show="$state.includes(\'main.market\')" class="selected"></span>\n  </a>\n</li>\n<!-- END INTEGRATIONS CASE -->\n\n</ul>\n<!-- END SIDEBAR MENU -->\n</div>\n');
+a.put("components/footer/footer.html",'<!-- BEGIN FOOTER -->\n<div class="page-footer" data-ng-init="initFooter()">\n  <div class="page-footer-inner">\n     xCALLY Motion v. {{info.version}} | {{year}} - {{year + 1}} &copy; Powered by Xenialab\n  </div>\n  <div class="scroll-to-top">\n    <i class="icon-arrow-up"></i>\n  </div>\n</div>\n<!-- END FOOTER -->\n'),a.put("components/header/header.html",'<!-- BEGIN HEADER INNER -->\n<div class="page-header-inner" data-ng-init="initHeader()">\n  <!-- BEGIN LOGO -->\n  <div class="page-logo">\n    <a href="/">\n      <img src="assets/images/logo.png" alt="logo" class="logo-default"/>\n    </a>\n    <div class="menu-toggler sidebar-toggler" data-ng-click="toogleSidebar()">\n      <!-- DOC: Remove the above "hide" to enable the sidebar toggler button on header -->\n    </div>\n  </div>\n  <!-- END LOGO -->\n  <!-- BEGIN HEADER SEARCH BOX -->\n  <!-- DOC: Apply "search-form-expanded" right after the "search-form" class to have half expanded search box -->\n  <form class="search-form hide" action="extra_search.html" method="GET">\n    <div class="input-group">\n      <input type="text" class="form-control" placeholder="Search..." name="query">\n      <span class="input-group-btn">\n        <a href="javascript:;" class="btn submit"><i class="icon-magnifier"></i></a>\n      </span>\n    </div>\n  </form>\n  <!-- END HEADER SEARCH BOX -->\n  <!-- BEGIN RESPONSIVE MENU TOGGLER -->\n  <a href="javascript:;" class="menu-toggler responsive-toggler" data-toggle="collapse" data-target=".navbar-collapse">\n  </a>\n  <!-- END RESPONSIVE MENU TOGGLER -->\n  <!-- BEGIN TOP NAVIGATION MENU -->\n  <div class="top-menu">\n    <ul class="nav navbar-nav pull-right">\n      <!-- BEGIN LANGUAGE BAR -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-language">\n        <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n          <img ng-src="assets/images/flags/{{ language }}.png">\n          <i class="fa fa-angle-down"></i>\n        </a>\n        <ul class="dropdown-menu dropdown-menu-default">\n          <li>\n            <a href="#" ng-click="changeLanguage(\'ar\')">\n              <img alt="" src="assets/images/flags/ar.png"> {{\'APPLICATION_ARABIC\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'de\')">\n              <img alt="" src="assets/images/flags/de.png"> {{\'APPLICATION_GERMAN\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'en_EN\')">\n              <img alt="" src="assets/images/flags/en_EN.png"> {{\'APPLICATION_ENGLISH\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'es\')">\n              <img alt="" src="assets/images/flags/es.png"> {{\'APPLICATION_SPANISH\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'fr\')">\n              <img alt="" src="assets/images/flags/fr.png"> {{\'APPLICATION_FRENCH\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'it\')">\n              <img alt="" src="assets/images/flags/it.png"> {{\'APPLICATION_ITALIAN\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'ja\')">\n              <img alt="" src="assets/images/flags/ja.png"> {{\'APPLICATION_JAPANASE\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'ko\')">\n              <img alt="" src="assets/images/flags/ko.png"> {{\'APPLICATION_KOREAN\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'pt\')">\n              <img alt="" src="assets/images/flags/pt.png"> {{\'APPLICATION_PORTUGUESE\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'ru\')">\n              <img alt="" src="assets/images/flags/ru.png"> {{\'APPLICATION_RUSSIAN\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'sv\')">\n              <img alt="" src="assets/images/flags/sv.png"> {{\'APPLICATION_SWEDISH\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'zh-CN\')">\n              <img alt="" src="assets/images/flags/zh-CN.png"> {{\'APPLICATION_CHINESE_SIMPLIFIED\' | translate}}\n            </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'zh-TW\')">\n              <img alt="" src="assets/images/flags/zh-TW.png"> {{\'APPLICATION_CHINESE_TRADITIONAL\' | translate}}\n            </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END LANGUAGE BAR -->\n      <!-- BEGIN USER LOGIN DROPDOWN -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-user">\n        <a href="#" class="dropdown-toggle" dropdown-menu-hover data-toggle="dropdown" data-close-others="true">\n          <img class="img-circle" data-ng-src="api/users/avatar/{{getCurrentUser().userpic || \'unknown_avatar\'}}" alt="...">\n          <span class="username username-hide-on-mobile">\n            {{ getCurrentUser().fullname }}\n          </span>\n          <i class="fa fa-angle-down"></i>\n        </a>\n        <ul class="dropdown-menu dropdown-menu-default">\n          <li>\n            <a ng-href=" {{isAdmin() ? \'/staff/users/view/\'+getCurrentUser().id+\'/account\' : \'/staff/agents/view/\'+getCurrentUser().id+\'/account\'}}">\n              <i class="icon-key"></i>{{\'APPLICATION_CHANGE_PASSWORD\' | translate}}\n            </a>\n          </li>\n          <li data-ng-click="logout()">\n            <a href="#">\n              <i class="icon-logout"></i> Log Out\n            </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END USER LOGIN DROPDOWN -->\n      <!-- BEGIN QUICK SIDEBAR TOGGLER -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-quick-sidebar-toggler" data-ng-click="toggleQuickSidebar()">\n        <a href="#" class="dropdown-toggle">\n          <i class="icon-logout"></i>\n        </a>\n      </li>\n      <!-- END QUICK SIDEBAR TOGGLER -->\n    </ul>\n  </div>\n  <!-- END TOP NAVIGATION MENU -->\n</div>\n<!-- END HEADER INNER -->\n'),a.put("components/modal/delete.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text"></p>\n  <div ng-if="modal.html" ng-bind-html="modal.html"></div>\n</div>\n<div class="modal-footer">\n  <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button>\n</div>\n'),a.put("components/quickSidebar/modal/add.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title | translate" class="modal-title"></h4>\n</div>\n\n<div class="modal-body">\n  <div class="portlet box blue">\n              <div class="portlet-title">\n                   <div class="caption">\n                         <i class="icon-people"></i>{{\'APPLICATION_SELECTED_AGENTS\' | translate}}\n                    </div>\n                </div>\n                <div class="portlet-body">\n                    <ul>\n                          <li data-ng-repeat="item in items">\n                                    {{item.fullname}}\n                            </li>\n\n        <li data-ng-repeat="item in selected.items">\n                                  {{item.fullname}}\n                            </li>\n                 </ul>\n         </div>\n        </div>\n\n  <ui-select multiple name="items" ng-model="selected.items" theme="bootstrap">\n    <ui-select-match placeholder="{{\'APPLICATION_SELECTED_AGENTS\' | translate}}">{{$item.fullname}}</ui-select-match>\n    <ui-select-choices repeat="{id: agent.id, fullname: agent.fullname} as agent in agents.rows | filter: $select.search">\n      {{agent.fullname}}\n    </ui-select-choices>\n  </ui-select>\n</div>\n\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()" data-ng-show="selected.items.length">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("components/quickSidebar/modal/close.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title | translate" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text | translate"></p>\n  <!-- <div ng-if="modal.html" ng-bind-html="modal.html"></div> -->\n</div>\n<div class="modal-footer">\n  <button class="btn btn-danger" type="button" ng-click="ok()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n  <!-- <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button> -->\n</div>\n'),a.put("components/quickSidebar/quickSidebar.html",'<div class="page-quick-sidebar">\n  <div class="nav-justified">\n    <ul class="nav nav-tabs nav-justified">\n      <li data-ng-class="{active:currentTab==0}" data-ng-click="goToTab(0)">\n        <a href="#">\n          <i class="icon-people"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==1}" data-ng-click="goToTab(1)">\n        <a href="#">\n        <i class="icon-eye"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==2}" data-ng-click="goToTab(2)">\n        <a href="#">\n        <i class="icon-globe"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==3}" data-ng-click="goToTab(3)">\n        <a href="#">\n        <i class="icon-bubbles"></i>\n        </a>\n      </li>\n    </ul>\n    <div class="tab-content">\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==0 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list" >\n          <div class="quicksidebar-search">\n            <div class="input-group">\n                                                       <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_AGENT\' | translate}}..." ng-model="searchAgent">\n                                                       <span class="input-group-btn">\n                                                        <i class="icon-magnifier"></i>\n                                                        </span>\n                                               </div>\n          </div>\n          <ul class="media-list list-items" data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="agent in agents.rows | orderBy:\'-online\' | filter:searchAgent as resultsAgent" data-ng-if="agent.id !== currentUser.id">\n              <img class="media-object" data-ng-src="api/users/avatar/{{agent.userpic ? agent.userpic : \'unknown_avatar\'}}" alt="{{agent.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(agent.id)">\n                <h4 class="media-heading"><span class="item-status">{{agent.fullname | characters:15 :true}} {{agent.internal}}</h4>\n                <div class="media-heading-small">\n                   <span class="badge badge-empty" data-ng-class="agent.online ? \'badge-success\' : \'badge-danger\'"></span></span> {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{agent.updatedAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="agents.rows.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_AGENTS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="resultsAgent.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_AGENTS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==1 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." ng-model="searchUser">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="user in users.rows | orderBy:\'-online\' | filter:searchUser as resultsUser" data-ng-if="user.id !== currentUser.id">\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(user.id)">\n                <h4 class="media-heading">{{user.fullname | characters:15 :true}} {{user.internal}}</h4>\n                <div class="media-heading-small">\n                   <span class="badge badge-empty" data-ng-class="user.online ? \'badge-success\' : \'badge-danger\'"></span> {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{user.updatedAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="users.rows.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_USERS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="resultsUser.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_USERS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==2 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_CHAT\' | translate}}..." data-ng-model="searchChatRoomsExternals">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="chatRoom in chatRooms | QuickSidebarFilterUsersLowerThan:2 | filter:{type:\'external\'} | filter:searchChatRoomsExternals as resultsChatRoomsExternals">\n              <div class="media-status">\n                <i class="icon icon-close" data-ng-show="chatRoom.status === \'CLOSED\'"></i>\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(null, chatRoom.id)">\n                <h4 class="media-heading">{{chatRoom.ChatVisitor.fullname}}</h4>\n                <div class="media-heading-small">\n                   {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{chatRoom.createdAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" data-ng-if="resultsChatRoomsExternals.length === 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHATS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==3 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_GROUP\' | translate}}..." data-ng-model="searchChatRoomsGroups">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="chatRoom in chatRooms | QuickSidebarFilterUsersGreaterThan:2 | filter:searchChatRoomsGroups as resultsChatRoomsGroups">\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(null, chatRoom.id)">\n                <h4 class="media-heading">{{chatRoom.ChatVisitor.fullname}}</h4>\n                <div class="media-heading-small">\n                   {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{chatRoom.updatedAt}}">April 1, 2014</time>\n                </div>\n                <div class="media-heading-small">\n                  <div data-ng-repeat="user in chatRoom.Users | map: \'fullname\'" class="inline">\n                    {{ $last ? user : user + \', \'}}\n                  </div>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" data-ng-if="resultsChatRoomsGroups.length === 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHATS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat page-quick-sidebar-content-item-shown" ng-class="{active:messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list" >\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_CHAT\' | translate}}..." ng-model="searchMessage">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n        </div>\n        <div class="page-quick-sidebar-item">\n          <div class="page-quick-sidebar-chat-user" data-wrapper-class="page-quick-sidebar-list">\n            <div class="page-quick-sidebar-nav">\n                <a href="#" class="page-quick-sidebar-back-to-list" data-ng-click="goBack()"><i class="icon-arrow-left"></i>Back</a>\n            </div>\n            <div id="page-quick-sidebar-chat-user-messages" class="page-quick-sidebar-chat-user-messages" data-ng-style="style2" ng-scrollbars>\n              <div class="post animate-repeat" data-ng-repeat="chatMessage in chatRoom.ChatMessages | filter:searchMessage as resultsMessage" data-ng-class="chatMessage.UserId === currentUser.id ? \'in\' : \'out\'">\n                <img class="avatar" alt="" ng-src="api/users/avatar/unknown_avatar"/>\n                <div class="message">\n                  <span class="arrow"></span>\n                  <a href="#" class="name">{{chatMessage.User.fullname || chatMessage.ChatVisitor .fullname}}</a> -\n                  <span class="datetime">\n                    <time is="relative-time" datetime="{{chatMessage.createdAt}}">\n                      April 1, 2014\n                    </time>\n                  </span>\n                  <ng-emoticons class="body" emoticons-data="chatMessage.body" emoticons-options="options"/>\n                </div>\n              </div>\n\n              <div class="media-body" style="text-align: center;" data-ng-if="resultsMessage.length == 0">\n                <h5 class="media-heading"><i>{{\'MESSAGE_NO_MESSAGES_FOUND\' | translate | lowercase}}</i></h5>\n              </div>\n\n              <div class="media-body" style="text-align: center;" data-ng-if="chatRoom.status === \'CLOSED\'">\n                <h5 class="media-heading"><i>{{\'MESSAGE_CHAT_CLOSED\' | translate | lowercase}}</i></h5>\n              </div>\n\n            </div>\n            <div class="page-quick-sidebar-chat-user-form">\n              <textarea rows="3" class="form-control" style="border:none;resize: none;" placeholder="Type a message here..." ng-enter="sendMessage()" data-ng-model="message.body" data-ng-disabled="chatRoom.status === \'CLOSED\'"></textarea>\n              <div class="btn-group" style="width:100%;background-color:white">\n                <button type="button" class="btn btn-default" style="border:none" data-ng-disabled="chatRoom.status === \'CLOSED\'" data-ng-click="addAgent(chatRoom.id)"><i class="icon-plus font-blue"></i></button>\n                <button type="button" class="btn btn-default pull-right" style="border:none" data-ng-disabled="chatRoom.status === \'CLOSED\'" data-ng-click="closeChatRoom(chatRoom.id)" data-ng-show="chatRoom.type === \'external\'"><i class="icon-close font-red"></i></button>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n'),a.put("components/sidebar/sidebar.html",'<div id="page-sidebar" class="page-sidebar navbar-collapse collapse">\n  <!-- BEGIN SIDEBAR MENU -->\n  <!-- DOC: Apply "page-sidebar-menu-light" class right after "page-sidebar-menu" to enable light sidebar menu style(without borders) -->\n  <!-- DOC: Apply "page-sidebar-menu-hover-submenu" class right after "page-sidebar-menu" to enable hoverable(hover vs accordion) sub menu mode -->\n  <!-- DOC: Apply "page-sidebar-menu-closed" class right after "page-sidebar-menu" to collapse("page-sidebar-closed" class must be applied to the body element) the sidebar sub menu mode -->\n  <!-- DOC: Set data-auto-scroll="false" to disable the sidebar from auto scrolling/focusing -->\n  <!-- DOC: Set data-keep-expand="true" to keep the submenues expanded -->\n  <!-- DOC: Set data-auto-speed="200" to adjust the sub menu slide up/down speed -->\n  <ul data-ng-click="mainTab.active=true" class="page-sidebar-menu" data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200" data-ng-class="{\'page-sidebar-menu-closed\': settings.layout.pageSidebarClosed}" data-ng-init="getSidebarIntegrations()">\n    <!-- DOC: To remove the search box from the sidebar you just need to completely remove the below "sidebar-search-wrapper" LI element -->\n    <li class="sidebar-search-wrapper">\n      <!-- BEGIN RESPONSIVE QUICK SEARCH FORM -->\n      <!-- DOC: Apply "sidebar-search-bordered" class the below search form to have bordered search box -->\n      <!-- DOC: Apply "sidebar-search-bordered sidebar-search-solid" class the below search form to have bordered & solid search box -->\n      <form class="sidebar-search sidebar-search-bordered" action="extra_search.html" method="POST">\n        <a href="javascript:;" class="remove">\n          <i class="icon-close"></i>\n        </a>\n      </form>\n      <!-- END RESPONSIVE QUICK SEARCH FORM -->\n    </li>\n\n    <!-- START DASHBOARD CASE -->\n    <li class="start" data-ng-class="{active: $state.includes(\'main.dashboard\')}">\n      <a href="/dashboard/channels/voice">\n        <i class="icon-rocket"></i>\n        <span class="title">{{\'APPLICATION_DASHBOARD\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.dashboard\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END DASHBOARD CASE -->\n\n    <!-- START YOURDASHBOARD LIST CASE -->\n    <li data-ng-class="{active: $state.is(\'main.tools.yourdashboards.show\')}" data-ng-show="Auth.isAdmin()">\n      <a href="javascript:;">\n        <i class="icon-screen-desktop"></i>\n        <span class="title" >{{\'APPLICATION_YOUR_DASHBOARDS\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.tools.yourdashboards.show\') }"></span>\n      </a>\n      <ul class="sub-menu" data-ng-init="getSidebarDashboards()">\n        <li data-ng-class="{active: $stateParams.id == dashboard.id && $state.includes(\'main.tools.yourdashboards.show\')}" data-ng-repeat="dashboard in dashboards" data-ng-show="dashboard[Auth.getRole()] && dashboard.visible">\n          <a href="/tools/yourdashboards/show/{{dashboard.id}}" >\n            <i class="icon-screen-tablet"></i>\n            <span class="title" >{{dashboard.name}}  </span>\n          </a>\n        </li>\n      </ul>\n    </li>\n    <!-- END YOURDASHBOARD LIST CASE -->\n\n    <!-- START STAFF LIST CASE -->\n    <li data-ng-class="{active: $state.includes(\'main.staff\')}" data-ng-show="Auth.isAdmin()">\n      <a href="javascript:;">\n        <i class="icon-puzzle"></i>\n        <span class="title" >{{\'APPLICATION_STAFF\' | translate}}</span>\n        <span class="arrow" data-ng-class="{open: $state.includes(\'main.staff\')}"></span>\n      </a>\n      <ul class="sub-menu">\n        <!-- START USERS CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.staff.users\')}">\n          <a href="/staff/users/list">\n            <i class="icon-eye"></i>\n            <span class="title" >{{\'APPLICATION_USERS\' | translate}}</span>\n            <span data-ng-show="$state.includes(\'main.staff.users\')" class="selected"></span>\n          </a>\n        </li>\n        <!-- END USERS CASE -->\n\n        <!-- START AGENTS CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.staff.agents\')}">\n          <a href="/staff/agents/list">\n            <i class="icon-people"></i>\n            <span class="title" >{{\'APPLICATION_AGENTS\' | translate}}</span>\n            <span data-ng-show="$state.includes(\'main.staff.agents\')" class="selected"></span>\n          </a>\n        </li>\n        <!-- END AGENTS CASE -->\n\n        <!-- START AGENTS CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.staff.telephones\')}">\n          <a href="/staff/telephones/list">\n            <i class="icon-phone"></i>\n            <span class="title" >{{\'APPLICATION_TELEPHONES\' | translate}}</span>\n            <span data-ng-show="$state.includes(\'main.staff.telephones\')" class="selected"></span>\n          </a>\n        </li>\n        <!-- END AGENTS CASE -->\n\n        <!-- START TEAMS CASE -->\n        <li data-ng-class="{active: $state.includes(\'main.staff.teams\')}">\n          <a href="/staff/teams/list">\n            <i class="icon-shield"></i>\n            <span class="title" >{{\'APPLICATION_TEAMS\' | translate}}</span>\n            <span data-ng-show="$state.includes(\'main.staff.teams\')" class="selected"></span>\n          </a>\n        </li>\n        <!-- END TEAMS CASE -->\n      </ul>\n    </li>\n    <!-- END STAFF LIST CASE -->\n\n    <!-- START CONTACT MANAGER LIST CASE -->\n    <li data-ng-class="{active: $state.includes(\'main.contactmanager.contacts\')\n    || $state.includes(\'main.contactmanager.companies\')\n    || $state.includes(\'main.contactmanager.lists\')}" data-ng-show="Auth.isAdmin()">\n    <a href="javascript:;">\n      <i class="icon-notebook"></i>\n      <span class="title" >{{\'APPLICATION_CONTACT_MANAGER\' | translate}}</span>\n      <span class="arrow" data-ng-class="{ open: $state.includes(\'main.contactmanager.contacts\')\n      || $state.includes(\'main.contactmanager.companies\')\n      || $state.includes(\'main.contactmanager.listss\') }"></span>\n    </a>\n    <ul class="sub-menu">\n      <!-- START CONTACTS CASE -->\n      <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.contacts\')}">\n        <a href="/contactmanager/contacts/list">\n          <i class=" fa fa-users"></i>\n          <span class="title" >{{\'APPLICATION_CONTACTS\' | translate}}</span>\n          <span data-ng-show="$state.includes(\'main.contactmanager.contacts\')" class="selected"></span>\n        </a>\n      </li>\n      <!-- END CONTACTS CASE -->\n      <!-- START COMPANIES CASE -->\n      <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.companies\')}">\n        <a href="/contactmanager/companies/list">\n          <i class="icon-briefcase"></i>\n          <span class="title" >{{\'APPLICATION_COMPANIES\' | translate}}</span>\n          <span data-ng-show="$state.includes(\'main.contactmanager.companies\')" class="selected"></span>\n        </a>\n      </li>\n      <!-- END COMPANIES CASE -->\n      <!-- START LISTS CASE -->\n      <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.lists\')}">\n        <a href="/contactmanager/lists/list">\n          <i class="fa fa-tty"></i>\n          <span class="title" >{{\'APPLICATION_LISTS\' | translate}}</span>\n          <span data-ng-show="$state.includes(\'main.contactmanager.lists\')" class="selected"></span>\n        </a>\n      </li>\n      <!-- END LISTS CASE -->\n    </ul>\n  </li>\n  <!-- END CONTACT MANAGER LIST CASE -->\n\n  <!-- START CHANNEL LIST CASE -->\n  <li data-ng-class="{active: $state.includes(\'main.channels\')}">\n    <a href="javascript:;">\n      <i class="icon-directions"></i>\n      <span class="title" >{{\'APPLICATION_CHANNELS\' | translate}}</span>\n      <span class="arrow" data-ng-class="{open: $state.includes(\'main.channels\')}"></span>\n    </a>\n    <ul class="sub-menu">\n      <!-- START VOICE CASE -->\n      <li data-ng-show="Auth.isAdmin()" data-ng-class="{ active: $state.includes(\'main.channels.voice\') }">\n        <a href="javascript:;">\n          <i class="icon-earphones-alt"></i>\n          <span class="title">{{ \'APPLICATION_VOICE\' | translate}}</span>\n          <span class="arrow" data-ng-class="{ open: $state.includes(\'main.channels.voice\') }"></span>\n        </a>\n\n        <ul class="sub-menu">\n          <li data-ng-class="{active: $state.includes(\'main.channels.voice.queues\')}">\n            <a href="/channels/voice/queues/list">\n              <i class="icon-docs"></i>\n              <span class="title">{{\'APPLICATION_QUEUES\' | translate}}</span>\n            </a>\n          </li>\n          <li>\n            <a href="javascript:;">\n              <i class="icon-directions"></i>\n              <span class="title"> {{ \'APPLICATION_ROUTES\' | translate}} </span>\n              <span class="arrow" data-ng-class="{ open: $state.includes(\'main.channels.voice.routes\') }"></span>\n              <ul class="sub-menu">\n                <li data-ng-class="{active: $state.includes(\'main.channels.voice.routes.inbound\')}">\n                  <a href="/channels/voice/routes/inbound/list">\n                    <i class="icon-call-in"></i>\n                    <span class="title"> {{\'APPLICATION_INBOUND\' | translate}} </span>\n                  </a>\n                </li>\n                <li data-ng-class="{active: $state.includes(\'main.channels.voice.routes.outbound\')}">\n                  <a href="/channels/voice/routes/outbound/list">\n                    <i class="icon-call-out"></i>\n                    <span class="title"> {{\'APPLICATION_OUTBOUND\' | translate}} </span>\n                  </a>\n                </li>\n                <li data-ng-class="{active: $state.includes(\'main.channels.voice.routes.internal\')}">\n                  <a href="/channels/voice/routes/internal/list">\n                    <i class="icon-reload"></i>\n                    <span class="title"> {{\'APPLICATION_INTERNALS\' | translate}} </span>\n                  </a>\n                </li>\n              </ul>\n            </a>\n          </li>\n          <li data-ng-class="{active: $state.includes(\'main.channels.voice.contexts\')}">\n            <a href="/channels/voice/contexts/list">\n              <i class="icon-docs"></i>\n              <span class="title"> {{\'APPLICATION_CONTEXTS\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-class="{active: $state.includes(\'main.channels.voice.voicemails\')}">\n            <a href="/channels/voice/voicemails/list">\n              <i class="icon-envelope-letter"></i>\n              <span class="title"> {{\'APPLICATION_VOICEMAILS\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-class="{active: $state.includes(\'main.channels.voice.mohs\')}">\n            <a href="/channels/voice/mohs/list">\n              <i class="icon-music-tone"></i>\n              <span class="title"> {{\'APPLICATION_MOH\' | translate}} </span>\n            </a>\n          </li>\n          <!-- START RECORDING CASE -->\n          <li data-ng-class="{active: $state.includes(\'main.channels.voice.recordings\')}">\n            <a href="/channels/voice/recordings/list">\n              <i class="icon-control-play"></i>\n              <span class="title">{{\'APPLICATION_RECORDINGS\' | translate}}</span>\n            </a>\n          </li>\n          <!-- END RECORDING CASE -->\n          <!-- START REALTIME CASE -->\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.voice.realtime\')}">\n            <a href="/channels/voice/realtime/view/agents">\n              <i class="icon-energy"></i>\n              <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n            </a>\n          </li>\n          <!-- END REALTIME CASE -->\n          <!-- START CHANSPY CASE -->\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.voice.chanspy\')}">\n            <a href="/channels/voice/chanspy/list">\n              <i class="icon-magnifier"></i>\n              <span class="title" >{{\'APPLICATION_CHANSPY\' | translate}}</span>\n              <!-- <span data-ng-show="$state.includes(\'main.chanspy\')" class="selected"></span> -->\n            </a>\n          </li>\n          <!-- END CHANSPY CASE -->\n        </ul>\n      </li>\n      <!-- END VOICE CASE -->\n\n      <!-- START CHAT CASE -->\n      <li data-ng-class="{active: $state.includes(\'main.channels.chat\')}" data-ng-if="license.chat && Auth.isAdmin()">\n        <a href="javascript:;">\n          <i class="icon-bubble"></i>\n          <span class="title">{{\'APPLICATION_CHAT\' | translate}}</span>\n          <span class="arrow" data-ng-class="{open: $state.includes(\'main.channels.chat\')}"></span>\n        </a>\n        <ul class="sub-menu">\n          <li data-ng-class="{active: $state.includes(\'main.channels.chat.websites\')}">\n            <a href="/channels/chat/websites/list">\n              <i class="icon-globe"></i>\n              <span class="title"> {{\'APPLICATION_WEB_SITES\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-class="{active: $state.includes(\'main.channels.chat.queues\')}">\n            <a href="/channels/chat/queues/list">\n              <i class="icon-docs"></i>\n              <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-class="{active: $state.includes(\'main.channels.chat.online\')}">\n            <a href="/channels/chat/online/list">\n              <i class="icon-login"></i>\n              <span class="title"> {{\'APPLICATION_ONLINE_MESSAGES\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-class="{active: $state.includes(\'main.channels.chat.offline\')}">\n            <a href="/channels/chat/offline/list">\n              <i class="icon-logout"></i>\n              <span class="title"> {{\'APPLICATION_OFFLINE_MESSAGES\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.chat.realtime\')}">\n            <a href="/channels/chat/realtime/view/agents">\n              <i class="icon-energy"></i>\n              <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n            </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END CHAT CASE -->\n\n      <!-- START MAIL CASE -->\n      <li data-ng-class="{active: $state.includes(\'main.channels.mail\')}" data-ng-if="license.mail">\n        <a href="javascript:;">\n          <i class="icon-envelope"></i>\n          <span class="title">{{\'APPLICATION_MAIL\' | translate}}</span>\n          <span class="arrow" data-ng-class="{ open: $state.includes(\'main.channels.mail\') }"></span>\n        </a>\n\n        <ul class="sub-menu">\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.mail.accounts\') || $state.includes(\'main.channels.mail.account\')}">\n            <a href="/channels/mail/accounts/list">\n              <i class="icon-notebook"></i>\n              <span class="title"> {{\'APPLICATION_ACCOUNTS\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.mail.queues\') || $state.includes(\'main.channels.mail.queue\')}">\n            <a href="/channels/mail/queues/list">\n              <i class="icon-docs"></i>\n              <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-class="{active: $state.includes(\'main.channels.mail.inbox\')}">\n            <a href="/channels/mail/inbox/list">\n              <i class="icon-note"></i>\n              <span class="title"> {{\'APPLICATION_INBOX\' | translate}} </span>\n            </a>\n          </li>\n          <!-- START REALTIME CASE -->\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.mail.realtime\')}">\n            <a href="/channels/mail/realtime/view/agents">\n              <i class="icon-energy"></i>\n              <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n            </a>\n          </li>\n          <!-- END REALTIME CASE -->\n        </ul>\n      </li>\n      <!-- END MAIL CASE -->\n\n      <!-- START FAX CASE -->\n      <li data-ng-class="{active: $state.includes(\'main.channels.fax\')}" data-ng-if="license.fax">\n        <a href="javascript:;">\n          <i class="icon-paper-plane"></i>\n          <span class="title"> {{ \'APPLICATION_FAX\' | translate}}</span>\n          <span class="arrow" data-ng-class="{ open: $state.includes(\'main.channels.fax\') }"></span>\n        </a>\n        <ul class="sub-menu">\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.fax.accounts\')}">\n            <a href="/channels/fax/accounts/list">\n              <i class="icon-notebook"></i>\n              <span class="title"> {{ \'APPLICATION_ACCOUNTS\' | translate}} </span>\n            </a>\n          </li>\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.fax.queues\')}">\n            <a href="/channels/fax/queues/list">\n              <i class="icon-docs"></i>\n              <span class="title"> {{ \'APPLICATION_QUEUES\' | translate }} </span>\n            </a>\n          </li>\n          <li data-ng-class="{active: $state.includes(\'main.channels.fax.inbox\')}">\n            <a href="/channels/fax/inbox/incoming">\n              <i class="icon-note"></i>\n              <span class="title"> {{ \'APPLICATION_INBOX\' | translate }} </span>\n            </a>\n          </li>\n          <!-- START REALTIME CASE -->\n          <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.fax.realtime\')}">\n            <a href="/channels/fax/realtime/view/agents">\n              <i class="icon-energy"></i>\n              <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n            </a>\n          </li>\n          <!-- END REALTIME CASE -->\n        </ul>\n      </li>\n\n      <!-- END FAX CASE -->\n\n            <!-- START SMS CASE -->\n            <li data-ng-class="{active: $state.includes(\'main.channels.sms\')}" >\n              <a href="javascript:;">\n                <i class="glyphicon glyphicon-comment"></i>\n                <span class="title">{{\'APPLICATION_SMS\' | translate}}</span>\n                <span class="arrow" data-ng-class="{ open: $state.includes(\'main.channels.sms\') }"></span>\n              </a>\n\n              <ul class="sub-menu">\n                <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.sms.accounts\') || $state.includes(\'main.channels.sms.account\')}">\n                  <a href="/channels/sms/accounts/list">\n                    <i class="icon-notebook"></i>\n                    <span class="title"> {{\'APPLICATION_ACCOUNTS\' | translate}} </span>\n                  </a>\n                </li>\n                <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.sms.queues\') || $state.includes(\'main.channels.sms.queue\')}">\n                  <a href="/channels/sms/queues/list">\n                    <i class="icon-docs"></i>\n                    <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n                  </a>\n                </li>\n                <li data-ng-class="{active: $state.includes(\'main.channels.sms.inbox\')}">\n                  <a href="/channels/sms/inbox/list">\n                    <i class="icon-note"></i>\n                    <span class="title"> {{\'APPLICATION_INBOX\' | translate}} </span>\n                  </a>\n                </li>\n                <!-- START REALTIME CASE -->\n                <!-- <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.channels.mail.realtime\')}">\n                  <a href="/channels/mail/realtime/view/agents">\n                    <i class="icon-energy"></i>\n                    <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n                  </a>\n                </li> -->\n                <!-- END REALTIME CASE -->\n              </ul>\n            </li>\n            <!-- END SMS CASE -->\n    </ul>\n  </li>\n  <!-- END CHANNEL LIST CASE -->\n\n  <!-- START CALLYSQUARE CASE -->\n  <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.square\')}">\n    <a href="javascript:;">\n      <i class="fa fa-superscript"></i>\n      <span class="title" >{{\'APPLICATION_CALLYSQUARE\' | translate}}</span>\n      <span class="arrow"></span>\n    </a>\n    <ul class="sub-menu">\n      <li data-ng-class="{active: $state.includes(\'main.square.projects\')}">\n        <a href="/square/projects/list">\n          <i class="fa fa-slack"></i>\n          <span class="title" >{{\'APPLICATION_PROJECTS\' | translate}}  </span>\n        </a>\n      </li>\n      <li data-ng-class="{active: $state.includes(\'main.square.odbc\')}">\n        <a href="/square/odbc/list">\n          <i class="fa fa-database"></i>\n          <span class="title" >{{\'APPLICATION_ODBC\' | translate}}  </span>\n        </a>\n      </li>\n    </ul>\n  </li>\n  <!-- END CALLYSQUARE CASE -->\n\n  <!-- START ANALYTIC LIST CASE -->\n  <li data-ng-class="{active: $state.includes(\'main.analytics.reports\')\n  || $state.includes(\'main.analytics.extracted\')\n  || $state.includes(\'main.analytics.metrics\')}" data-ng-show="Auth.isAdmin()">\n  <a href="javascript:;">\n    <i class="icon-calculator"></i>\n    <span class="title" >{{\'APPLICATION_ANALYTICS\' | translate}}</span>\n    <span class="arrow" data-ng-class="{ open: $state.includes(\'main.analytics.reports\')\n    || $state.includes(\'main.analytics.extracted\')\n    || $state.includes(\'main.analytics.metrics\') }"></span>\n  </a>\n  <ul class="sub-menu">\n    <!-- START REPORT CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.analytics.reports\')}">\n      <a href="/analytics/reports/list">\n        <i class="icon-book-open"></i>\n        <span class="title" >{{\'APPLICATION_REPORTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.analytics.reports\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END REPORT CASE -->\n    <!-- START EXTRA REPORT CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.analytics.extracted\')}">\n      <a href="/analytics/extracted/list">\n        <i class="fa fa-file-pdf-o"></i>\n        <span class="title" >{{\'APPLICATION_EXTRACTED_REPORTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.analytics.extracted\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END EXTRA REPORT CASE -->\n    <!-- START METRICS CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.analytics.metrics\')}">\n      <a href="/analytics/metrics/list">\n        <i class="icon-calculator"></i>\n        <span class="title" >{{\'APPLICATION_METRICS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.metrics.reports\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END METRICS CASE -->\n  </ul>\n</li>\n<!-- END ANALYTIC LIST CASE -->\n\n<!-- START TOOLS LIST CASE -->\n<li data-ng-class="{active: $state.includes(\'main.tools\') && !$state.is(\'main.tools.yourdashboards.show\')}" data-ng-show="Auth.isAdmin()">\n  <a href="javascript:;">\n    <i class="icon-wrench"></i>\n    <span class="title" >{{\'APPLICATION_TOOLS\' | translate}}</span>\n    <span class="arrow" data-ng-class="{ open: $state.includes(\'main.tools\') && !$state.is(\'main.tools.yourdashboards.show\')}"></span>\n  </a>\n  <ul class="sub-menu">\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.triggers\')}">\n      <a href="/tools/triggers/list">\n        <i class="icon-bulb"></i>\n        <span class="title"> {{\'APPLICATION_TRIGGERS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.automations\')}">\n      <a href="/tools/automations/list">\n        <i class="icon-settings"></i>\n        <span class="title"> {{\'APPLICATION_AUTOMATIONS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.trunks\')}">\n      <a href="/tools/trunks/list">\n        <i class="icon-link"></i>\n        <span class="title"> {{\'APPLICATION_TRUNKS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.intervals\')}">\n      <a href="/tools/intervals/list">\n        <i class="icon-clock"></i>\n        <span class="title"> {{\'APPLICATION_INTERVALS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.variables\')}">\n      <a href="/tools/variables/list">\n        <i class="fa fa-eye"></i>\n        <span class="title" >{{\'APPLICATION_VARIABLES\' | translate}}  </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.tags\')}">\n      <a href="/tools/tags/list">\n        <i class="icon-tag"></i>\n        <span class="title" >{{\'APPLICATION_TAGS\' | translate}}  </span>\n      </a>\n    </li>\n    <!-- START TEMPLATE CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.templates\')}">\n      <a href="/tools/templates/list">\n        <i class="icon-docs"></i>\n        <span class="title"> {{\'APPLICATION_TEMPLATES\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END TEMPLATE CASE -->\n\n    <!-- START PAUSE CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.pauses\')}">\n      <a href="/tools/pauses/list">\n        <i class="icon-control-pause"></i>\n        <span class="title"> {{\'APPLICATION_PAUSES\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END PAUSE CASE -->\n    <!-- START ANSWER CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.answers\')}">\n      <a href="/tools/answers/list">\n        <i class="icon-magic-wand"></i>\n        <span class="title"> {{\'APPLICATION_CANNED_ANSWERS\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END ANSWER CASE -->\n    <!-- START DASHBOARD MANAGER CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.yourdashboards\') && !$state.is(\'main.tools.yourdashboards.show\')}">\n      <a href="/tools/yourdashboards/list">\n        <i class="icon-grid"></i>\n        <span class="title"> {{\'APPLICATION_DASHBOARDS_MANAGER\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END DASHBOARD MANAGER CASE -->\n    <!-- START SOUND CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tools.sounds\')}">\n      <a href="/tools/sounds/list">\n        <i class="icon-music-tone-alt"></i>\n        <span class="title" >{{\'APPLICATION_SOUNDS\' | translate}}</span>\n        <!-- <span data-ng-show="$state.includes(\'main.sounds\')" class="selected"></span> -->\n      </a>\n    </li>\n    <!-- END SOUND CASE -->\n  </ul>\n</li>\n<!-- END TOOLS LIST CASE -->\n\n<!-- START JSCRIPTY LIST -->\n<li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.jscripty\')}">\n  <a href="javascript:;">\n    <i class="icon-note"></i>\n    <span class="title" >{{\'APPLICATION_JSCRIPTY\' | translate}} <span class="badge">Beta</span></span>\n    <span class="arrow"></span>\n  </a>\n  <ul class="sub-menu">\n    <!-- START PROJECTS CASE -->\n    <li data-ng-class="{active: $state.includes(\'main.jscripty.projects\')}">\n      <a href="/jscripty/projects/list">\n        <i class="fa fa-slack"></i>\n        <span class="title" >{{\'APPLICATION_PROJECTS\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END PROJECTS CASE -->\n  </ul>\n</li>\n<!-- END JSCRIPTY LIST -->\n\n<!-- START SETTINGS LIST -->\n<li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting\')}">\n  <a href="javascript:;">\n    <i class="icon-settings"></i>\n    <span class="title" >{{\'APPLICATION_SETTINGS\' | translate}}</span>\n    <span class="arrow"></span>\n  </a>\n  <ul class="sub-menu">\n    <!-- START UPDATES CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting.updates\')}">\n      <a href="/setting/updates/list">\n        <i class="icon-cloud-download"></i>\n        <span class="title" >{{\'APPLICATION_UPDATES\' | translate}}</span>\n        <!-- <span data-ng-show="$state.includes(\'main.updates\')" class="selected"></span> -->\n      </a>\n    </li>\n    <!-- END UPDATES CASE -->\n\n    <!-- START SMTP CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting.smtp\')}">\n      <a href="/setting/smtp/view">\n        <i class="icon-envelope"></i>\n        <span class="title">SMTP</span>\n        <!-- <span data-ng-show="$state.includes(\'main.smtp\')" class="selected"></span> -->\n      </a>\n    </li>\n    <!-- END SMTP CASE -->\n\n    <!-- START LICENSE CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.setting.license\')}">\n      <a href="/setting/license/view">\n        <i class="icon-info"></i>\n        <span class="title"> {{\'APPLICATION_LICENSE\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END LICENSE CASE -->\n  </ul>\n</li>\n<!-- END SETTINGS LIST -->\n\n<!-- START INTEGRATION CASE -->\n<li data-ng-repeat="integration in integrations" data-ng-if="integration.active" data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.{{integration.state}}\')}">\n  <a href="/{{integration.state}}/list">\n    <i class="icon-handbag"></i>\n    <span class="title" >{{integration.name}}</span>\n    <span data-ng-show="$state.includes(\'main.{{integration.state}}\')" class="selected"></span>\n  </a>\n</li>\n\n<li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.is(\'main.market\')}">\n  <a href="/market">\n    <i class="icon-handbag"></i>\n    <span class="title" translate>Market Place</span>\n    <span data-ng-show="$state.includes(\'main.market\')" class="selected"></span>\n  </a>\n</li>\n<!-- END INTEGRATIONS CASE -->\n\n</ul>\n<!-- END SIDEBAR MENU -->\n</div>\n');
 }]);
\ No newline at end of file
index 05333a6..9aeddb4 100644 (file)
@@ -503,3 +503,21 @@ body > [uib-modal-window]:not([modal-render]) {
 .profile-content{
     min-height: 800px;
 }
+
+.portfolio-stat p {
+    color: #16a1f2;
+    display: block;
+    font-size: 22px;
+    line-height: 28px;
+    margin-top: 0px;
+    font-weight: 200;
+    width: 100%;
+    text-transform: uppercase;
+    overflow: hidden;
+    text-overflow: ellipsis;
+  }
+
+.portfolio-stat{
+  text-transform: uppercase;
+  padding: 10px 25px;
+}
index 2cea46a..80ec5c9 100644 (file)
@@ -303,10 +303,10 @@ Profile Page
   text-transform: uppercase;
 }
 
-.portfolio-info span {
+.portfolio-info p {
   color: #16a1f2;
   display: block;
-  font-size: 28px;
+  font-size: 22px;
   line-height: 28px;
   margin-top: 0px;
   font-weight: 200;
index af976500656a4a0c8dbf94b47b5090faee298f73..f28ec0e92cf763f8e26255e5234e7fabc7492319 100644 (file)
@@ -1,4 +1,7 @@
 {
+  "APPLICATION_SMS": "Sms",
+  "APPLICATION_NAME": "Name",
+  "APPLICATION_LAST_CALL": "Last Call",
   "APPLICATION_TOTAL_OFFERED": "Total Offered",
   "APPLICATION_UNMANAGED": "Unmanaged",
   "APPLICATION_MANUAL_OUTBOUND": "Manual Outbound",
   "MESSAGE_REPORT_EXTRACTING": "Your report is being elaborated, you will find it under the 'Extracted reports' section..",
   "APPLICATION_EXTRACTED_REPORTS": "Extracted Reports",
   "APPLICATION_COPY_TO": "Copy To",
-  "MESSAGE_NO_SERVICES_AVAILABLE": "No services available",
-  "APPLICATION_NEW_SERVICE": "New Service",
+  "MESSAGE_NO_LISTS_AVAILABLE": "No lists available",
+  "APPLICATION_NEW_LIST": "New List",
   "APPLICATION_RUN_DATE": "Run Date",
   "APPLICATION_OUTPUT": "Output",
   "APPLICATION_RECORDING": "Recording",
   "APPLICATION_TALKTIME": "Talk Time",
   "APPLICATION_LAST_SERVED": "Last Served",
   "APPLICATION_PENALTY": "Penalty",
-  "APPLICATION_SERVICES": "Services",
-  "APPLICATION_SERVICE": "Service",
+  "APPLICATION_LISTS": "Lists",
+  "APPLICATION_LIST": "List",
   "APPLICATION_DETAIL": "Detail",
   "APPLICATION_REPORT": "Report",
   "APPLICATION_DETAILS": "Details",
   "APPLICATION_CALLED": "Ringing",
   "APPLICATION_CONNECT": "Talking",
   "APPLICATION_COMPLETE": "Ready",
-  "MESSAGE_EXIST_SERVICE": "The service name already exists",
+  "MESSAGE_EXIST_LIST": "The list name already exists",
   "APPLICATION_MOBILE": "Mobile",
   "APPLICATION_LASTNAME": "Last Name",
   "APPLICATION_FIRSTNAME": "First Name",
index 2bb1e95128be73e9421855c522bea7a6295ddad1..66a86573d4c00bf6d68fab9fd931cecc60c8823d 100644 (file)
@@ -1,4 +1,7 @@
 {
+  "APPLICATION_SMS": "Sms",
+  "APPLICATION_NAME": "Nome",
+  "APPLICATION_LAST_CALL": "Ultima Chiamata",
   "APPLICATION_TOTAL_OFFERED": "Offerte Totali",
   "APPLICATION_UNMANAGED": "Non Gestite",
   "APPLICATION_MANUAL_OUTBOUND": "Outbound Manuale",
   "APPLICATION_DATE_RANGE": "Intervallo Date",
   "APPLICATION_COPY": "Copia",
   "MESSAGE_CLOSE_EDITED_TAB": "Ci sono delle modifiche non salvate, vuoi veramente chiudere la scheda?",
-  "MESSAGE_NO_SERVICES_AVAILABLE": "Nessun servizio disponibile",
-  "APPLICATION_NEW_SERVICE": "Nuovo Servizio",
+  "MESSAGE_NO_LISTS_AVAILABLE": "Nessuna lista disponibile",
+  "APPLICATION_NEW_LIST": "Nuova Lista",
   "APPLICATION_RUN_DATE": "Data Esecuzione",
   "APPLICATION_OUTPUT": "Output",
   "APPLICATION_RECORDING": "Registrazione",
   "APPLICATION_SERVED": "Servite",
   "MESSAGE_FILE_CREATION_ERROR": "Errore durante la creazione del file o cartella",
   "APPLICATION_QUALIFY": "Qualifica",
-  "APPLICATION_SERVICES": "Servizi",
-  "APPLICATION_SERVICE": "Servizio",
+  "APPLICATION_LISTS": "Liste",
+  "APPLICATION_LIST": "Lista",
   "APPLICATION_DETAIL": "Dettaglio",
   "APPLICATION_DETAILS": "Dettagli",
   "APPLICATION_ALLOW_CODEC": "Codecs consentiti",
   "APPLICATION_CALLED": "Squilla",
   "APPLICATION_CONNECT": "In chiamata",
   "APPLICATION_COMPLETE": "Pronto",
-  "MESSAGE_EXIST_SERVICE": "Il servizio esiste già",
+  "MESSAGE_EXIST_LIST": "La lista esiste già",
   "APPLICATION_MOBILE": "Mobile",
   "APPLICATION_MOBILE": "Cognome",
   "APPLICATION_FIRSTNAME": "Nome",
index c78d34ee80c53eb1db2ff64f073cff78725fed4e..d4be45847f448e447378157bbb7a471c3b1ce034 100644 (file)
@@ -949,6 +949,9 @@ function GeneralDialog(editorUi, cell) {
                        case 'ispeech_asr_language':
                                input = createDropdownFromArray(ISPEECHASRLANG, value);
                                break;
+                       case 'beep':
+                               input = createDropdownFromArray(ISPEECHBEEP, value);
+                               break;
                        case 'ispeech_tts_language':
                                input = createDropdownFromArray(ISPEECHLANG, value);
                                break;
@@ -973,6 +976,7 @@ function GeneralDialog(editorUi, cell) {
                        case 'maxdigit':
                        case 'response':
                        case 'retry':
+                       case 'speed':
                                input = document.createElement('input');
                                input.setAttribute('type', 'number');
                                input.setAttribute('min', 0);
index bdcb8ea265bb3a8ba4ddfdacce61c0837bd08370..ed2d857329df4fbd43cd3c1fda58aeb414c56476 100644 (file)
@@ -579,8 +579,8 @@ Sidebar.prototype.createVertexTemplate = function(style, width, height, value,
                case 'answer':
                        break;
                case 'ispeechasr':
-                       variables = ['key', 'model', 'ispeech_asr_language'];
-                       values = ['', 0, 'it-IT'];
+                       variables = ['key', 'model', 'ispeech_asr_language', 'timeout', 'intKey', 'beep'];
+                       values = ['', 0, 'it-IT', 1, '#', true];
                        break;
                case 'playback':
                        variables = ['file_id', 'opts'];
@@ -671,8 +671,8 @@ Sidebar.prototype.createVertexTemplate = function(style, width, height, value,
                        values = ['', 'it'];
                        break;
                case 'ispeechtts':
-                       variables = ['text', 'key', 'ispeech_tts_language'];
-                       values = ['', '', 'euritalianfemale'];
+                       variables = ['text', 'key', 'ispeech_tts_language', 'speed', 'intKey'];
+                       values = ['', '', 'euritalianfemale', '0', '#'];
                        break;
                case 'queue':
                        variables = ['queue_id', 'opts', 'url', 'file_id', 'timeout', 'agi',
index 39607c6050cd5ca496a2e886d22838bf82bdcf50..8f7de5247c26844e71cef00114accd80b033303e 100644 (file)
@@ -157,6 +157,11 @@ var ISPEECHASRMODEL = {
        citystate: "US City/States"
 };
 
+var ISPEECHBEEP = {
+       'BEEP': 'Yes',
+       'NOBEEP': 'No'
+};
+
 var GOOGLETTSLANG = {
        "af": "Afrikaans",
        "sq": "Albanian",
index 23d7d5d5923df398ea1dbc8e4690dd7828f2735b..78915495a4828a92bc992d87fc653006347bebe9 100644 (file)
@@ -417,4 +417,6 @@ noListSelected=List is not specified.
 musthave= must have
 outgoingedge= outgoing edge.
 incomingedge= incoming edge.
-mailbox=Mailbox
+mailbox=Mailbox,
+intKey=Interrupt Key
+speed=Speed
index a78e3ce85b91fe85d102ca1466efe6f0fd14adf6..b63d865ceabd5567ececfb00a7eb1ef9a03e97b9 100644 (file)
@@ -419,3 +419,5 @@ musthave=deve avere
 outgoingedge=ramo d'uscita.
 incomingedge=ramo d'ingresso.
 mailbox=Mailbox
+intKey=Interrupt Key
+speed=Velocità
index f59a7944caff3aedcaad52572865c89dde124551..83736a6366f8b9aa7612404a09578c3c11c1d76c 100644 (file)
@@ -13,7 +13,7 @@
     <meta name="viewport" content="width=device-width">
     <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
     <link rel="stylesheet" href="app/fc48ba87.vendor.css">
-    <link rel="stylesheet" href="app/e59e4d75.app.css">
+    <link rel="stylesheet" href="app/1a0f1474.app.css">
 
     <!-- BEGIN DYMANICLY LOADED CSS FILES (all plugin and page related styles must be loaded between GLOBAL and THEME css files ) -->
     <link id="ng_load_plugins_before"/>
@@ -61,7 +61,7 @@
     <![endif]-->
     <script src="app/47e08aab.vendor.js"></script>
 
-    <script src="app/116b9f4e.app.js"></script>
+    <script src="app/8f31380f.app.js"></script>
 
     <!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->
     <!-- BEGIN CORE PLUGINS -->
index b00a9ceae0685e7b480e222aec181aa704da28ad..4826147bf4a2921850ebd533334c08123be6d5ac 100644 (file)
@@ -1,5 +1,39 @@
 # xCALLY MOTION Changelog
 
+- * 5d83c28 - 2016-03-29: update chat routing (abandon) 
+- * 03fccca - 2016-03-29: server side model report_transfer 
+- * ba0f3ef - 2016-03-29: server side config ami transfer 
+- * 6cce034 - 2016-03-29: Fixed route applications list and settings 
+- * cf345bd - 2016-03-29: server side models 
+- * 4815ff2 - 2016-03-29: server side models 
+- * 00fb230 - 2016-03-29: update chat routing (handle complete) 
+- * d53179d - 2016-03-29: server side api 
+- * 6a8fee4 - 2016-03-29: client side app staff 
+- * 9754129 - 2016-03-29: client side app dashboard 
+- * fc0503c - 2016-03-29: client assets languages 
+- * 019a08b - 2016-03-29: socket require ordered 
+- * 191125a - 2016-03-29: correct mail routing 
+- * 7ede78c - 2016-03-29: update chat routing 
+- * 850be67 - 2016-03-25: Fixed cm recent last call display 
+- * 7595011 - 2016-03-25: Fixed contact list filtering 
+- * 1e73d6f - 2016-03-25: sms service 
+- * 8330cc5 - 2016-03-25: Set listid stateparams to null after load 
+- * e7b1a7c - 2016-03-25: Added telephones realtime 
+- * 826f120 - 2016-03-25: Updated ispeech tts 
+- * c02d20a - 2016-03-24: Fixed contact history 
+- * 7e9475d - 2016-03-24: server side config mail room history procedure 
+- * c21eab7 - 2016-03-24: models  mail room history 
+- * bd23383 - 2016-03-24: add report chat room (api - socket) 
+- * d4880d3 - 2016-03-24: change http request type for ispeech asr 
+- * 152bbb8 - 2016-03-24: client components mail popup directly redirect to the mail room on click 
+- * 34d7707 - 2016-03-24: models report mail 
+- * dc6979c - 2016-03-24: server config mail routing 
+- * 53da84d - 2016-03-24: Fixed contacts import; Added transactions for customfields creation; Added customfield existence check before column delete. 
+- * 984f387 - 2016-03-24: Changed cm tables names with cm_ suffix 
+- * 602476a - 2016-03-24: Added filtered contact list from lists 
+- * 0dd09f4 - 2016-03-24: server side api update + migrations 
+- * 373149b - 2016-03-23: Remove telephone model 
+- * 277e77b - 2016-03-23: Changed Service api to List; Fixed choosecontact on trigger(need testing) 
 - * 976bad5 - 2016-03-23: client app/app.js 
 - * 3f4d3c3 - 2016-03-23: client app update 
 - * 191b2b5 - 2016-03-23: server api update 
@@ -7,8 +41,12 @@
 - * 7056edd - 2016-03-23: client app setting update 
 - * 6a10c55 - 2016-03-23: test commit 1 
 - * 957db4d - 2016-03-23: Changed import from csv for cm contacts 
+- * f450861 - 2016-03-23: sms room client side update 
+- * 8e02f74 - 2016-03-23: sms account actions client side 
 - * 26013ef - 2016-03-23: commit test 0 
+- * 6aff876 - 2016-03-23: sms application and queue api and model 
 - * 2bba9b4 - 2016-03-23: sever side api mail_message + update 
+- * 75162bf - 2016-03-23: sms messages model update 
 - * 24f07e3 - 2016-03-23: test commit 
 - * eaa59f6 - 2016-03-23: client app setting update 
 - * 35d5dba - 2016-03-23: client side app mail account 
 - * f90472e - 2016-03-23: Add parameters in db for motion bar to manage stack SIP 
 - * 384f4fb - 2016-03-23: Added history for contact view 
 - * 17ba013 - 2016-03-23: Check Socket Agent Messages 
+- * 796a1af - 2016-03-22: sms service 
+- * 6b97aa2 - 2016-03-22: sms account, room and message route and socket 
+- * e048023 - 2016-03-22: sms account, room and messages model 
+- * e9d36be - 2016-03-22: sms room api 
+- * 5407515 - 2016-03-22: sms message api 
+- * 926e506 - 2016-03-22: sms account api 
+- * 887e71a - 2016-03-22: sms tab in sidebar 
+- * 20ed25f - 2016-03-22: sms client side 
 - * 0591188 - 2016-03-22: Rewrote Contact Manager( History and testing still missing) 
-- * 148e0cf - 2016-03-22: client side app channels voice route application removing bug fix 
-- * 0239f44 - 2016-03-22: server config map update 
-- * cbd7bcd - 2016-03-22: server config imap OO prototype style 
-- * 4914f36 - 2016-03-22: server config tools user 
-- * f346d2d - 2016-03-22: new version 
-- * 7f76213 - 2016-03-21: Change sox library 
-- * 5fa109d - 2016-03-21: client side mail inbox assignment 
-- * 97eb221 - 2016-03-21: client app mail account wizard mail conn times msec to sec 
-- * e885000 - 2016-03-21: mail_server_in conn times msec to sec 
-- * aa1221b - 2016-03-21: server config tools dashboard.js 
-- * bbcb218 - 2016-03-18: remove spindrift 
-- * 52def3a - 2016-03-18: server config impa update 
-- * cdc1bbd - 2016-03-18: server config smtp smtp.js 
-- * d2dc7dd - 2016-03-18: server api report_call 
-- * 9e7fd0f - 2016-03-18: server routes.js 
-- * 4f89e30 - 2016-03-18: socketio.js 
-- * 1dd1ceb - 2016-03-18: server side config tools dashboard 
-- * d3acb58 - 2016-03-18: server side api chat_room, report_call, report_queue 
-- * bcf8117 - 2016-03-18: quickSidebar update 
-- * 3e2e648 - 2016-03-18: client assets languages 
-- * 5fd9cde - 2016-03-18: client app dashboard 
-- * 7cfb2bc - 2016-03-18: client side app channels mail + voice 
-- * 31cbcd8 - 2016-03-17: Fixed multiple user update after state change 
-- * 21a252e - 2016-03-17: $translate for cm import 
-- * bb9760a - 2016-03-17: Added lastqueue for acw status 
-- * f0b7a58 - 2016-03-17: Fixed variable set in square for a value with spaces; Fixed list update after create/import in services and contacts 
-- * c0c9cbc - 2016-03-17: moh translate directive 
-- * 3df24db - 2016-03-16: Remove mail in the motion bar controller. I open directly the browser. 
 
index 7927c5082144cbf06211a310361d99c92697b44b..0288638cd60e408a51a9590e442d1bd0ff9e2d84 100644 (file)
@@ -64,7 +64,10 @@ exports.showVoiceQueues = function(req, res) {
         });
     })
     .then(function(voiceQueues) {
-      return res.send(voiceQueues);
+      return res.send({
+        count: voiceQueues.length,
+        rows: voiceQueues
+      });
     })
     .catch(function(err) {
       return handleError(res, err);
index d53a3e220c0bca4fb80613014a0167b22669b55f..2638fb5a3962fe5dea7876678acecfeef4e9465a 100644 (file)
@@ -9,9 +9,11 @@ var ReportCall = require('../../models').ReportCall;
 var ReportQueue = require('../../models').ReportQueue;
 var ReportQueueHistory = require('../../models').history.ReportQueueHistory;
 var ReportIntegration = require('../../models').ReportIntegration;
-var Service = require('../../models').Service;
+var List = require('../../models').List;
 var ReportCallHistory = require('../../models').history.ReportCallHistory;
 var ReportMailSession = require('../../models').ReportMailSession;
+var ReportMailRoom = require('../../models').ReportMailRoom;
+var ReportMailRoomHistory = require('../../models').history.ReportMailRoomHistory;
 var ReportMailSessionHistory = require('../../models').history.ReportMailSessionHistory;
 var Tag = require('../../models').Tag;
 var stream = require('stream');
@@ -22,7 +24,7 @@ var Util = require('../../config/util');
 // Get list of contacts
 exports.index = function(req, res, next) {
   return Contact
-    .scope('service')
+    .scope('list')
     .findAndCountAll(Util.getQuery(req.query))
     .then(function(result) {
       res.status(200).send(result);
@@ -57,9 +59,9 @@ exports.getLog = function(req, res, next) {
               }
               break;
             case 'email':
-              return res.sendStatus(404); //to remove after report mail table definition
-              // Api = ReportMail;to define
-              // break;//to uncomment after report mail table definition
+              Api = (req.query.logType === 'history') ? ReportMailRoomHistory : ReportMailRoom;
+              where.from = contact.email;
+              break;
             default:
               Api = (req.query.logType === 'history') ? ReportCallHistory : ReportCall;
           }
@@ -103,7 +105,7 @@ exports.getLog = function(req, res, next) {
 exports.show = function(req, res) {
   var _contact;
   return Contact
-    .scope('service', 'user')
+    .scope('list', 'user')
     .findById(req.params.id)
     .then(function(managed_contact) {
       if (!managed_contact) {
@@ -113,14 +115,14 @@ exports.show = function(req, res) {
       return CustomField
         .findAll({
           where: {
-            ServiceId: _contact.ServiceId
+            ListId: _contact.ListId
           }
         });
     })
     .then(function(customFields) {
       if (customFields.length) {
         var cfs = _.map(customFields, 'name').join(',');
-        return sequelize.query(util.format('SELECT %s FROM contacts WHERE id=%s', cfs, req.params.id), {
+        return sequelize.query(util.format('SELECT %s FROM cm_contacts WHERE id=%s', cfs, req.params.id), {
           type: sequelize.QueryTypes.SELECT
         });
       }
@@ -164,9 +166,9 @@ exports.getEventContacts = function(req, res) {
       return Contact.findAll({
         where: where,
         include: [{
-          model: Service,
+          model: List,
           where: {
-            id: _.map(_.map(req.user.Services, 'dataValues'), 'id')
+            id: _.map(_.map(req.user.Lists, 'dataValues'), 'id')
           }
         }]
       });
@@ -212,7 +214,7 @@ exports.create = function(req, res, next) {
       return CustomField
         .findAll({
           where: {
-            ServiceId: _contact.ServiceId
+            ListId: _contact.ListId
           }
         });
     })
@@ -226,7 +228,7 @@ exports.create = function(req, res, next) {
         });
         if (cfs.length) {
           cfs = cfs.join(',');
-          return sequelize.query(util.format('UPDATE contacts SET %s WHERE id=%s', cfs, _contact.id));
+          return sequelize.query(util.format('UPDATE cm_contacts SET %s WHERE id=%s', cfs, _contact.id));
         }
       }
     })
@@ -272,7 +274,7 @@ exports.update = function(req, res, next) {
       return CustomField
         .findAll({
           where: {
-            ServiceId: _contact.ServiceId
+            ListId: _contact.ListId
           }
         });
     })
@@ -286,7 +288,7 @@ exports.update = function(req, res, next) {
         });
         if (cfs.length) {
           cfs = cfs.join(',');
-          return sequelize.query(util.format('UPDATE contacts SET %s WHERE id=%s', cfs, _contact.id));
+          return sequelize.query(util.format('UPDATE cm_contacts SET %s WHERE id=%s', cfs, _contact.id));
         }
       }
     })
similarity index 67%
rename from server/api/contact_manager/contact_manager.controller.js
rename to server/api/contact_manager/contact_manager.controller.js
index 86265f70296a8105b1bbe16e25290d04e74085fb..5982ffdf466240fad470c425ee99d17e43ee57ca 100644 (file)
@@ -1,25 +1,25 @@
 'use strict';
 
 var express = require('express');
-var controller = require('./service.controller');
+var controller = require('./list.controller');
 var auth = require('../../auth/auth.service');
 
 var router = express.Router();
 
 router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:serviceId/customfields/:id', auth.isAuthenticated(), controller.showCustomField);
+router.get('/:listId/customfields/:id', auth.isAuthenticated(), controller.showCustomField);
 router.get('/:id/customfields', auth.isAuthenticated(), controller.getCustomFields);
 router.get('/:id/agents', auth.isAuthenticated(), controller.showAgents);
 router.get('/:id', auth.isAuthenticated(), controller.show);
 router.post('/', auth.isAuthenticated(), controller.create);
 router.post('/:id/agents', auth.isAuthenticated(), controller.addAgents);
 router.post('/:id/customfields', auth.isAuthenticated(), controller.createCustomField);
-router.put('/:serviceId/customfields/:id', auth.isAuthenticated(), controller.updateCustomField);
+router.put('/:listId/customfields/:id', auth.isAuthenticated(), controller.updateCustomField);
 router.put('/:id', auth.isAuthenticated(), controller.update);
 router.delete('/:id/agents', auth.isAuthenticated(), controller.removeAgents);
 router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
 router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-router.delete('/:serviceId/customfields/:id', auth.isAuthenticated(), controller.removeCustomField);
-router.delete('/:serviceId/customfields', auth.isAuthenticated(), controller.removeAllCustomFields);
+router.delete('/:listId/customfields/:id', auth.isAuthenticated(), controller.removeCustomField);
+router.delete('/:listId/customfields', auth.isAuthenticated(), controller.removeAllCustomFields);
 
 module.exports = router;
similarity index 67%
rename from server/api/service/index.js
rename to server/api/list/index.js
index 0d16fa6087ad63e5b0d67579c0f960c250422468..e81cf7c11415073894c745befcb0202632b8ccad 100644 (file)
@@ -4,16 +4,16 @@ var _ = require('lodash');
 var util = require('util');
 
 var User = require('../../models').User;
-var Service = require('../../models').Service;
-var UserHasService = require('../../models').UserHasService;
+var List = require('../../models').List;
+var UserHasList = require('../../models').UserHasList;
 var CustomField = require('../../models').CustomField;
 var Contact = require('../../models').Contact;
 var Util = require('../../config/util');
 var sequelize = require('../../models').sequelize;
 
-// Get list of services
+// Get list of lists
 exports.index = function(req, res, next) {
-  return Service
+  return List
     .findAndCountAll(Util.getQuery(req.query))
     .then(function(result) {
       res.status(200).send(result);
@@ -28,7 +28,7 @@ exports.getCustomFields = function(req, res) {
   return CustomField
     .findAndCountAll({
       where: {
-        ServiceId: req.params.id
+        ListId: req.params.id
       }
     })
     .then(function(customFields) {
@@ -74,51 +74,54 @@ exports.updateCustomField = function(req, res) {
 
 exports.createCustomField = function(req, res) {
   var _customField;
-  req.body.ServiceId = req.params.id;
-  return CustomField
-    .create(req.body)
-    .then(function(customField) {
-      _customField = customField;
-      customField.name = 'cf_' + customField.id;
-      return customField.save();
-    })
-    .then(function() {
-      return sequelize.query(util.format('ALTER TABLE contacts ADD COLUMN %s VARCHAR(255)', _customField.name));
-    })
-    .then(function() {
-      return res.sendStatus(201);
+  req.body.ListId = req.params.id;
+  return sequelize.transaction(function(t) {
+      return CustomField
+        .create(req.body)
+        .then(function(customField) {
+          _customField = customField;
+          customField.name = 'cf_' + customField.id;
+          return customField.save();
+        })
+        .then(function() {
+          return sequelize.query(util.format('ALTER TABLE cm_contacts ADD COLUMN %s VARCHAR(255)', _customField.name));
+        })
+        .then(function() {
+          return res.sendStatus(201);
+        })
     })
     .catch(function(err) {
       return handleError(res, err);
     });
 };
 
-// Get a single service
+// Get a single list
 exports.show = function(req, res) {
-  return Service
+  return List
     .findById(req.params.id)
-    .then(function(service) {
-      if (!service) {
+    .then(function(list) {
+      if (!list) {
         return res.sendStatus(404);
       }
-      return res.send(service);
+      return res.send(list);
     })
     .catch(function(err) {
       return handleError(res, err);
     });
 };
 
-// Creates a new service in the DB.
+// Creates a new list in the DB.
 exports.create = function(req, res) {
-
-  return Service
-    .create(req.body)
-    .then(function(service) {
-      return res.status(201).send(service);
+  return sequelize.transaction(function(t) {
+      return List
+        .create(req.body)
+        .then(function(list) {
+          return res.status(201).send(list);
+        })
     })
     .catch(sequelize.UniqueConstraintError, function(err) {
-      err.translatedMessage = 'MESSAGE_EXIST_SERVICE';
-      err.message = 'The service name already exists';
+      err.translatedMessage = 'MESSAGE_EXIST_LIST';
+      err.message = 'The list name already exists';
       return res.status(500).send(err);
     })
     .catch(function(err) {
@@ -126,26 +129,26 @@ exports.create = function(req, res) {
     });
 };
 
-// Updates an existing service in the DB.
+// Updates an existing list in the DB.
 exports.update = function(req, res) {
-  return Service
+  return List
     .findById(req.params.id)
-    .then(function(service) {
-      if (!service) {
+    .then(function(list) {
+      if (!list) {
         return res.sendStatus(404);
       }
       if (req.body.id) {
         delete req.body.id;
       }
-      var updated = _.merge(service, req.body);
+      var updated = _.merge(list, req.body);
       return updated.save();
     })
-    .then(function(service) {
-      return res.status(200).send(service);
+    .then(function(list) {
+      return res.status(200).send(list);
     })
     .catch(sequelize.UniqueConstraintError, function(err) {
-      err.translatedMessage = 'MESSAGE_EXIST_SERVICE';
-      err.message = 'The service name already exists';
+      err.translatedMessage = 'MESSAGE_EXIST_LIST';
+      err.message = 'The list name already exists';
       return res.status(500).send(err);
     })
     .catch(function(err) {
@@ -154,13 +157,13 @@ exports.update = function(req, res) {
 };
 
 exports.showAgents = function(req, res) {
-  return Service
+  return List
     .findById(req.params.id)
-    .then(function(service) {
-      if (!service) {
+    .then(function(list) {
+      if (!list) {
         return res.sendStatus(404);
       }
-      return service
+      return list
         .getUsers({
           where: {
             role: 'agent'
@@ -176,7 +179,7 @@ exports.showAgents = function(req, res) {
     });
 };
 
-// Updates an existing user_has_service in the DB.
+// Updates an existing user_has_list in the DB.
 exports.addAgents = function(req, res, next) {
   return User
     .findAll({
@@ -186,16 +189,16 @@ exports.addAgents = function(req, res, next) {
     })
     .then(function(users) {
       // console.log(users);
-      var userHasServices = _.map(users, function(user) {
+      var userHasLists = _.map(users, function(user) {
         return {
-          service: req.params.id,
+          list: req.params.id,
           membername: user.name,
           UserId: user.id
         };
       });
 
-      return UserHasService
-        .bulkCreate(userHasServices, {
+      return UserHasList
+        .bulkCreate(userHasLists, {
           individualHooks: true
         });
     })
@@ -209,11 +212,11 @@ exports.addAgents = function(req, res, next) {
 };
 
 exports.removeAgents = function(req, res, next) {
-  return UserHasService
+  return UserHasList
     .destroy({
       where: {
         UserId: req.query.agents,
-        service: req.params.id
+        list: req.params.id
       },
       individualHooks: true
     })
@@ -225,21 +228,21 @@ exports.removeAgents = function(req, res, next) {
     });
 };
 
-// Deletes a service from the DB.
+// Deletes a list from the DB.
 exports.destroy = function(req, res) {
-  return destroyService(req.params.id, res);
+  return destroyList(req.params.id, res);
 };
 
-// Deletes multiple services from the DB.
+// Deletes multiple lists from the DB.
 exports.bulkDestroy = function(req, res) { //add the check for associated contacts
-  return destroyService(req.query.id, res);
+  return destroyList(req.query.id, res);
 };
 
-function destroyService(id, res) {
+function destroyList(id, res) {
   return delCf(id, res)
     .all()
     .then(function() {
-      return Service.destroy({
+      return List.destroy({
         where: {
           id: id
         },
@@ -259,7 +262,7 @@ function delCf(id, res) {
   var _cfs;
   return CustomField.findAll({
       where: {
-        ServiceId: id
+        ListId: id
       }
     })
     .then(function(cfs) {
@@ -275,9 +278,18 @@ function delCf(id, res) {
         });
     })
     .then(function() {
+      return Contact
+        .describe();
+    })
+    .then(function(tableFields) {
+      return _.keys(tableFields);
+    })
+    .then(function(fields) {
       var bulkDel = [];
       _.forEach(_cfs, function(elem) {
-        bulkDel.push(sequelize.query(util.format('ALTER TABLE contacts DROP COLUMN %s', elem.name)));
+        if (_.includes(fields, elem.name)) {
+          bulkDel.push(sequelize.query(util.format('ALTER TABLE cm_contacts DROP COLUMN %s', elem.name)));
+        }
       });
       return bulkDel;
     })
@@ -300,7 +312,16 @@ exports.removeCustomField = function(req, res) {
         });
     })
     .then(function() {
-      return sequelize.query(util.format('ALTER TABLE contacts DROP COLUMN %s', _cf.name));
+      return Contact
+        .describe();
+    })
+    .then(function(tableFields) {
+      return _.keys(tableFields);
+    })
+    .then(function(fields) {
+      if (_.includes(fields, _cf.name)) {
+        return sequelize.query(util.format('ALTER TABLE cm_contacts DROP COLUMN %s', _cf.name));
+      }
     })
     .then(function() {
       return res.sendStatus(204);
@@ -330,13 +351,19 @@ exports.removeAllCustomFields = function(req, res) {
           }
         });
     })
-    .then(function(customFields) {
-      if (!customFields) {
-        return res.sendStatus(404);
-      }
+    .then(function() {
+      return Contact
+        .describe();
+    })
+    .then(function(tableFields) {
+      return _.keys(tableFields);
+    })
+    .then(function(fields) {
       var bulkDel = [];
       _cfs.forEach(function(elem) {
-        bulkDel.push(sequelize.query(util.format('ALTER TABLE contacts DROP COLUMN %s', elem.name)));
+        if (_.includes(fields, elem.name)) {
+          bulkDel.push(sequelize.query(util.format('ALTER TABLE cm_contacts DROP COLUMN %s', elem.name)));
+        }
       });
       return bulkDel;
     })
similarity index 74%
rename from server/api/service/service.controller.js
rename to server/api/list/list.controller.js
index 981784a0b9a7cd7e7b66445ec641cc486040162d..a8f10e9b6d12ef9c4f5e892de30a61a695699ba8 100644 (file)
@@ -4,16 +4,16 @@
 
 'use strict';
 
-var Service = require('../../models').Service;
+var List = require('../../models').List;
 var CustomField = require('../../models').CustomField;
 
 exports.register = function(socket) {
-  Service.afterCreate(function(doc) {
-    onSave(socket, doc, 'service');
+  List.afterCreate(function(doc) {
+    onSave(socket, doc, 'list');
   });
-  Service.afterDestroy(function(doc) {
+  List.afterDestroy(function(doc) {
     console.log('destroy');
-    onRemove(socket, doc, 'service');
+    onRemove(socket, doc, 'list');
   });
   CustomField.afterCreate(function(doc) {
     onSave(socket, doc, 'custom_field');
index dd9728d5b784b0ff12ec378d21bafcc89374563e..e6ed1d57d33084ad6fbf57e61ac31885969b8541 100644 (file)
@@ -19,13 +19,13 @@ exports.register = function(socket) {
 }
 
 function onSave(socket, doc, cb) {
-  if (socket.name === doc.agentname || socket.role === 'admin') {
+  if (socket.name === doc.membername || socket.role === 'admin') {
     socket.emit('report_chat:save', doc);
   }
 }
 
 function onUpdate(socket, doc, cb) {
-  if (socket.name === doc.agentname || socket.role === 'admin') {
+  if (socket.name === doc.membername || socket.role === 'admin') {
     socket.emit('report_chat:update', doc);
   }
 }
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..3d603ff58a1837f1fbac1d5b4be7fc010a4d1a4d
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./report_chat_room.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/describe', auth.isAuthenticated(), controller.describe);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
diff --git a/server/api/report_chat_room/index.js b/server/api/report_chat_room/index.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..267249ec909420b2e2ced82efd9114c2685fabfe
--- /dev/null
@@ -0,0 +1,121 @@
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/report/chat/rooms              ->  index
+ * POST    /api/report/chat/rooms              ->  create
+ * GET     /api/report/chat/rooms/:id          ->  show
+ * PUT     /api/report/chat/rooms/:id          ->  update
+ * DELETE  /api/report/chat/rooms/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+var Util = require('../../config/util');
+
+var ReportChatRoom = require('../../models').ReportChatRoom;
+var ReportChatRoomHistory = require('../../models').history.ReportChatRoomHistory;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function responseWithoutResult(res, statusCode) {
+  statusCode = statusCode || 204;
+  return function() {
+    res.sendStatus(statusCode);
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of ReportChatRooms
+exports.index = function(req, res) {
+  return ReportChatRoom.findAll(Util.getQuery(req.query))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single ReportChatRoom from the DB
+exports.show = function(req, res) {
+  return ReportChatRoom.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new ReportChatRoom in the DB
+exports.create = function(req, res) {
+  return ReportChatRoom.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing ReportChatRoom in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  return ReportChatRoom.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a ReportChatRoom from the DB
+exports.destroy = function(req, res) {
+  return ReportChatRoom.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
+
+// Get list of fields
+exports.describe = function(req, res) {
+  return ReportChatRoomHistory
+    .describe()
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+};
diff --git a/server/api/report_chat_room/report_chat_room.controller.js b/server/api/report_chat_room/report_chat_room.controller.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..47b4b2e8f8ca28dd5d026f06dcb152923f6906ae
--- /dev/null
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var ReportChatRoom = require('../../models').ReportChatRoom;
+
+exports.register = function(socket) {
+  ReportChatRoom.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  ReportChatRoom.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('report_chat_room:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('report_chat_room:remove', doc);
+}
diff --git a/server/api/report_chat_room/report_chat_room.socket.js b/server/api/report_chat_room/report_chat_room.socket.js
index caa348913a338c6aa5e5a982b77c691cc12d4b86..828a806a35d15888f47ff78fa32723b006ed5342 100644 (file)
--- a/server/api/report_chat_room/report_chat_room.socket.js
@@ -2,25 +2,27 @@
 
 var express = require('express');
 var controller = require('./report_queue.controller');
+var auth = require('../../auth/auth.service');
 
 var router = express.Router();
 
-router.get('/', controller.index);
-router.get('/describe', controller.describe);
-router.get('/waiting', controller.waiting);
-router.get('/active', controller.active);
-router.get('/answered', controller.answered);
-router.get('/abandoned', controller.abandoned);
-router.get('/avganswertime', controller.avganswertime);
-router.get('/avgtalktime', controller.avgtalktime);
-router.get('/answerrate', controller.answerrate);
-router.get('/abandonrate', controller.abandonrate);
-router.get('/totaloffered', controller.totaloffered);
-router.get('/unmanaged', controller.unmanaged);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/describe', auth.isAuthenticated(), controller.describe);
+router.get('/waiting', auth.isAuthenticated(), controller.waiting);
+router.get('/waiting/list', auth.isAuthenticated(), controller.waitingList);
+router.get('/active', auth.isAuthenticated(), controller.active);
+router.get('/answered', auth.isAuthenticated(), controller.answered);
+router.get('/abandoned', auth.isAuthenticated(), controller.abandoned);
+router.get('/avganswertime', auth.isAuthenticated(), controller.avganswertime);
+router.get('/avgtalktime', auth.isAuthenticated(), controller.avgtalktime);
+router.get('/answerrate', auth.isAuthenticated(), controller.answerrate);
+router.get('/abandonrate', auth.isAuthenticated(), controller.abandonrate);
+router.get('/totaloffered', auth.isAuthenticated(), controller.totaloffered);
+router.get('/unmanaged', auth.isAuthenticated(), controller.unmanaged);
+router.get('/:queue', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
 
 module.exports = router;
index 79eb271316ba508a36e7605a7751dfc9c916f00d..5e70e1f71fb722a9c54b24693c5403f4c5ba6ec6 100644 (file)
@@ -2,6 +2,7 @@
 
 var _ = require('lodash');
 var sequelize = require('../../models').sequelize;
+var Agent = require('../../models').User;
 var ReportQueue = require('../../models').ReportQueue;
 var ReportQueueHistory = require('../../models').history.ReportQueueHistory;
 
@@ -48,6 +49,35 @@ exports.waiting = function(req, res) {
 };
 
 // Get Waiting Calls
+exports.waitingList = function(req, res) {
+  return Agent
+    .findById(req.user.id)
+    .then(function(agent) {
+      return agent
+        .getVoiceQueues({
+          attributes: ['name']
+        });
+    })
+    .then(function(queues) {
+      return ReportQueue
+        .scope('waiting', {
+          method: [req.user.role, _.map(queues, 'name')]
+        })
+        .findAll();
+    })
+    .then(function(calls) {
+      return res.status(200).send({
+        count: calls.length,
+        rows: calls
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+
+// Get Waiting Calls
 exports.active = function(req, res) {
   return ReportQueue
     .count({
@@ -207,12 +237,19 @@ exports.unmanaged = function(req, res) {
 // Get a single reportQueue
 exports.show = function(req, res) {
   return ReportQueue
-    .findById(req.params.id)
+    .findAll({
+      where: {
+        queue: req.params.queue
+      }
+    })
     .then(function(reportQueue) {
       if (!reportQueue) {
         return res.sendStatus(404);
       }
-      return res.send(reportQueue);
+      return res.send({
+        count: reportQueue.length,
+        rows: reportQueue
+      });
     })
     .catch(function(err) {
       return handleError(res, err);
index 9f57869933bd0d9991a4d430ea92284b9e570050..85b899857495bbc6f96a8ba24c86abf505d0ec43 100644 (file)
@@ -19,9 +19,7 @@ exports.register = function(socket) {
 }
 
 function onSave(socket, doc, cb) {
-  if (socket.role === 'admin') {
-    socket.emit('report_queue:save', doc);
-  }
+  socket.emit('report_queue:save', doc);
 }
 
 function onRemove(socket, doc, cb) {
deleted file mode 100644 (file)
index 7d8414755644d6f4c0b3abddd55c2a818c6db3f4..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/contactmanager/services', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/contactmanager/services')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
diff --git a/server/api/service/service.spec.js b/server/api/service/service.spec.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..7c469a6ded7f025e055d98c6fcf80a8cb75bb70d
--- /dev/null
+++ b/server/api/service/service.spec.js
@@ -0,0 +1,19 @@
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./sms_account.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/:id/send', auth.isAuthenticated(), controller.sendMessage);
+router.post('/:id/receive', auth.isAuthenticated(), controller.receiveMessage);
+
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
diff --git a/server/api/sms_account/index.js b/server/api/sms_account/index.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..96efe8c5a78d07f4050be6f9cc566b52bf08b58b
--- /dev/null
@@ -0,0 +1,97 @@
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var smsAccountCtrlStub = {
+  index: 'smsAccountCtrl.index',
+  show: 'smsAccountCtrl.show',
+  create: 'smsAccountCtrl.create',
+  update: 'smsAccountCtrl.update',
+  destroy: 'smsAccountCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var smsAccountIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './sms_account.controller': smsAccountCtrlStub
+});
+
+describe('SmsAccount API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(smsAccountIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/sms_accounts', function() {
+
+    it('should route to smsAccount.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'smsAccountCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/sms_accounts/:id', function() {
+
+    it('should route to smsAccount.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'smsAccountCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/sms_accounts', function() {
+
+    it('should route to smsAccount.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'smsAccountCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/sms_accounts/:id', function() {
+
+    it('should route to smsAccount.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'smsAccountCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/sms_accounts/:id', function() {
+
+    it('should route to smsAccount.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'smsAccountCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/sms_accounts/:id', function() {
+
+    it('should route to smsAccount.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'smsAccountCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
diff --git a/server/api/sms_account/index.spec.js b/server/api/sms_account/index.spec.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..d6d129228775b3ff1c0bc89d9e5fae3bac349888
--- /dev/null
@@ -0,0 +1,156 @@
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/sms_accounts              ->  index
+ * POST    /api/sms_accounts              ->  create
+ * GET     /api/sms_accounts/:id          ->  show
+ * PUT     /api/sms_accounts/:id          ->  update
+ * DELETE  /api/sms_accounts/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+var Util = require('../../config/util');
+
+var SmsAccount = require('../../models').SmsAccount;
+var SmsMessage = require('../../models').SmsMessage;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function responseWithoutResult(res, statusCode) {
+  statusCode = statusCode || 204;
+  return function() {
+    res.sendStatus(statusCode);
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of SmsAccounts
+exports.index = function(req, res) {
+  return SmsAccount.findAndCountAll(Util.getQuery(req.query))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single SmsAccount from the DB
+exports.show = function(req, res) {
+  return SmsAccount
+    .findById(req.params.id)
+    .then(function(smsAccount) {
+      if (!smsAccount) {
+        return res.sendStatus(404);
+      }
+      return res.send(smsAccount);
+    })
+    .catch(handleError(res));
+}
+
+// Creates a new SmsAccount in the DB
+exports.create = function(req, res) {
+    return SmsAccount.create(req.body)
+      .then(responseWithResult(res, 201))
+      .catch(handleError(res));
+  }
+  // Creates a send Message in the DB.
+exports.sendMessage = function(req, res, next) {
+  req.body.UserId = req.user.id;
+  req.body.SmsAccountId = req.params.id;
+  req.body.method = 'OUT';
+
+  return SmsMessage
+    .create(req.body)
+    .then(function(smsMessage) {
+      return res.status(201).send(smsMessage);
+    }).catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Creates a receive Message in the DB.
+exports.receiveMessage = function(req, res, next) {
+  // req.body.UserId = req.user.id;
+  req.body.SmsAccountId = req.params.id;
+  req.body.method = 'IN';
+
+  return SmsMessage
+    .create(req.body)
+    .then(function(smsMessage) {
+      return res.status(201).send(smsMessage);
+    }).catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Updates an existing SmsAccount in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  return SmsAccount.findById(req.params.id)
+    .then(function(smsAccount) {
+      if (!smsAccount) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(smsAccount, req.body);
+      return updated
+        .save();
+    })
+    .then(function(smsAccount) {
+      return res.status(200).send(smsAccount);
+    })
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a SmsAccount from the DB
+exports.destroy = function(req, res) {
+  return SmsAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
diff --git a/server/api/sms_account/sms_account.controller.js b/server/api/sms_account/sms_account.controller.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..3641880ccc1d389a235b35823ab532a70c31c07b
--- /dev/null
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var SmsAccount = require('../../models').SmsAccount;
+
+exports.register = function(socket) {
+  SmsAccount.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  SmsAccount.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('sms_account:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('sms_account:remove', doc);
+}
diff --git a/server/api/sms_account/sms_account.socket.js b/server/api/sms_account/sms_account.socket.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..2f44f8123d4f3307197899a943b8f7e2620b552d
--- /dev/null
@@ -0,0 +1,20 @@
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./sms_application.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.get('/:id/applications', auth.isAuthenticated(), controller.showApplications);
+
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.put('/:id/applications', auth.isAuthenticated(), controller.updateApplications);
+
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
diff --git a/server/api/sms_application/index.js b/server/api/sms_application/index.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..a26c4d4fd268060fe4b2a146c3297e885c9c5d12
--- /dev/null
@@ -0,0 +1,97 @@
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var smsApplicationCtrlStub = {
+  index: 'smsApplicationCtrl.index',
+  show: 'smsApplicationCtrl.show',
+  create: 'smsApplicationCtrl.create',
+  update: 'smsApplicationCtrl.update',
+  destroy: 'smsApplicationCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var smsApplicationIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './sms_application.controller': smsApplicationCtrlStub
+});
+
+describe('SmsApplication API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(smsApplicationIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/sms/applications', function() {
+
+    it('should route to smsApplication.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'smsApplicationCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/sms/applications/:id', function() {
+
+    it('should route to smsApplication.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'smsApplicationCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/sms/applications', function() {
+
+    it('should route to smsApplication.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'smsApplicationCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/sms/applications/:id', function() {
+
+    it('should route to smsApplication.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'smsApplicationCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/sms/applications/:id', function() {
+
+    it('should route to smsApplication.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'smsApplicationCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/sms/applications/:id', function() {
+
+    it('should route to smsApplication.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'smsApplicationCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
diff --git a/server/api/sms_application/index.spec.js b/server/api/sms_application/index.spec.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..c8c5169dadca280fa74fa482ba2ff9d058c6c200
--- /dev/null
@@ -0,0 +1,179 @@
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/sms/applications              ->  index
+ * POST    /api/sms/applications              ->  create
+ * GET     /api/sms/applications/:id          ->  show
+ * PUT     /api/sms/applications/:id          ->  update
+ * DELETE  /api/sms/applications/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+var Util = require('../../config/util');
+
+var SmsApplication = require('../../models').SmsApplication;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function responseWithoutResult(res, statusCode) {
+  statusCode = statusCode || 204;
+  return function() {
+    res.sendStatus(statusCode);
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of SmsApplications
+exports.index = function(req, res) {
+  return SmsApplication.findAll(Util.getQuery(req.query))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single SmsApplication from the DB
+exports.show = function(req, res) {
+    return SmsApplication.findById(req.params.id)
+      .then(handleEntityNotFound(res))
+      .then(responseWithResult(res))
+      .catch(handleError(res));
+  }
+  // Get a single mailAccount
+exports.showApplications = function(req, res, next) {
+  return SmsApplication
+    // .scope('default')
+    .findById(req.params.id)
+    .then(function(mailAccount) {
+      if (!mailAccount) {
+        return res.sendStatus(404);
+      }
+      return mailAccount
+        .getSmsApplications(_.merge(Util.getQuery(req.query), {
+          include: [{
+            model: SmsQueue,
+            attributes: ['id', 'name']
+          }, {
+            model: User,
+            attributes: ['id', 'name', 'online']
+          }]
+        }));
+    })
+    .then(function(smsApplications) {
+      return res.send({
+        count: smsApplications.length,
+        rows: smsApplications
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Creates a new SmsApplication in the DB
+exports.create = function(req, res) {
+  return SmsApplication.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing SmsApplication in the DB
+exports.update = function(req, res) {
+    if (req.body.id) {
+      delete req.body.id;
+    }
+    return SmsApplication.findById(req.params.id)
+      .then(handleEntityNotFound(res))
+      .then(saveUpdates(req.body))
+      .then(responseWithResult(res))
+      .catch(handleError(res));
+  }
+  // Updates an existing smsAccount in the DB.
+exports.updateApplications = function(req, res) {
+
+  var priority = 0;
+  var apps = req.body;
+
+  apps.forEach(function(app) {
+    delete app.id;
+    delete app.createdAt;
+    delete app.updatedAt;
+
+    app.priority = ++priority;
+  });
+
+  return sequelize.transaction(function(t) {
+    return SmsApplication
+      .destroy({
+        where: {
+          SmsAccountId: req.params.id
+        },
+        individualHooks: true,
+        transaction: t
+      }).then(function(smsApplication) {
+        return SmsApplication
+          .bulkCreate(apps, {
+            individualHooks: true,
+            transaction: t
+          });
+      });
+  }).then(function(smsAccounts) {
+    return res.status(200).send({
+      count: smsAccounts.length,
+      rows: smsAccounts
+    });
+  }).catch(function(err) {
+    return handleError(res, err);
+  });
+};
+
+// Deletes a SmsApplication from the DB
+exports.destroy = function(req, res) {
+  return SmsApplication.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
diff --git a/server/api/sms_application/sms_application.controller.js b/server/api/sms_application/sms_application.controller.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..96308a354729734d172db683767f58af8bc20f1f
--- /dev/null
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var SmsApplication = require('../../models').SmsApplication;
+
+exports.register = function(socket) {
+  SmsApplication.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  SmsApplication.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('sms_application:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('sms_application:remove', doc);
+}
diff --git a/server/api/sms_application/sms_application.socket.js b/server/api/sms_application/sms_application.socket.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..3067525cdbcf0e77a2655ae37318ca9836971950
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./sms_message.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
diff --git a/server/api/sms_message/index.js b/server/api/sms_message/index.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..358d758c24cd50260318847bebb2f0bd2677b0b8
--- /dev/null
@@ -0,0 +1,97 @@
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var smsMessageCtrlStub = {
+  index: 'smsMessageCtrl.index',
+  show: 'smsMessageCtrl.show',
+  create: 'smsMessageCtrl.create',
+  update: 'smsMessageCtrl.update',
+  destroy: 'smsMessageCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var smsMessageIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './sms_message.controller': smsMessageCtrlStub
+});
+
+describe('SmsMessage API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(smsMessageIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/sms/messages', function() {
+
+    it('should route to smsMessage.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'smsMessageCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/sms/messages/:id', function() {
+
+    it('should route to smsMessage.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'smsMessageCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/sms/messages', function() {
+
+    it('should route to smsMessage.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'smsMessageCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/sms/messages/:id', function() {
+
+    it('should route to smsMessage.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'smsMessageCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/sms/messages/:id', function() {
+
+    it('should route to smsMessage.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'smsMessageCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/sms/messages/:id', function() {
+
+    it('should route to smsMessage.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'smsMessageCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
diff --git a/server/api/sms_message/index.spec.js b/server/api/sms_message/index.spec.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..deae0e247b45be5e14eefa0e741f10da0c683038
--- /dev/null
@@ -0,0 +1,119 @@
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/sms/messages              ->  index
+ * POST    /api/sms/messages              ->  create
+ * GET     /api/sms/messages/:id          ->  show
+ * PUT     /api/sms/messages/:id          ->  update
+ * DELETE  /api/sms/messages/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+var Util = require('../../config/util');
+
+var SmsMessage = require('../../models').SmsMessage;
+var SmsRoom = require('../../models').SmsRoom;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function responseWithoutResult(res, statusCode) {
+  statusCode = statusCode || 204;
+  return function() {
+    res.sendStatus(statusCode);
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of SmsMessages
+exports.index = function(req, res) {
+  return SmsMessage.findAll(Util.getQuery(req.query))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single SmsMessage from the DB
+exports.show = function(req, res) {
+  return SmsMessage
+    .findById(req.params.id)
+    .then(function(smsMessage) {
+      return res.status(201).send(smsMessage);
+    })
+    .catch(handleError(res));
+}
+
+// Creates a new SmsMessage in the DB
+exports.create = function(req, res) {
+  req.body.UserId = req.user.id;
+  return SmsMessage
+    .create(req.body)
+    .then(function(smsMessage) {
+      return res.status(201).send(smsMessage);
+    })
+    .catch(handleError(res));
+}
+
+// Updates an existing SmsMessage in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  return SmsMessage.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a SmsMessage from the DB
+exports.destroy = function(req, res) {
+  return SmsMessage.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
diff --git a/server/api/sms_message/sms_message.controller.js b/server/api/sms_message/sms_message.controller.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..aafc628732aa91739f96210a4f1077938624d64f
--- /dev/null
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var SmsMessage = require('../../models').SmsMessage;
+
+exports.register = function(socket) {
+  SmsMessage.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  SmsMessage.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('sms_message:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('sms_message:remove', doc);
+}
diff --git a/server/api/sms_message/sms_message.socket.js b/server/api/sms_message/sms_message.socket.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..d3750365f71491b34399f7c3ad11d19ba02ceb6d
--- /dev/null
@@ -0,0 +1,16 @@
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./sms_queue.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
diff --git a/server/api/sms_queue/index.js b/server/api/sms_queue/index.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..9b56b3b869df37c86d1ee2c5ede6b3a47cea09da
--- /dev/null
@@ -0,0 +1,97 @@
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var smsQueueCtrlStub = {
+  index: 'smsQueueCtrl.index',
+  show: 'smsQueueCtrl.show',
+  create: 'smsQueueCtrl.create',
+  update: 'smsQueueCtrl.update',
+  destroy: 'smsQueueCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var smsQueueIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './sms_queue.controller': smsQueueCtrlStub
+});
+
+describe('SmsQueue API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(smsQueueIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/sms/queues', function() {
+
+    it('should route to smsQueue.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'smsQueueCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/sms/queues/:id', function() {
+
+    it('should route to smsQueue.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'smsQueueCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/sms/queues', function() {
+
+    it('should route to smsQueue.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'smsQueueCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/sms/queues/:id', function() {
+
+    it('should route to smsQueue.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'smsQueueCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/sms/queues/:id', function() {
+
+    it('should route to smsQueue.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'smsQueueCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/sms/queues/:id', function() {
+
+    it('should route to smsQueue.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'smsQueueCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
diff --git a/server/api/sms_queue/index.spec.js b/server/api/sms_queue/index.spec.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..f76f5c867c952988235676cf98546511301741cd
--- /dev/null
@@ -0,0 +1,112 @@
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/sms/queues              ->  index
+ * POST    /api/sms/queues              ->  create
+ * GET     /api/sms/queues/:id          ->  show
+ * PUT     /api/sms/queues/:id          ->  update
+ * DELETE  /api/sms/queues/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+var Util = require('../../config/util');
+
+var SmsQueue = require('../../models').SmsQueue;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function responseWithoutResult(res, statusCode) {
+  statusCode = statusCode || 204;
+  return function() {
+    res.sendStatus(statusCode);
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) { 
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of SmsQueues
+exports.index = function(req, res) {
+  return SmsQueue.findAll(Util.getQuery(req.query))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single SmsQueue from the DB
+exports.show = function(req, res) {
+  return SmsQueue.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new SmsQueue in the DB
+exports.create = function(req, res) {
+  return SmsQueue.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing SmsQueue in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  return SmsQueue.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a SmsQueue from the DB
+exports.destroy = function(req, res) {
+  return SmsQueue.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
diff --git a/server/api/sms_queue/sms_queue.controller.js b/server/api/sms_queue/sms_queue.controller.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..fbf8891dc8927b5626facdc27d22e9905045622f
--- /dev/null
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var SmsQueue = require('../../models').SmsQueue;
+
+exports.register = function(socket) {
+  SmsQueue.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  SmsQueue.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('sms_queue:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('sms_queue:remove', doc);
+}
diff --git a/server/api/sms_queue/sms_queue.socket.js b/server/api/sms_queue/sms_queue.socket.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..4c05579f274df5c8f8325a847d917d1cc8cb8b0e
--- /dev/null
@@ -0,0 +1,17 @@
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./sms_room.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/:id/messages', auth.isAuthenticated(), controller.createMessage);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
diff --git a/server/api/sms_room/index.js b/server/api/sms_room/index.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..7de2e1f4b6b3d9ecde40333c6326ef77268af9b7
--- /dev/null
@@ -0,0 +1,97 @@
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var smsRoomCtrlStub = {
+  index: 'smsRoomCtrl.index',
+  show: 'smsRoomCtrl.show',
+  create: 'smsRoomCtrl.create',
+  update: 'smsRoomCtrl.update',
+  destroy: 'smsRoomCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var smsRoomIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './sms_room.controller': smsRoomCtrlStub
+});
+
+describe('SmsRoom API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(smsRoomIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/sms/rooms', function() {
+
+    it('should route to smsRoom.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'smsRoomCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/sms/rooms/:id', function() {
+
+    it('should route to smsRoom.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'smsRoomCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/sms/rooms', function() {
+
+    it('should route to smsRoom.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'smsRoomCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/sms/rooms/:id', function() {
+
+    it('should route to smsRoom.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'smsRoomCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/sms/rooms/:id', function() {
+
+    it('should route to smsRoom.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'smsRoomCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/sms/rooms/:id', function() {
+
+    it('should route to smsRoom.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'smsRoomCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
diff --git a/server/api/sms_room/index.spec.js b/server/api/sms_room/index.spec.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..c7bff1bb151217ec8bd0acecc798e57973687030
--- /dev/null
@@ -0,0 +1,139 @@
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/sms/rooms              ->  index
+ * POST    /api/sms/rooms              ->  create
+ * GET     /api/sms/rooms/:id          ->  show
+ * PUT     /api/sms/rooms/:id          ->  update
+ * DELETE  /api/sms/rooms/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+var Util = require('../../config/util');
+
+var SmsRoom = require('../../models').SmsRoom;
+var SmsMessage = require('../../models').SmsMessage;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function responseWithoutResult(res, statusCode) {
+  statusCode = statusCode || 204;
+  return function() {
+    res.sendStatus(statusCode);
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of SmsRooms
+exports.index = function(req, res) {
+
+  return SmsRoom
+    .scope('default')
+    .findAndCountAll(Util.getQuery(req.query))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single SmsRoom from the DB
+exports.show = function(req, res) {
+  return SmsRoom
+    .scope('default')
+    .findById(req.params.id)
+    .then(function(smsRoom) {
+      if (!smsRoom) {
+        return res.sendStatus(404);
+      }
+      return res.send(smsRoom);
+    })
+    .catch(handleError(res));
+}
+
+// Creates a new SmsRoom in the DB
+exports.create = function(req, res) {
+
+  return SmsRoom.create(req.body)
+    .then(function(smsMessage) {
+      return res.status(201).send(smsMessage);
+    })
+
+  .catch(handleError(res));
+}
+
+
+// Creates a new mailMessage in the DB.
+exports.createMessage = function(req, res, next) {
+  req.body.UserId = req.user.id;
+  req.body.SmsRoomId = req.params.id;
+  return SmsMessage
+    .create(req.body)
+    .then(function(smsMessage) {
+      return res.status(201).send(smsMessage);
+    }).catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Updates an existing SmsRoom in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  return SmsRoom.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a SmsRoom from the DB
+exports.destroy = function(req, res) {
+  return SmsRoom.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
diff --git a/server/api/sms_room/sms_room.controller.js b/server/api/sms_room/sms_room.controller.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..90f1db63cb23bd38b20f935897bd3709f4e82e3f
--- /dev/null
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var SmsRoom = require('../../models').SmsRoom;
+
+exports.register = function(socket) {
+  SmsRoom.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  SmsRoom.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('sms_room:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('sms_room:remove', doc);
+}
diff --git a/server/api/sms_room/sms_room.socket.js b/server/api/sms_room/sms_room.socket.js
index 9a87035bfca87a1d431d7eb4dfa58e1631066e5b..2af54209becf36fd6cdb90dc4c8de5e5c135c426 100644 (file)
--- a/server/api/sms_room/sms_room.socket.js
@@ -37,8 +37,7 @@ exports.index = function(req, res) {
 // Get a single update
 exports.pull = function(req, res) {
   Git
-    .pull('origin', 'test', function(err, data) {
-      console.log('data', data);
+    .pull('origin', 'master', function(err, data) {
       if (err) {
         console.error('err', err);
       }
index e1071aaf6ad290808324bdea2749d088415368f0..561e749505e90a1aad5479d9f5976617755f89a9 100644 (file)
@@ -19,13 +19,13 @@ exports.register = function(socket) {
 }
 
 function onSave(socket, doc, cb) {
-  if (doc.role === 'admin') {
+  if (doc.role !== 'agent' && doc.role !== 'telephone' && socket.role !== 'agent') {
     socket.emit('user:save', doc);
   }
 }
 
 function onRemove(socket, doc, cb) {
-  if (doc.role === 'admin') {
+  if (doc.role !== 'agent' && doc.role !== 'telephone' && socket.role !== 'agent') {
     socket.emit('user:remove', doc);
   }
 }
similarity index 85%
rename from server/api/user/user.socket.js
rename to server/api/user/user.socket.js
index 1e7edf7e9707b51c62e46b0390764fbf0ff47954..ee1b9af7fe7103e22d673219b146d5483059ffe5 100644 (file)
@@ -1,7 +1,7 @@
 'use strict';
 
 var express = require('express');
-var controller = require('./user_has_service.controller');
+var controller = require('./user_has_list.controller');
 
 var router = express.Router();
 
similarity index 67%
rename from server/api/user_has_service/index.js
rename to server/api/user_has_list/index.js
index 377090ec3c4c5150a29d85e38f876ac02a10b0c0..f0a66dd1ce5239d12e0ecc4b9b02c2b3048af405 100644 (file)
@@ -1,11 +1,11 @@
 'use strict';
 
 var _ = require('lodash');
-var UserHasService = require('../../models').UserHasService;
+var UserHasList = require('../../models').UserHasList;
 
 // Get list of user_has_voice_queues
 exports.index = function(req, res) {
-  UserHasService
+  UserHasList
     .findAll(req.query ? {
       where: req.query
     } : {})
@@ -17,28 +17,28 @@ exports.index = function(req, res) {
     });
 };
 
-// Get a single userHasService
+// Get a single userHasList
 exports.show = function(req, res) {
-  UserHasService
+  UserHasList
     .findById(req.params.id)
-    .then(function(userHasService) {
-      if (!userHasService) {
+    .then(function(userHasList) {
+      if (!userHasList) {
         return res.sendStatus(404);
       }
-      return res.send(userHasService);
+      return res.send(userHasList);
     })
     .catch(function(err) {
       return handleError(res, err);
     });
 };
 
-// Creates a new userHasService in the DB.
+// Creates a new userHasList in the DB.
 exports.create = function(req, res, next) {
   console.log(req.body);
-  UserHasService
+  UserHasList
     .create(req.body)
-    .then(function(userHasService) {
-      return res.status(201).send(userHasService);
+    .then(function(userHasList) {
+      return res.status(201).send(userHasList);
     })
     .catch(function(err) {
       console.error(err);
@@ -47,21 +47,21 @@ exports.create = function(req, res, next) {
     });
 };
 
-// Updates an existing userHasService in the DB.
+// Updates an existing userHasList in the DB.
 exports.update = function(req, res) {
   if (req.body.id) {
     delete req.body.id;
   }
-  UserHasService
+  UserHasList
     .findById(req.params.id)
-    .then(function(userHasService) {
-      if (!userHasService) {
+    .then(function(userHasList) {
+      if (!userHasList) {
         return res.sendStatus(404);
       }
-      var updated = _.merge(userHasService, req.body);
+      var updated = _.merge(userHasList, req.body);
       updated.save()
         .then(function() {
-          return res.status(200).send(userHasService);
+          return res.status(200).send(userHasList);
         })
         .catch(function(err) {
           return handleError(res, err);
@@ -72,15 +72,15 @@ exports.update = function(req, res) {
     });
 };
 
-// Deletes a userHasService from the DB.
+// Deletes a userHasList from the DB.
 exports.destroy = function(req, res) {
-  UserHasService
+  UserHasList
     .findById(req.params.id)
-    .then(function(userHasService) {
-      if (!userHasService) {
+    .then(function(userHasList) {
+      if (!userHasList) {
         return res.sendStatus(404);
       }
-      userHasService.destroy()
+      userHasList.destroy()
         .then(function() {
           return res.sendStatus(204);
         })
similarity index 50%
rename from server/api/user_has_service/user_has_service.controller.js
rename to server/api/user_has_list/user_has_list.controller.js
index 816d5361f7ad20adbc7511170f26859809d4a42d..f95330d6b43621851f1d4143f72667152d8e7a19 100644 (file)
@@ -4,24 +4,24 @@
 
 'use strict';
 
-var UserHasService = require('../../models').UserHasService;
+var UserHasList = require('../../models').UserHasList;
 
 exports.register = function(socket) {
-  UserHasService.afterCreate(function(doc) {
+  UserHasList.afterCreate(function(doc) {
     onSave(socket, doc);
   });
-  UserHasService.afterUpdate(function(doc) {
+  UserHasList.afterUpdate(function(doc) {
     onSave(socket, doc);
   });
-  UserHasService.afterDestroy(function(doc) {
+  UserHasList.afterDestroy(function(doc) {
     onRemove(socket, doc);
   });
 }
 
 function onSave(socket, doc, cb) {
-  socket.emit('user_has_service:save', doc);
+  socket.emit('user_has_list:save', doc);
 }
 
 function onRemove(socket, doc, cb) {
-  socket.emit('user_has_service:remove', doc);
+  socket.emit('user_has_list:remove', doc);
 }
deleted file mode 100644 (file)
index 0822ab133ed8d96f33241eab05a165dc754e6185..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/contactmanager/user_has_service', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/contactmanager/user_has_service')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
diff --git a/server/api/user_has_service/user_has_service.spec.js b/server/api/user_has_service/user_has_service.spec.js
index a64547e3e032fcc09d827df88b4ca0324e339cbb..541afac3f7f5c565d0b8871957f260c57392c384 100644 (file)
+++ b/server/api/user_has_service/user_has_service.spec.js
@@ -810,13 +810,15 @@ exports.abandonCustomer = function(req, res, next) {
     return ReportChatSession
       .find({
         where: {
-          visitorid: req.session.xchatty.visitor_id
+          visitorid: req.session.xchatty.visitor_id,
+          leaveAt: null
         }
       })
       .then(function(reportChatSession) {
         return reportChatSession
           .update({
-            abandon: true
+            abandon: true,
+            leaveAt: moment().format("YYYY-MM-DD HH:mm:ss")
           });
       })
       .then(function() {
index a60607005180ca91b6b58591ae0d51bcd64f7ef9..ddfe6e16550ea04920501a982e1c5586f83b0d30 100644 (file)
@@ -8,7 +8,7 @@ var expressJwt = require('express-jwt');
 var compose = require('composable-middleware');
 // var User = require('../api/user/user.model');
 var User = require('../models').User;
-var Service = require('../models').Service;
+var List = require('../models').List;
 var validateJwt = expressJwt({
   secret: config.session.secret
 });
@@ -32,7 +32,7 @@ function isAuthenticated() {
       User
         .findById(req.user.id, {
           include: [{
-            model: Service
+            model: List
           }]
         })
         .then(function(user) {
index a99a4a3912b16e16889084721c38ec9b1b24453a..23d9a9147ee3cf0c892e7c0c8cc3b78cbcfcc344 100644 (file)
@@ -267,7 +267,7 @@ methods.tts = function(context, vertex, callback) {
 methods.ispeechtts = function(context, vertex, callback) {
   console.log('--ISPEECH_TTS BLOCK--');
   // var parameters = [path.join(config.root, 'server/config/agi_scripts', 'ispeech-tts.agi'), encodeURIComponent(vertex.text), vertex.ispeech_tts_language, '', '', vertex.key];
-  var parameters = ['/var/www/html/agisquare/agiscripts/ispeech-tts.agi', encodeURIComponent(vertex.text), vertex.ispeech_tts_language, '', '', vertex.key];
+  var parameters = ['/var/www/html/agisquare/agiscripts/ispeech-tts.agi', encodeURIComponent(vertex.text), vertex.ispeech_tts_language, vertex.intKey, vertex.speed, vertex.key];
   console.log('Calling iSpeech TTS API...');
   context.exec('AGI', parameters.join(','),
     function(err, res) {
@@ -506,8 +506,10 @@ methods.subproject = function(context, vertex, callback) {
 methods.ispeechasr = function(context, vertex, callback) {
   console.log('--ISPEECH_ASR BLOCK--');
   // var parameters = ['/var/www/html/agisquare/agiscripts/ispeech-asr.agi', vertex.ispeech_asr_language, '', (vertex.model === '0' ? '' : vertex.model), '1', '#', '', vertex.key];
-  var parameters = [path.join(config.root, 'server/config/agi_scripts', 'ispeech-asr.agi'), vertex.ispeech_asr_language, '', (vertex.model === '0' ? '' : vertex.model), '1', '#', '', vertex.key];
-  console.log('Calling Google ASR API...');
+  var parameters = [path.join(config.root, 'server/config/agi_scripts', 'ispeech-asr.agi'), vertex.ispeech_asr_language, '', (vertex.model === '0' ? '' : vertex.model), vertex.timeout, vertex.intKey,
+    vertex.beep === 'BEEP' ? '' : vertex.beep, vertex.key
+  ];
+  console.log('Calling Ispeech ASR API...');
   context.exec('AGI', parameters.join(','),
     function(err, res) {
       callback(err, res);
index f156af4d084146a4359b094713feff458936c039..ad88041b3f665f1d554d7ec4c116678943778ca7 100644 (file)
@@ -104,14 +104,14 @@ my $model;
 my $freeform   = 3;
 my $format     = "wav";
 my $beep       = "BEEP";
-my $ua_timeout = 15;
+my $ua_timeout = 180;
 my $tmpdir     = "/tmp";
 my $host       = "api.ispeech.org/api/rest";
 my $speex      = `/usr/bin/which speexenc`;
 my @models     = qw(assistant date nfl nba usmoney numbersto9 numbersto99 numbersto999 time phonenumber streets sportsteam citystate);
 
 # Store AGI input #
-# $language    $freeform    $model       $timeout     $intkey      $beep                               $license  #     
+# $language    $freeform    $model       $timeout     $intkey      $beep                               $license  #
 ($AGI{arg_1}, $AGI{arg_2}, $AGI{arg_3}, $AGI{arg_4}, $AGI{arg_5}, $AGI{arg_6}, $AGI{arg_7}) = @ARGV;
 while (<STDIN>) {
        chomp;
@@ -264,7 +264,7 @@ $url .= "&content-type=$filetype&audio=$audio";
 $url .= "&speexmode=1" if ($use_speex);
 
 # Send adio data for analysis #
-$uaresponse = $ua->post("$url");
+$uaresponse = $ua->get("$url");
 
 warn "$name The response was: ", $uaresponse->decoded_content if ($debug);
 die "$name Unable to get speech data.\n" if (!$uaresponse->is_success);
index dddcd917a9108c2f019c77853a6c36c908f1b8d7..fdbd1fe648bb6c7707234cfbc7e94e547d755eb8 100644 (file)
@@ -193,13 +193,13 @@ module.exports = function(ami) {
   });
 
   ami.on('blindtransfer', function(evt) {
-    // console.log('blindtransfer', evt);
+    console.log('blindtransfer', evt);
     evt.type = 'blind';
     tranfer.createBlind(evt);
   });
 
   ami.on('attendedtransfer', function(evt) {
-    // console.log('attendedtransfer', evt);
+    console.log('attendedtransfer', evt);
     evt.type = 'attended';
     tranfer.createAttended(evt);
   });
index 9c903b6a81659497a03fd165a76b07db229b050b..6a3cf79d191e1349dff24f4241692e1436937698 100644 (file)
@@ -9,34 +9,21 @@ Transfer.prototype.createBlind = function(evt) {
   return ReportTransfer
     .create(evt)
     .then(function(member) {
-      console.log('[tranfer] created');
+      console.log('[blind tranfer] created');
     })
     .catch(function(err) {
-      console.error('[tranfer] created error: ' + err);
+      console.error('[blind tranfer] created error: ' + err);
     });
 }
 
 Transfer.prototype.createAttended = function(evt) {
   return ReportTransfer
-    .create({
-      type: 'attended',
-      transferercalleridnum: evt.origtransferercalleridnum,
-      transferercalleridname: evt.origtransferercalleridname,
-      transfererconnectedlinenum: evt.secondtransfererconnectedlinenum,
-      transfererconnectedlinename: evt.secondtransfererconnectedlinename,
-      transferercontext: evt.origtransferercontext,
-      transfererexten: evt.origtransfererexten,
-      transfereecontext: evt.secondtransferercontext,
-      transfereeexten: evt.secondtransfererexten,
-      transfereruniqueid: evt.secondtransfereruniqueid,
-      transfererlinkedid: evt.secondtransfererlinkedid,
-      extension: evt.origtransfererexten,
-    })
+    .create(evt)
     .then(function(member) {
-      console.log('[tranfer] created');
+      console.log('[attended tranfer] created');
     })
     .catch(function(err) {
-      console.error('[tranfer] created error: ' + err);
+      console.error('[attended tranfer] created error: ' + err);
     });
 }
 
index 5237ece64a393c6504c85c4c2e765b15e3cf65a2..3ff9179cb0c35648961c1760315df14e366e8393 100644 (file)
@@ -24,10 +24,12 @@ module.exports = function(CronJob) {
             .then(ReportMove.move(t, Models.ReportMember, HistoryModels.ReportMemberHistory))
             .then(ReportMove.move(t, Models.ReportQueue, HistoryModels.ReportQueueHistory))
             .then(ReportMove.move(t, Models.ReportIntegration, HistoryModels.ReportIntegrationHistory))
-            .then(ReportMove.move(t, Models.ReportMailSession, HistoryModels.ReportMailSessionHistory))
             .then(ReportMove.move(t, Models.ReportChat, HistoryModels.ReportChatHistory))
             .then(ReportMove.move(t, Models.ReportChatSession, HistoryModels.ReportChatSessionHistory))
+            .then(ReportMove.move(t, Models.ReportChatRoom, HistoryModels.ReportChatRoomHistory))
             .then(ReportMove.move(t, Models.ReportMail, HistoryModels.ReportMailHistory))
+            .then(ReportMove.move(t, Models.ReportMailSession, HistoryModels.ReportMailSessionHistory))
+            .then(ReportMove.move(t, Models.ReportMailRoom, HistoryModels.ReportMailRoomHistory))
             .then(ReportMove.move(t, Models.ReportSquare, HistoryModels.ReportSquareHistory))
             .then(ReportMove.move(t, Models.ReportSquareDetail, HistoryModels.ReportSquareDetailHistory))
             .then(ReportMove.move(t, Models.ReportTransfer, HistoryModels.ReportTransferHistory))
index a9c95ea5ea847767a8ae6d72d2cefec578d0de8b..3f63d9bcc3756493e1e8fd0677b9a2979f33ee56 100644 (file)
@@ -15,6 +15,7 @@ var ChatRoom = require('../../../models').ChatRoom;
 
 var ReportChat = require('../../../models').ReportChat;
 var ReportChatSession = require('../../../models').ReportChatSession;
+var ReportChatRoom = require('../../../models').ReportChatRoom;
 var Interval = require('../../../models').Interval;
 var User = require('../../../models').User;
 
@@ -98,11 +99,11 @@ function handleApps(_report, _apps) {
     _report.roomid = room.id;
     _report.uniqueid = util.format('%s.%s', moment().unix(), room.id);
 
-    ReportChatSession
-      .create(_.cloneDeep(_report))
-      .catch(function(err) {
-        console.error(err);
-      });
+    // ReportChatRoom
+    //   .create(_.cloneDeep(_report))
+    //   .catch(function(err) {
+    //     console.error(err);
+    //   });
 
     _apps.forEach(function(app, index) {
       var data = _.cloneDeep(_report);
@@ -141,17 +142,89 @@ function handleApps(_report, _apps) {
       }
 
       if (waterfall.length) {
-        waterfall.push(function(exit, callback) {
+        waterfall.push(function(exit, abandon, callback) {
           if (exit) {
-            return callback(null, exit);
+            return callback(null, exit, abandon);
           } else {
-            new Session(data, callback);
+            return ReportChatSession
+              .update({
+                leaveAt: moment().format("YYYY-MM-DD HH:mm:ss"),
+                unmanaged: true
+              }, {
+                where: {
+                  leaveAt: null,
+                  uniqueid: data.uniqueid,
+                }
+              })
+              .then(function() {
+                return ReportChatSession
+                  .create({
+                    uniqueid: data.uniqueid,
+                    websitename: data.websitename,
+                    websiteaddress: data.websiteaddress,
+                    websiteid: data.websiteid,
+                    application: data.application,
+                    visitorid: data.visitorid,
+                    visitorname: data.visitorname,
+                    visitoremail: data.visitoremail,
+                    memberid: (data.application === 'agent' && data.agents[0]) ? data.agents[0].id : null,
+                    membername: (data.application === 'agent' && data.agents[0]) ? data.agents[0].name : null,
+                    queueid: data.queueid,
+                    queuename: data.queuename,
+                    roomid: data.roomid,
+                    joinAt: moment().format("YYYY-MM-DD HH:mm:ss")
+                  });
+              })
+              .then(function() {
+                new Session(data, callback);
+              })
+              .catch(function(err) {
+                console.error(err);
+              });
           }
         });
       } else {
         // PRIMA CALLBACK NESSUN DATO
         waterfall.push(function(callback) {
-          new Session(data, callback);
+          return ReportChatRoom
+            .create({
+              uniqueid: data.uniqueid,
+              subject: data.subject,
+              websitename: data.websitename,
+              websiteaddress: data.websiteaddress,
+              websiteid: data.websiteid,
+              visitorid: data.visitorid,
+              visitorname: data.visitorname,
+              visitoremail: data.visitoremail,
+              from: data.from,
+              roomid: data.roomid,
+              joinAt: moment().format("YYYY-MM-DD HH:mm:ss")
+            })
+            .then(function() {
+              return ReportChatSession
+                .create({
+                  uniqueid: data.uniqueid,
+                  websitename: data.websitename,
+                  websiteaddress: data.websiteaddress,
+                  websiteid: data.websiteid,
+                  application: data.application,
+                  visitorid: data.visitorid,
+                  visitorname: data.visitorname,
+                  visitoremail: data.visitoremail,
+                  memberid: (data.application === 'agent' && data.agents[0]) ? data.agents[0].id : null,
+                  membername: (data.application === 'agent' && data.agents[0]) ? data.agents[0].name : null,
+                  queueid: data.queueid,
+                  queuename: data.queuename,
+                  roomid: data.roomid,
+                  joinAt: moment().format("YYYY-MM-DD HH:mm:ss")
+                });
+            })
+            .then(function() {
+              new Session(data, callback);
+            })
+            .catch(function(err) {
+              console.error(err);
+            });
         });
       }
     });
@@ -164,29 +237,54 @@ function handleApps(_report, _apps) {
       console.log('End chat routing..');
 
       if (!managed) {
-        return ReportChatSession
+        console.log('Chat unmanaged:', _report.uniqueid);
+        return ReportChatRoom
           .update({
-            unmanagedAt: moment().format("YYYY-MM-DD HH:mm:ss")
+            leaveAt: moment().format("YYYY-MM-DD HH:mm:ss"),
+            unmanaged: true
           }, {
             where: {
+              leaveAt: null,
               uniqueid: _report.uniqueid
             },
             individualHooks: true
           })
-          .then(handleUnmanaged(_report));
+          .then(function() {
+            return ReportChatSession
+              .update({
+                leaveAt: moment().format("YYYY-MM-DD HH:mm:ss"),
+                unmanaged: true
+              }, {
+                where: {
+                  leaveAt: null,
+                  uniqueid: _report.uniqueid
+                },
+                individualHooks: true
+              });
+          })
+          .then(handleUnmanaged(_report))
+          .catch(function(err) {
+            console.error(err);
+          });
       }
 
       if (abandon) {
-        return ReportChatSession
+        console.log('Chat abandon:', _report.uniqueid);
+        return ReportChatRoom
           .update({
-            abandonAt: moment().format("YYYY-MM-DD HH:mm:ss")
+            leaveAt: moment().format("YYYY-MM-DD HH:mm:ss"),
+            abandon: true
           }, {
             where: {
+              leaveAt: null,
               uniqueid: _report.uniqueid
             },
             individualHooks: true
           })
-          .then(handleAbandon(_report));
+          .then(handleAbandon(_report))
+          .catch(function(err) {
+            console.error(err);
+          });
       }
 
       return;
@@ -196,7 +294,7 @@ function handleApps(_report, _apps) {
 
 function handleAbandon(_report) {
   //Chat session abandon
-  return function(reportChatSession) {
+  return function(reportChatRoom) {
     return ChatVisitor
       .update({
         status: 'abandon'
index 7d02670f08e99d4554c79189ca98d2f43633487c..896b977bf767a893489e7b1b1e739f967fb808c5 100644 (file)
@@ -7,12 +7,12 @@ var Agent = require('../../../models').User;
 var ChatRoom = require('../../../models').ChatRoom;
 var ChatApplication = require('../../../models').ChatApplication;
 var ReportChat = require('../../../models').ReportChat;
+var ReportChatRoom = require('../../../models').ReportChatRoom;
 var ReportChatSession = require('../../../models').ReportChatSession;
 
 // Define the factory
 function Session(report, callback) {
   console.log('New Chat session...');
-  console.log('report', report);
   var elapsed = 0;
   var interval, timeout;
 
@@ -90,7 +90,7 @@ function Session(report, callback) {
       // APPLICATION TIMEOUT
       timeout = setTimeout(function() {
         clearInterval(interval);
-        return callback(null, false);
+        return callback(null, false, false);
       }, report.apptimeout * 1000);
 
       interval = setInterval(function() {
@@ -187,22 +187,37 @@ function Session(report, callback) {
         .findById(doc.roomid)
         .then(function(ChatRoom) {
           return ChatRoom
-            .addUser(doc.agentid, {
+            .addUser(doc.memberid, {
               individualHooks: true
             });
         })
         .then(function() {
-          return ReportChatSession
+          return ReportChatRoom
             .update({
               application: doc.application,
-              agentid: doc.agentid,
-              agentname: doc.agentname,
+              memberid: doc.memberid,
+              membername: doc.membername,
               queueid: doc.queueid || null,
               queuename: doc.queuename || null,
               leaveAt: moment().format("YYYY-MM-DD HH:mm:ss")
             }, {
               where: {
-                uniqueid: doc.uniqueid
+                uniqueid: doc.uniqueid,
+                leaveAt: null
+              },
+              individualHooks: true
+            });
+        })
+        .then(function() {
+          return ReportChatSession
+            .update({
+              memberid: doc.memberid,
+              membername: doc.membername,
+              leaveAt: moment().format("YYYY-MM-DD HH:mm:ss")
+            }, {
+              where: {
+                uniqueid: doc.uniqueid,
+                leaveAt: null
               },
               individualHooks: true
             });
@@ -210,7 +225,7 @@ function Session(report, callback) {
         .then(function() {
           clearInterval(interval);
           clearTimeout(timeout);
-          return callback(null, true);
+          return callback(null, true, false);
         })
         .catch(function(err) {
           console.error(err);
@@ -219,13 +234,13 @@ function Session(report, callback) {
   });
 
   ReportChatSession.afterUpdate(function(doc) {
-    if (doc.changed('abandon')) {
+    if (doc.changed('abandon') && doc.abandon) {
       return ChatRoom
         .findById(doc.roomid)
-        .then(function(ChatRoom) {
-          return ChatRoom
+        .then(function(chatRoom) {
+          return chatRoom
             .update({
-              status: 'CLOSED'
+              status: 'ABANDON'
             })
         })
         .then(function() {
@@ -256,8 +271,8 @@ function saveReport(report) {
       websitename: report.websitename,
       websiteaddress: report.websiteaddress,
       application: report.application,
-      agentname: agent.name,
-      agentid: agent.id,
+      membername: agent.name,
+      memberid: agent.id,
       queueid: report.queueid || null,
       queuename: report.queuename || null,
       roomid: report.roomid || null,
index 9268b24f6f95d2f5ae40bb51e5c9d77d3ba84609..dec02a896ef86f4cd874b33c1594bcc610cbd3ac 100644 (file)
@@ -8,6 +8,7 @@ var async = require('async');
 var Util = require('../../util');
 
 var ReportMail = require('../../../models').ReportMail;
+var ReportMailRoom = require('../../../models').ReportMailRoom;
 var ReportMailSession = require('../../../models').ReportMailSession;
 var MailMessage = require('../../../models').MailMessage;
 var MailQueue = require('../../../models').MailQueue;
@@ -37,11 +38,11 @@ function handleEntityNotFound(message) {
   };
 }
 
-function handleMailRoom(_report, _fidelity) {
+function handleMailRoom(_message, _fidelity) {
   return function(room) {
-    _report.roomid = room.id;
-    _report.uniqueid = util.format('%s.%s', moment().unix(), room.id);
-    _report.subject = room.subject;
+    _message.roomid = room.id;
+    _message.uniqueid = util.format('%s.%s', moment().unix(), room.id);
+    _message.subject = room.subject;
     _fidelity.agents = _.map(room.Users, function(user) {
       return {
         id: user.id,
@@ -54,11 +55,11 @@ function handleMailRoom(_report, _fidelity) {
   }
 }
 
-function handleMailAccount(_report, _fidelity) {
+function handleMailAccount(_message, _fidelity) {
   return function(account) {
-    _report.accountid = account.id;
-    _report.accountname = account.name;
-    _report.accountaddress = account.address;
+    _message.accountid = account.id;
+    _message.accountname = account.name;
+    _message.accountaddress = account.address;
 
     _fidelity.fidelity = account.fidelity;
 
@@ -91,24 +92,18 @@ function handleMailAccount(_report, _fidelity) {
   }
 }
 
-function handleApps(_report, _fidelity) {
+function handleApps(_message, _fidelity) {
   return function(apps) {
     var waterfall = [];
 
-    ReportMailSession
-      .create(_.cloneDeep(_report))
-      .catch(function(err) {
-        console.error(err);
-      });
-
     if (_fidelity.fidelity) {
-      _report.queuetimeout = _fidelity.fidelity;
-      _report.apptimeout = _fidelity.fidelity;
-      _report.agents = _fidelity.agents;
-      _report.application = 'fidelity';
-      _report.strategy = 'beepall';
+      _message.queuetimeout = _fidelity.fidelity;
+      _message.apptimeout = _fidelity.fidelity;
+      _message.agents = _fidelity.agents;
+      _message.application = 'fidelity';
+      _message.strategy = 'beepall';
 
-      var data = _.cloneDeep(_report);
+      var data = _.cloneDeep(_message);
       if (data.agents.length) {
         waterfall.push(function(callback) {
           new Session(data, callback);
@@ -118,10 +113,11 @@ function handleApps(_report, _fidelity) {
 
     apps.forEach(function(app, index) {
 
-      var data = _.cloneDeep(_report);
+      var data = _.cloneDeep(_message);
 
       data.apptimeout = app.timeout;
       data.application = app.app;
+      data.joinAt = moment().format("YYYY-MM-DD HH:mm:ss");
 
       switch (app.app) {
         case 'queue':
@@ -152,39 +148,128 @@ function handleApps(_report, _fidelity) {
       }
 
       if (waterfall.length) {
+        // CALLBACK
         waterfall.push(function(exit, callback) {
           if (exit) {
             callback(null, exit);
           } else {
-            new Session(data, callback);
+            console.log('data1', data);
+            // report_mail_session writing
+            return ReportMailSession
+              .update({
+                leaveAt: moment().format("YYYY-MM-DD HH:mm:ss"),
+                unmanaged: true
+              }, {
+                where: {
+                  leaveAt: null,
+                  uniqueid: data.uniqueid,
+                }
+              })
+              .then(function() {
+                return ReportMailSession
+                  .create({
+                    uniqueid: data.uniqueid,
+                    subject: data.subject,
+                    accountid: data.accountid,
+                    accountname: data.accountname,
+                    accountaddress: data.accountaddress,
+                    application: data.application,
+                    memberid: (data.application === 'agent' && data.agents[0]) ? data.agents[0].id : null,
+                    membername: (data.application === 'agent' && data.agents[0]) ? data.agents[0].name : null,
+                    queue: data.queueid,
+                    queuename: data.queuename,
+                    roomid: data.roomid,
+                    fidelity: data.application === 'fidelity' ? data.timeslot : null,
+                    joinAt: moment().format("YYYY-MM-DD HH:mm:ss")
+                  });
+              })
+              .then(function() {
+                new Session(data, callback);
+              })
+              .catch(function(err) {
+                console.error(err);
+              });
           }
         });
       } else {
         // PRIMA CALLBACK NESSUN DATO
         waterfall.push(function(callback) {
-          new Session(data, callback);
+          console.log('data2', data);
+          // report_mail_session writing
+          return ReportMailRoom
+            .create({
+              uniqueid: data.uniqueid,
+              subject: data.subject,
+              accountid: data.accountid,
+              accountname: data.accountname,
+              accountaddress: data.accountaddress,
+              from: data.from,
+              roomid: data.roomid,
+              joinAt: moment().format("YYYY-MM-DD HH:mm:ss")
+            })
+            .then(function() {
+              return ReportMailSession
+                .create({
+                  uniqueid: data.uniqueid,
+                  subject: data.subject,
+                  accountid: data.accountid,
+                  accountname: data.accountname,
+                  accountaddress: data.accountaddress,
+                  application: data.application,
+                  memberid: (data.application === 'agent' && data.agents[0]) ? data.agents[0].id : null,
+                  membername: (data.application === 'agent' && data.agents[0]) ? data.agents[0].name : null,
+                  queue: data.queueid,
+                  queuename: data.queuename,
+                  roomid: data.roomid,
+                  fidelity: data.application === 'fidelity' ? data.timeslot : null,
+                  joinAt: moment().format("YYYY-MM-DD HH:mm:ss")
+                });
+            })
+            .then(function() {
+              new Session(data, callback);
+            })
+            .catch(function(err) {
+              console.error(err);
+            });
         });
       }
     });
 
     async.waterfall(waterfall, function(err, managed) {
+      console.log('End mail routing..');
+
       if (err) {
         console.error(err);
       }
       if (!managed) {
-        return ReportMailSession
+        return ReportMailRoom
           .update({
-            queuecallerleaveAt: moment().format("YYYY-MM-DD HH:mm:ss"),
-            queuecallerunmanagedAt: moment().format("YYYY-MM-DD HH:mm:ss")
+            leaveAt: moment().format("YYYY-MM-DD HH:mm:ss"),
+            unmanaged: true
           }, {
             where: {
-              uniqueid: _report.uniqueid
+              leaveAt: null,
+              uniqueid: _message.uniqueid
             },
             individualHooks: true
+          })
+          .then(function() {
+            return ReportMailSession
+              .update({
+                leaveAt: moment().format("YYYY-MM-DD HH:mm:ss"),
+                unmanaged: true
+              }, {
+                where: {
+                  leaveAt: null,
+                  uniqueid: _message.uniqueid
+                },
+                individualHooks: true
+              });
+          })
+          .catch(function(err) {
+            console.error(err);
           });
       }
-
-      console.log('End mail routing..');
     });
   }
 }
@@ -193,9 +278,11 @@ function handleMessage(message) {
   var _fidelity = {
     agents: []
   };
-  var _report = {
+
+  var _message = {
     messageid: message.id,
-    queuecallerjoinAt: moment().format("YYYY-MM-DD HH:mm:ss")
+    from: message.from[0] || null,
+    joinAt: moment().format("YYYY-MM-DD HH:mm:ss")
   };
 
   return message
@@ -206,10 +293,10 @@ function handleMessage(message) {
       }]
     })
     .then(handleEntityNotFound('Unknown MailRoom..'))
-    .then(handleMailRoom(_report, _fidelity))
+    .then(handleMailRoom(_message, _fidelity))
     .then(handleEntityNotFound('Unknown MailAccount..'))
-    .then(handleMailAccount(_report, _fidelity))
-    .then(handleApps(_report, _fidelity))
+    .then(handleMailAccount(_message, _fidelity))
+    .then(handleApps(_message, _fidelity))
     .catch(function(err) {
       console.error('err', err);
     });
index 171d4af74a0a266efa99e3319fe1742323ecda08..4424ad8abe496a9a8e7c17f0d60987b2b5ea6556 100644 (file)
@@ -7,6 +7,7 @@ var Agent = require('../../../models').User;
 var MailRoom = require('../../../models').MailRoom;
 var MailApplication = require('../../../models').MailApplication;
 var ReportMail = require('../../../models').ReportMail;
+var ReportMailRoom = require('../../../models').ReportMailRoom;
 var ReportMailSession = require('../../../models').ReportMailSession;
 
 // Define the factory
@@ -191,18 +192,32 @@ function Session(report, callback) {
             });
         })
         .then(function() {
-          return ReportMailSession
+          return ReportMailRoom
             .update({
               application: doc.application,
               memberid: doc.memberid,
               membername: doc.membername,
-              queue: doc.queue || null,
-              queuename: doc.queuename || null,
-              fidelity: doc.application === 'fidelity' ? doc.timeslot : null,
-              queuecallerleaveAt: moment().format("YYYY-MM-DD HH:mm:ss")
+              queue: doc.queueid,
+              queuename: doc.queuename,
+              leaveAt: moment().format("YYYY-MM-DD HH:mm:ss")
+            }, {
+              where: {
+                uniqueid: doc.uniqueid,
+                leaveAt: null
+              },
+              individualHooks: true
+            });
+        })
+        .then(function() {
+          return ReportMailSession
+            .update({
+              memberid: doc.memberid,
+              membername: doc.membername,
+              leaveAt: moment().format("YYYY-MM-DD HH:mm:ss")
             }, {
               where: {
-                uniqueid: doc.uniqueid
+                uniqueid: doc.uniqueid,
+                leaveAt: null
               },
               individualHooks: true
             });
index f15b870b77c2c5cac8277166f2c8c9d8fe36c3b4..6880d48934d2a8097282aded809174a5d7bcac3a 100644 (file)
@@ -1223,7 +1223,7 @@ models.ReportTree
     console.log('Finished populating integrations');
   });
 
-models.Service
+models.List
   .bulkCreate([{
     id: 1,
     name: 'Motion Service',
index 4b844cadc1fe7eb69d5a818dd04477a621680f87..57ee60866574068999028c4250af21bac3c3c412 100644 (file)
@@ -537,7 +537,7 @@ models.ReportTree
     console.log('Finished populating integrations');
   });
 
-models.Service
+models.List
   .bulkCreate([{
     id: 1,
     name: 'Motion Service',
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..1ae4d250e972c5d27812a69354f604c32c330a23
--- /dev/null
@@ -0,0 +1,24 @@
+'use strict';
+var SmsAccount = require('../../models').SmsAccount;
+var Sms = require('./sms');
+
+// var SmsMessage = require('../../models').SmsMessage;
+
+module.exports = function() {
+
+  SmsAccount.afterCreate(function(doc) {
+    new Sms(doc);
+  });
+
+  return SmsAccount
+    .findAll()
+    .then(function(data) {
+      data.forEach(function(elm) {
+        new Sms(elm);
+      });
+    })
+    .catch(function(err) {
+      console.error(err);
+    });
+
+}
diff --git a/server/config/sms/index.js b/server/config/sms/index.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..8dcc3013c876b2e799065b427a676b4532a3c29d
--- /dev/null
@@ -0,0 +1,208 @@
+// var qs = require('querystring');
+// var https = require('https');
+
+var skebbyMessage = function(input, cb, cb_err) {
+  var text = input.text;
+  var sender_number = input.sender_number || "";
+  var sender_string = input.sender_string || "";
+  var method = input.method;
+  var lrecipients = input.recipients || [];
+  var username = input.username;
+  var password = input.password;
+
+  if (!method) {
+    cb_err("No Method!");
+    return;
+  }
+
+  switch (method) {
+    case 'classic':
+      method = 'send_sms_classic';
+      break;
+    case 'report':
+      method = 'send_sms_classic_report';
+      break;
+    case 'basic':
+    default:
+      method = 'send_sms_basic';
+  }
+
+  var test = input.test || false;
+
+  // Check params
+  if (lrecipients.length == 0) {
+    cb_err("No recipient!");
+    return;
+  }
+
+  if (!sender_string && !sender_number) {
+    cb_err("No sender!");
+    return;
+  }
+
+  if (!text) {
+    cb_err("No text!");
+    return;
+  }
+
+  var params = {
+    method: method,
+    username: username,
+    password: password,
+    "recipients[]": lrecipients,
+    text: text,
+    charset: "UTF-8",
+  };
+
+  if (sender_number) {
+    params.sender_number = sender_number;
+  } else if (sender_string) {
+    params.sender_string = sender_string;
+  }
+
+  if (test) {
+    params.method = "test_" + params.method;
+  }
+
+  var res_done = false;
+  var data = qs.stringify(params);
+
+  var client = https.request({
+    port: 443,
+    path: "/api/send/smseasy/advanced/http.php",
+    host: "gateway.skebby.it",
+    method: "POST",
+    headers: {
+      "Content-Type": "application/x-www-form-urlencoded",
+      "Content-Length": data.length,
+      "Content-Encoding": "utf8",
+    }
+  }, function(res) {
+    var res_data = "";
+    res.on('data', function(data) {
+      res_data += data;
+    });
+    res.on("end", function() {
+      if (!res_done) {
+        var res_parsed = qs.parse(res_data);
+        if (res_parsed.status == "success") {
+          cb({
+            data: res_parsed
+          });
+        } else {
+          // ------------------------------------------------------------------
+          // Check the complete documentation at http://www.skebby.com/business/index/send-docs/
+          // ------------------------------------------------------------------
+          // For eventual errors see http:#www.skebby.com/business/index/send-docs/#errorCodesSection
+          // WARNING: in case of error DON'T retry the sending, since they are blocking errors
+          // ------------------------------------------------------------------
+          cb_err(res_parsed);
+        }
+        res_done = true;
+      }
+    });
+  });
+
+  client.end(data);
+  client.on('error', function(e) {
+    if (!res_done) {
+      cb_err(e);
+      res_done = true;
+    }
+  });
+};
+var sendMessage = function(message, account) {
+  // return Skebby.sendMessage({
+  //   method: "classic",
+  //   username: account.username,
+  //   password: account.password,
+  //   recipients: [ message.to],
+  //   //recipients : ["393396803445","393395352490"],
+  //   text: body: message.body,
+  // }, function(res) {
+  //   console.log(res.data);
+  // }, function(err) {
+  //   console.log(err);
+  // })
+  var me = account.username;
+  return me;
+}
+
+
+
+module.exports = sendMessage;
+
+// SMS CLASSIC dispatch
+// send_sms_skebby({
+//   method: "classic",
+//   username: "username",
+//   password: "password",
+//   recipients: ["393396803445"],
+//   //recipients : ["393396803445","393395352490"],
+//   text: "Hi Mike, how are you?2",
+// }, function(res) {
+//   console.log(res.data);
+// }, function(err) {
+//   console.log(err);
+// });
+
+/*
+// SMS Basic dispatch
+send_sms_skebby( {
+       method : "basic",
+       username : "username",
+       password : "password",
+    recipients : ["393396803445"],
+    //recipients : ["393396803445","393395352490"],
+    text : "Hi Mike, how are you? By John",
+},function(res){
+    console.log(res.data);
+},function(err){
+    console.log(err);
+});
+
+// SMS CLASSIC dispatch with custom numeric sender
+send_sms_skebby( {
+       method : "classic",
+       username : "username",
+       password : "password",
+    sender_number : "393471234567",
+    recipients : ["393396803445"],
+    //recipients : ["393396803445","393395352490"],
+    text : "Hi Mike, how are you?",
+},function(res){
+    console.log(res.data);
+},function(err){
+    console.log(err);
+});
+
+// SMS CLASSIC PLUS dispatch (with delivery report) with custom alphanumeric sender
+send_sms_skebby( {
+       method : "report",
+       username : "username",
+       password : "password",
+    sender_string : "John",
+    recipients : ["393396803445"],
+    //recipients : ["393396803445","393395352490"],
+    text : "Hi Mike, how are you?",
+},function(res){
+    console.log(res.data);
+},function(err){
+    console.log(err);
+});
+
+// SMS CLASSIC PLUS dispatch (with delivery report) with custom numeric sender
+send_sms_skebby( {
+       method : "report",
+       username : "username",
+       password : "password",
+    sender_number : "393471234567",
+    recipients : ["393396803445"],
+    //recipients : ["393396803445","393395352490"],
+    text : "Hi Mike, how are you?",
+},function(res){
+    console.log(res.data);
+},function(err){
+    console.log(err);
+});
+*/
diff --git a/server/config/sms/skebby.js b/server/config/sms/skebby.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..165d6004099ea0c47cadabaee3e019675fcdccce
--- /dev/null
@@ -0,0 +1,159 @@
+'use strict';
+
+var _ = require('lodash');
+var Promise = require('bluebird');
+// var nodemailer = require('nodemailer');
+// var htmlToText = require('html-to-text');
+// var smtpTransport = require('nodemailer-smtp-transport');
+
+var Agent = require('../../models').User;
+// var Contact = require('../../models').Contact;
+var SmsRoom = require('../../models').SmsRoom;
+var SmsMessage = require('../../models').SmsMessage;
+// var ContactEmail = require('../../models').ContactEmail;
+var SmsAccount = require('../../models').SmsAccount;
+// var Skebby = require('./skebby');
+// var Twillio = require('twilio');
+// var path = require('path');
+// var fs = require('fs');
+
+function Sms(doc) {
+
+  var _sms;
+  var _doc;
+
+  function onSave(doc) {
+    console.log("SMS - Account " + doc.username + " SMS CREATE");
+    _doc = doc;
+  }
+
+
+  function onSend(smsMessage, options) {
+    var _mRoom;
+    var _mMessage = smsMessage;
+    console.log(smsMessage);
+    console.log(_doc.id, _mMessage.SmsAccountId, smsMessage.dataValues.SmsAccountId,
+      _doc.phone, smsMessage.dataValues.from);
+    // if (smsMessage.method === 'OUT' && _doc.id === smsMessage.dataValues.SmsAccountId) {
+    if (smsMessage.method === 'OUT' && _doc.phone === smsMessage.dataValues.from) {
+
+      console.log(1);
+
+      return SmsRoom
+        .findOrCreate({
+          where: {
+            from: _mMessage.to,
+            SmsAccountId: _mMessage.SmsAccountId
+          },
+          defaults: {
+            status: 'OPEN'
+          }
+        })
+        .spread(function(smsRoom) {
+          console.log(2);
+          _mRoom = smsRoom;
+          return _mRoom
+            .addSmsMessage(_mMessage);
+        })
+        .then(function() {
+          console.log(3);
+
+          return _mRoom
+            // .addUser(_mMessage.UserId);
+            .update({
+              UserId: _mMessage.UserId
+            });
+        })
+        .then(function() {
+          console.log(4);
+          var res = '++++++++++++';
+          // var a = './' + _doc.type;
+          // console.log(a);
+          // var info = path.parse(integration.path);
+          // var file = path.join('./', _doc.type);
+          // if (fs.existsSync('./' + _doc.type)) {
+          //   console.log('exists');
+          //   // require(file)(io, ami);
+          // } else {
+          //   console.log('dont exists');
+          // }
+          // var res = require('./twilio')(_mMessage, _doc);
+          console.log(res);
+          return res;
+
+        })
+        .then(function(info) {
+
+          console.log('info', info);
+          return _mMessage
+            .update({
+              status: 'SENT'
+            });
+        })
+        .catch(function(err) {
+          console.error('err', err);
+          throw {
+            message: err.message || err.response || 'Internal Server Error'
+          };
+        });
+    } else if (smsMessage.method === 'IN' && _doc.phone === smsMessage.dataValues.to) {
+      console.log(1);
+
+      return SmsRoom
+        .findOrCreate({
+          where: {
+            from: _mMessage.from,
+            SmsAccountId: _mMessage.SmsAccountId
+          },
+          defaults: {
+            status: 'OPEN',
+          }
+        })
+        .spread(function(smsRoom) {
+          console.log(2);
+          _mRoom = smsRoom;
+          return _mRoom
+            .addSmsMessage(_mMessage);
+        })
+        .then(function() {
+          console.log(3);
+
+          return _mRoom
+            .update({
+              UserId: _mMessage.UserId
+            });
+        })
+        .then(function() {
+          console.log(4);
+          return 'IN';
+        })
+        .then(function(info) {
+
+          console.log('info', info);
+          return _mMessage
+            .update({
+              status: 'RECEIVED'
+            });
+        })
+        .catch(function(err) {
+          console.error('err', err);
+          throw {
+            message: err.message || err.response || 'Internal Server Error'
+          };
+        });
+    }
+
+    // }
+  }
+
+  onSave(doc);
+
+  // HANDLE SEND SMS
+  SmsMessage.afterCreate(function(doc, options) {
+    return onSend(doc, options);
+  });
+
+  return {};
+}
+
+module.exports = Sms;
diff --git a/server/config/sms/sms.js b/server/config/sms/sms.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..f9aa10650508055b4aee05104f7839281bca71f8
--- /dev/null
@@ -0,0 +1,35 @@
+'use strict';
+// var twilio = require('./twilio');
+
+var SmsMessage = require('../../models').SmsMessage;
+
+
+var sendMessage = function(message, account) {
+  // var client = twillio(account.sid, account.token);
+  // Send an SMS text message
+  // return client.s7endMessage({
+  //
+  //   to: message.to, // Any number Twilio can deliver to
+  //   from:  '+'+ message.from, // A number you bought from Twilio and can use for outbound communication
+  //   body:  message.body, // body of the SMS message
+  // statusCallback : '/api/sms/messages/message.id'
+  //
+  // }, function(err, responseData) { //this function is executed when a response is received from Twilio
+  //
+  //   if (!err) { // "err" is an error received during the request, if any
+  //     console.log(responseData);
+  // return SmsMessage
+  //   .update({
+  //     status: 'SENT'
+  //   });
+
+  //       // "responseData" is a JavaScript object containing data received from Twilio.
+  //                 }
+  // });
+  var me = account.sid;
+  return 'me';
+}
+
+
+
+module.exports = sendMessage;
diff --git a/server/config/sms/twilio.js b/server/config/sms/twilio.js
index 7c38a56c8de631ccc00438f6744a3a277744a8ff..e3c34f70fb7e70c381d3d1798b6f1643d9404094 100644 (file)
--- a/server/config/sms/twilio.js
@@ -54,34 +54,35 @@ function onConnect(socket) {
         }
 
         // Insert sockets below
-        require('../api/report_call/report_call.socket').register(socket);
-        require('../api/chat_proactive_action/chat_proactive_action.socket').register(socket);
+
         // require('../api/report_jscripty_input/report_jscripty_input.socket').register(socket);
         // require('../api/report_jscripty_question/report_jscripty_question.socket').register(socket);
         // require('../api/report_jscripty_session/report_jscripty_session.socket').register(socket);
-        require('../api/canned_answer/canned_answer.socket').register(socket);
-        require('../api/chat_websites_field/chat_websites_field.socket').register(socket);
-        require('../api/voice_recording/voice_recording.socket').register(socket);
-        require('../api/license/license.socket').register(socket);
-        require('../api/jscripty_project/jscripty_project.socket').register(socket);
 
         //Ordered alphabetically
         require('../api/agent/agent.socket').register(socket);
         require('../api/ami/ami.socket').register(socket);
         require('../api/automation/automation.socket').register(socket);
+        require('../api/canned_answer/canned_answer.socket').register(socket);
+        require('../api/chanspy/chanspy.socket').register(socket);
         require('../api/chat_application/chat_application.socket').register(socket);
         require('../api/chat_enquiry/enquiry.socket').register(socket);
         require('../api/chat_message/chat_message.socket').register(socket);
+        require('../api/chat_proactive_action/chat_proactive_action.socket').register(socket);
         require('../api/chat_queue/chat_queue.socket').register(socket);
         require('../api/chat_room/chat_room.socket').register(socket);
         require('../api/chat_visitor/chat_visitor.socket').register(socket);
         require('../api/chat_website/chat_website.socket').register(socket);
+        require('../api/chat_websites_field/chat_websites_field.socket').register(socket);
         require('../api/company/company.socket').register(socket);
         require('../api/contact_manager/contact_manager.socket').register(socket);
+        require('../api/custom_report/custom_report.socket').register(socket);
         require('../api/dashboard/dashboard.socket').register(socket);
+        require('../api/default_report/default_report.socket').register(socket);
         require('../api/desk_account/desk_account.socket').register(socket);
         require('../api/desk_configuration/desk_configuration.socket').register(socket);
         require('../api/desk_field/desk_field.socket').register(socket);
+        require('../api/extracted_report/extracted_report.socket').register(socket);
         require('../api/fax_account/fax_account.socket').register(socket);
         require('../api/fax_application/fax_application.socket').register(socket);
         require('../api/fax_message/fax_message.socket').register(socket);
@@ -92,6 +93,9 @@ function onConnect(socket) {
         require('../api/freshdesk_field/freshdesk_field.socket').register(socket);
         require('../api/integration/integration.socket').register(socket);
         require('../api/interval/interval.socket').register(socket);
+        require('../api/jscripty_project/jscripty_project.socket').register(socket);
+        require('../api/license/license.socket').register(socket);
+        require('../api/list/list.socket').register(socket);
         require('../api/mail_account/mail_account.socket').register(socket);
         require('../api/mail_application/mail_application.socket').register(socket);
         require('../api/mail_attachment/mail_attachment.socket').register(socket);
@@ -100,22 +104,28 @@ function onConnect(socket) {
         require('../api/mail_room/mail_room.socket').register(socket);
         require('../api/mail_server_in/mail_server_in.socket').register(socket);
         require('../api/mail_template/mail_template.socket').register(socket);
+        require('../api/metric/metric.socket').register(socket);
         require('../api/module/module.socket').register(socket);
         require('../api/motionbar/motionbar.socket').register(socket);
-        require('../api/default_report/default_report.socket').register(socket);
-        require('../api/custom_report/custom_report.socket').register(socket);
-        require('../api/report_tree/report_tree.socket').register(socket);
         require('../api/report_agent/report_agent.socket').register(socket);
+        require('../api/report_call/report_call.socket').register(socket);
         require('../api/report_chat/report_chat.socket').register(socket);
+        require('../api/report_chat_room/report_chat_room.socket').register(socket);
         require('../api/report_chat_session/report_chat_session.socket').register(socket);
         require('../api/report_integration/report_integration.socket').register(socket);
         require('../api/report_mail/report_mail.socket').register(socket);
         require('../api/report_mail_session/report_mail_session.socket').register(socket);
         require('../api/report_queue/report_queue.socket').register(socket);
+        require('../api/report_tree/report_tree.socket').register(socket);
         require('../api/salesforce_account/salesforce_account.socket').register(socket);
         require('../api/salesforce_configuration/salesforce_configuration.socket').register(socket);
         require('../api/salesforce_field/salesforce_field.socket').register(socket);
         require('../api/setting/setting.socket').register(socket);
+        require('../api/sms_account/sms_account.socket').register(socket);
+        require('../api/sms_application/sms_application.socket').register(socket);
+        require('../api/sms_message/sms_message.socket').register(socket);
+        require('../api/sms_queue/sms_queue.socket').register(socket);
+        require('../api/sms_room/sms_room.socket').register(socket);
         require('../api/square_odbc/square_odbc.socket').register(socket);
         require('../api/square_project/square_project.socket').register(socket);
         require('../api/sugarcrm_account/sugarcrm_account.socket').register(socket);
@@ -133,16 +143,13 @@ function onConnect(socket) {
         require('../api/user_has_mail_queue/user_has_mail_queue.socket').register(socket);
         require('../api/user_has_team/user_has_team.socket').register(socket);
         require('../api/user_has_voice_queue/user_has_voice_queue.socket').register(socket);
-        require('../api/user_has_service/user_has_service.socket').register(socket);
+        require('../api/user_has_list/user_has_list.socket').register(socket);
         require('../api/variable/variable.socket').register(socket);
-        require('../api/chanspy/chanspy.socket').register(socket);
-        require('../api/metric/metric.socket').register(socket);
-        require('../api/extracted_report/extracted_report.socket').register(socket);
         require('../api/voice_context/voice_context.socket').register(socket);
         require('../api/voice_extension/voice_extension.socket').register(socket);
         require('../api/voice_musiconhold/voice_musiconhold.socket').register(socket);
         require('../api/voice_queue/voice_queue.socket').register(socket);
-        require('../api/service/service.socket').register(socket);
+        require('../api/voice_recording/voice_recording.socket').register(socket);
         require('../api/voice_voicemail/voice_voicemail.socket').register(socket);
         require('../api/voice_voicemail_messages/voice_voicemail_messages.socket').register(socket);
         require('../api/xchatty/xchatty.socket').register(socket);
index b6a70e1365e748860facf21a3394cb3bc16299bd..17b1d601f6f05ab2f8243be9e9090fb4dee86428 100644 (file)
@@ -6,6 +6,7 @@ var moment = require('moment');
 var ChatRoomModel = require('../../models').ChatRoom;
 var ChatVisitorModel = require('../../models').ChatVisitor;
 var ReportChatSessionModel = require('../../models').ReportChatSession;
+var ReportChatRoomModel = require('../../models').ReportChatRoom;
 
 function ChatRoom() {
   ChatRoomModel.afterUpdate(function(doc) {
@@ -22,22 +23,34 @@ function ChatRoom() {
             }
           })
           .then(function() {
-            return ReportChatSessionModel
-              .find({
+            return ReportChatRoomModel
+              .update({
+                complete: true,
+                completeReason: doc.completeReason,
+                completeAt: moment().format("YYYY-MM-DD HH:mm:ss")
+              }, {
                 where: {
-                  roomid: doc.id
-                }
-              })
+                  roomid: doc.id,
+                  complete: false
+                },
+                individualHooks: true
+              });
           })
-          .then(function(reportChatSession) {
-            if (reportChatSession) {
-              return reportChatSession
-                .update({
-                  complete: true,
-                  completeReason: doc.completeReason,
-                  completeAt: moment().format("YYYY-MM-DD HH:mm:ss")
-                })
-            }
+          .then(function() {
+            return ReportChatSessionModel
+              .update({
+                complete: true,
+                completeReason: doc.completeReason,
+                completeAt: moment().format("YYYY-MM-DD HH:mm:ss")
+              }, {
+                where: {
+                  roomid: doc.id,
+                  complete: false,
+                  abandon: false,
+                  unmanaged: false
+                },
+                individualHooks: true
+              });
           })
           .catch(function(err) {
             console.log('Error:', err);
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..3d1971f996c1a5d568839c8f34e8e3dcba6652d2
Binary files /dev/null and b/server/files/attachments/CINTI.pdf differ
diff --git a/server/files/attachments/CINTI.pdf b/server/files/attachments/CINTI.pdf
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..b91a504a4403051ae25ed66744a12d15361f8d01
Binary files /dev/null and b/server/files/attachments/image001.jpg differ
diff --git a/server/files/attachments/image001.jpg b/server/files/attachments/image001.jpg
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..c03d1fc72090e184f0dfded1bd7ea316ed1c6a69
Binary files /dev/null and b/server/files/attachments/image004.png differ
diff --git a/server/files/attachments/image004.png b/server/files/attachments/image004.png
deleted file mode 100644 (file)
index 44108059a8e874615ab5aacf86ad55f0a7a2094f..0000000000000000000000000000000000000000
--- a/server/files/attachments/image004.png
+++ /dev/null
@@ -1,33 +0,0 @@
-'use strict';
-
-module.exports = {
-  up: function(queryInterface, Sequelize) {
-    /*
-      Add altering commands here.
-      Return a promise to correctly handle asynchronicity.
-
-      Example:
-      return queryInterface.createTable('users', { id: Sequelize.INTEGER });
-    */
-    return queryInterface
-      .addColumn(
-        'users',
-        'testAttr', {
-          type: Sequelize.STRING
-        }
-      );
-  },
-
-  down: function(queryInterface, Sequelize) {
-    /*
-      Add reverting commands here.
-      Return a promise to correctly handle asynchronicity.
-
-      Example:
-      return queryInterface.dropTable('users');
-    */
-
-    return queryInterface
-      .removeColumn('users', 'testAttr');
-  }
-};
diff --git a/server/migrations/20160315183016-motion.js b/server/migrations/20160315183016-motion.js
index 6826bab211cdbef915b16105251ffb264b4e15a9..29b4c72906ac1499e3f5844143dfb90712b4cb17 100644 (file)
+++ b/server/migrations/20160315183016-motion.js
@@ -13,7 +13,7 @@ module.exports = function(sequelize, DataTypes) {
                        unique: 'token'
                },
                status: {
-                       type: DataTypes.ENUM('OPEN', 'CLOSED'),
+                       type: DataTypes.ENUM('OPEN', 'CLOSED', 'ABANDON'),
                        defaultValue: 'OPEN'
                },
                rating: DataTypes.ENUM('good', 'bad'),
index 12768bda4e949e46d533a66f9fcead5fc7c559b6..eb9a400af05c267d0bc973de2d470166e0908763 100644 (file)
@@ -18,7 +18,7 @@ module.exports = function(sequelize, DataTypes) {
     sCity: DataTypes.STRING,
     sCountry: DataTypes.STRING,
   }, {
-    tableName: 'companies',
+    tableName: 'cm_companies',
     associate: function(models) {
       Company.hasMany(models.Contact, {
         as: 'Contacts'
index 7987c946bd26368734f7609ec1db95c9dcc85dd1..eaf3cd9628b85bc401f05af8cf5250eaad5813a6 100644 (file)
@@ -24,13 +24,13 @@ module.exports = function(sequelize, DataTypes) {
     fax: DataTypes.STRING,
     email: DataTypes.STRING,
   }, {
-    tableName: 'contacts',
+    tableName: 'cm_contacts',
     associate: function(models) {
       Contact.belongsTo(models.Company);
       Contact.belongsTo(models.User);
-      Contact.belongsTo(models.Service);
-      Contact.addScope('service', {
-        include: [models.Service]
+      Contact.belongsTo(models.List);
+      Contact.addScope('list', {
+        include: [models.List]
       });
       Contact.addScope('user', {
         include: [models.User]
index 824762e9d5ae552d2b754f91ce779119450f40d9..8365d513336701daab6fadaf75ddaa12fa20de80 100644 (file)
@@ -10,7 +10,7 @@ module.exports = function(sequelize, DataTypes) {
     type: DataTypes.STRING,
     values: DataTypes.STRING
   }, {
-    tableName: 'custom_fields',
+    tableName: 'cm_custom_fields',
     associate: function(models) {}
   });
 
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..092d760eef0d6f358d2e8a321b290f22a4b2d6e9
--- /dev/null
@@ -0,0 +1,47 @@
+/**
+ * Agent Log Model
+ */
+
+var moment = require('moment');
+
+module.exports = function(sequelize, DataTypes) {
+
+  var ReportChatRoomHistory = sequelize.define('ReportChatRoomHistory', {
+    uniqueid: {
+      type: DataTypes.STRING,
+      unique: true
+    },
+    websitename: DataTypes.STRING,
+    websiteaddress: DataTypes.STRING,
+    websiteid: DataTypes.INTEGER,
+    application: DataTypes.STRING,
+    visitorid: DataTypes.STRING,
+    visitorname: DataTypes.STRING,
+    visitoremail: DataTypes.STRING,
+    memberid: DataTypes.STRING,
+    membername: DataTypes.STRING,
+    queueid: DataTypes.INTEGER,
+    queuename: DataTypes.STRING,
+    roomid: DataTypes.INTEGER,
+    abandon: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: 0
+    },
+    complete: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: 0
+    },
+    completeReason: DataTypes.ENUM('agent', 'requester'),
+    completeAt: DataTypes.DATE,
+    joinAt: DataTypes.DATE,
+    leaveAt: DataTypes.DATE,
+    unmanaged: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: 0
+    }
+  }, {
+    tableName: 'report_chat_room_history'
+  });
+
+  return ReportChatRoomHistory;
+};
diff --git a/server/models/history/report_chat_room_history.js b/server/models/history/report_chat_room_history.js
index 11f3b8ac364835d77aeef93b28e5dbaced433458..8960e30c8c7f940f7b8e5a7be1315eeca9eccb6f 100644 (file)
--- a/server/models/history/report_chat_room_history.js
@@ -7,10 +7,7 @@ var moment = require('moment');
 module.exports = function(sequelize, DataTypes) {
 
   var ReportChatSessionHistory = sequelize.define('ReportChatSessionHistory', {
-    uniqueid: {
-      type: DataTypes.STRING,
-      unique: true
-    },
+    uniqueid: DataTypes.STRING,
     websitename: DataTypes.STRING,
     websiteaddress: DataTypes.STRING,
     websiteid: DataTypes.INTEGER,
@@ -18,25 +15,27 @@ module.exports = function(sequelize, DataTypes) {
     visitorid: DataTypes.STRING,
     visitorname: DataTypes.STRING,
     visitoremail: DataTypes.STRING,
-    agentid: DataTypes.STRING,
-    agentname: DataTypes.STRING,
+    memberid: DataTypes.STRING,
+    membername: DataTypes.STRING,
     queueid: DataTypes.INTEGER,
     queuename: DataTypes.STRING,
     roomid: DataTypes.INTEGER,
-    abandon: {
-      type: DataTypes.BOOLEAN,
-      defaulValue: false
-    },
-    abandonAt: DataTypes.DATE,
+    joinAt: DataTypes.DATE,
+    leaveAt: DataTypes.DATE,
+    completeAt: DataTypes.DATE,
     complete: {
       type: DataTypes.BOOLEAN,
-      defaulValue: false
+      defaultValue: 0
     },
     completeReason: DataTypes.ENUM('agent', 'requester'),
-    completeAt: DataTypes.DATE,
-    joinAt: DataTypes.DATE,
-    leaveAt: DataTypes.DATE,
-    unmanagedAt: DataTypes.DATE
+    abandon: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: 0
+    },
+    unmanaged: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: 0
+    }
   }, {
     tableName: 'report_chat_session_history'
   });
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..7f9ed7353b94f8ec52bf456d7fb8f2b833fcf475
--- /dev/null
@@ -0,0 +1,42 @@
+/**
+ * Agent Log Model
+ */
+
+var moment = require('moment');
+
+module.exports = function(sequelize, DataTypes) {
+
+  var RoportMailRoomHistory = sequelize.define('RoportMailRoomHistory', {
+    uniqueid: {
+      type: DataTypes.STRING,
+      unique: true
+    },
+    subject: DataTypes.STRING,
+    accountid: DataTypes.STRING,
+    accountname: DataTypes.STRING,
+    accountaddress: DataTypes.STRING,
+    application: DataTypes.STRING,
+    from: DataTypes.STRING,
+    memberid: DataTypes.STRING,
+    membername: DataTypes.STRING,
+    queue: DataTypes.INTEGER,
+    queuename: DataTypes.STRING,
+    roomid: DataTypes.INTEGER,
+    complete: {
+      type: DataTypes.BOOLEAN,
+      defaulValue: false
+    },
+    completeReason: DataTypes.ENUM('agent'),
+    completeAt: DataTypes.DATE,
+    joinAt: DataTypes.DATE,
+    leaveAt: DataTypes.DATE,
+    unmanaged: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: false
+    }
+  }, {
+    tableName: 'report_mail_room_history'
+  });
+
+  return RoportMailRoomHistory;
+};
diff --git a/server/models/history/report_mail_room_history.js b/server/models/history/report_mail_room_history.js
index e25f7ae339ed01f8c18f379a97d3d7b6cb8122bc..4c7d848e0c53f391af3732b0ca2403eaa4d9a4c2 100644 (file)
--- a/server/models/history/report_mail_room_history.js
@@ -7,10 +7,7 @@ var moment = require('moment');
 module.exports = function(sequelize, DataTypes) {
 
   var ReportMailSession = sequelize.define('ReportMailSessionHistory', {
-    uniqueid: {
-      type: DataTypes.STRING,
-      unique: true
-    },
+    uniqueid: DataTypes.STRING,
     subject: DataTypes.STRING,
     accountid: DataTypes.STRING,
     accountname: DataTypes.STRING,
@@ -25,11 +22,18 @@ module.exports = function(sequelize, DataTypes) {
       type: DataTypes.INTEGER,
       defaultValue: 0
     },
-    holdtime: DataTypes.INTEGER,
-    queuecallerjoinAt: DataTypes.DATE,
-    queuecallerleaveAt: DataTypes.DATE,
-    queuecallerunmanagedAt: DataTypes.DATE,
-    queuecallerabandonedAt: DataTypes.DATE
+    joinAt: DataTypes.DATE,
+    leaveAt: DataTypes.DATE,
+    completeAt: DataTypes.DATE,
+    complete: {
+      type: DataTypes.BOOLEAN,
+      defaulValue: false
+    },
+    completeReason: DataTypes.ENUM('agent'),
+    unmanaged: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: false
+    }
   }, {
     tableName: 'report_mail_session_history'
   });
similarity index 64%
rename from server/models/history/report_mail_session_history.js
rename to server/models/history/report_mail_session_history.js
index a8efea270387aff773ccdff236675ccdbead3f06..ced8d79f90200ca7dd0a78255ec5504f0319d366 100644 (file)
@@ -1,7 +1,7 @@
 /* jshint indent: 2 */
 
 module.exports = function(sequelize, DataTypes) {
-  var Service = sequelize.define('Service', {
+  var List = sequelize.define('List', {
     name: {
       type: DataTypes.STRING,
       unique: true
@@ -15,21 +15,21 @@ module.exports = function(sequelize, DataTypes) {
       defaultValue: false
     }
   }, {
-    tableName: 'services',
+    tableName: 'cm_lists',
     associate: function(models) {
-      Service.belongsToMany(models.User, {
-        through: models.UserHasService,
-        foreignKey: 'service'
+      List.belongsToMany(models.User, {
+        through: models.UserHasList,
+        foreignKey: 'list'
       });
-      Service.hasMany(models.CustomField, {
+      List.hasMany(models.CustomField, {
         as: 'CustomFields',
         required: false
       });
-      Service.hasMany(models.Contact, {
+      List.hasMany(models.Contact, {
         as: 'Contacts',
         onDelete: 'cascade'
       });
-      Service.addScope('customFields', {
+      List.addScope('customFields', {
         include: [{
           model: models.CustomField,
           as: 'CustomFields'
@@ -38,5 +38,5 @@ module.exports = function(sequelize, DataTypes) {
     }
   });
 
-  return Service;
+  return List;
 };
index 8f1febf29953ea5ffb011c915e769d89a26ee8c1..196483af9b44f14aebd83b76bbc881b5fca22e30 100644 (file)
@@ -14,8 +14,8 @@ module.exports = function(sequelize, DataTypes) {
     websiteaddress: DataTypes.STRING,
     websiteid: DataTypes.INTEGER,
     application: DataTypes.STRING,
-    agentid: DataTypes.INTEGER,
-    agentname: DataTypes.STRING,
+    memberid: DataTypes.INTEGER,
+    membername: DataTypes.STRING,
     visitorid: DataTypes.STRING,
     visitorname: DataTypes.STRING,
     visitoremail: DataTypes.STRING,
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..34cecdae7850c0aef910dea232d56d084f267875
--- /dev/null
@@ -0,0 +1,49 @@
+'use strict';
+
+/**
+ * Report Chat Room Log Model
+ */
+
+var moment = require('moment');
+
+module.exports = function(sequelize, DataTypes) {
+
+  var ReportChatRoom = sequelize.define('ReportChatRoom', {
+    uniqueid: {
+      type: DataTypes.STRING,
+      unique: true
+    },
+    websitename: DataTypes.STRING,
+    websiteaddress: DataTypes.STRING,
+    websiteid: DataTypes.INTEGER,
+    application: DataTypes.STRING,
+    visitorid: DataTypes.STRING,
+    visitorname: DataTypes.STRING,
+    visitoremail: DataTypes.STRING,
+    memberid: DataTypes.STRING,
+    membername: DataTypes.STRING,
+    queueid: DataTypes.INTEGER,
+    queuename: DataTypes.STRING,
+    roomid: DataTypes.INTEGER,
+    abandon: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: 0
+    },
+    complete: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: 0
+    },
+    completeReason: DataTypes.ENUM('agent', 'requester'),
+    completeAt: DataTypes.DATE,
+    joinAt: DataTypes.DATE,
+    leaveAt: DataTypes.DATE,
+    unmanaged: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: 0
+    }
+  }, {
+    tableName: 'report_chat_room'
+  });
+
+  return ReportChatRoom;
+};
diff --git a/server/models/report_chat_room.js b/server/models/report_chat_room.js
index 4ee5fc24254dfe3958bcdec0b15e1d2f4e502947..f06066b45bb4220357e9dbfebc10bd800e839753 100644 (file)
--- a/server/models/report_chat_room.js
@@ -1,5 +1,7 @@
+'use strict';
+
 /**
- * Agent Log Model
+ * Report Chat Session Log Model
  */
 
 var moment = require('moment');
@@ -7,10 +9,7 @@ var moment = require('moment');
 module.exports = function(sequelize, DataTypes) {
 
   var ReportChatSession = sequelize.define('ReportChatSession', {
-    uniqueid: {
-      type: DataTypes.STRING,
-      unique: true
-    },
+    uniqueid: DataTypes.STRING,
     websitename: DataTypes.STRING,
     websiteaddress: DataTypes.STRING,
     websiteid: DataTypes.INTEGER,
@@ -18,25 +17,27 @@ module.exports = function(sequelize, DataTypes) {
     visitorid: DataTypes.STRING,
     visitorname: DataTypes.STRING,
     visitoremail: DataTypes.STRING,
-    agentid: DataTypes.STRING,
-    agentname: DataTypes.STRING,
+    memberid: DataTypes.STRING,
+    membername: DataTypes.STRING,
     queueid: DataTypes.INTEGER,
     queuename: DataTypes.STRING,
     roomid: DataTypes.INTEGER,
-    abandon: {
-      type: DataTypes.BOOLEAN,
-      defaulValue: false
-    },
-    abandonAt: DataTypes.DATE,
+    joinAt: DataTypes.DATE,
+    leaveAt: DataTypes.DATE,
+    completeAt: DataTypes.DATE,
     complete: {
       type: DataTypes.BOOLEAN,
-      defaulValue: false
+      defaultValue: 0
     },
     completeReason: DataTypes.ENUM('agent', 'requester'),
-    completeAt: DataTypes.DATE,
-    joinAt: DataTypes.DATE,
-    leaveAt: DataTypes.DATE,
-    unmanagedAt: DataTypes.DATE
+    abandon: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: 0
+    },
+    unmanaged: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: 0
+    }
   }, {
     tableName: 'report_chat_session'
   });
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..05beb8131f9e7b50b1f88ce4ccec40b684f08743
--- /dev/null
@@ -0,0 +1,41 @@
+/**
+ * Agent Log Model
+ */
+
+var moment = require('moment');
+
+module.exports = function(sequelize, DataTypes) {
+  var ReportMailRoom = sequelize.define('ReportMailRoom', {
+    uniqueid: {
+      type: DataTypes.STRING,
+      unique: true
+    },
+    subject: DataTypes.STRING,
+    accountid: DataTypes.STRING,
+    accountname: DataTypes.STRING,
+    accountaddress: DataTypes.STRING,
+    application: DataTypes.STRING,
+    from: DataTypes.STRING,
+    memberid: DataTypes.STRING,
+    membername: DataTypes.STRING,
+    queue: DataTypes.INTEGER,
+    queuename: DataTypes.STRING,
+    roomid: DataTypes.INTEGER,
+    complete: {
+      type: DataTypes.BOOLEAN,
+      defaulValue: false
+    },
+    completeReason: DataTypes.ENUM('agent'),
+    completeAt: DataTypes.DATE,
+    joinAt: DataTypes.DATE,
+    leaveAt: DataTypes.DATE,
+    unmanaged: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: false
+    }
+  }, {
+    tableName: 'report_mail_room'
+  });
+
+  return ReportMailRoom;
+};
diff --git a/server/models/report_mail_room.js b/server/models/report_mail_room.js
index 903631e2edf1b6296b97ddda4a0c4d6b6c15b572..d1728287aade72bc82204084238d96966de939c9 100644 (file)
--- a/server/models/report_mail_room.js
@@ -6,10 +6,7 @@ var moment = require('moment');
 
 module.exports = function(sequelize, DataTypes) {
   var ReportMailSession = sequelize.define('ReportMailSession', {
-    uniqueid: {
-      type: DataTypes.STRING,
-      unique: true
-    },
+    uniqueid: DataTypes.STRING,
     subject: DataTypes.STRING,
     accountid: DataTypes.STRING,
     accountname: DataTypes.STRING,
@@ -24,11 +21,18 @@ module.exports = function(sequelize, DataTypes) {
       type: DataTypes.INTEGER,
       defaultValue: 0
     },
-    holdtime: DataTypes.INTEGER,
-    queuecallerjoinAt: DataTypes.DATE,
-    queuecallerleaveAt: DataTypes.DATE,
-    queuecallerunmanagedAt: DataTypes.DATE,
-    queuecallerabandonedAt: DataTypes.DATE
+    joinAt: DataTypes.DATE,
+    leaveAt: DataTypes.DATE,
+    completeAt: DataTypes.DATE,
+    complete: {
+      type: DataTypes.BOOLEAN,
+      defaulValue: false
+    },
+    completeReason: DataTypes.ENUM('agent'),
+    unmanaged: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: false
+    }
   }, {
     tableName: 'report_mail_session'
   });
index b06b742471c7991c96622bbd4276afe1b603e928..5ed2def299a425c481e6ee7fdf598f131afd743b 100644 (file)
@@ -56,7 +56,27 @@ module.exports = function(sequelize, DataTypes) {
     tableName: 'report_queue',
     indexes: [{
       fields: ['uniqueid']
-    }]
+    }],
+    associate: function(models) {
+      // SCOPES MANAGEMENT
+      ReportQueue
+        .addScope('agent', function(queues) {
+          return {
+            where: {
+              queue: {
+                $in: queues
+              }
+            }
+          }
+        });
+
+      ReportQueue
+        .addScope('waiting', {
+          where: {
+            queuecallerleaveAt: null
+          }
+        });
+    }
   });
 
   return ReportQueue;
index f5075116c5e942c76aca384a094bb08889b8e274..f075f4169e1a25c9f67dbca07523cd5cbbf2aacf 100644 (file)
@@ -6,14 +6,33 @@ module.exports = function(sequelize, DataTypes) {
 
   var ReportTransfer = sequelize.define('ReportTransfer', {
     type: DataTypes.ENUM('blind', 'attended'),
+    result: DataTypes.STRING,
     transferercalleridnum: DataTypes.STRING,
     transferercalleridname: DataTypes.STRING,
+    origtransferercalleridnum: DataTypes.STRING,
+    origtransferercalleridname: DataTypes.STRING,
     transfererconnectedlinenum: DataTypes.STRING,
     transfererconnectedlinename: DataTypes.STRING,
+    origtransfererconnectedlinenum: DataTypes.STRING,
+    origtransfererconnectedlinename: DataTypes.STRING,
     transferercontext: DataTypes.STRING,
     transfererexten: DataTypes.STRING,
+    origtransferercontext: DataTypes.STRING,
+    origtransfererexten: DataTypes.STRING,
+    origtransfereruniqueid: DataTypes.STRING,
+    secondtransfereruniqueid: DataTypes.STRING,
+    secondtransfererlinkedid: DataTypes.STRING,
     transfereecontext: DataTypes.STRING,
     transfereeexten: DataTypes.STRING,
+    transfereecalleridnum: DataTypes.STRING,
+    transfereecalleridname: DataTypes.STRING,
+    transfereeconnectedlinenum: DataTypes.STRING,
+    transfereeconnectedlinename: DataTypes.STRING,
+    transfertargetcalleridname: DataTypes.STRING,
+    transfertargetconnectedlinenum: DataTypes.STRING,
+    transfertargetcontext: DataTypes.STRING,
+    transfertargetexten: DataTypes.STRING,
+    transfertargetuniqueid: DataTypes.STRING,
     transfereruniqueid: DataTypes.STRING,
     transfererlinkedid: DataTypes.STRING,
     extension: DataTypes.STRING,
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..f75e31983850c6db833cb3bf4444a415b0f8431c
--- /dev/null
@@ -0,0 +1,50 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+  var SmsAccount = sequelize.define('SmsAccount', {
+    name: {
+      type: DataTypes.STRING
+    },
+    description: {
+      type: DataTypes.STRING
+    },
+    type: {
+      type: DataTypes.STRING
+    },
+    fidelity: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: false
+    },
+    timeout: {
+      type: DataTypes.INTEGER,
+      defaultValue: 0
+    },
+    phone: {
+      type: DataTypes.INTEGER,
+      unique: true
+
+    },
+    sid: {
+      type: DataTypes.STRING
+    },
+    token: {
+      type: DataTypes.STRING
+    },
+    username: {
+      type: DataTypes.STRING
+    },
+    password: {
+      type: DataTypes.STRING
+    }
+
+  }, {
+    tableName: 'sms_accounts',
+    associate: function(models) {
+      // BINDING
+      SmsAccount.hasMany(models.SmsRoom);
+      SmsAccount.hasMany(models.SmsMessage);
+
+    }
+  });
+  return SmsAccount;
+};
diff --git a/server/models/sms_account.js b/server/models/sms_account.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..32f093b279207c76bfc2eca07602e6a13438a629
--- /dev/null
@@ -0,0 +1,33 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+  return sequelize.define('SmsApplication', {
+    app: {
+      type: DataTypes.ENUM('queue', 'agent')
+    },
+    priority: {
+      type: DataTypes.INTEGER
+    },
+    timeout: {
+      type: DataTypes.INTEGER
+    },
+    interval: {
+      type: DataTypes.STRING
+    }
+  }, {
+    tableName: 'sms_applications',
+    associate: function(models) {
+      // hasMany relations
+      models.SmsApplication.belongsTo(models.User, {
+        onDelete: 'restrict'
+      });
+      models.SmsApplication.belongsTo(models.Interval);
+      models.SmsApplication.belongsTo(models.SmsQueue, {
+        onDelete: 'restrict'
+      });
+      models.SmsApplication.belongsTo(models.SmsAccount, {
+        onDelete: 'restrict'
+      });
+    }
+  });
+};
diff --git a/server/models/sms_application.js b/server/models/sms_application.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..67067a7dbf96da094308b35cca5776c3354102e6
--- /dev/null
@@ -0,0 +1,41 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+  var SmsMessage = sequelize.define('SmsMessage', {
+    from: {
+      type: DataTypes.INTEGER,
+      allowNull: false,
+      validate: {
+        notEmpty: true,
+      }
+    },
+    to: {
+      type: DataTypes.INTEGER,
+      allowNull: false,
+      validate: {
+        notEmpty: true,
+      }
+    },
+    // from: DataTypes.INTEGER,
+    // to: DataTypes.INTEGER,
+    body: DataTypes.STRING,
+    method: {
+      type: DataTypes.ENUM('IN', 'OUT')
+    },
+    status: {
+      type: DataTypes.ENUM('SENT', 'SENDING', 'RECEIVED', 'FAILED', 'NOTE'),
+      defaultValue: 'SENDING'
+    }
+  }, {
+    tableName: 'sms_messages',
+    associate: function(models) {
+
+      SmsMessage.belongsTo(models.User);
+      SmsMessage.belongsTo(models.SmsRoom, {
+        onDelete: 'cascade'
+      });
+
+    }
+  })
+  return SmsMessage;
+};
diff --git a/server/models/sms_message.js b/server/models/sms_message.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..b07d717a5fda2b2f187348fa60ace29d0fe0309d
--- /dev/null
@@ -0,0 +1,34 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+  return sequelize.define('SmsQueue', {
+    name: {
+      type: DataTypes.STRING,
+      unique: true
+    },
+    description: {
+      type: DataTypes.STRING,
+    },
+    timeout: {
+      type: DataTypes.INTEGER,
+    },
+    strategy: {
+      type: DataTypes.ENUM('rrmemory', 'beepall')
+    }
+  }, {
+    tableName: 'sms_queues',
+    associate: function(models) {
+      // RELATIONS
+      // models.SmsQueue.belongsToMany(models.User, {
+      //   through: models.UserHasSmsQueue
+      // });
+      //SCOPES
+      models.SmsQueue.addScope('default', {
+        include: [{
+          model: models.User,
+          attributes: ['id', 'name', 'fullname', 'email', 'online', 'lastLoginAt']
+        }]
+      });
+    }
+  });
+};
diff --git a/server/models/sms_queue.js b/server/models/sms_queue.js
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..fa58c9fe3e4dedba1174a92984d48fc675f71565
--- /dev/null
@@ -0,0 +1,41 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+  var SmsRoom = sequelize.define('SmsRoom', {
+    from: DataTypes.INTEGER,
+    status: {
+      type: DataTypes.ENUM('NEW', 'OPEN', 'CLOSED'),
+      defaultValue: 'NEW'
+    }
+
+  }, {
+    tableName: 'sms_rooms',
+    associate: function(models) {
+      // BINDING
+      SmsRoom.hasMany(models.SmsMessage);
+      SmsRoom.belongsTo(models.User);
+
+      SmsRoom.belongsTo(models.SmsAccount);
+      SmsRoom.addScope('default', {
+        order: [
+          ['createdAt', 'DESC']
+        ],
+        include: [{
+          model: models.SmsAccount
+        }, {
+          model: models.SmsMessage,
+          include: [{
+            model: models.User,
+            attributes: ['id', 'name', 'fullname', 'email']
+          }]
+        }, {
+          model: models.User,
+          attributes: ['id', 'name', 'fullname', 'email']
+        }]
+      });
+    }
+
+
+  });
+  return SmsRoom;
+};
diff --git a/server/models/sms_room.js b/server/models/sms_room.js
deleted file mode 100644 (file)
index 105d88891fa73783d03df2b7627754ed32ae65d1..0000000000000000000000000000000000000000
--- a/server/models/sms_room.js
+++ /dev/null
@@ -1,507 +0,0 @@
-'use strict';
-
-var crypto = require('crypto');
-var md5 = require('md5');
-var _ = require('lodash');
-
-module.exports = function(sequelize, DataTypes) {
-  var Telephone = sequelize.define('Telephone', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true,
-      validate: {
-        notEmpty: true,
-        is: /^[A-Za-z0-9\.\_]+$/i
-      },
-      set: function(name) {
-        this.setDataValue('name', name);
-        this.setDataValue('defaultuser', name);
-      }
-    },
-    password: {
-      type: DataTypes.STRING,
-      allowNull: false,
-      validate: {
-        notEmpty: true
-      },
-      set: function(password) {
-        this.salt = this.makeSalt();
-        this.setDataValue('password', this.encryptPassword(password));
-        this.setDataValue('md5secret', this.md5Password(this.name + ':asterisk:' + password));
-      }
-    },
-    internal: {
-      type: DataTypes.INTEGER(11),
-      unique: true,
-      set: function(internal) {
-        this.setDataValue('internal', internal);
-        this.setDataValue('accountcode', internal);
-      }
-    },
-    ipaddr: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    port: {
-      type: DataTypes.INTEGER(5),
-      allowNull: true,
-    },
-    regseconds: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    defaultuser: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    fullcontact: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    regserver: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    useragent: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    lastms: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    host: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'dynamic'
-    },
-    type: {
-      type: DataTypes.ENUM('friend', 'user', 'peer'),
-      allowNull: true,
-      defaultValue: 'friend'
-    },
-    context: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'from-sip'
-    },
-    permit: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    deny: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    secret: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    md5secret: {
-      type: DataTypes.STRING,
-      allowNull: true
-    },
-    remotesecret: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    transport: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'udp'
-    },
-    dtmfmode: {
-      type: DataTypes.ENUM('rfc2833', 'info', 'shortinfo', 'inband',
-        'auto'),
-      allowNull: true,
-      defaultValue: 'rfc2833'
-    },
-    directmedia: {
-      type: DataTypes.ENUM('yes', 'no', 'nonat', 'update'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    nat: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'force_rport,comedia'
-    },
-    callgroup: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    pickupgroup: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    language: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'en'
-    },
-    disallow: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'all'
-    },
-    allow: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'alaw;ulaw;gsm'
-    },
-    insecure: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'port,invite'
-    },
-    trustrpid: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    progressinband: {
-      type: DataTypes.ENUM('yes', 'no', 'never'),
-      allowNull: true,
-    },
-    promiscredir: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    useclientcode: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    accountcode: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    setvar: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    callerid: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: '"" <>'
-    },
-    amaflags: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    callcounter: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'yes'
-    },
-    busylevel: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    allowoverlap: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    allowsubscribe: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    videosupport: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    maxcallbitrate: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    rfc2833compensate: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    mailbox: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    "session-timers": {
-      type: DataTypes.ENUM('accept', 'refuse', 'originate'),
-      allowNull: true,
-    },
-    "session-expires": {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    "session-minse": {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    "session-refresher": {
-      type: DataTypes.ENUM('uac', 'uas'),
-      allowNull: true,
-    },
-    t38pt_usertpsource: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    regexten: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    fromdomain: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    fromuser: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    qualify: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'yes'
-    },
-    defaultip: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    rtptimeout: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    rtpholdtimeout: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    sendrpid: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    outboundproxy: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    callbackextension: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    timert1: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    timerb: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    qualifyfreq: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    constantssrc: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    contactpermit: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    contactdeny: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    usereqphone: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    textsupport: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    faxdetect: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    buggymwi: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    auth: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    fullname: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    trunkname: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    cid_number: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    callingpres: {
-      type: DataTypes.ENUM('ALLOWED_NOT_SCREENED',
-        'ALLOWED_PASSED_SCREEN', 'ALLOWED_FAILED_SCREEN', 'ALLOWED',
-        'PROHIB_NOT_SCREENED', 'PROHIB_PASSED_SCREEN',
-        'PROHIB_FAILED_SCREEN', 'PROHIB'),
-      allowNull: true,
-    },
-    mohinterpret: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    mohsuggest: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    parkinglot: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    hasvoicemail: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    subscribemwi: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    vmexten: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    description: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    autoframing: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    limitonpeers: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'yes'
-    },
-    rtpkeepalive: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    "call-limit": {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-      defaultValue: null
-    },
-    g726nonstandard: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    ignoresdpversion: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    allowtransfer: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    dynamic: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    encryption: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    registry: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    }
-  }, {
-    tableName: 'users',
-    defaultScope: {
-      where: {
-        role: 'telephone'
-      }
-    },
-    instanceMethods: {
-      /**
-       * Authenticate - check if the passwords are the same
-       *
-       * @param {String} plainText
-       *        {function} callBack
-       * @api public
-       */
-      authenticate: function(plainText) {
-        return this.encryptPassword(plainText) === this.password;
-      },
-      /**
-       * Make salt
-       *
-       * @return {String}
-       * @api public
-       */
-      makeSalt: function() {
-        return crypto.randomBytes(16).toString('base64');
-      },
-      /**
-       * Encrypt password
-       *
-       * @param {String} password
-       * @return {String}
-       * @api public
-       */
-      encryptPassword: function(password) {
-        if (!password || !this.salt) return '';
-        var salt = new Buffer(this.salt, 'base64');
-        return crypto.pbkdf2Sync(password, salt, 10000, 64).toString(
-          'base64');
-      },
-      /**
-       * md5 password
-       *
-       * @param {String} password
-       * @return {String}
-       * @api public
-       */
-      md5Password: function(password) {
-        if (!password) return '';
-        return md5(password);
-      }
-    },
-    associate: function(models) {
-      // BELOGNS TO MANY
-      // Telephone.hasMany(models.ChatMessage);
-      // Telephone.hasMany(models.Contact);
-      // Telephone.belongsToMany(models.Module, {
-      //   through: 'user_has_modules'
-      // });
-      // Telephone.belongsToMany(models.Channel, {
-      //   through: 'user_has_channels'
-      // });
-      // Telephone.belongsToMany(models.Team, {
-      //   through: models.UserHasTeam
-      // });
-      // Telephone.belongsToMany(models.ChatRoom, {
-      //   through: models.UserHasChatRoom
-      // });
-      // Telephone.belongsToMany(models.MailQueue, {
-      //   through: models.UserHasMailQueue
-      // });
-      // Telephone.belongsToMany(models.ChatQueue, {
-      //   through: models.UserHasChatQueue
-      // });
-      // Telephone.belongsToMany(models.VoiceQueue, {
-      //   through: models.UserHasVoiceQueue
-      // });
-      // Telephone.hasMany(models.VoiceExtension, {
-      //   foreignKey: 'UserId',
-      //   as: 'UserExtensions',
-      //   onDelete: 'cascade'
-      // });
-    }
-  });
-
-  return Telephone;
-}
diff --git a/server/models/telephone.js b/server/models/telephone.js
index 47b64dd11973cc5aa42e558675d9f4cbab4e6081..0ac7ce72ef7952ad1fefda1c7317f97854c89054 100644 (file)
+++ b/server/models/telephone.js
@@ -786,8 +786,8 @@ module.exports = function(sequelize, DataTypes) {
         through: models.UserHasVoiceQueue,
         required: false
       });
-      User.belongsToMany(models.Service, {
-        through: models.UserHasService
+      User.belongsToMany(models.List, {
+        through: models.UserHasList
       });
       User.hasMany(models.VoiceExtension, {
         foreignKey: 'UserId',
similarity index 64%
rename from server/models/user.js
rename to server/models/user.js
index a3ff23d36fcc4e4add72e5602a376ceea21781ab..907d218f00e93990ec056f769d072a23c0beb79a 100644 (file)
@@ -1,21 +1,21 @@
 /**
- * 
+ *
  */
 
 var crypto = require('crypto');
 
 module.exports = function(sequelize, DataTypes) {
-       var UserHasService = sequelize.define('UserHasService', {
+       var UserHasList = sequelize.define('UserHasList', {
                membername: {
                        type: DataTypes.STRING
                }
        }, {
-               tableName: 'user_has_services',
+               tableName: 'cm_user_has_lists',
                indexes: [{
                        name: 'membername',
                        fields: ['membername']
                }]
        });
 
-       return UserHasService;
+       return UserHasList;
 };
index 24791d42dd35480ad0a196e8590144b23eb6b3e5..0b14b5548233e0c06fd7d8ade321f61a53f6b514 100644 (file)
@@ -3,6 +3,7 @@
  */
 
 var crypto = require('crypto');
+var moment = require('moment');
 
 module.exports = function(sequelize, DataTypes) {
        var UserHasVoiceQueue = sequelize.define('UserHasVoiceQueue', {
@@ -44,7 +45,7 @@ module.exports = function(sequelize, DataTypes) {
                                if (lastcall === '0') {
                                        this.setDataValue('lastcall', null);
                                } else {
-                                       this.setDataValue('lastcall', sequelize.fn('FROM_UNIXTIME', lastcall, '%Y-%m-%d %H:%i:%s'));
+                                       this.setDataValue('lastcall', moment().format("YYYY-MM-DD HH:mm:ss"));
                                }
                        }
                },
index 11e609a64e68ba1df2febfa21c65a18817fd24f5..2bd0d7a2dd3626bcdc045c51b89dcfabc9c3ba1e 100644 (file)
@@ -13,9 +13,14 @@ module.exports = function(app) {
   var env = app.get('env');
 
   // Insert routes below
+  app.use('/api/report/chat/rooms', require('./api/report_chat_room'));
+  app.use('/api/sms/queues', require('./api/sms_queue'));
+  app.use('/api/sms/applications', require('./api/sms_application'));
+  app.use('/api/sms/messages', require('./api/sms_message'));
+  app.use('/api/sms/rooms', require('./api/sms_room'));
+  app.use('/api/sms/accounts', require('./api/sms_account'));
   app.use('/api/report/calls', require('./api/report_call'));
   app.use('/api/chat/proactives', require('./api/chat_proactive_action'));
-
   app.use('/api/chat/websites/fields', require('./api/chat_websites_field'));
   app.use('/api/answers', require('./api/canned_answer'));
   app.use('/api/actions', require('./api/action'));
@@ -66,8 +71,8 @@ module.exports = function(app) {
   app.use('/api/voice/voicemails', require('./api/voice_voicemail'));
   app.use('/api/contactmanager/contacts', require('./api/contact_manager'));
   app.use('/api/contactmanager/companies', require('./api/company'));
-  app.use('/api/contactmanager/services', require('./api/service'));
-  app.use('/api/contactmanager/user_has_services', require('./api/user_has_service'));
+  app.use('/api/contactmanager/lists', require('./api/list'));
+  app.use('/api/contactmanager/user_has_lists', require('./api/user_has_list'));
   app.use('/api/intervals', require('./api/interval'));
   app.use('/api/voice/extensions', require('./api/voice_extension'));
   app.use('/api/voice/contexts', require('./api/voice_context'));
Simple merge