Advertisement
Guest User

Untitled

a guest
Aug 10th, 2016
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var voltaNotes=angular.module("voltaNotes","main.route main.templates ngAnimate ngTouch ngCookies angular-growl directive.vnNotify angularModalService service.sync service.notify widget.scrollbar directive.vnFocusMe".split(" "));
  2. voltaNotes.run(["$rootScope","$q","$cookies","$socketService","$state","$syncService","$notifyService",function(a,l,c,f,h,b,e){a.settingsMode=!1;a.$on("$stateChangeStart",function(a,b,m,e,c,l){0>["login","registration","forgot","recovery","confirm"].indexOf(b.name)&&!f.sessionIsOpen&&(a.preventDefault(),h.go("login"))})}]);voltaNotes.factory("$mediator",["$rootScope",function(a){return a.$new(!0)}]);
  3. voltaNotes.config(["growlProvider",function(a){a.globalTimeToLive({success:8E3,error:-1,warning:1E4,info:8E3});a.globalPosition("top-right")}]);"use strict";var routeModule=angular.module("main.route","ui.router controller.content.auth.login controller.content.auth.registration controller.content.auth.confirm controller.content.auth.forgot controller.content.auth.recovery controller.sidebar.chat controller.content.chat.tickets controller.content.chat.groupsManagment controller.content.chat.userData controller.content.settings".split(" "));
  4. routeModule.config(["$stateProvider","$urlRouterProvider","$locationProvider",function(a,l,c){l.otherwise("/");a.state("main",{views:{"main-container":{templateUrl:"view.main.container.html"}}}).state("chat",{parent:"main",url:"/",views:{"main-sidebar-container":{templateUrl:"view.main.chat.sidebar.html",controller:"controllerSidebarChat"},"main-content-container":{templateUrl:"view.main.chat.tickets.html",controller:"controllerContentChatTickets"}}}).state("settings",{parent:"main",url:"/settings",
  5. views:{"main-sidebar-container":{templateUrl:"view.main.chat.sidebar.html",controller:"controllerSidebarChat"},"main-content-container":{templateUrl:"view.main.settings.html",controller:"controllerContentSettings"}}}).state("login",{parent:"main",url:"^/auth/login?session",views:{"main-sidebar-container":{templateUrl:"view.main.auth.login.html",controller:"controllerContentAuthLogin"},"main-content-container":{template:'<div style="width:100%;height:100%;background-color:#6cc18a;display:flex;flex-direction:row;justify-content:center;align-items:center;"><img style="max-width:100%;max-height:100%;" alt="ENOT" src="/assets/img/enot.jpg"></div>'}}}).state("registration",
  6. {parent:"main",url:"^/auth/registration",views:{"main-sidebar-container":{templateUrl:"view.main.auth.registration.html",controller:"controllerContentAuthRegistration"},"main-content-container":{}}}).state("confirm",{parent:"main",url:"^/auth/confirm?{key}&{id}",views:{"main-sidebar-container":{templateUrl:"view.main.auth.confirm.html",controller:"controllerContentAuthConfirm"},"main-content-container":{}}}).state("forgot",{parent:"main",url:"^/auth/forgot",views:{"main-sidebar-container":{templateUrl:"view.main.auth.forgot.html",
  7. controller:"controllerContentAuthForgot"},"main-content-container":{}}}).state("recovery",{parent:"main",url:"^/auth/recovery?{key}&{id}",views:{"main-sidebar-container":{templateUrl:"view.main.auth.recovery.html",controller:"controllerContentAuthRecovery"},"main-content-container":{template:'<img alt="ENOT" src="/assets/img/enot.jpg">'}}}).state("full",{views:{"main-container":{templateUrl:"view.full.container.html"}}}).state("groupsManagment",{parent:"full",url:"/groupsManagment",views:{"main-content-container":{templateUrl:"view.full.groupsManagment.html",
  8. controller:"controllerContentChatGroupsManagment"}}}).state("userData",{parent:"full",url:"/userData",views:{"main-content-container":{templateUrl:"view.full.userData.html",controller:"controllerContentChatUserData"}}});c.html5Mode(!0).hashPrefix("/")}]);"use strict";var vnFocusMe=angular.module("directive.vnFocusMe",[]);
  9. vnFocusMe.directive("vnFocusMe",["$timeout",function(a){return{scope:{trigger:"@vnFocusMe",vnFocusMeTicket:"=",vnFocusMeCurrentTicket:"="},link:function(l,c){l.$watch("trigger",function(f){"true"===f&&(l.vnFocusMeCurrentTicket(l.vnFocusMeTicket),a(function(){c[0].focus()}))})}}}]);"use strict";var vnTicketMessage=angular.module("directive.vnGetFiles",[]);
  10. vnTicketMessage.directive("vnGetFiles",["$rootScope","$window","$document","$filter","$templateCache","$compile","$dataStorage","$location","$q",function(a,l,c,f,h,b,e,d,k){return{restrict:"A",scope:{vnGetFiles:"="},link:function(a,b,e){},controller:["$scope","$element",function(a,b){function e(b){function k(a){a="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|bmp|gif|".indexOf(a)}if(b&&a.vnGetFiles)for(var d=0,c;c=b[d];d++)c={file:c,goodSize:!0,readed:!1,isImage:k(c)},5E6<
  11. c.file.size&&(c.goodSize=!1),a.vnGetFiles.currentFilesArray.unshift(c);console.log("$scope.vnGetFiles.currentFilesArray======",a.vnGetFiles.currentFilesArray);a.vnGetFiles.currentFilesArray.forEach(function(b){if(b.goodSize&&void 0===b.fileBinary){var e=new FileReader;e.onload=function(e){return function(e){b.fileBinary=e.target.result;b.readed=!0;--a.vnGetFiles.loadingCount;a.$apply()}}(b.file);e.onprogress=function(a){};a.vnGetFiles.loadingCount+=1;a.$apply();e.readAsBinaryString(b.file);b.isImage?
  12. (e=new FileReader,e.onload=function(e){return function(e){b.img=e.target.result;a.$apply()}}(b.file),e.onprogress=function(a){},e.readAsDataURL(b.file)):b.img="/assets/img/file.png"}})}a.vnGetFiles.currentFilesArray||(a.vnGetFiles.currentFilesArray=[]);a.vnGetFiles.loadingCount||(a.vnGetFiles.loadingCount=0);var k=b[0].getElementsByClassName("data-add-files-button")[0],d=b[0].getElementsByClassName("data-add-files-area")[0],c=b[0].getElementsByClassName("data-add-files-button-input")[0],f=b[0].getElementsByClassName("data-add-files-textarea")[0];
  13. angular.element(d);k.addEventListener("click",function(){c.click()},!1);c.addEventListener("change",function(a){e(a.target.files)},!1);d.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault();a.dataTransfer.dropEffect="copy"},!1);d.addEventListener("drop",function(a){a.stopPropagation();a.preventDefault();e(a.dataTransfer.files)},!1);f.addEventListener("paste",function(a){var b=(a.clipboardData||a.originalEvent.clipboardData).items;console.log("PASTE=================",b,a,
  14. a.clipboardData);a=[];for(var m in b){var k=b[m];"file"===k.kind&&(k=k.getAsFile(),k.name="buffer-"+String(new Date),a.push(k))}console.log("PASTE-FILES!!!=================",a);e(a)},!1)}]}}]);"use strict";var vnNotify=angular.module("directive.vnNotify",["service.notify","service.users","service.dataStorage"]);
  15. vnNotify.directive("vnNotify",["$notifyService","$templateCache","$compile","$usersService","$dataStorage",function(a,l,c,f,h){return{restrict:"A",replace:!0,scope:{vnNotify:"="},templateUrl:"template.main.notify.html",link:function(a,e,d){},controller:["$scope","$element",function(b,e){console.log("$scope.vnNotify",b.vnNotify);switch(b.vnNotify.eventName){case "notify:userDel":h.getObjectById("users",b.vnNotify.notifyData._id).then(function(a){b.user=a});b.answerYES=function(){f.deleteUserFromContacts(b.vnNotify.notifyData._id);
  16. a.deleteNotify([b.vnNotify])};b.answerNO=function(){a.deleteNotify([b.vnNotify])};var d=angular.element(l.get("template.notify.userDel.html")),d=c(d)(b);e.replaceWith(d);break;case "notify:userAdd":h.getObjectById("users",b.vnNotify.notifyData._id).then(function(a){b.user=a});b.answerYES=function(){f.addUserToContacts(b.vnNotify.notifyData._id);a.deleteNotify([b.vnNotify])};b.answerNO=function(){a.deleteNotify([b.vnNotify])};d=angular.element(l.get("template.notify.userAdd.html"));d=c(d)(b);e.replaceWith(d);
  17. break;default:b.vnNotify.viewed&&a.deleteNotify([b.vnNotify])}b.vnNotify.viewed||(b.vnNotify.viewed=!0)}]}}]);"use strict";vnTicketMessage=angular.module("directive.vnTicketMessage",[]);
  18. vnTicketMessage.directive("vnTicketMessage",["$rootScope","$window","$document","$filter","$templateCache","$compile","$dataStorage","$location","$anchorScroll",function(a,l,c,f,h,b,e,d,k){return{restrict:"A",replace:!0,scope:{vnTicketMessage:"="},templateUrl:"template.message.html",link:function(a,b,e){},controller:["$scope","$element",function(a,k){var d=f("orderBy")(e.getMessages(),"timestamp",!1),c=d.indexOf(a.vnTicketMessage);if(0<c&&"service"!==a.vnTicketMessage.type){var h=!0;do--c,d[c].ticket===
  19. a.vnTicketMessage.ticket&&(h=!1,a.hideFromer=a.vnTicketMessage.userFrom===d[c].userFrom&&"service"!==d[c].type?!0:!1);while(h&&0<c)}else a.hideFromer=!1;d=f("date")(a.vnTicketMessage.timestamp,"EEE d/M/yy H:mm");c=[{key:"Mon",val:"\u041f\u043d"},{key:"Tue",val:"\u0412\u0442"},{key:"Wed",val:"\u0421\u0440"},{key:"Thu",val:"\u0427\u0442"},{key:"Fri",val:"\u041f\u0442"},{key:"Sat",val:"\u0421\u0431"},{key:"Sun",val:"\u0412\u0441"}];d=d.toString();for(h=0;7>h;h++)d=d.replace(c[h].key,c[h].val);a.date=
  20. d;k.addClass(a.vnTicketMessage.userFrom.refs.currentUser?"message-box-left":"message-box-right");var d=a.vnTicketMessage.text,l={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},d=function(a){return String(a).replace(/[<>]/g,function(a){return l[a]})}(d),c=RegExp("(([-0-9a-zA-z\u0410-\u042f\u0430-\u044f.]*@)+[-0-9a-zA-z\u0410-\u042f\u0430-\u044f]*([.][-0-9a-zA-z\u0410-\u042f\u0430-\u044f]*)+)","gi"),d=d.replace(RegExp("(((ht|f)tps?://)+[-0-9a-zA-z\u0410-\u042f\u0430-\u044f]*([.][-0-9a-zA-z\u0410-\u042f\u0430-\u044f]*)+([:][0-9]+)?([/][-0-9a-zA-z\u0410-\u042f\u0430-\u044f]*)*[/]?[-0-9a-zA-z\u0410-\u042f\u0430-\u044f.]*([?]([0-9a-zA-z\u0410-\u042f\u0430-\u044f]*[=][0-9a-zA-z\u0410-\u042f\u0430-\u044f]*[&]?)*)?)",
  21. "gi"),'<a href="$&" target="_blank" class="message-link">$&</a>'),d=d.replace(c,'<a href="mailto:$&" target="_blank" class="message-link">$&</a>'),d=angular.element('<span class="message-text"><span class="message-text-block">'+d+"</span></span>"),d=b(d)(a);"service"===a.vnTicketMessage.type?(a.service=!0,c=angular.element(k.children()[1]),"leave the ticket"===a.vnTicketMessage.text?(a.prefix="- ",c.addClass("invisible")):"joined to the ticket"===a.vnTicketMessage.text?(a.prefix="+ ",c.addClass("invisible")):
  22. (d.addClass("message-type-service"),a.prefix="")):(a.prefix="",a.service=!1);angular.element(angular.element(k.children()[1]).children()[0]).replaceWith(d);angular.element(k.children()[2]);angular.element(k[0].parentElement)[0].scrollTop=1E5}]}}]);
  23. angular.module("widget.scrollbar",[]).directive("ngScrollbar",[function(){return{restrict:"AE",transclude:!0,scope:{scrollbarConfig:"=scrollbarConfig",scrollbarX:"@",scrollbarY:"@"},template:'<div style="position:relative;width:100%;height:100%;">                            <div class="ngscroll-content-container" style="display:inline-block;margin-top:0;margin-left:0" ng-transclude>                            </div>                            <ng-scrollbar-x ng-if="scrollbarX || scrollbarX === undefined"></ng-scrollbar-x>                            <ng-scrollbar-y ng-if="scrollbarY || scrollbarY === undefined"></ng-scrollbar-y>                       </div>',controller:"scrollbarController",
  24. compile:function(a){a.css("overflow","hidden");return function(a,c,f,h){h.init(c,a.scrollbarConfig)}}}}]).controller("scrollbarController",[function(){var a={dragSpeed:1,autoResize:!1,show:!1,scrollbar:{width:6,hoverWidth:8,color:"rgba(0,0,0,.6)"},scrollbarContainer:{width:12,color:"rgba(0,0,0,.1)"}},l,c,f,h,b;this.init=function(e,d){l=e;f=angular.copy(angular.extend(a,d||{}));c=angular.element(e[0].querySelector(".ngscroll-content-container"));h=(f.scrollbarContainer.width-f.scrollbar.width)/2;b=
  25. (f.scrollbarContainer.width-f.scrollbar.hoverWidth)/2};angular.extend(this,{winEl:angular.element(window),getContainerElement:function(){return l},getContentElement:function(){return c},getConfig:function(){return f},getScrollbarMargin:function(){return h},getScrollbarHoverMargin:function(){return b}})}]).directive("ngScrollbarY",["$timeout",function(a){return{restrict:"AE",require:"^ngScrollbar",replace:!0,template:'<div class="ngscrollbar-container-y" ng-style="styles.scrollbarContainer"><div class="ngscrollbar-y" ng-style="styles.scrollbar"></div></div>',
  26. compile:function(){return function(l,c,f,h){var b=h.getConfig(),e=angular.element(document),d=h.getContainerElement(),k=h.getContentElement(),m=angular.element(c[0].querySelector(".ngscrollbar-y")),r=h.getScrollbarMargin(),n=h.getScrollbarHoverMargin();l.styles={scrollbarContainer:{position:"absolute",width:b.scrollbarContainer.width+"px",height:"100%",top:0,right:0,transition:"background .3s ease-in-out","border-radius":b.scrollbarContainer.width/2+"px"},scrollbar:{position:"absolute",width:b.scrollbar.width+
  27. "px",right:r+"px",cursor:"default",opacity:0,transition:"opacity .3s ease-in-out, border-radius .1s linear, width .1s linear, right .1s linear",background:b.scrollbar.color,"border-radius":b.scrollbar.width/2+"px"}};var q=function(){var a=parseInt(k.css("margin-top"),10);k.css("margin-top","0px");k[0].offsetHeight>d[0].offsetHeight?(c.css("display","block"),m.css("height",Math.pow(d[0].offsetHeight,2)/k[0].offsetHeight-2*r+"px"),v(a),b.show&&m.css("opacity",1)):c.css("display","none")},v=function(a){a=
  28. Math.min(0,Math.max(a,d[0].offsetHeight-k[0].offsetHeight));k.css("margin-top",a+"px");m.css("top",-a/k[0].offsetHeight*d[0].offsetHeight+r+"px")},u=function(a){a=parseInt(k.css("margin-top"),10)+a;v(a)};d.on("mousewheel",function(a){k[0].offsetHeight>d[0].offsetHeight&&(a.preventDefault(),void 0!==a.originalEvent&&(a=a.originalEvent),u(a.wheelDeltaY||a.wheelDelta))});if(0<=window.navigator.userAgent.toLowerCase().indexOf("firefox"))d.on("wheel",function(a){k[0].offsetHeight>d[0].offsetHeight&&(a.preventDefault(),
  29. void 0!==a.originalEvent&&(a=a.originalEvent),u(40*-a.deltaY))});c.on("mouseenter",function(){c.css("background",b.scrollbarContainer.color);m.css("width",b.scrollbar.hoverWidth+"px");m.css("right",n+"px");m.css("border-radius",b.scrollbar.hoverWidth/2+"px")});c.on("mouseleave",function(){c.css("background","none");m.css("width",b.scrollbar.width+"px");m.css("right",r+"px");m.css("border-radius",b.scrollbar.width/2+"px")});var g=!1,t,p=!1;b.show||(d.on("mouseenter",function(){p=!0;m.css("opacity",
  30. 1)}),d.on("mouseleave",function(){p=!1;g||m.css("opacity",0)}));m.on("mousedown",function(a){a.preventDefault();t=a.screenY;g=!0;e.one("mouseup",function(){g=!1;b.show||p||m.css("opacity",0)})});e.on("mousemove",function(a){g&&(a.preventDefault(),u(-(a.screenY-t)*b.dragSpeed*k[0].offsetHeight/d[0].offsetHeight),t=a.screenY)});a(function(){q();document.createStyleSheet?(k.on("DOMNodeInserted",q),k.on("DOMNodeRemoved",q)):(new MutationObserver(function(a){a.length&&q()})).observe(k[0],{childList:!0,
  31. subtree:!0})},5);b.autoResize&&function(){var a;h.winEl.on("resize",function(b){a&&clearTimeout(a);a=setTimeout(function(){a=null;q()},50)})}()}}}}]).directive("ngScrollbarX",["$timeout",function(a){return{restrict:"AE",replace:!0,require:"^ngScrollbar",template:'<div class="ngscrollbar-container-x" ng-style="styles.scrollbarContainer"><div class="ngscrollbar-x" ng-style="styles.scrollbar"></div></div>',compile:function(){return function(l,c,f,h){var b=h.getConfig(),e=angular.element(document);f=
  32. h.getContainerElement();var d=f[0],k=h.getContentElement(),m=angular.element(c[0].querySelector(".ngscrollbar-x")),r=h.getScrollbarMargin(),n=h.getScrollbarHoverMargin();l.styles={scrollbarContainer:{position:"absolute",width:"100%",transition:"background .3s ease-in-out","border-radius":b.scrollbarContainer.width/2+"px"},scrollbar:{position:"absolute",cursor:"default",opacity:0,transition:"opacity .3s ease-in-out, border-radius .1s linear, width .1s linear, right .1s linear",background:b.scrollbar.color,
  33. "border-radius":b.scrollbar.width/2+"px"}};c.css("height",b.scrollbarContainer.width+"px");c.css("bottom",0);c.css("left",0);m.css("top",r+"px");m.css("height",b.scrollbar.width+"px");var q=function(){var a=parseInt(k.css("margin-left"),10);k.css("margin-left","0px");k[0].offsetWidth>d.offsetWidth?(c.css("display","block"),m.css("width",Math.pow(d.offsetWidth,2)/k[0].offsetWidth-2*r+"px"),v(a),b.show&&m.css("opacity",1)):c.css("display","none")},v=function(a){a=Math.min(0,Math.max(a,d.offsetWidth-
  34. k[0].offsetWidth));k.css("margin-left",a+"px");m.css("left",-a/k[0].offsetWidth*d.offsetWidth+r+"px")};c.on("mouseenter",function(){c.css("background",b.scrollbarContainer.color);m.css("height",b.scrollbar.hoverWidth+"px");m.css("top",n+"px");m.css("border-radius",b.scrollbar.hoverWidth/2+"px")});c.on("mouseleave",function(){c.css("background","none");m.css("height",b.scrollbar.width+"px");m.css("top",r+"px");m.css("border-radius",b.scrollbar.width/2+"px")});var u=!1,g,t=!1;b.show||(f.on("mouseenter",
  35. function(){t=!0;m.css("opacity",1)}),f.on("mouseleave",function(){t=!1;u||m.css("opacity",0)}));m.on("mousedown",function(a){a.preventDefault();u=!0;g=a.screenX;e.one("mouseup",function(){u=!1;b.show||t||m.css("opacity",0)})});e.on("mousemove",function(a){if(u){a.preventDefault();var e=-(a.screenX-g)*b.dragSpeed*k[0].offsetWidth/d.offsetWidth,e=parseInt(k.css("margin-left"),10)+e;v(e);g=a.screenX}});a(function(){q();document.createStyleSheet?(k.on("DOMNodeInserted",q),k.on("DOMNodeRemoved",q)):(new MutationObserver(function(a){a.length&&
  36. q()})).observe(k[0],{childList:!0,subtree:!0})},5);b.autoResize&&function(){var a;h.winEl.on("resize",function(b){a&&clearTimeout(a);a=setTimeout(function(){a=null;q()},50)})}()}}}}]);"use strict";var module=angular.module("controller.group.create",[]);module.controller("createGroupController",["$scope","close",function(a,l){a.name="";a.label="";a.close=function(){l()};a.apply=function(){""!==a.name&&l({name:a.name,label:a.label})}}]);"use strict";
  37. module=angular.module("controller.uploadFiles",["angularFileUpload","directive.vnGetFiles"]);
  38. module.controller("uploadFilesController",["$scope","close","FileUploader",function(a,l,c){a.close=function(){l()};a.filesArray=[];a.inputFiles=function(c){console.log("!!!!!!!!!!!!!!!!!!!!!!!================",c,a.files,a.filesArray)};c=a.uploader=new c;c.filters.push({name:"customFilter",fn:function(a,c){return 10>this.queue.length}});c.onWhenAddingFileFailed=function(a,c,b){console.info("onWhenAddingFileFailed",a,c,b)};c.onAfterAddingFile=function(a){console.info("onAfterAddingFile",a)};c.onAfterAddingAll=
  39. function(a){console.info("onAfterAddingAll",a)};c.onBeforeUploadItem=function(a){console.info("onBeforeUploadItem",a)};c.onProgressItem=function(a,c){console.info("onProgressItem",a,c)};c.onProgressAll=function(a){console.info("onProgressAll",a)};c.onSuccessItem=function(a,c,b,e){console.info("onSuccessItem",a,c,b,e)};c.onErrorItem=function(a,c,b,e){console.info("onErrorItem",a,c,b,e)};c.onCancelItem=function(a,c,b,e){console.info("onCancelItem",a,c,b,e)};c.onCompleteItem=function(a,c,b,e){console.info("onCompleteItem",
  40. a,c,b,e)};c.onCompleteAll=function(){console.info("onCompleteAll")};console.info("uploader",c);a.isImage=function(a){a="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|bmp|gif|".indexOf(a)};a.cL=function(){console.log("uploader!!!=============================",a.filesArray)}}]);"use strict";module=angular.module("controller.users.select",[]);
  41. module.controller("selectUsersController",["$scope","close","$q","selectMode","usersGroupsList","$usersService","$filter",function(a,l,c,f,h,b,e){function d(b){0<b.length?(a.contacts.filteredContactList=[],a.contacts.contactList.forEach(function(d){a.contacts.filteredContactList.push({groupLabel:d.groupLabel,groupName:d.groupName,property:d.property,showGroup:d.showGroup,contacts:e("filter")(d.contacts,{username:b})})})):angular.copy(a.contacts.contactList,a.contacts.filteredContactList)}a.close=
  42. function(){l()};if(f.multiselect){a.title="select users";a.about="choose the users in list and press confirm select button to confirm your choose";var k=[];a.selectUser=function(a){a.selected?(k.splice(k.indexOf(a),1),a.selected=!1):(k.push(a),a.selected=!0)};a.confirmSelect=function(){0<k.length?l(k):l()}}else a.title="select user",a.about="choose the user in list",a.selectUser=function(a){l(a)};a.contacts={contactList:h,filteredContactList:[]};d("");a.search={query:"",searchResult:[],searchUsers:function(){d(a.search.query);
  43. 4<this.query.length?b.searchUsers(a.search.query).then(function(b){a.search.searchResult=b}):a.search.searchResult=[]}};a.clearSearch=function(){a.search.query="";a.search.searchUsers()}}]);"use strict";module=angular.module("service.auth",["ngWebSocket","service.socket"]);
  44. module.service("$authService",["$q","$websocket","$socketService","$state","$cookies",function(a,l,c,f,h){this.login=function(a,e,d){return c.emit("auth:login",{email:a,password:e,passwordOldSys:d}).then(function(a){return a},function(a){return{success:!1}})};this.logout=function(){return c.emit("auth:logout").then(function(a){f.go("login");return{success:!0}},function(a){f.go("login");return{success:!1}})};this.register=function(a,e,d){return c.emit("auth:register",{email:a,userName:e,password:d}).then(function(a){return a},
  45. function(a){return{success:!1}})};this.forgot=function(a){return c.emit("auth:forgot",{email:a}).then(function(a){return a},function(a){return{success:!1}})};this.confirm=function(a,e){return c.emit("auth:confirm",{id:a,key:e}).then(function(a){return a},function(a){return{success:!1}})};this.recovery=function(a,e){return c.emit("auth:recovery",{id:a,key:e}).then(function(a){return a},function(a){return{success:!1}})};this.resetpass=function(a,e,d){return c.emit("auth:resetpass",{id:a,key:e,password:d}).then(function(a){return a},
  46. function(a){return{success:!1}})}}]);"use strict";module=angular.module("service.dataStorage",["service.notify"]);
  47. module.service("$dataStorage",["$q","$rootScope","$socketService","$notifyService",function(a,l,c,f){function h(a,b){var e;"hash"===g[a.ref].format?e=g[a.ref].data[b]:"array"===g[a.ref].format?g[a.ref].data.forEach(function(a){a._id===b&&(e=a)}):"object"===g[a.ref].format&&(e=g[a.ref].data);return e}function b(a,b){function e(a,b,d,k){if(d.refs&&d.refs[b]){var c="hash";"array"==typeof d.refs[b]?c="array":"object"===g[k].format&&(c="object");"hash"===c&&d.refs[b][a._id]?delete d.refs[b][a._id]:"array"===
  48. c?(a=d.refs[b].indexOf(a),0<=a&&d.refs[b].splice(a,1)):"object"===c&&delete d.refs[b]}}if("hash"===g[a].format)angular.forEach(g[a].schema,function(d,c){var k=d.ref;if("id"===d.type)if("object"===d.format){var m=h(d,b[c]);b[c]=void 0;e(b,a,m,k)}else"array"===d.format&&b[c].forEach(function(m){var f=h(d,m);m=b[c].indexOf(m);0<=m&&(b[c][m]=void 0);e(b,a,f,k)})});else if("array"===g[a].format){var d=g[a].data.indexOf(b);0<=d&&g[a].data.splice(d,1)}}function e(a,b){function e(a,b,d,c){d.refs||(d.refs=
  49. {});var k="object";g[c].refs&&g[c].refs[b]&&"array"===g[c].refs[b].format&&(k="array");d.refs[b]||("array"===k?d.refs[b]=[]:"object"===k&&(d.refs[b]={}));if("object"===g[b].format)d.refs[b]=a;else if("object"===k)d.refs[b][a._id]=a;else if("array"===k)if(0===d.refs[b].length)d.refs[b].push(a);else{var m=!1;d.refs[b].forEach(function(a){a._id===d._id&&(m=!0)});m||d.refs[b].push(a)}}angular.forEach(g[a].schema,function(d,c){if("id"===d.type&&b[c]){var k=d.ref;if("object"===d.format){var m=h(d,b[c]);
  50. b[c]=m;e(b,a,m,k)}else"array"===d.format&&b[c].forEach(function(m){var f=h(d,m);m=b[c].indexOf(m);0<=m&&(b[c][m]=f);e(b,a,f,k)})}})}function d(a,b,d){angular.forEach(g[a].schema,function(a,e){"id"===a.type&&("object"===a.format?h(a,b[e])||(d[a.ref]||(d[a.ref]=[]),0>d[a.ref].indexOf(b[e])&&d[a.ref].push(b[e])):"array"===a.format&&b[e].forEach(function(b){h(a,b)||(d[a.ref]||(d[a.ref]=[]),0>d[a.ref].indexOf(b)&&d[a.ref].push(b))}))})}function k(b){var e={};angular.forEach(b,function(a,b){"hash"===g[b].format?
  51. angular.forEach(a,function(a){d(b,a,e)}):"array"===g[b].format?angular.forEach(a,function(a){d(b,a,e)}):"object"===g[b].format&&d(b,a,e)});var k=[];angular.forEach(e,function(a,b){g[b].commands&&g[b].commands.getObjects&&k.push(c.emit(b+":"+g[b].commands.getObjects,{objects:a}).then(function(a){return a},function(a){return{success:!1}}).then(function(a){if(a.success)return m(a.integrationData);f.warning("getting "+b+" error");return{}}))});return a.all(k).then(function(a){0<a.length&&angular.forEach(a,
  52. function(a){angular.forEach(a,function(a,d){angular.forEach(a,function(a){b[d]||(b[d]=[]);b[d].push(a)})})});return b})}function m(b){b=k(b);return a.when(b).then(function(a){angular.forEach(a,function(a,b){"hash"===g[b].format?angular.forEach(a,function(a){g[b].id&&(a._id=a[g[b].id]);g[b].data[a._id]?r(b,g[b].data[a._id],a):g[b].data[a._id]=a}):"array"===g[b].format?angular.forEach(a,function(a){g[b].id&&(a._id=a[g[b].id]);var d=void 0;angular.forEach(g[b].data,function(b){b._id===a._id&&(d=b)});
  53. console.log("ALREADY_EXIST!!!=========",d,a,b);d?(console.log(!0),r(b,d,a)):(console.log(!1),g[b].data.push(a))}):"object"===g[b].format&&r(b,g[b].data,a)});angular.forEach(a,function(a,b){"hash"===g[b].format?angular.forEach(a,function(a){e(b,a)}):"array"===g[b].format?angular.forEach(a,function(a){e(b,a)}):"object"===g[b].format&&e(b,g[b].data)});console.log("appData",g);console.log("integrationData",a)})}function r(a,b,d){angular.forEach(d,function(e,c){var k=g[a].schema;if(b[c]&&k&&k[c]&&"id"===
  54. k[c].type)if("string"===typeof b[c])b[c]=d[c];else{if(b[c]._id!==d[c]){if(b[c].refs&&b[c].refs[a]){var m="object";"array"===g[k[c].ref].refs[a].format&&(m="array");var h=b[c].refs[a];"array"===m?b[c].refs[a].forEach(function(a){a._id===b._id&&h.splice(h.indexOf(a),1)}):"object"===m&&delete h[b._id]}b[c]=d[c]}}else b[c]=d[c]})}function n(a,b){g[a].status=!g[a].status&&g[a].commands&&g[a].commands.getAll?c.emit(a+":"+g[a].commands.getAll).then(function(a){return a},function(a){return{success:!1}}).then(function(b){if(b.success)return m(b.integrationData),
  55. !0;f.warning("getting "+a+" error");return!1}):!0;g[a].load=!0;return g[a]}function q(d){angular.forEach(d,function(d,e){"hash"===g[e].format?angular.forEach(d,function(d){a.when(!g[e]).then(function(a){b(e,d)})}):"array"===g[e].format?angular.forEach(d,function(d){a.when(!g[e]).then(function(a){b(e,d)})}):"object"===g[e].format&&b(e,d)});angular.forEach(d,function(a,b){"hash"===g[b].format?angular.forEach(a,function(a){delete g[b].data[a._id]}):"array"===g[b].format?angular.forEach(a,function(a){angular.forEach(g[b].data,
  56. function(d){d._id===a._id&&g[b].data.splice(g[b].data.indexOf(d),1)})}):"object"===g[b].format&&(g[b]={})})}function v(a,b){if("hash"===g[a].format){var d=g[a].data[b];return d?d:g[a].commands&&g[a].commands.getObjects?c.emit(a+":"+g[a].commands.getObjects,{objects:[b]}).then(function(a){return a},function(a){return{success:!1}}).then(function(d){if(d.success)return m(d.integrationData),g[a].data[b];f.warning("getting "+a+" error");return{}}):{}}return{}}function u(a){angular.forEach(a,function(a,
  57. b){angular.forEach(a,function(a){"hash"!==g[b].format&&"array"===g[b].format&&angular.forEach(g[b].data,function(a){})})});q(a)}var g={stickyTickets:{load:!1,status:void 0,format:"array",id:"ticket",schema:{ticket:{type:"id",ref:"tickets",format:"object"}},commands:{getAll:"getStickyTickets"},data:[]},tickets:{load:!1,status:void 0,format:"array",schema:{members:{type:"id",ref:"users",format:"array"},workgroup:{type:"id",ref:"workgroups",format:"object"},owner:{type:"id",ref:"users",format:"object"}},
  58. refs:{messages:{format:"array"}},commands:{getAll:"getTickets",getObjects:"getTickets"},data:[]},users:{load:!1,status:void 0,format:"hash",commands:{getObjects:"getUsers"},data:{}},currentUser:{load:!1,status:void 0,format:"object",schema:{user:{type:"id",ref:"users",format:"object"}},commands:{getAll:"getCurrentUser"},data:{}},workgroups:{load:!1,status:void 0,format:"hash",schema:{owners:{type:"id",ref:"users",format:"array"},members:{type:"id",ref:"users",format:"array"}},commands:{getAll:"getWorkgroups",
  59. getObjects:"getWorkgroups"},data:{}},messages:{load:!0,status:void 0,format:"array",schema:{ticket:{type:"id",ref:"tickets",format:"object"},userFrom:{type:"id",ref:"users",format:"object"},userTo:{type:"id",ref:"users",format:"object"}},commands:{getObjects:"getMessages"},data:[]},contacts:{load:!1,status:void 0,format:"array",id:"user",schema:{user:{type:"id",ref:"users",format:"object"}},commands:{getAll:"getContacts"},data:[]}};this.deleteObjects=function(a){q(a)};this.deleteObjectsById=function(a){u(a)};
  60. this.addObjects=function(a){m(a)};this.getTickets=function(){return n("tickets")};this.getUsers=function(){return n("users")};this.getCurrentUser=function(){return a.when(n("currentUser")).then(function(a){return a.data})};this.getWorkgroups=function(){return a.when(n("workgroups")).then(function(a){return a.data})};this.getMessages=function(){return n("messages").data};this.getContacts=function(){return a.when(n("contacts")).then(function(a){return a.data})};this.getTickets=function(){return a.when(n("tickets")).then(function(a){return a.data})};
  61. this.getStickyTickets=function(){return a.when(n("stickyTickets")).then(function(a){return a.data})};this.getObjectById=function(b,d){return a.when(v(b,d)).then(function(a){return a})}}]);"use strict";module=angular.module("service.groups",["service.socket"]);
  62. module.service("$groupsService",["$q","$socketService","$rootScope","growl",function(a,l,c,f){this.getContacts=function(){return l.emit("users:getContacts").then(function(a){return a},function(a){return{success:!1}})};this.deleteUser=function(a){return l.emit("users:deleteContacts",{userId:a}).then(function(a){return a},function(a){return{success:!1}})};this.addUser=function(a){return l.emit("users:addContacts",{userId:a}).then(function(a){return a},function(a){return{success:!1}})};this.searchUsers=
  63. function(a){return l.emit("users:search",{query:a}).then(function(a){return a.searchResult},function(a){return[]})};c.$on("users:addContacts",function(a,b){f.info("\u0412\u0430\u0441 \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0432 \u043a\u043e\u043d\u0442\u0430\u043a\u0442-\u043b\u0438\u0441\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c "+b.addsUserName)});c.$on("users:deleteContacts",function(a,b){f.info("\u0412\u0430\u0441 \u0443\u0434\u0430\u043b\u0438\u043b \u0438\u0437 \u0441\u0432\u043e\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0430\u043a\u0442-\u043b\u0438\u0441\u0442\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c "+
  64. b.deletingUserName)})}]);"use strict";module=angular.module("service.notify",["service.socket"]);
  65. module.service("$notifyService",["$q","$rootScope","growl","$socketService",function(a,l,c,f){function h(){return f.emit("users:getNotifyList").then(function(a){return a.success?a.notifyList:[]},function(a){return[]}).then(function(a){k.notifyStruct.notifyList=a;k.notifyStruct.notifyCount=k.notifyStruct.notifyList.length},function(a){k.notifyStruct.notifyList=[];k.notifyStruct.notifyCount=0})}function b(a){a.timestamp=new Date;k.notifyStruct.statusList.push(a);k.notifyStruct.statusCount=k.notifyStruct.statusList.length}
  66. function e(a){k.notifyStruct.notifyList.unshift(a);k.notifyStruct.notifyCount=k.notifyStruct.notifyList.length;a.status&&b(a.status)}function d(a){var b=[];a.forEach(function(a){b.push(a._id);k.notifyStruct.notifyList.splice(k.notifyStruct.notifyList.indexOf(a),1)});f.emit("users:deleteNotify",b)}var k=this;k.notifyStruct={notifyList:[],statusList:[],notifyCount:0,statusCount:0};l.$on("main:newNotify",function(a,b){e(b)});l.$on("main:status",function(a,d){b(d)});k.deleteNotify=function(a){d(a)};k.setNotify=
  67. function(a){e(a)};k.success=function(a){b({type:"success",message:a})};k.error=function(a){b({type:"error",message:a})};k.info=function(a){b({type:"info",message:a})};k.warning=function(a){b({type:"warning",message:a})};k.getNotifyList=function(){return h()}}]);"use strict";module=angular.module("service.socket",["ngCookies","service.notify","service.sync"]);
  68. module.service("$socketService",["$q","$websocket","$cookies","$timeout","$state","growl","$rootScope",function(a,l,c,f,h,b,e){function d(a,b){var d={data:a,publicKeys:openpgp.key.readArmored(b).keys};return openpgp.encrypt(d).then(function(a){return a.data})}function k(b){return a.when(A).then(function(a){a={message:openpgp.message.readArmored(b),privateKey:openpgp.key.readArmored(a).keys[0],publicKeys:openpgp.key.readArmored(B).keys};return openpgp.decrypt(a).then(function(a){return a.data},function(a){})})}
  69. function m(a){var b=openpgp.crypto.hash;return openpgp.util.Uint8Array2str(b.md5(b.sha256(a)))}function r(a,b){return openpgp.encrypt({data:a,passwords:[b+p.salt]}).then(function(a){return openpgp.encrypt({data:a.data,passwords:[p.salt+b]}).then(function(a){return a.data})})}function n(a,b){var d={message:openpgp.message.readArmored(a),password:p.salt+b};return openpgp.decrypt(d).then(function(a){a={message:openpgp.message.readArmored(a.data),password:b+p.salt};return openpgp.decrypt(a).then(function(a){return a.data},
  70. function(a){})})}function q(a,b){return openpgp.generateKey({userIds:[{login:a}],numBits:512}).then(function(a){return{privateKey:a.privateKeyArmored,publicKey:a.publicKeyArmored}},function(a){})}function v(){var a=c.getObject("authData");return a&&a.token&&a.id?a:{token:"",id:""}}function u(a,b,d,e){c.putObject("authData",{token:a,id:b});A=n(d,x).then(function(a){return a});B=e;x=""}function g(){w&&w.close();w="101.vodka"===location.hostname?l("wss://"+location.hostname+":8096/"):l("ws://"+location.hostname+
  71. ":8083/");console.log("new socket connect")}function t(){c.remove("authData");B=x=A="";g();p.sessionIsOpen=!1;window.location.reload()}var p=this;p.salt='#\u042f\u043f!\u041e\u043c"\u043d\u2116\u042e\u0447;\u0423\u0434%\u041d\u0430:\u0439?\u0435*\u041c\u0433(\u043d)\u0430!\u0432"\u0415\u041d\u0438\u2116\u0415...';var A="",x="",C="",B="";p.sessionIsOpen=!1;var y=0,z={},w=void 0;g();p.logout=function(){t()};w.onMessage(function(b){"unauthorized"===b&&(p.sessionIsOpen=!1,console.log("UNAUTH"),h.go("login"));
  72. var d=angular.fromJson(b.data);b={};angular.copy(d,b);console.log("in-"+d.eventName,b);"auth:login"===d.eventName&&(d.data.success?("old"===d.data.mode&&(x=C),u(d.data.token,d.data.id,d.data.privateKey,d.data.publicKey),d.data={success:!0},p.sessionIsOpen=!0,h.go("chat")):(t(),h.go("login")));b=void 0;var c=[];d.syncData&&d.syncData.integrationData&&d.syncData.integrationData.messages&&(b=d.syncData.integrationData.messages);d.data&&d.data.integrationData&&d.data.integrationData.messages&&(b=d.data.integrationData.messages);
  73. b&&angular.forEach(b,function(a){"userMessage"===a.type&&(a.text&&""!==a.text?c.push(k(a.text).then(function(b){return a.text=b})):a.text="")});if("answer"===d.type){var m=z[d.eventID];m&&0===m.defer.promise.$$state.status&&(a.all(c).then(function(a){m.defer.resolve(d.data)}),delete z[d.eventID])}else"notify"===d.type?e.$broadcast("main:newNotify",d):"sync"===d.type?a.all(c).then(function(a){e.$broadcast("main:sync",d)}):"broadcast"===d.type&&e.$broadcast(d.eventName,d.data)});p.emit=function(b,e){var c,
  74. k=v(),h=a.defer();y+=1;var l={eventName:b,eventID:y,defer:h};z[y]=l;var g={token:k.token,id:k.id,eventName:b,eventId:y,data:e?e:{}};if("auth:register"===g.eventName||"auth:resetpass"===g.eventName){var n=g.data.password;c=q(g.data.userName,n).then(function(a){g.data.publicKey=a.publicKey;return r(a.privateKey,n).then(function(a){g.data.privateKey=a})})}"auth:login"===g.eventName&&(x=g.data.password,C=g.data.passwordOldSys);var p=[];if("auth:login"===g.eventName||"auth:resetpass"===g.eventName||"auth:register"===
  75. g.eventName||"auth:checkPass"===g.eventName)g.data.password=m(g.data.password),p.push(g.data.password),g.data.passwordOldSys&&(g.data.passwordOldSys=m(g.data.passwordOldSys),p.push(g.data.passwordOldSys));"messages:send"===g.eventName&&angular.forEach(g.data.messages,function(a){a.text&&""!==a.text?p.push(d(a.text,a.userTo.publicKey).then(function(b){a.text=b})):a.text="";a.userTo=a.userTo._id});c=p.concat(c);a.all(c).then(function(a){console.log("out",g);w.send(g);a=5E3;if("auth:login"===l.eventName||
  76. "auth:register"===l.eventName||"auth:resetpass"===l.eventName)a=15E3;f(function(){0===h.promise.$$state.status&&("auth:login"===l.eventName&&t(),h.reject("timeout"),delete z[l.eventID])},a,!1)});"auth:logout"===b&&t();return h.promise};w.onClose(function(a){e.$broadcast("main:status",{type:"error",message:"the connection was closed"});w.reconnect()});w.onOpen(function(a){p.emit("auth:session").then(function(a){a.sessionStatus||"recovery"===h.current.name||"confirm"===h.current.name||(console.log(h),
  77. h.go("login",{session:!0}))},function(a){h.go("login",{session:!0})}).then(function(){e.$broadcast("main:status",{type:"success",message:"the connection is open"})})});w.onError(function(a){e.$broadcast("main:status",{type:"error",message:"connection error"})})}]);"use strict";module=angular.module("service.sync",["service.dataStorage","service.notify"]);
  78. module.service("$syncService",["$q","$rootScope","$dataStorage",function(a,l,c){function f(a){switch(a.eventName){case "sync:objects":c.addObjects(a.syncData.integrationData);c.deleteObjectsById(a.syncData.clearingData);break;case "sync:addedUsersIntoCL":c.addObjects(a.syncData.integrationData);break;case "sync:deletedUsersFromCL":c.deleteObjectsById(a.syncData.clearingData);break;case "sync:createNewTicket":c.addObjects(a.syncData.integrationData);break;case "sync:message":c.addObjects(a.syncData.integrationData),
  79. c.getTickets().then(function(b){a.syncData.integrationData.messages.forEach(function(a){b.forEach(function(b){if(b._id===a.ticket){console.log("lastMessageUser=============",a.userFrom===a.userTo&&"service"===a.type,a.userFrom,a.userTo,a.type,"service");if(a.userFrom!==a.userTo||"service"!==a.type)b.lastMessageUser=a.userFrom;b.lastUpdateTime=a.timestamp}})})}),c.getContacts().then(function(b){a.syncData.integrationData.messages.forEach(function(a){b.forEach(function(b){if(b._id===a.userFrom||b._id===
  80. a.userFrom._id)b.messagefrom||(b.messagefrom=0),b.messagefrom+=1;else if(b._id===a.userTo||b._id===a.userTo._id)b.messageto||(b.messageto=0),b.messageto+=1})})})}}l.$on("main:sync",function(a,b){f(b)})}]);"use strict";module=angular.module("service.tickets",["service.socket"]);
  81. module.service("$ticketsService",["$q","$socketService","$rootScope","$notifyService","$dataStorage",function(a,l,c,f,h){var b=this;b.userListMode={};b.currentTicketToAddingUser=void 0;b.currentWorkgroupToAddingOwner=void 0;b.setUserListMode=function(a){b.userListMode.mode=a.mode;b.userListMode.settings=a.settings};b.setUserListMode({mode:"addUserToContacts",settings:{groups:void 0,users:void 0}});b.ticketsFilters={showAll:!1};b.changeTicketsFilter=function(){b.ticketsFilters.showAll=!b.ticketsFilters.showAll;
  82. return b.ticketsFilters.showAll?"RELEVANT TICKETS":"ALL TICKETS"};b.newTicket={_id:"newTicket",workgroup:void 0,members:[],title:""};b.updateNewTicketLocaly=function(e){var d=e.user,c=e.workgroup,m=e.title,f=!1;!0===e.toSave?f=!0:c!==b.newTicket.workgroup&&(b.newTicket.members.forEach(function(a){a.inNewTicket=!1}),b.newTicket={_id:"newTicket",workgroup:c,members:[],title:""});var l=!1;d&&(0===b.newTicket.members.length&&(b.newTicket.isNew=!0,h.getCurrentUser().then(function(a){b.newTicket.members.push(a.user);
  83. b.newTicket.owner=a.user}),b.newTicket.workgroup=c),e=b.newTicket.members.indexOf(d),0<=e?(b.newTicket.members.splice(e,1),d.inNewTicket=!1,1>=b.newTicket.members.length&&(l=!0)):b.newTicket.workgroup===c&&(b.newTicket.members.push(d),d.inNewTicket=!0));d=void 0;f&&(b.newTicket.title=m,d=b.createNewTicket(b.newTicket.members,b.newTicket.workgroup,b.newTicket.title).then(function(a){if(a.success)return b.newTicket.isNew=!1,a.ticket._id},function(a){}));return a.all([h.getTickets(),d]).then(function(a){var d=
  84. a[0];a=a[1];l?(b.newTicket._id&&d[b.newTicket._id]&&delete d[b.newTicket._id],a=d.indexOf(b.newTicket),0<=a&&d.splice(a,1),b.newTicket={_id:"newTicket",workgroup:void 0,members:[],title:""}):a&&"newTicket"!==a?(b.newTicket._id=a,b.newTicket.members.forEach(function(a){a.inNewTicket=!1}),b.newTicket={_id:"newTicket",workgroup:void 0,members:[],title:""}):0>d.indexOf(b.newTicket)&&d.unshift(b.newTicket);return b.newTicket})};b.createNewTicket=function(a,b,c){var m;b&&(m=b._id);var h={users:[],workgroup:m,
  85. title:c&&""!==c?c:void 0};angular.forEach(a,function(a){h.users.push(a._id)});return l.emit("tickets:createNewTicket",h).then(function(a){a.success||f.warning("creating new ticket error");return a},function(a){f.warning("creating new ticket error");return{success:!1}})};b.toStickTicket=function(a){l.emit("stickyTickets:deleteStickyTicket",{ticket:a._id}).then(function(a){a.success||f.warning("sticking ticket error")},function(a){f.warning("sticking ticket error")})};b.toUnStickTicket=function(a){l.emit("stickyTickets:addStickyTicket",
  86. {ticket:a._id}).then(function(a){a.success||f.warning("unsticking ticket error")},function(a){f.warning("unsticking ticket error")})};b.deleteStickyTicket=function(a){l.emit("tickets:deleteTicket",{ticket:a._id}).then(function(b){b.success||(f.warning("adding user error"),h.deleteObjects({tickets:[a]}))},function(a){f.warning("adding user error")})};b.addUserToTicket=function(a,b){l.emit("tickets:addUserToTicket",{ticketID:a._id,userToAddId:b._id}).then(function(a){a.success||f.warning("adding user error")},
  87. function(a){f.warning("adding user error")})};b.leaveTicket=function(a){l.emit("tickets:leaveTicket",{ticket:a._id}).then(function(b){b.success?a.deleted=!0:f.warning("leaving ticket error")},function(a){f.warning("leaving ticket error")})};b.loadHistory=function(a){l.emit("messages:loadHistory",{ticket:a._id}).then(function(a){a.success?h.addObjects(a.integrationData):f.warning("loading history error")},function(a){f.warning("loading history error")})};b.sendMessage=function(c){if(c.currentMessage&&
  88. ""!==c.currentMessage||c.currentFilesArray&&0<c.currentFilesArray.length){var d=void 0;c.isNew&&(d=b.updateNewTicketLocaly({title:c.currentMessage,toSave:!0}));a.when(d).then(function(a){var b=[],d=c.currentMessage;c.currentMessage="";angular.forEach(c.members,function(a){if(a.refs.contacts){var c=a.refs.contacts[a._id];c.messageto||(c.messageto=0);c.messageto+=1}b.push({text:d,userTo:a})});(a=c.currentFilesArray)||(a=[]);a.forEach(function(a){a.file={lastModified:a.file.lastModified,lastModifiedDate:a.file.lastModifiedDate,
  89. name:a.file.name,size:a.file.size,type:a.file.type}});c.currentFilesArray=[];l.emit("messages:send",{type:"userMessage",ticket:c._id,messages:b,files:a}).then(function(a){a.success||f.warning("sending message error")},function(a){f.warning("sending message error")})})}}}]);"use strict";module=angular.module("service.users",["service.socket"]);
  90. module.service("$usersService",["$q","$socketService","$rootScope","$notifyService","$filter",function(a,l,c,f,h){this.deleteUserFromContacts=function(a,c){if(!c)return l.emit("contacts:deleteContacts",{objects:[a]}).then(function(a){return a},function(a){return{success:!1}}).then(function(a){a.success||f.warning("deleting user error")})};this.addUserToContacts=function(a,c){c?l.emit("workgroups:addUserToWorkgroup",{userToAddId:a,workgroupID:c._id}).then(function(a){return a},function(a){return{success:!1}}).then(function(a){a.success||
  91. f.warning("adding user error")}):l.emit("contacts:addContacts",{objects:[a]}).then(function(a){return a},function(a){return{success:!1}}).then(function(a){a.success||f.warning("adding user error")})};this.searchUsers=function(a){return l.emit("users:search",{query:a}).then(function(a){return a.searchResult},function(a){return[]})}}]);"use strict";module=angular.module("controller.content.auth.confirm",["service.auth"]);
  92. module.controller("controllerContentAuthConfirm",["$scope","$authService","$stateParams","$state","$notifyService","$timeout",function(a,l,c,f,h,b){a.status="Confirm. Please wait.";a.danger=!1;c&&c.id&&c.key&&l.confirm(c.id,c.key).then(function(c){c.success?(a.status="the validation is successful.",b(function(){f.go("login")},4E3)):a.status="The validation is not passed."})}]);"use strict";module=angular.module("controller.content.auth.forgot",["service.auth"]);
  93. module.controller("controllerContentAuthForgot",["$scope","$authService","$notifyService","$state","$timeout","$cookies",function(a,l,c,f,h,b){a.showFields=!0;a.status="";a.keyPress=function(b){13===b.keyCode&&a.sendEmail()};c=b.getObject("userData");b="";c&&c.email&&(b=c.email);a.forgot={email:b,success:!1};a.sendEmail=function(){a.showFields=!1;l.forgot(a.forgot.email).then(function(b){a.forgot.success=b.success;b&&b.success?(a.status="A letter with further instructions sent to your email. Please check Your email.",
  94. h(function(){f.go("login")},4E3)):(a.showFields=!0,a.status="Registration errors: "+b.errors.join(", "))})}}]);"use strict";module=angular.module("controller.content.auth.login",["service.auth"]);
  95. module.controller("controllerContentAuthLogin",["$scope","$authService","$socketService","$notifyService","$stateParams","$cookies",function(a,l,c,f,h,b){a.status="";a.enableLogout=!1;a.keyPress=function(b){13===b.keyCode&&a.doLogin()};var e=b.getObject("userData"),d="";e&&e.email&&(d=e.email);a.login={email:d,password:""};a.doLogin=function(){f.info("It may take a few minutes. Please wait.");var d=openpgp.crypto.hash,m=openpgp.util,h=a.login.email,n=a.login.password;e||(e={email:""});e.email=h;b.putObject("userData",
  96. e);a.login={email:"",password:""};a.status="please, wait.";var q=m.Uint8Array2str(d.md5(d.sha512(n+c.salt))),d=m.Uint8Array2str(d.md5(m.str2Uint8Array(n+c.salt)));l.login(h,d,q).then(function(b){a.status=b.success?"authorisation is succesful":"authorisation error"})};c.sessionIsOpen&&h.session&&(a.enableLogout=!0,a.doLogout=function(){c.logout()})}]);"use strict";module=angular.module("controller.content.auth.recovery",["service.auth"]);
  97. module.controller("controllerContentAuthRecovery",["$scope","$authService","$stateParams","$state","$notifyService","$socketService","$timeout",function(a,l,c,f,h,b,e){a.showFields=!0;a.recovery={pass:"",passRepeat:""};a.resetpass=!1;c&&c.id&&c.key&&l.recovery(c.id,c.key).then(function(d){a.status="Confirm. Please wait.";d.success?(a.attempts=d.attempts,a.status="the validation is successful.",a.keyPress=function(b){13===b.keyCode&&a.recoveryPassword()},a.recoveryPassword=function(){a.showFields=
  98. !1;a.status="It may take a few minutes. Please wait.";if(a.recovery.pass===a.recovery.passRepeat){a.status="It may take a few minutes. Please wait.";var d=openpgp.crypto.hash,m=c.id,r=c.key,n=a.recovery.pass;a.recovery={pass:"",passRepeat:""};l.resetpass(m,r,openpgp.util.Uint8Array2str(d.md5(d.sha512(n+b.salt)))).then(function(b){b.success?(h.success("The password is successfully changed"),a.status="The password is successfully changed",e(function(){f.go("login")},4E3)):(a.status="Error change password",
  99. a.showFields=!0)})}else a.status="The password fields do not match. Please, enter them again.",a.showFields=!0},a.resetpass=!0):a.status="the confirmation is not done."})}]);"use strict";module=angular.module("controller.content.auth.registration",["service.auth"]);
  100. module.controller("controllerContentAuthRegistration",["$scope","$authService","$notifyService","$socketService",function(a,l,c,f){a.showFields=!0;a.status="";a.keyPress=function(c){13===c.keyCode&&a.doRegister()};a.register={email:"",userName:"",password:"",passwordRepeat:""};a.doRegister=function(){if(a.register.password===a.register.passwordRepeat){a.showFields=!1;a.status="It may take a few minutes. Please wait.";var c=openpgp.crypto.hash,b=a.register.email,e=a.register.password,d=a.register.userName;
  101. a.register={email:"",userName:"",password:"",passwordRepeat:""};l.register(b,d,openpgp.util.Uint8Array2str(c.md5(c.sha512(e+f.salt)))).then(function(b){b.success?a.status="A letter with further instructions sent to your email. Please check Your email.":(a.showFields=!0,a.status="Registration errors: "+b.errors.join(", "))})}else a.showFields=!0,a.status="The password fields do not match. Please, enter them again."}}]);
  102. angular.module("main.templates",[]).run(["$templateCache",function(a){a.put("template.main-sidebar-tab-actions.html",'<div class="full-size" ng-controller="controllerSidebarChatActions">\n    <div class="main-sidebar-content-area-block">\n        <a class="auth-container-content-form-button-container" ng-click="logout()">\n            <i class="auth-sidebar-content-button-icon fa fa-bed" aria-hidden="true"></i>\n            <span class="auth-container-content-form-button">logout</span>\n        </a>\n    </div>\n    <div class="main-sidebar-content-area-block">\n        <a class="auth-container-content-form-button-container" ng-click="settings()">\n            <i class="auth-sidebar-content-button-icon fa fa-cog" aria-hidden="true"></i>\n            <span class="auth-container-content-form-button">settings</span>\n            <i ng-if="!settingsMode" class="auth-sidebar-content-button-icon fa fa-toggle-off" aria-hidden="true"></i>\n            <i ng-if="settingsMode" class="auth-sidebar-content-button-icon fa fa-toggle-on" aria-hidden="true"></i>\n        </a>\n    </div>    \n    <div class="main-sidebar-content-area-block">\n        <a class="auth-container-content-form-button-container" ui-sref="groupsManagment()">\n            <i class="auth-sidebar-content-button-icon fa fa-users" aria-hidden="true"></i>\n            <span class="auth-container-content-form-button">group managment</span>\n        </a>\n    </div>\n    <div class="main-sidebar-content-area-block">\n        <a class="auth-container-content-form-button-container" ui-sref="userData()">\n            <i class="auth-sidebar-content-button-icon fa fa-user" aria-hidden="true"></i>\n            <span class="auth-container-content-form-button">user data</span>\n        </a>\n    </div>\n</div>');
  103. a.put("template.main-sidebar-tab-notify.html",'<div ng-controller="controllerSidebarChatNotify">\n    <div class="main-sidebar-content-area-block">\n        <div class="main-sidebar-content-area-block-content">\n            <div ng-if="notifyStruct.notifyList.length === 0">\n                at the moment there are no notification\n            </div>\n            <div ng-repeat="notify in notifyStruct.notifyList">\n                <div vn-notify="notify"></div>\n            </div>\n        </div>\n    </div>\n</div>\n');
  104. a.put("template.main-sidebar-tab-tickets.html",'<div class="full-size" ng-controller="controllerSidebarChatTickets">\n    <div class="main-sidebar-content-area-block">\n        <div class="main-sidebar-content-area-block-content">\n            <div class="main-sidebar-content-area-block-content-input-block">\n                <input class="main-sidebar-content-area-block-content-input" type="text" name="search" placeholder="tickets search"\n                       ng-model="search.query" ng-change="">\n                <i class="main-sidebar-content-area-block-content-input-close fa fa-times" aria-hidden="true" ng-click="clearSearch()"></i>\n            </div>\n            <div ng-repeat="workgroup in workgroups" class="main-sidebar-content-area-grouplist" ng-if="workgroup.refs.tickets.length > 0">\n                <div class="main-sidebar-content-area-grouplist-container" ng-click="workgroup.showGroupInTL = !workgroup.showGroupInTL">\n                    <img src="{{::workgroup.label}}" alt="" class="main-sidebar-content-area-grouplist-avatar">\n                    <div class="main-sidebar-content-area-grouplist-decription-container">\n                        {{::workgroup.name}}\n                    </div>\n                </div>\n                <div ng-if="workgroup.showGroupInTL" class="main-sidebar-content-area-ticketInList"\n                     ng-repeat="ticket in workgroup.refs.tickets| filter : {title: search.query}" ng-click="activateTicket(ticket)">                   \n                    {{::ticket.members.length}}:{{::ticket.title}}\n                </div>\n            </div>\n            <div class="main-sidebar-content-area-grouplist">\n                <div class="main-sidebar-content-area-grouplist-container" ng-click="showTL = !showTL">\n                    <img src="/assets/img/comments.png" alt="" class="main-sidebar-content-area-grouplist-avatar">\n                    <div class="main-sidebar-content-area-grouplist-decription-container">\n                        free tickets\n                    </div>\n                </div>\n                <div ng-if="showTL && !ticket.refs.workgroups" class="main-sidebar-content-area-ticketInList"\n                     ng-repeat="ticket in tickets" ng-click="activateTicket(ticket)">\n                    {{::ticket.members.length}}:{{::ticket.title}}\n\n                </div>\n            </div>\n        </div>\n    </div>\n</div>');
  105. a.put("template.main-sidebar-tab-users.html",'<div class="main-sidebar-content-area-box" ng-controller="controllerSidebarChatUsers">\n    <div class="main-sidebar-content-area-block">\n        <div class="main-sidebar-content-area-block-content">\n            <div class="main-sidebar-content-area-block-content-input-block">\n                <input id="search-users-field" class="main-sidebar-content-area-block-content-input" type="text" name="search"\n                       ng-model="search.query" ng-change="search.searchUsers()" ng-class="{touched:search.query !== \'\'}">\n                <label for="search-users-field">\n                    {{title}}\n                </label>\n            </div>\n            <div ng-if="mode === 1" class="main-sidebar-content-area-grouplist-box">\n                <div ng-if="!currentWorkgroup" class="main-sidebar-content-area-grouplist">\n                    <div class="main-sidebar-content-area-userlist" ng-class="{\'main-sidebar-content-area-userlist-active\':contact.user.inNewTicket}"\n                         ng-repeat="contact in contacts | orderBy : [\'-priority\', \'messageto\'] : true | filter : {user:{username: search.query}}">\n                        <img src="{{::contact.user.avatar}}" alt="avatar" class="main-sidebar-content-area-userlist-avatar">\n                        <div class="main-sidebar-content-area-userlist-decription" ng-click="userClick(contact.user)">\n                            <div class="main-sidebar-content-area-userlist-decription-container">\n                                <div>\n                                    {{::contact.user.username}}\n                                </div>\n                                <div class="main-sidebar-content-area-userlist-decription-actions">\n                                    \x3c!--<div class="main-sidebar-content-area-userlist-icon" ng-click="deleteUserFromContactList(contact.user)">\n                                        <i class="fa fa-user-times" aria-hidden="true"></i>\n                                    </div>--\x3e\n                                </div>\n                            </div>\n                            <div class="main-sidebar-content-area-userlist-decription-container">\n                                <div>\n                                    {{::contact.user.email}}\n                                </div>\n                                <div class="main-sidebar-content-area-userlist-decription-actions">\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div ng-if="currentWorkgroup" class="main-sidebar-content-area-grouplist">\n                    <div class="main-sidebar-content-area-userlist" ng-class="{\'main-sidebar-content-area-userlist-active\':user.inNewTicket}"\n                         ng-repeat="user in currentWorkgroup.members | orderBy : [\'-priority\', \'messageto\'] : true | filter : {username: search.query}" ng-if="::((currentUser.user._id) && (currentUser.user._id !== user._id))">\n                        <img src="{{::user.avatar}}" alt="avatar" class="main-sidebar-content-area-userlist-avatar">\n                        <div class="main-sidebar-content-area-userlist-decription" ng-click="userClick(user)">\n                            <div class="main-sidebar-content-area-userlist-decription-container">\n                                <div>\n                                    {{::user.username}}\n                                </div>\n                                <div class="main-sidebar-content-area-userlist-decription-actions">\n                                    \x3c!--<div class="main-sidebar-content-area-userlist-icon" ng-click="deleteUserFromContactList(contact.user)">\n                                        <i class="fa fa-user-times" aria-hidden="true"></i>\n                                    </div>--\x3e\n                                </div>\n                            </div>\n                            <div class="main-sidebar-content-area-userlist-decription-container">\n                                <div>\n                                    {{::user.email}}\n                                </div>\n                                <div class="main-sidebar-content-area-userlist-decription-actions">\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                    <div ng-if="search.query !== \'\'" class="main-sidebar-content-area-userlist" \n                         ng-repeat="contact in contacts | orderBy : [\'-priority\', \'messageto\'] : true | filter : {user:{username: search.query}}">\n                        <img src="{{::contact.user.avatar}}" alt="avatar" class="main-sidebar-content-area-userlist-avatar">\n                        <div class="main-sidebar-content-area-userlist-decription">\n                            <div class="main-sidebar-content-area-userlist-decription-container">\n                                <div>\n                                    {{::contact.user.username}}\n                                </div>\n                                <div class="main-sidebar-content-area-userlist-decription-actions">\n                                    \x3c!--<div class="main-sidebar-content-area-userlist-icon" ng-click="deleteUserFromContactList(contact.user)">\n                                        <i class="fa fa-user-times" aria-hidden="true"></i>\n                                    </div>--\x3e\n                                </div>\n                            </div>\n                            <div class="main-sidebar-content-area-userlist-decription-container">\n                                <div>\n                                    {{::contact.user.email}}\n                                </div>\n                                <div class="main-sidebar-content-area-userlist-decription-actions">\n                                </div>\n                            </div>\n                        </div>\n                        <div class="main-sidebar-content-area-userlist-actions">\n                            <div class="main-sidebar-content-area-userlist-actions-addUser" ng-click="addUserToContactList(contact.user)">\n                                <span class="main-sidebar-content-area-userlist-actions-addUser-plus">\n                                    +\n                                </span>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div ng-if="search.searchResult.length > 0" class="main-sidebar-content-area-grouplist">\n                    \x3c!--<div class="main-sidebar-content-area-grouplist-container">\n                        <img src="/assets/img/users.png" alt="" class="main-sidebar-content-area-grouplist-avatar">\n                        <div class="main-sidebar-content-area-grouplist-decription-container">\n                            free contacts\n                        </div>\n                    </div>--\x3e\n                    <div ng-repeat="user in search.searchResult" class="main-sidebar-content-area-userlist">\n                        <img src="{{::user.avatar}}" alt="avatar" class="main-sidebar-content-area-userlist-avatar">\n                        <div class="main-sidebar-content-area-userlist-decription">\n                            <div class="main-sidebar-content-area-userlist-decription-container">\n                                <div>\n                                    {{::user.username}}\n                                </div>\n                                \x3c!--<div class="main-sidebar-content-area-userlist-decription-actions">\n                                    <div class="main-sidebar-content-area-userlist-icon" ng-click="addUserToContactList(user)">\n                                        <i class="fa fa-user-plus" aria-hidden="true"></i>\n                                    </div>\n                                </div>--\x3e\n                            </div>\n                            <div>\n                                {{::user.email}}\n                            </div>\n                        </div>\n                        <div class="main-sidebar-content-area-userlist-actions">\n                            <div class="main-sidebar-content-area-userlist-actions-addUser" ng-click="addUserToContactList(user)">\n                                <span class="main-sidebar-content-area-userlist-actions-addUser-plus">\n                                    +\n                                </span>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div ng-if="mode === 2" class="main-sidebar-content-area-grouplist-box">\n                <div ng-if="!currentWorkgroup" class="main-sidebar-content-area-grouplist">\n                    <div class="main-sidebar-content-area-userlist" ng-if="!contact.user.refs.tickets[addToTicket._id]"\n                         ng-repeat="contact in contacts | orderBy : [\'-priority\', \'messageto\'] : true | filter : {user:{username: search.query}}">\n                        <img src="{{::contact.user.avatar}}" alt="avatar" class="main-sidebar-content-area-userlist-avatar">\n                        <div class="main-sidebar-content-area-userlist-decription" ng-click="userAddToTicket(contact.user)">\n                            <div class="main-sidebar-content-area-userlist-decription-container">\n                                <div>\n                                    {{::contact.user.username}}\n                                </div>\n                                <div class="main-sidebar-content-area-userlist-decription-actions">\n                                    <div class="main-sidebar-content-area-userlist-icon">\n\n                                    </div>\n                                </div>\n                            </div>\n                            <div class="main-sidebar-content-area-userlist-decription-container">\n                                <div>\n                                    {{::contact.user.email}}\n                                </div>\n                                <div class="main-sidebar-content-area-userlist-decription-actions">\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div ng-if="currentWorkgroup" class="main-sidebar-content-area-grouplist">\n                    <div class="main-sidebar-content-area-userlist" ng-if="!user.refs.tickets[addToTicket._id]"\n                         ng-repeat="user in currentWorkgroup.members | orderBy : [\'-priority\', \'messageto\'] : true | filter : {username: search.query}">\n                        <img src="{{::user.avatar}}" alt="avatar" class="main-sidebar-content-area-userlist-avatar">\n                        <div class="main-sidebar-content-area-userlist-decription" ng-click="userAddToTicket(user)">\n                            <div class="main-sidebar-content-area-userlist-decription-container">\n                                <div>\n                                    {{::user.username}}\n                                </div>\n                                <div class="main-sidebar-content-area-userlist-decription-actions">\n                                    <div class="main-sidebar-content-area-userlist-icon">\n\n                                    </div>\n                                </div>\n                            </div>\n                            <div class="main-sidebar-content-area-userlist-decription-container">\n                                <div>\n                                    {{::user.email}}\n                                </div>\n                                <div class="main-sidebar-content-area-userlist-decription-actions">\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div ng-if="mode === 3" class="main-sidebar-content-area-grouplist-box">\n                <div class="main-sidebar-content-area-grouplist">\n                    <div class="main-sidebar-content-area-userlist" ng-if="ownerWorkgroup.owners.indexOf(user) < 0"\n                         ng-repeat="user in ownerWorkgroup.members | orderBy : [\'-priority\', \'messageto\'] : true | filter : {username: search.query}">\n                        <img src="{{::user.avatar}}" alt="avatar" class="main-sidebar-content-area-userlist-avatar">\n                        <div class="main-sidebar-content-area-userlist-decription" ng-click="userAddToWorkgroupOwners(user)">\n                            <div class="main-sidebar-content-area-userlist-decription-container">\n                                <div>\n                                    {{::user.username}}\n                                </div>\n                                <div class="main-sidebar-content-area-userlist-decription-actions">\n                                    <div class="main-sidebar-content-area-userlist-icon">\n\n                                    </div>\n                                </div>\n                            </div>\n                            <div class="main-sidebar-content-area-userlist-decription-container">\n                                <div>\n                                    {{::user.email}}\n                                </div>\n                                <div class="main-sidebar-content-area-userlist-decription-actions">\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div ng-if="mode === 4" class="main-sidebar-content-area-grouplist-box">\n                <div ng-if="!currentWorkgroup" class="main-sidebar-content-area-grouplist">\n                    <div class="main-sidebar-content-area-userlist" ng-class="{\'main-sidebar-content-area-userlist-active\':contact.user.inNewTicket}"\n                         ng-repeat="contact in contacts | orderBy : [\'-priority\', \'messageto\'] : true | filter : {user:{username: search.query}}">\n                        <img src="{{::contact.user.avatar}}" alt="avatar" class="main-sidebar-content-area-userlist-avatar">\n                        <div class="main-sidebar-content-area-userlist-decription" ng-click="userClick(contact.user)">\n                            <div class="main-sidebar-content-area-userlist-decription-container">\n                                <div>\n                                    {{::contact.user.username}}\n                                </div>\n                                <div class="main-sidebar-content-area-userlist-decription-actions">\n                                    \x3c!--<div class="main-sidebar-content-area-userlist-icon" ng-click="deleteUserFromContactList(contact.user)">\n                                        <i class="fa fa-user-times" aria-hidden="true"></i>\n                                    </div>--\x3e\n                                </div>\n                            </div>\n                            <div class="main-sidebar-content-area-userlist-decription-container">\n                                <div>\n                                    {{::contact.user.email}}\n                                </div>\n                                <div class="main-sidebar-content-area-userlist-decription-actions">\n                                </div>\n                            </div>\n                        </div>\n                        <div class="main-sidebar-content-area-userlist-actions">\n                            <div class="main-sidebar-content-area-userlist-actions-addUser" ng-click="fixContactWithPriority(contact)">\n                                <span class="main-sidebar-content-area-userlist-actions-addUser-plus">\n                                    <i class="fa fa-thumb-tack" aria-hidden="true"></i>\n                                </span>\n                            </div>\n                            <div class="main-sidebar-content-area-userlist-actions-addUser" ng-if="contact.priority !== undefined" ng-click="contactPriorityUp(contact)">\n                                <span class="main-sidebar-content-area-userlist-actions-addUser-plus">\n                                    <i class="fa fa-chevron-up" aria-hidden="true"></i>\n                                </span>\n                            </div>\n                            <div class="main-sidebar-content-area-userlist-actions-addUser" ng-if="contact.priority !== undefined" ng-click="contactPriorityDown(contact)">\n                                <span class="main-sidebar-content-area-userlist-actions-addUser-plus">\n                                    <i class="fa fa-chevron-down" aria-hidden="true"></i>\n                                </span>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div class="main-sidebar-content-area-actions">\n            <div class="main-sidebar-content-area-actions-allTickets" ng-click="changeTicketsFilter()">\n                {{ticketsFilter}}\n            </div>\n        </div>\n    </div>\n</div>');
  106. a.put("template.main.notify.html",'<div class="main-sidebar-content-area-notify-block">\n    <div class="main-sidebar-content-area-notify-datetime">\n        {{::vnNotify.notifyDate | date:\'yyyy-MM-dd HH:mm:ss Z\'}}\n    </div>\n    <div class="main-sidebar-content-area-notify-message">\n        {{::vnNotify.message}}\n    </div>\n    <div class="main-sidebar-content-area-notify-divider"></div>\n</div>');a.put("template.message.html",'<div class="message-box" id="{{::vnTicketMessage._id}}" ng-class="::{\'message-box-border\':!hideFromer}">\n    <div ng-hide="::hideFromer" class="message-box-message">\n        <span class="message-userFrom" ng-class="::{\'message-type-service\':service}">\n            {{::prefix}}{{::vnTicketMessage.userFrom.username}}\n        </span>\n        <span class="message-date">\n            {{::date}}\n        </span>\n    </div>    \n    <span class="message-text-box">\n        <span id="message-text"></span>\n    </span>\n    <div ng-if="::(vnTicketMessage.files && vnTicketMessage.files.length>0)" id="message-files" class="message-files">\n        <a ng-repeat="file in ::vnTicketMessage.files" class="message-file-href" ng-href="{{::file.path}}" target="_blank">\n            <img ng-if="::!file.isImage" class="message-file-href-icon" ng-src="/assets/img/file.png">\n            <img ng-if="::file.isImage" class="message-file-href-img" ng-src="{{::file.path}}">\n            \x3c!--<div class="message-file-href-describe">\n                <img ng-if="::file.isImage" class="message-file-href-describe-img" ng-src="{{::file.path}}">\n                <div class="message-file-href-describe-text">\n                    {{::file.originName}}\n                </div>\n            </div>--\x3e\n        </a>\n    </div>\n</div>');
  107. a.put("template.modal.createGroup.html",'<div class="vn-modal-background-container">\n    <div class="vn-modal-container-l">\n        <div class="vn-modal-container-l-title">\n            Create group\n        </div>\n        <div class="vn-modal-container-l-input-group">\n            <input id="vn-modal-container-l-input-groupname" class="vn-modal-container-l-input" type="text" name="groupname"\n                   ng-model="name" ng-class="{touched:name !== \'\'}">\n            <label for="vn-modal-container-l-input-groupname" class="vn-modal-container-l-input-label">\n                group name\n            </label>\n        </div>\n        <div class="vn-modal-container-l-actions">\n            <div class="vn-modal-container-l-cancel" ng-click="close()">\n                CANCEL\n            </div>\n            <div class="vn-modal-container-l-apply" ng-click="apply()">\n                APPLY\n            </div>\n        </div>\n    </div>\n</div>\n');
  108. a.put("template.modal.selectUsers.html",'<div class="vn-modal-background-container">\n    <div class="vn-modal-container">\n        <div class="vn-modal-menu">\n            <div class="vn-modal-menu-title">\n                {{title}}\n            </div>\n            <div class="vn-modal-menu-button" ng-click="close()">\n                <i class="vn-modal-menu-button-icon fa fa-chevron-left" aria-hidden="true"></i>\n                <span class="fvn-modal-menu-button-text">back</span>\n            </div>\n            <div ng-if="selectMode.multiselect" class="vn-modal-menu-button" ng-click="confirmSelect()">\n                <i class="vn-modal-menu-button-icon fa fa-chevron-right" aria-hidden="true"></i>\n                <span class="fvn-modal-menu-button-text">confirm select</span>\n            </div>\n            <div class="vn-modal-menu-about">\n                {{about}}\n            </div>\n        </div>\n        <div class="vn-modal-content">\n            <div class="main-sidebar-content-area-block">\n                <div class="main-sidebar-content-area-block-content">\n                    <div ng-if="selectMode.searchUsers" class="main-sidebar-content-area-block-content-input-block">\n                        <input class="main-sidebar-content-area-block-content-input" type="text" name="search" placeholder="users search"\n                               ng-model="search.query" ng-change="search.searchUsers()">\n                        <i class="main-sidebar-content-area-block-content-input-close fa fa-times" aria-hidden="true" ng-click="clearSearch()"></i>\n                    </div>\n                    <div ng-repeat="userGroup in contacts.filteredContactList" class="main-sidebar-content-area-grouplist">\n                        <div class="main-sidebar-content-area-grouplist-container" ng-click="userGroup.showGroup = !userGroup.showGroup">\n                            <img src="{{::userGroup.groupLabel}}" alt="" class="main-sidebar-content-area-grouplist-avatar">\n                            <div class="main-sidebar-content-area-grouplist-decription-container">\n                                {{::userGroup.groupName}}\n                            </div>\n                        </div>\n                        <div ng-if="userGroup.showGroup" ng-repeat="user in userGroup.contacts" class="main-sidebar-content-area-userlist">\n                            <div class="main-sidebar-content-area-userlist" ng-click="selectUser(user)">\n                                <img src="{{::user.avatar}}" alt="avatar" class="main-sidebar-content-area-userlist-avatar">\n                                <div class="main-sidebar-content-area-userlist-decription">\n                                    <div class="main-sidebar-content-area-userlist-decription-container">\n                                        <div>\n                                            {{::user.username}}\n                                        </div>\n                                    </div>\n                                    <div class="main-sidebar-content-area-userlist-decription-container">\n                                        <div>\n                                            {{::user.email}}\n                                        </div>\n                                    </div>\n                                </div>\n                                <i ng-if="user.selected" class="fa fa-check" aria-hidden="true"></i>\n                            </div>\n                        </div>\n                    </div>\n                    <div ng-if="search.searchResult.length > 0" class="main-sidebar-content-area-grouplist">\n                        <div class="main-sidebar-content-area-grouplist-container" ng-click="userGroup.showGroup = !userGroup.showGroup">\n                            <img src="/assets/img/users.png" alt="" class="main-sidebar-content-area-grouplist-avatar">\n                            <div class="main-sidebar-content-area-grouplist-decription-container">\n                                free contacts\n                            </div>\n                        </div>\n                        <div ng-repeat="user in search.searchResult" class="main-sidebar-content-area-userlist">\n                            <div class="main-sidebar-content-area-userlist" ng-click="selectUser(user)">\n                                <img src="{{::user.avatar}}" alt="avatar" class="main-sidebar-content-area-userlist-avatar">\n                                <div class="main-sidebar-content-area-userlist-decription">\n                                    <div class="main-sidebar-content-area-userlist-decription-container">\n                                        <div>\n                                            {{::user.username}}\n                                        </div>\n                                    </div>\n                                    <div>\n                                        {{::user.email}}\n                                    </div>\n                                </div>\n                                <i ng-if="user.selected" class="fa fa-check" aria-hidden="true"></i>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n');
  109. a.put("template.modal.uploadFiles.html",'<div class="vn-modal-background-container">\n    <div class="vn-modal-container">\n        \x3c!--<div class="over-zone zone" nv-file-over="" uploader="uploader" style="float: left;">\n                    Base drop zone indication\n                </div>\n         <input type="file" nv-file-select="" uploader="uploader" multiple />\n         <div ng-click="cL()">\n             aaa\n         </div>--\x3e\n        \x3c!--<input type="file" ng-model="filesArray" name="files[]" multiple ng-change="inputFiles($event)" />--\x3e\n        <div vn-get-files="filesArray"></div>\n        <div ng-click="cL()">\n             aaa\n         </div>\n    </div>\n</div>');
  110. a.put("template.notify.userAdd.html",'<div class="main-sidebar-content-area-notify-block">\n    <div class="main-sidebar-content-area-notify-datetime">\n        {{::vnNotify.notifyDate | date:\'yyyy-MM-dd HH:mm:ss Z\'}}\n    </div>\n    <div class="main-sidebar-content-area-userlist">\n        <img src="{{::user.avatar}}" alt="avatar" class="main-sidebar-content-area-userlist-avatar">\n        <div class="main-sidebar-content-area-userlist-decription">\n            <div class="main-sidebar-content-area-userlist-decription-container">\n                <div>\n                    {{::user.username}}\n                </div>\n            </div>\n            <div>\n                {{::user.email}}\n            </div>\n        </div>\n    </div>\n    <div class="main-sidebar-content-area-notify-message">\n        this user has added you to their contact list. To add it too?\n    </div>\n    <div class="main-sidebar-content-area-notify-yesno">\n        <div class="main-sidebar-content-area-notify-button" ng-click="answerYES()">\n            yes\n        </div>\n        <div class="main-sidebar-content-area-notify-button" ng-click="answerNO()">\n            no\n        </div>\n    </div>\n    <div class="main-sidebar-content-area-notify-divider"></div>\n</div>');
  111. a.put("template.notify.userDel.html",'<div class="main-sidebar-content-area-notify-block">\n    <div class="main-sidebar-content-area-notify-datetime">\n        {{::vnNotify.notifyDate | date:\'yyyy-MM-dd HH:mm:ss Z\'}}\n    </div>\n    <div class="main-sidebar-content-area-userlist">\n        <img src="{{::user.avatar}}" alt="avatar" class="main-sidebar-content-area-userlist-avatar">\n        <div class="main-sidebar-content-area-userlist-decription">\n            <div class="main-sidebar-content-area-userlist-decription-container">\n                <div>\n                    {{::user.username}}\n                </div>\n            </div>\n            <div>\n                {{::user.email}}\n            </div>\n        </div>\n    </div>\n    <div class="main-sidebar-content-area-notify-message">\n        this user has deleted you from their contact list. To remove it from your?\n    </div>\n    <div class="main-sidebar-content-area-notify-yesno">\n        <div class="main-sidebar-content-area-notify-button" ng-click="answerYES()">\n            yes\n        </div>\n        <div class="main-sidebar-content-area-notify-button" ng-click="answerNO()">\n            no\n        </div>\n    </div>\n    <div class="main-sidebar-content-area-notify-divider"></div>\n</div>');
  112. a.put("view.full.container.html",'<div class="full-content-area-content" ui-view="main-content-container"></div>');a.put("view.full.groupsManagment.html",'<div class="full-container">\n    <div class="full-container-panel">\n        <a href="" ui-sref="chat()" class="full-container-panel-button">\n            <i class="full-container-panel-button-icon fa fa-chevron-left" aria-hidden="true"></i>\n            <span class="full-container-panel-button-text">back</span>\n        </a>\n        <a href="" class="full-container-panel-button" ng-click="createWorkgroup()">\n            <i class="full-container-panel-button-icon fa fa-plus-square" aria-hidden="true"></i>\n            <span class="full-container-panel-button-text">create workgroup</span>\n        </a>\n        <a ng-if="false&&userIsOwnerCurrentGroup" href="" ng-click="save()" class="full-container-panel-button">\n            <i class="full-container-panel-button-icon fa fa-floppy-o" aria-hidden="true"></i>\n            <span class="full-container-panel-button-text">save</span>\n        </a>\n        <a ng-if="userIsOwnerCurrentGroup" href="" class="full-container-panel-button" ng-click="addUserToWorkgroup(currentGroup)">\n            <i class="full-container-panel-button-icon fa fa-plus-square" aria-hidden="true"></i>\n            <span class="full-container-panel-button-text">add user to group</span>\n        </a>\n    </div>\n    <div class="full-container-content-row">\n        <div class="full-container-content-column-groupList">\n            <div class="full-container-content-column-groups-title">\n                Workgroups\n            </div>\n            <div ng-repeat="workgroup in workGroups" class="full-container-content-column-group-container">\n                <div class="full-container-content-column-group-box">\n                    <div class="full-container-content-column-group" ng-click="setCurrent(workgroup);">\n                        <img src="{{::workgroup.label}}" alt="" class="full-container-content-column-group-label">\n                        <div class="full-container-content-column-group-decription">\n                            {{::workgroup.name}}\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div ng-if="currentGroup" class="full-container-content-currentGroup-block">\n            <div class="full-container-content-column-currentGroup-about">\n                <div class="full-container-content-column-description-title">\n                    Description\n                </div>\n                <div class="full-container-content-user-data-block">\n                    <label class="full-container-content-user-data-label">group name:</label>\n                    <input disabled="true" class="full-container-content-user-data-input" ng-model="currentGroup.name" type="text"/>\n                </div>\n                <div class="full-container-content-user-data-block">\n                    <label class="full-container-content-user-data-label">group label</label>\n                    <img src="{{currentGroup.label}}" alt="avatar" class="full-container-content-user-data-avatar">\n                </div>\n            </div>\n            <div class="full-container-content-column-currentGroup-users">\n                <div class="full-container-content-column-owners-title">\n                    owners\n                </div>\n                <div ng-repeat="user in currentGroup.owners" class="main-sidebar-content-area-userlist">\n                    <img src="{{::user.avatar}}" alt="label" class="main-sidebar-content-area-userlist-avatar">\n                    <div class="main-sidebar-content-area-userlist-decription">\n                        <div class="main-sidebar-content-area-userlist-decription-container">\n                            <div>\n                                {{::user.username}}\n                            </div>\n                        </div>\n                        <div class="main-sidebar-content-area-userlist-decription-container">\n                            <div>\n                                {{::user.email}}\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class="full-container-content-column-currentGroup-users">\n                <div class="full-container-content-column-members-title">\n                    members\n                </div>\n                <div ng-repeat="user in currentGroup.members" class="main-sidebar-content-area-userlist">\n                    <img src="{{::user.avatar}}" alt="avatar" class="main-sidebar-content-area-userlist-avatar">\n                    <div class="main-sidebar-content-area-userlist-decription">\n                        <div class="main-sidebar-content-area-userlist-decription-container">\n                            <div>\n                                {{::user.username}}\n                            </div>\n                            <div ng-if="::((userIsOwnerCurrentGroup && user !== currentUser.user) || (!userIsOwnerCurrentGroup && user === currentUser.user))"\n                                 class="main-sidebar-content-area-userlist-decription-actions">\n                                <div class="main-sidebar-content-area-userlist-icon" ng-click="deleteUserFromMembersList(user, currentGroup)">\n                                    <i class="fa fa-user-times" aria-hidden="true"></i>\n                                </div>\n                            </div>\n                        </div>\n                        <div class="main-sidebar-content-area-userlist-decription-container">\n                            <div>\n                                {{::user.email}}\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>');
  113. a.put("view.full.userData.html",'<div class="full-container">\n    <div class="full-container-panel">\n        <a href="" ui-sref="chat()" class="full-container-panel-button">\n            <i class="full-container-panel-button-icon fa fa-chevron-left" aria-hidden="true"></i>\n            <span class="full-container-panel-button-text">back</span>\n        </a>\n        <a href="" ng-click="save()" class="full-container-panel-button">\n            <i class="full-container-panel-button-icon fa fa-floppy-o" aria-hidden="true"></i>\n            <span class="full-container-panel-button-text">save</span>\n        </a>\n    </div>\n    <div class="full-container-content-row">\n        <div class="full-container-content-column">\n            <div class="full-container-content-user-data-block">\n                <label class="full-container-content-user-data-label">username:</label>\n                <input class="full-container-content-user-data-input" ng-model="changedUser.username" type="text"/>\n            </div>\n            <div class="full-container-content-user-data-block">\n                <label class="full-container-content-user-data-label">email:</label>\n                <input class="full-container-content-user-data-input" disabled="true" ng-model="changedUser.email" type="text"/>\n            </div>\n            <div class="full-container-content-user-data-block-column">\n                <label class="full-container-content-user-data-label">few words about you (max 400 symbols):</label>\n                <textarea class="full-container-content-user-data-textarea" ng-model="changedUser.aboutMe" ng-maxlength="400"></textarea>\n            </div>\n        </div>\n        <div class="full-container-content-column">\n            <div class="full-container-content-user-data-block">\n                <label class="full-container-content-user-data-label">your avatar</label>\n                <img src="{{changedUser.fullAvatar}}" alt="large avatar" class="full-container-content-user-data-avatar">\n                <img src="{{changedUser.avatar}}" alt="avatar" class="full-container-content-user-data-avatar">\n            </div>\n            <div class="full-container-content-user-data-block-column">\n                <label class="full-container-content-user-data-label">change new avatar </label>\n                <div class="full-container-content-user-data-block-croper">\n                    <image-cropper data-width="250" data-height="250" data-shape="square" data-result="fullAvatar" data-result2="avatar" data-step="imageCropStep" show="true"></image-cropper>\n                    <img ng-if="fullAvatar !== \'\'" class="full-container-content-user-data-avatar" ng-src="{{ fullAvatar}}" alt="">\n                    <img ng-if="avatar !== \'\'" class="full-container-content-user-data-avatar" ng-src="{{ avatar}}" alt="">\n                </div>\n            </div>\n        </div>\n    </div>\n</div>');
  114. a.put("view.main.auth.confirm.html",'<div class="auth-container">\n    <div class="auth-container-content">\n        <div class="auth-container-content-logo">\n            <img alt="logo" style="width: 240px; height: 45px;" src="data:image/png;base64,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 9lncAzHBAAAAAElFTkSuQmCC">\n        </div>\n        <div class="auth-container-content-form">\n            <div class="auth-container-content-form-status">\n                {{status}}\n            </div>\n        </div>\n    </div>\n</div>');
  115. a.put("view.main.auth.forgot.html",'<div class="auth-container">\n    <div class="auth-container-content">\n        <div class="auth-container-content-logo">\n            <img alt="logo" style="width: 240px; height: 45px;" src="data:image/png;base64,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 9lncAzHBAAAAAElFTkSuQmCC">\n        </div>\n        <div class="auth-container-content-form">\n            <div class="auth-container-content-form-input-block" ng-if="showFields">\n                <input id="forgot-email" class="auth-container-content-form-input" ng-model="forgot.email"\n                       type="text" ng-keypress="keyPress($event)" ng-class="{touched:forgot.email !== \'\'}"/>\n                <label for="forgot-email">\n                    e-mail\n                </label>\n            </div>\n            \x3c!--<input class="auth-container-content-form-input" placeholder="email" ng-model="forgot.email" type="text" ng-keypress="keyPress($event)" ng-if="showFields"/>--\x3e\n            <div ng-if="showFields">\n                WARNING!!! After the password is changed you will never be able to read your old posts!!!\n            </div>\n            <a ng-if="showFields" href="" class="auth-container-content-form-button-container" ng-click="sendEmail()">\n                <i class="auth-container-content-form-button-icon fa fa-chevron-right" aria-hidden="true"></i>\n                <span class="auth-container-content-form-button">recovery the password</span>\n            </a>\n            <a href="/auth/login" class="auth-container-content-form-button-container">\n                <i class="auth-container-content-form-button-icon fa fa-chevron-left" aria-hidden="true"></i>\n                <span class="auth-container-content-form-button">back</span>\n            </a>\n            <div class="auth-container-content-form-status">\n                {{status}}\n            </div>\n        </div>\n    </div>\n</div>');
  116. a.put("view.main.auth.login.html",'<div class="auth-container">\n    <div class="auth-container-content">\n        <div class="auth-container-content-logo">\n            <img alt="logo" style="width: 240px; height: 45px;" src="data:image/png;base64,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 9lncAzHBAAAAAElFTkSuQmCC">\n        </div>\n        <div class="auth-container-content-form">\n            <div id="login-email" class="auth-container-content-form-input-block" ng-if="!enableLogout">\n                <input class="auth-container-content-form-input" ng-model="login.email"\n                       type="text" ng-keypress="keyPress($event)" ng-class="{touched:login.email !== \'\'}"/>\n                <label for="login-email">\n                    e-mail\n                </label>\n            </div>\n            <div id="login-password" class="auth-container-content-form-input-block">\n                <input class="auth-container-content-form-input" ng-model="login.password" type="password"\n                       ng-keypress="keyPress($event)" ng-class="{touched:login.password !== \'\'}"/>\n                <label for="login-password">\n                    password\n                </label>\n            </div>\n            <a href="" class="auth-container-content-form-button-container" ng-click="doLogin()">\n                <i class="auth-container-content-form-button-icon fa fa-chevron-right" aria-hidden="true"></i>\n                <span class="auth-container-content-form-button">login</span>\n            </a>\n            <a ng-if="enableLogout" href="" class="auth-container-content-form-button-container" ng-click="doLogout()">\n                <i class="auth-container-content-form-button-icon fa fa-chevron-right" aria-hidden="true"></i>\n                <span class="auth-container-content-form-button">logout</span>\n            </a>\n            <a ng-if="!enableLogout" href="/auth/forgot" class="auth-container-content-form-button-container">\n                <i class="auth-container-content-form-button-icon fa fa-chevron-right" aria-hidden="true"></i>\n                <span class="auth-container-content-form-button">password recovery</span>\n            </a>\n            <a ng-if="!enableLogout" href="/auth/registration" class="auth-container-content-form-button-container">\n                <i class="auth-container-content-form-button-icon fa fa-chevron-right" aria-hidden="true"></i>\n                <span class="auth-container-content-form-button" >registration</span>\n            </a>\n            <div class="auth-container-content-form-status">\n                {{status}}\n            </div>\n            <div ng-if="enableLogout" class="auth-container-content-form-status">\n                Please confirm session by entering password or logout from current session\n            </div>\n        </div>\n    </div>\n</div>');
  117. a.put("view.main.auth.recovery.html",'<div class="auth-container">\n    <div class="auth-container-content">\n        <div class="auth-container-content-logo">\n            <img alt="logo" style="width: 240px; height: 45px;" src="data:image/png;base64,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 9lncAzHBAAAAAElFTkSuQmCC">\n        </div>\n        <div class="auth-container-content-form">\n            <div class="auth-container-content-form-input-notify" ng-show="danger">\n                \u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043d\u0435 \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043e.\n            </div>\n            <div class="auth-container-content-form-input-block" ng-if="showFields">\n                <input id="recovery-pass" class="auth-container-content-form-input" ng-model="recovery.oldPass"\n                       type="password" ng-keypress="keyPress($event)" ng-class="{touched:recovery.oldPass !== \'\'}"/>\n                <label for="recovery-pass">\n                    old password\n                </label>\n            </div>\n            <div ng-if="showFields">\n                WARNING!!! if you have not provided the correct current password after changing the password, you will not be able to read your old posts!!!\n            </div>\n            <div class="auth-container-content-form-input-block" ng-if="showFields">\n                <input id="recovery-pass" class="auth-container-content-form-input" ng-model="recovery.pass"\n                       type="password" ng-keypress="keyPress($event)" ng-class="{touched:recovery.pass !== \'\'}"/>\n                <label for="recovery-pass">\n                    new password, 8 char min\n                </label>\n            </div>\n            <div class="auth-container-content-form-input-block" ng-if="showFields">\n                <input id="recovery-passRepeat" class="auth-container-content-form-input" ng-model="recovery.passRepeat"\n                       type="password" ng-keypress="keyPress($event)" ng-class="{touched:recovery.passRepeat !== \'\'}"/>\n                <label for="recovery-passRepeat">\n                    repeat the new password\n                </label>\n            </div>\n            <a href="" class="auth-container-content-form-button-container" ng-click="recoveryPassword()" ng-if="showFields">\n                <i class="auth-container-content-form-button-icon fa fa-chevron-right" aria-hidden="true"></i>\n                <span class="auth-container-content-form-button">change the password</span>\n            </a>\n            <a href="/auth/login" class="auth-container-content-form-button-container">\n                <i class="auth-container-content-form-button-icon fa fa-chevron-left" aria-hidden="true"></i>\n                <span class="auth-container-content-form-button">back</span>\n            </a>\n            <div class="auth-container-content-form-status">\n                {{status}}\n            </div>\n        </div>\n    </div>\n</div>');
  118. a.put("view.main.auth.registration.html",'<div class="auth-container">\n    <div class="auth-container-content">\n        <div class="auth-container-content-logo">\n            <img alt="logo" style="width: 240px; height: 45px;" src="data:image/png;base64,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 9lncAzHBAAAAAElFTkSuQmCC">\n        </div>\n        <div class="auth-container-content-form">\n            <div class="auth-container-content-form-input-notify" ng-show="danger">\n                \u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043d\u0435 \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043e.\n            </div>\n            <div class="auth-container-content-form-input-block" ng-if="showFields">\n                <input id="register-username" class="auth-container-content-form-input" ng-model="register.userName"\n                       type="text" ng-keypress="keyPress($event)" ng-class="{touched:register.userName !== \'\'}"/>\n                <label for="register-username">\n                    username, free symbols\n                </label>\n            </div>\n            <div class="auth-container-content-form-input-block" ng-if="showFields">\n                <input id="register-email" class="auth-container-content-form-input" ng-model="register.email"\n                       type="text" ng-keypress="keyPress($event)" ng-class="{touched:register.email !== \'\'}"/>\n                <label for="register-email">\n                    real e-mail\n                </label>\n            </div>\n            <div class="auth-container-content-form-input-block" ng-if="showFields">\n                <input id="register-password" class="auth-container-content-form-input" ng-model="register.password"\n                       type="password" ng-keypress="keyPress($event)" ng-class="{touched:register.password !== \'\'}"/>\n                <label for="register-password">\n                    password, 8 char min\n                </label>\n            </div>\n            <div class="auth-container-content-form-input-block" ng-if="showFields">\n                <input id="register-passwordRepeat" class="auth-container-content-form-input" ng-model="register.passwordRepeat"\n                       type="password" ng-keypress="keyPress($event)" ng-class="{touched:register.passwordRepeat !== \'\'}"/>\n                <label for="register-passwordRepeat">\n                    repeat the password\n                </label>\n            </div>\n            \x3c!--<div class="auth-container-content-form-input-block" >\n                <input class="auth-container-content-form-input" placeholder="user name" ng-model="register.userName" type="text" ng-keypress="keyPress($event)"/>\n                <span class="auth-container-content-form-input-label">Your username, free symbols</span>\n            </div>\n            <div class="auth-container-content-form-input-block" ng-if="showFields">\n                <input class="auth-container-content-form-input" placeholder="email" ng-model="register.email" type="email" ng-keypress="keyPress($event)"/>\n                <span class="auth-container-content-form-input-label">You must specify Your real email</span>\n            </div>\n            <div class="auth-container-content-form-input-block" ng-if="showFields">\n                <input class="auth-container-content-form-input" placeholder="password" ng-model="register.password" type="password" ng-keypress="keyPress($event)"/>\n                <span class="auth-container-content-form-input-label">Change your password, at least 8 characters</span>\n            </div>\n            <div class="auth-container-content-form-input-block" ng-if="showFields">\n                <input class="auth-container-content-form-input" placeholder="password" ng-model="register.passwordRepeat" type="password" ng-keypress="keyPress($event)"/>\n                <span class="auth-container-content-form-input-label">Repeat password</span>\n            </div>--\x3e\n            <a href="" class="auth-container-content-form-button-container" ng-click="doRegister()" ng-if="showFields">\n                <i class="auth-container-content-form-button-icon fa fa-chevron-right" aria-hidden="true"></i>\n                <span class="auth-container-content-form-button">to register</span>\n            </a>\n            <a href="/auth/login" class="auth-container-content-form-button-container">\n                <i class="auth-container-content-form-button-icon fa fa-chevron-left" aria-hidden="true"></i>\n                <span class="auth-container-content-form-button">back</span>\n            </a>\n            <div class="auth-container-content-form-status">\n                {{status}}\n            </div>\n        </div>\n    </div>\n</div>');
  119. a.put("view.main.auth.sidebar.html",'<div class="main-sidebar-panel">\n    <div class="main-sidebar-logo">\n        <img alt="logo" style="width: 240px; height: 45px;" src="data:image/png;base64,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 9lncAzHBAAAAAElFTkSuQmCC">\n    </div>\n    <div class="main-sidebar-voltanotes-presents">\n        <div>VoltaNotes present:</div>\n        <div>1) bla-bla-bla</div>\n        <div>2) bla-bla</div>\n        <div>3) While spaceships travel through the universe...</div>\n    </div>\n</div>');
  120. a.put("view.main.chat.sidebar.html",'<div class="main-sidebar-panel">\n    <div class="main-sidebar-controls">\n        <div class="main-sidebar-logo">\n            <a ui-sref="chat()">\n                <img alt="logo" style="width: 240px; height: 45px;" src="data:image/png;base64,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 9lncAzHBAAAAAElFTkSuQmCC">\n            </a>\n        </div>\n        <div class="main-sidebar-icon-panel">\n            <div class="main-sidebar-icon-panel-icon" ng-click="toSettings()">\n                <i class="fa fa-cog" aria-hidden="true"></i> \n            </div>\n            <div class="main-sidebar-icon-panel-icon" ng-click="changeTab(2)" ng-class="{\'main-sidebar-icon-panel-icon-active\':tabNumber === 2}">\n                <i class="fa fa-users" aria-hidden="true"></i> \n            </div>\n        </div>\n        <div class="main-sidebar-icon-panel">\n            <div class="main-sidebar-icon-panel-icon" ng-click="changeTab(4)" ng-class="{\'main-sidebar-icon-panel-icon-active\':tabNumber === 4,\'notify-icon-red\':notifyStruct.notifyList.length > 0}">\n                <i class="fa fa-exclamation" aria-hidden="true"></i>\n            </div>\n            <div class="main-sidebar-icon-panel-icon" ng-click="changeTab(3)" ng-class="{\'main-sidebar-icon-panel-icon-active\':tabNumber === 3}">\n                <i class="fa fa-comments" aria-hidden="true"></i> \n            </div>\n        </div>\n    </div>\n    \x3c!--<div class="main-sidebar-icon-panel-divider"></div>--\x3e\n    \x3c!--<h2 class="main-sidebar-content-area-title">{{tabs[tabNumber]}}</h2>\n    <div class="main-sidebar-icon-panel-divider"></div>--\x3e\n    \x3c!--<ng-include ng-if="tabNumber === 1" src="\'template.main-sidebar-tab-actions.html\'" class="main-sidebar-content-area"></ng-include>--\x3e\n    <ng-include ng-if="tabNumber === 2" src="\'template.main-sidebar-tab-users.html\'" class="main-sidebar-content-area"></ng-include>\n    <ng-include ng-if="tabNumber === 3" src="\'template.main-sidebar-tab-tickets.html\'" class="main-sidebar-content-area"></ng-include>\n    <ng-include ng-if="tabNumber === 4" src="\'template.main-sidebar-tab-notify.html\'" class="main-sidebar-content-area"></ng-include>\n</div>');
  121. a.put("view.main.chat.tickets.html",'<div class="full-container">\n    <div class="tickets-head-panel">\n        <div class="tickets-groups-panel">\n            <div class="tickets-groups-panel-group" ng-click="setCurrentWorkgroup(undefined)"\n                 ng-class="{\'tickets-groups-panel-group-active\':currentWorkgroup === undefined}">\n                Public\n            </div>\n            <div class="tickets-groups-panel-group" ng-repeat="workgroup in workgroups" ng-click="setCurrentWorkgroup(workgroup)"\n                 ng-if="!workgroup.deleted" ng-class="{\'tickets-groups-panel-group-active\':currentWorkgroup === workgroup}">\n                {{::workgroup.name}}\n            </div>        \n        </div>\n        <div class="tickets-head-panel-actions-addGroup" ng-click="addGroupModal()">\n            <span class="tickets-head-panel-actions-addGroup-plus">\n                +\n            </span>\n        </div>\n    </div>\n    <div id="data-tickets-panel-scroll" class="tickets-panel-box" ng-keypress="keyPress($event)" ng-keydown="onKeyDown($event)" ng-keyup="onKeyUp($event)">\n        <div class="tickets-panel" ng-if="ready">\n            <div class="tickets-ticket-container" ng-repeat="ticket in tickets| orderBy:\'lastUpdateTime\':true  track by ticket._id" id="{{::ticket._id}}"\n                 ng-click="setCurrentStickyTicket(ticket)" ng-init="loadHistory(ticket)" ng-class="{\'tickets-ticket-opacity\':ticket.isNew}"\n                 ng-show="(currentWorkgroup === ticket.workgroup) && (ticketsFilters.showAll || ticket.lastMessageUser !== currentUser.user._id) && !ticket.deleted"\n                 vn-get-files="ticket">\n                <div class="tickets-ticket-container-title">\n                    <div class="tickets-ticket-container-title-text">\n                        {{ticket.title}}\n                        \x3c!--<img ng-if="ticket.owner.refs.currentUser && !ticket.isNew" class="tickets-ticket-container-title-icon" src="/assets/img/delete.png" alt="del" ng-click="deleteStickyTicket(ticket)">--\x3e\n                    </div>\n                    <div class="tickets-ticket-container-title-icons" ng-if="ticket.owner.refs.currentUser && !ticket.isNew">\n                        <img class="tickets-ticket-container-title-icon" src="/assets/img/delete.png" alt="del" ng-dblclick="deleteStickyTicket(ticket)">\n                    </div>\n                </div>\n                <div class="tickets-ticket-container-content">\n                    <div class="tickets-ticket-container-content-users">\n                        <div class="tickets-ticket-container-content-users-members">\n                            <span ng-repeat="member in ticket.members track by member._id"\n                                  class="tickets-ticket-container-content-users-members-user">\n                                {{::member.username}}\n                                <span class="tickets-ticket-container-content-users-members-user-baloon">\n                                    {{::member.email}}\n                                </span>\n                            </span>\n                        </div>\n                        <div class="tickets-ticket-container-content-plus">\n                            <i ng-if="ticket.title !== \'\'&&ticket.owner.refs.currentUser" class="tickets-ticket-container-content-users-members-plus" aria-hidden="true"\n                               ng-click="addUsersToTicket(ticket)" ng-class="{\'tickets-ticket-container-content-users-members-plus-active\':currentTicketToAddingUser === ticket}">\n                                +\n                            </i>\n                        </div>\n                    </div>\n                    <div class="data-add-files-area tickets-ticket-container-content-messages">\n                        <div class="tickets-ticket-container-content-messages-history">\n                            <div ng-repeat="message in ticket.refs.messages| orderBy:\'timestamp\':false" vn-ticket-message="::message"></div>\n                        </div>\n                        <div class="tickets-ticket-container-content-messages-currentMessage">\n                            <textarea  ng-model="ticket.currentMessage" ng-maxlength="1000"\n                                       vn-focus-me="{{ticket.isNew}}" vn-focus-me-ticket="ticket" vn-focus-me-current-ticket="setCurrentStickyTicket"\n                                       ng-class="{touched:(ticket.currentMessage && ticket.currentMessage !== \'\')}" ng-change="currentMessageChange(ticket)"\n                                       class="tickets-ticket-container-content-messages-currentMessage-area data-add-files-textarea"></textarea>\n                            <label class="tickets-ticket-container-content-messages-currentMessage-label">\n                                message\n                            </label>\n                            <div class="tickets-ticket-container-content-messages-currentMessage-upload-list">\n                                <div ng-repeat="doc in ticket.currentFilesArray" ng-click="deleteFileFromList(ticket.currentFilesArray, doc)"\n                                     class="tickets-ticket-container-content-messages-currentMessage-upload-doc">\n                                    <img class="tickets-ticket-container-content-messages-currentMessage-upload-doc-img" ng-src="{{::doc.img}}">\n                                    \x3c!--<div class="tickets-ticket-container-content-messages-currentMessage-upload-doc-delete">\n                                        X\n                                    </div>--\x3e\n                                    \x3c!--<div class="tickets-ticket-container-content-messages-currentMessage-upload-doc-about">\n                                        <img ng-if="::doc.isImage" class="tickets-ticket-container-content-messages-currentMessage-upload-doc-about-img" ng-src="{{::doc.img}}">\n                                        <div class="tickets-ticket-container-content-messages-currentMessage-upload-doc-about-text">\n                                            {{::doc.file.name}}\n                                        </div>\n                                    </div>--\x3e\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div class="tickets-ticket-container-content-actions">\n                    <div class="tickets-ticket-container-content-actions-row">\n                        <div class="tickets-ticket-container-content-actions-send" ng-click="sendMessage(ticket)">\n                            SEND (ENTER)\n                        </div>\n                        <div class="data-add-files-button tickets-ticket-container-content-actions-sendfile">\n                            <span class="tickets-ticket-container-content-actions-sendfile-plus" ng-class="{\'uploading\':ticket.loadingCount > 0}">\n                                +\n                            </span>\n                        </div>\n                        <input style="visibility:hidden;display:none" class="data-add-files-button-input" type="file" id="files" name="files[]" multiple/>\n                        \x3c!--<div class="tickets-ticket-container-content-actions-stick"\n                             ng-class="{\'tickets-ticket-container-content-actions-stick-active\':ticket.sticky}"\n                             ng-click="switchStickyTicket(ticket)">\n                            <i class="fa fa-thumb-tack" aria-hidden="true"></i>\n                        </div>--\x3e\n                    </div>\n                    <div class="tickets-ticket-container-content-actions-row">\n                        <div class="tickets-ticket-container-content-actions-leave" ng-dblclick="leaveTicket(ticket)">\n                            LEAVE (DOUBLECLICK)\n                        </div>\n                    </div>\n                </div>\n                <div ng-if="$last" style="visibility: hidden" ng-init="scrollLeft()"></div>\n            </div>\n        </div>\n    </div>\n</div>');
  122. a.put("view.main.container.html",'<div class="main-sidebar-panel-box" ui-view="main-sidebar-container"></div>\n<div class="main-content-area-content" ui-view="main-content-container"></div>');a.put("view.main.settings.html",'<div class="full-container">\n    <div class="tickets-head-panel">\n        <div class="tickets-groups-panel">\n            \x3c!--<div class="tickets-groups-panel-group" ng-click="currentSettingsGroup = \'user\'"\n                 ng-class="{\'tickets-groups-panel-group-active\':currentSettingsGroup === \'user\'}">\n                User\n            </div>\n            <div class="tickets-groups-panel-group" ng-click="currentSettingsGroup = \'workgroups\'"\n                 ng-class="{\'tickets-groups-panel-group-active\':currentSettingsGroup === \'workgroups\'}">\n                Workgroups\n            </div>--\x3e        \n        </div>\n    </div>\n\n    <div id="data-tickets-panel-scroll" class="tickets-panel-box">\n        <div class="tickets-panel">\n            <div class="tickets-ticket-container">\n                <div class="tickets-ticket-container-title">\n                    <div class="tickets-ticket-container-title-text">\n                        user data\n                    </div>\n                </div>\n                <div class="tickets-ticket-container-content-messages-currentMessage">\n                    <input  ng-model="changedUser.username" ng-class="{touched:(changedUser.username !== \'\')}" type="text"\n                            class="tickets-ticket-container-content-input">\n                    <label class="tickets-ticket-container-content-messages-currentMessage-label">\n                        username\n                    </label>\n                </div>\n                <div class="tickets-ticket-container-content-messages-currentMessage">\n                    <input  ng-model="changedUser.email" ng-class="{touched:(changedUser.email !== \'\')}" type="text" disabled="true"\n                            class="tickets-ticket-container-content-input-disable">\n                    <label class="tickets-ticket-container-content-messages-currentMessage-label">\n                        email\n                    </label>\n                </div>\n                \x3c!--<div class="tickets-ticket-container-content-messages-currentMessage">\n                    <textarea  ng-model="changedUser.aboutMe" ng-maxlength="400"\n                               vn-focus-me="{{ticket.isNew}}" vn-focus-me-ticket="ticket" vn-focus-me-current-ticket="setCurrentStickyTicket"\n                               ng-class="{touched:(changedUser.aboutMe !== \'\')}"\n                               class="tickets-ticket-container-content-messages-currentMessage-area data-add-files-textarea"></textarea>\n                    <label class="tickets-ticket-container-content-messages-currentMessage-label">\n                        about user (max 400 symbols)\n                    </label>\n                </div>--\x3e\n                <div class="full-container-content-user-data-block-ava">\n                    \x3c!--<img src="{{changedUser.fullAvatar}}" alt="large avatar" class="full-container-content-user-data-avatar">--\x3e\n                    <img src="{{changedUser.avatar}}" alt="avatar" class="full-container-content-user-data-avatar">\n                </div>\n                <div class="tickets-ticket-container-title-text">\n                    change avatar\n                </div>\n                <div class="full-container-content-user-data-block-croper">\n                    <div>\n                        <canvas width="330" height="330" id="canvas" image-cropper image="cropper.fullAvatar" cropped-image="cropper.avatar"\n                                crop-width="50" crop-height="50" keep-aspect="true" touch-radius="30" crop-area-bounds="bounds"></canvas>\n                    </div>\n                    <input type="file" img-cropper-fileread image="cropper.fullAvatar" />\n                    <div ng-show="cropper.avatar != null">\n                        <img ng-src="{{cropper.avatar}}" />\n                    </div>\n                </div>\n                <div class="tickets-ticket-container-content-actions">\n                    <div class="tickets-ticket-container-content-actions-row">\n                        <div class="tickets-ticket-container-content-actions-leave" ng-click="saveUserData()">\n                            Save user data changes\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div class="tickets-panel">\n            <div class="tickets-ticket-container">\n                <div class="tickets-ticket-container-title" ng-if="!currentSettingsWorkgroup">\n                    <div class="tickets-ticket-container-title-text">\n                        workgroups\n                        \x3c!--<img ng-if="ticket.owner.refs.currentUser && !ticket.isNew" class="tickets-ticket-container-title-icon" src="/assets/img/delete.png" alt="del" ng-click="deleteStickyTicket(ticket)">--\x3e\n                    </div>\n                </div>\n                <div class="tickets-ticket-container-content" ng-if="!currentSettingsWorkgroup">\n                    <div class="tickets-ticket-container-content-actions-leave" ng-repeat="workgroup in workgroups"\n                         ng-if="!workgroup.deleted" ng-click="setCurrentSettingsWorkgroup(workgroup)">\n                        {{::workgroup.name}}\n                    </div>\n                </div>\n                <div class="tickets-ticket-container-title" ng-if="currentSettingsWorkgroup">\n                    <div class="tickets-ticket-container-title-text">\n                        {{::currentSettingsWorkgroup.name}}\n                        \x3c!--<img ng-if="ticket.owner.refs.currentUser && !ticket.isNew" class="tickets-ticket-container-title-icon" src="/assets/img/delete.png" alt="del" ng-click="deleteStickyTicket(ticket)">--\x3e\n                    </div>\n                    <div class="tickets-ticket-container-title-icons" ng-if="currentSettingsWorkgroup.owners.indexOf(currentUser.user) >= 0">\n                        <img class="tickets-ticket-container-title-icon" src="/assets/img/delete.png" alt="del" ng-dblclick="deleteWorkgroup(currentSettingsWorkgroup)">\n                    </div>\n                </div>\n                <div class="tickets-ticket-container-content" ng-if="currentSettingsWorkgroup">\n                    <div class="tickets-ticket-container-title">\n                        <div class="tickets-ticket-container-title-text">\n                            Owners\n                        </div>\n                    </div>\n                    <div class="tickets-ticket-container-content-users">\n                        <div class="tickets-ticket-container-content-users-members">\n                            <span ng-repeat="owner in currentSettingsWorkgroup.owners track by owner._id"\n                                  class="tickets-ticket-container-content-users-members-user">\n                                {{::owner.username}}\n                                <span class="tickets-ticket-container-content-users-members-user-baloon">\n                                    {{::owner.email}}\n                                </span>\n                            </span>\n                        </div>\n                        <div class="tickets-ticket-container-content-plus">\n                            <i ng-if="currentSettingsWorkgroup.owners.indexOf(currentUser.user) >= 0" class="tickets-ticket-container-content-users-members-plus" aria-hidden="true"\n                               ng-click="addOwnerToWorkgroup(currentSettingsWorkgroup)" ng-class="{\'tickets-ticket-container-content-users-members-plus-active\':currentWorkgroupToAddingOwner === currentSettingsWorkgroup}">\n                                +\n                            </i>\n                        </div>\n                    </div>\n                    <div class="tickets-ticket-container-title">\n                        <div class="tickets-ticket-container-title-text">\n                            Members\n                        </div>\n                    </div>\n                    <div class="tickets-ticket-container-content-users">\n                        <div class="tickets-ticket-container-content-users-members">\n                            <span ng-repeat="member in currentSettingsWorkgroup.members track by member._id"\n                                  class="tickets-ticket-container-content-users-members-user">\n                                {{::member.username}}\n                                <i ng-if="currentSettingsWorkgroup.owners.indexOf(currentUser.user) >= 0 && currentSettingsWorkgroup.owners.indexOf(member)<0"\n                                   class="fa fa-times" aria-hidden="true" ng-click="deleteFromMembers(member._id, currentSettingsWorkgroup._id)"\n                                   style="cursor:pointer"></i>\n                                <span class="tickets-ticket-container-content-users-members-user-baloon">\n                                    {{::member.email}}\n                                </span>\n                            </span>\n                        </div>\n                    </div>\n                </div>\n                <div class="tickets-ticket-container-content-actions" ng-if="currentSettingsWorkgroup">\n                    \x3c!--<div class="tickets-ticket-container-content-actions-leave" ng-dblclick="leaveWorkgroupOwner(currentSettingsWorkgroup)"\n                         ng-if="currentSettingsWorkgroup.owners.indexOf(currentUser.user) >= 0 && currentSettingsWorkgroup.owners.length > 1">\n                        LEAVE WORKGROUP OWNERS (DOUBLECLICK)\n                    </div>--\x3e\n                    <div class="tickets-ticket-container-content-actions-leave" ng-click="setCurrentSettingsWorkgroup(undefined)">\n                        BACK\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>')}]);
  123. "use strict";module=angular.module("controller.content.chat.groupsManagment",["controller.group.create","controller.users.select"]);
  124. module.controller("controllerContentChatGroupsManagment",["$scope","$q","$socketService","$dataStorage","$notifyService","ModalService",function(a,l,c,f,h,b){a.workGroups={};a.currentGroup=void 0;f.getCurrentUser().then(function(b){a.currentUser=b;if(a.currentUser.user&&a.currentUser.user.refs.workgroups)a.workGroups=b.user.refs.workgroups;else var d=a.$watch("currentUser.user.refs.workgroups",function(b,c,e){b&&(a.workGroups=b,d())})});a.setCurrent=function(b){a.currentGroup=b;0>b.owners.indexOf(a.currentUser.user)?
  125. a.userIsOwnerCurrentGroup=!1:a.userIsOwnerCurrentGroup=!0};a.createWorkgroup=function(){b.showModal({templateUrl:"template.modal.createGroup.html",controller:"createGroupController"}).then(function(a){a.close.then(function(a){a&&c.emit("workgroups:createNewWorkgroup",a).then(function(a){a.success?h.info("the workgroup is created"):h.warning("creating workgroup error")},function(a){h.warning("creating workgroup error")})})})}}]);"use strict";
  126. module=angular.module("controller.content.chat.tickets",["directive.vnTicketMessage","controller.uploadFiles"]);
  127. module.controller("controllerContentChatTickets",["$scope","$q","$socketService","$dataStorage","$notifyService","ModalService","$ticketsService","$rootScope",function(a,l,c,f,h,b,e,d){e.setUserListMode({mode:"addUserToContacts",settings:{}});d.settingsMode=!1;var k={};a.ready=!1;f.getCurrentUser().then(function(b){a.currentUser=b;if(a.currentUser.user)a.ready=!0;else var d=a.$watch("currentUser.user",function(b,c,e){b&&(a.ready=!0,d())})});a.tickets={};a.currentStickyTicket=void 0;f.getTickets().then(function(b){a.tickets=
  128. b});f.getWorkgroups().then(function(b){a.workgroups=b});a.setCurrentWorkgroup=function(b){(a.currentWorkgroup=b)?e.setUserListMode({mode:"addUserToContacts",settings:{workgroup:b}}):e.setUserListMode({mode:"addUserToContacts",settings:{}})};a.setCurrentStickyTicket=function(b){a.currentStickyTicket=b};a.keyPress=function(b){k[16]&&13===b.keyCode&&a.currentStickyTicket?(b.preventDefault(),a.currentStickyTicket.currentMessage+="\n"):13===b.keyCode&&a.currentStickyTicket&&(b.preventDefault(),e.sendMessage(a.currentStickyTicket))};
  129. a.onKeyDown=function(a){k[a.keyCode]=!0};a.onKeyUp=function(a){k[a.keyCode]=!1};a.sendMessage=function(a){e.sendMessage(a)};a.deleteFileFromList=function(a,b){var d=a.indexOf(b);a.splice(d,1)};a.scrollLeft=function(){document.getElementById("data-tickets-panel-scroll").scrollLeft=0};a.addGroupModal=function(){b.showModal({templateUrl:"template.modal.createGroup.html",controller:"createGroupController"}).then(function(a){a.close.then(function(a){a&&c.emit("workgroups:createNewWorkgroup",a).then(function(a){a.success?
  130. h.info("the workgroup is created"):h.warning("creating workgroup error")},function(a){h.warning("creating workgroup error")})})})};a.deleteStickyTicket=function(a){e.deleteStickyTicket(a)};a.leaveTicket=function(a){e.leaveTicket(a)};a.loadHistory=function(a){a.currentFilesArray=[];a.historyLoaded||(a.historyLoaded=!0,e.loadHistory(a))};a.addUsersToTicket=function(b){e.currentTicketToAddingUser===b?(e.currentTicketToAddingUser=void 0,e.setUserListMode({mode:"addUserToContacts",settings:{}})):(e.currentTicketToAddingUser=
  131. b,e.setUserListMode({mode:"addUserToTicket",settings:{ticket:b}}));a.currentTicketToAddingUser=e.currentTicketToAddingUser};a.currentTicketToAddingUser=e.currentTicketToAddingUser;a.ticketsFilters=e.ticketsFilters;a.currentMessageChange=function(a){a.isNew&&(a.title=a.currentMessage)}}]);"use strict";module=angular.module("controller.content.chat.userData",[]);
  132. module.controller("controllerContentChatUserData",["$scope","$q","$socketService","$notifyService","$dataStorage","$interval",function(a,l,c,f,h,b){a.changedUser={};h.getCurrentUser().then(function(b){a.currentUser=b;if(a.currentUser.user)angular.copy(a.currentUser.user,a.changedUser);else var d=a.$watch("currentUser.user",function(b,c,e){b&&(angular.copy(b,a.changedUser),d())})});a.avatar="";a.fullAvatar="";a.save=function(){delete a.changedUser.refs;""!==a.avatar&&""!==a.fullAvatar&&(a.changedUser.avatar=
  133. a.avatar,a.changedUser.fullAvatar=a.fullAvatar);c.emit("currentUser:changeMe",a.changedUser).then(function(a){a.success||f.warning("the user data save error")},function(a){f.warning("the user data save error")})}}]);"use strict";module=angular.module("controller.content.settings",["angular-img-cropper"]);
  134. module.controller("controllerContentSettings",["$scope","$q","$socketService","$dataStorage","$notifyService","ModalService","$ticketsService",function(a,l,c,f,h,b,e){a.cropper={};a.cropper.fullAvatar=null;a.cropper.avatar=null;a.bounds={};a.bounds.left=0;a.bounds.right=0;a.bounds.top=0;a.bounds.bottom=0;a.currentSettingsGroup="user";a.changedUser={};f.getCurrentUser().then(function(b){a.currentUser=b;if(a.currentUser.user)angular.copy(a.currentUser.user,a.changedUser);else var c=a.$watch("currentUser.user",
  135. function(b,d,e){b&&(angular.copy(b,a.changedUser),c())})});a.saveUserData=function(){delete a.changedUser.refs;console.log("$scope.cropper.avatar",a.cropper.avatar);a.cropper.avatar&&a.cropper.fullAvatar&&(a.changedUser.avatar=a.cropper.avatar,a.changedUser.fullAvatar=a.cropper.fullAvatar);c.emit("currentUser:changeMe",a.changedUser).then(function(a){a.success||h.warning("the user data save error")},function(a){h.warning("the user data save error")})};f.getWorkgroups().then(function(b){a.workgroups=
  136. b});a.currentSettingsWorkgroup=void 0;a.setCurrentSettingsWorkgroup=function(b){a.currentSettingsWorkgroup=b};a.deleteWorkgroup=function(b){c.emit("workgroups:deleteWorkgroup",{workgroupID:b._id}).then(function(b){b.success&&(a.currentSettingsWorkgroup=void 0)},function(a){})};a.deleteFromMembers=function(a,b){c.emit("workgroups:leaveWorkgroup",{userToLeaveId:a,workgroupID:b}).then(function(a){},function(a){})};e.currentWorkgroupToAddingOwner=void 0;e.setUserListMode({mode:"contactsSettings",settings:{}});
  137. a.addOwnerToWorkgroup=function(b){e.currentWorkgroupToAddingOwner===b?(e.currentWorkgroupToAddingOwner=void 0,e.setUserListMode({mode:"contactsSettings",settings:{}})):(e.currentWorkgroupToAddingOwner=b,e.setUserListMode({mode:"addUserToWorkgroupOwners",settings:{ownerWorkgroup:b}}));a.currentWorkgroupToAddingOwner=e.currentWorkgroupToAddingOwner}}]);"use strict";module=angular.module("controller.sidebar.chat.actions",["service.auth"]);
  138. module.controller("controllerSidebarChatActions",["$scope","$authService","$rootScope","$state",function(a,l,c,f){a.settings=function(){c.settingsMode=!c.settingsMode;c.settingsMode?f.go("settings"):f.go("chat")};a.logout=function(){l.logout()}}]);"use strict";module=angular.module("controller.sidebar.chat","service.auth service.notify controller.sidebar.chat.actions controller.sidebar.chat.tickets controller.sidebar.chat.notify controller.sidebar.chat.users".split(" "));
  139. module.controller("controllerSidebarChat",["$scope","$authService","$notifyService","$state","$rootScope","$socketService",function(a,l,c,f,h,b){b.sessionIsOpen||f.go("login");a.tabs={2:"users",3:"groups",4:"notify list"};a.tabNumber=2;a.changeTab=function(b){a.tabNumber=b};a.toSettings=function(){h.settingsMode=!h.settingsMode;h.settingsMode?f.go("settings"):f.go("chat")};c.getNotifyList();a.notifyStruct=c.notifyStruct}]);"use strict";
  140. module=angular.module("controller.sidebar.chat.notify",["service.notify","directive.vnNotify"]);module.controller("controllerSidebarChatNotify",["$scope","$notifyService",function(a,l){a.notifyStruct=l.notifyStruct}]);"use strict";module=angular.module("controller.sidebar.chat.tickets",["service.tickets"]);
  141. module.controller("controllerSidebarChatTickets",["$scope","$q","$ticketsService","$notifyService","$dataStorage",function(a,l,c,f,h){a.showTL=!0;a.workgroups={};a.contacts={};h.getWorkgroups().then(function(b){a.workgroups=b});h.getTickets().then(function(b){a.tickets=b});a.search={query:""};a.clearSearch=function(){a.search.query=""};a.activateTicket=function(a){h.addObjects({stickyTickets:[{ticket:a._id}]})}}]);"use strict";
  142. module=angular.module("controller.sidebar.chat.users",["service.dataStorage","service.users","service.tickets"]);
  143. module.controller("controllerSidebarChatUsers",["$scope","$usersService","$dataStorage","$ticketsService","$socketService","$filter",function(a,l,c,f,h,b){function e(b){console.log("==============deregistration1================",a.title);switch(b){case "addUserToContacts":a.title="find anyone";a.mode=1;a.currentWorkgroup=a.userListMode.settings.workgroup;break;case "addUserToTicket":a.title="add user to ticket";a.addToTicket=a.userListMode.settings.ticket;a.currentWorkgroup=a.userListMode.settings.workgroup;
  144. a.mode=2;break;case "addUserToWorkgroupOwners":a.title="add user to workgoup owners";a.ownerWorkgroup=a.userListMode.settings.ownerWorkgroup;a.mode=3;break;case "contactsSettings":a.title="find anyone",a.mode=4}}function d(){var c=b("orderBy")(b("filter")(a.contacts,{priority:"!!"}),"priority",!1);console.log("prioritiesBefore",c);var d=[],e=0;c.forEach(function(a){a.priority=e;d.unshift({_id:a._id,priority:e});e+=1});h.emit("contacts:changePriority",{priorityArray:d})}a.workgroups={};a.contacts=
  145. {};c.getWorkgroups().then(function(b){a.workgroups=b});c.getContacts().then(function(b){a.contacts=b});c.getCurrentUser().then(function(b){a.currentUser=b});a.addUserToContactList=function(b){l.addUserToContacts(b._id,a.currentWorkgroup);a.search.searchResult.forEach(function(c){c._id===b._id&&a.search.searchResult.splice(a.search.searchResult.indexOf(c),1)});a.search.query="";a.search.searchUsers()};a.deleteUserFromContactList=function(b){l.deleteUserFromContacts(b._id,a.currentWorkgroup)};a.userClick=
  146. function(b){f.updateNewTicketLocaly({user:b,workgroup:a.currentWorkgroup})};a.search={query:"",searchResult:[],searchUsers:function(){4<this.query.length?l.searchUsers(a.search.query).then(function(b){a.search.searchResult=b}):a.search.searchResult=[]}};a.clearSearch=function(){a.search.query="";a.search.searchUsers()};a.createNewTicket=function(a,b){f.createNewTicket([a],b)};a.ticketsFilter=f.ticketsFilters.showAll?"RELEVANT TICKETS":"ALL TICKETS";a.changeTicketsFilter=function(){a.ticketsFilter=
  147. f.changeTicketsFilter()};a.userListMode=f.userListMode;a.$watch("userListMode.mode",function(a,b,c){a!==b&&e(a)});a.userListMode&&a.userListMode.mode&&e(a.userListMode.mode);a.$watch("userListMode.settings.workgroup",function(b,c,d){b!==c&&(a.currentWorkgroup=a.userListMode.settings.workgroup)});a.$watch("userListMode.settings.ticket",function(b,c,d){b!==c&&(a.addToTicket=a.userListMode.settings.ticket)});a.userAddToTicket=function(b){f.addUserToTicket(a.addToTicket,b)};a.userAddToWorkgroupOwners=
  148. function(b){h.emit("workgroups:addUserToWorkgroupOwners",{userToAddId:b._id,workgroupID:a.ownerWorkgroup._id}).then(function(a){},function(a){})};a.fixContactWithPriority=function(a){a.priority=void 0!==a.priority?void 0:-1;d()};a.contactPriorityUp=function(a){a.priority-=1.5;d()};a.contactPriorityDown=function(a){a.priority+=1.5;d()}}]);
  149. ©2009 Google - Terms of Service - Privacy Policy - Google Home
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement