diff --git a/UI/WebServerResources/js/Common.js b/UI/WebServerResources/js/Common.js
index 5bfba203e..3c00a483b 100644
--- a/UI/WebServerResources/js/Common.js
+++ b/UI/WebServerResources/js/Common.js
@@ -1,2 +1,2 @@
-!function(){"use strict";angular.module("SOGo.Common",["ngAnimate","ngMessages","ngSanitize","ngMaterial","mdColors"]).value("sgSettings",{isPopup:document.body.classList.contains("popup"),baseURL:function(){return ApplicationBaseURL||null},resourcesURL:function(){return ResourcesURL||null},activeUser:function(e){var t={login:UserLogin||null,identification:UserIdentification||null,email:UserEmail||null,language:UserLanguage||null,folderURL:UserFolderURL||null,isSuperUser:IsSuperUser||null,path:{calendar:UserCalendarPath||null,contacts:UserContactsPath||null,mail:UserMailPath||null,preferences:UserPreferencesPath||null,administration:IsSuperUser?UserAdministrationPath:null,help:HelpURL||null,logoff:UserLogoffPath||null}};return e?t[e]:t},minimumSearchLength:function(){return angular.isNumber(minimumSearchLength)?minimumSearchLength:2}}).constant("sgColors",{selection:["#FFFFFF","#330033","#C0C0C0","#999999","#666666","#333333","#000000","#FFCCCC","#FF6666","#FF0000","#CC0000","#990000","#660000","#330000","#FFCC99","#FF9966","#FF9900","#FF6600","#CC6600","#993300","#663300","#FFFF99","#FFFF66","#FFCC66","#FFCC33","#CC9933","#996633","#663333","#FFFFCC","#FFFF33","#FFFF00","#FFCC00","#999900","#666600","#333300","#CCCCCC","#66FF99","#33FF33","#33CC00","#009900","#006600","#003300","#99FFFF","#33FFFF","#66CCCC","#00CCCC","#339999","#336666","#003333","#CCFFFF","#66FFFF","#33CCFF","#3366FF","#3333FF","#000099","#000066","#CCCCFF","#9999FF","#6666CC","#6633FF","#6600CC","#333399","#330099","#FFCCFF","#FF99FF","#CC66CC","#CC33CC","#993399","#663366","#99FF99"]}).constant("sgConstant",{xs:"(max-width: 599px)","gt-xs":"(min-width: 600px)",sm:"(min-width: 600px) and (max-width: 959px)","gt-sm":"(min-width: 960px)",md:"(min-width: 960px) and (max-width: 1023px)","gt-md":"(min-width: 1024px)",lg:"(min-width: 1024px) and (max-width: 1279px)","gt-lg":"(min-width: 1280px)",xl:"(min-width: 1920px)",print:"print"}).config(e).factory("AuthInterceptor",t).factory("ErrorInterceptor",n),e.$inject=["$logProvider","$compileProvider","$httpProvider","$mdThemingProvider","$mdAriaProvider"];function e(e,t,n,r,i){r.definePalette("sogo-green",{50:"eaf5e9",100:"cbe5c8",200:"aad6a5",300:"88c781",400:"66b86a",500:"56b04c",600:"4da143",700:"388e3c",800:"367d2e",900:"225e1b",A100:"fafafa",A200:"69f0ae",A400:"00e676",A700:"00c853",contrastDefaultColor:"dark",contrastLightColors:["300","400","500","600","700","800","900"]}),r.definePalette("sogo-blue",{50:"f0faf9",100:"e1f5f3",200:"ceebe8",300:"bfe0dd",400:"b2d6d3",500:"a1ccc8",600:"8ebfbb",700:"7db3b0",800:"639997",900:"4d8080",A100:"d4f7fa",A200:"c3f5fa",A400:"53e3f0",A700:"00b0c0",contrastDefaultColor:"light",contrastDarkColors:["50","100","200"]}),r.definePalette("sogo-paper",{50:"fcf7f8",100:"f7f1dc",200:"ede5ca",300:"e6d8ba",400:"e2d2a3",500:"d6c48d",600:"baa870",700:"857545",800:"524517",900:"433809",1000:"000000",A100:"ffffff",A200:"eeeeee",A400:"bdbdbd",A700:"616161",contrastDefaultColor:"dark",contrastLightColors:["800","900"]});var o=r.extendPalette("grey",{600:"00B0C0"});r.definePalette("sogo-grey",o),r.theme("default").primaryPalette("sogo-blue",{default:"900","hue-1":"400","hue-2":"800","hue-3":"A700"}).accentPalette("sogo-green",{default:"500","hue-1":"A100","hue-2":"300","hue-3":"A700"}).backgroundPalette("sogo-grey"),DebugEnabled||(e.debugEnabled(!1),t.debugInfoEnabled(!1),i.disableWarnings(),r.generateThemesOnDemand(!0)),n.interceptors.push("AuthInterceptor"),n.interceptors.push("ErrorInterceptor")}t.$inject=["$window","$q"];function t(e,t){return{response:function(n){return n&&/^application\/json/.test(n.config.headers.Accept)&&/^[\n\r ]*/.test(n.data)?(e.location.reload(!0),t.reject()):n}}}n.$inject=["$rootScope","$window","$q","$injector"];function n(e,t,n,r){return{responseError:function(i){var o,s;if(/^application\/json/.test(i.config.headers.Accept)){if(t.usesCASAuthentication&&-1==i.status)return o=n.defer(),(s=angular.element('')).on("load",function(){r.get("$http")(i.config).then(o.resolve,o.reject),s.remove()}),document.body.appendChild(s[0]),o.promise;t.usesSAML2Authentication&&401==i.status?t.location.reload(!0):e.$broadcast("http:Error",i)}return n.reject(i)}}}}(),function(){"use strict";var e;angular.module("mdColors",["ngMaterial"]).config(t).run(n),t.$inject=["$mdThemingProvider"];function t(t){e=t}n.$inject=["$interpolate","$document","$log"];function n(t,n,r){function i(e){return e.join("")}for(var o=t(i([".md-{{theme}}-theme",".md-fg"])+" { color:{{value}};}"),s=t(i([".md-{{theme}}-theme",".md-bg"])+" { background-color:{{value}};}"),a=t(i([".md-{{theme}}-theme",".md-bdr"])+" { border-color:{{value}};}"),l=t(i([".md-{{theme}}-theme",".md-{{hue}}",".md-fg"])+" { color:{{value}};}"),c=t(i([".md-{{theme}}-theme",".md-{{hue}}",".md-bg"])+" { background-color:{{value}};}"),u=t(i([".md-{{theme}}-theme",".md-{{palette}}",".md-fg"])+" { color:{{value}};}"),d=t(i([".md-{{theme}}-theme",".md-{{palette}}",".md-bg"])+" { background-color:{{value}}; color:{{contrast}} !important; }"),h=t(i([".md-{{theme}}-theme",".md-{{palette}}",".md-bdr"])+" { border-color:{{value}};}"),m=t(i([".md-{{theme}}-theme",".md-{{palette}}.md-{{hue}}",".md-fg"])+" { color:{{value}};}"),g=t(i([".md-{{theme}}-theme",".md-{{palette}}.md-{{hue}}",".md-bg"])+" { background-color:{{value}};}"),p=function(){var e=n[0].head.querySelector('style[title="Dynamic-Generated-by-mdColors"]');null===e&&((e=n[0].createElement("style")).title="Dynamic-Generated-by-mdColors",e.appendChild(n[0].createTextNode("")),n[0].head.appendChild(e));return e.sheet}(),f=0;p.cssRules.length>0;)p.deleteRule(0);angular.forEach(e._THEMES,function(t,n){y(o,s,n,"primary",e._PALETTES[t.colors.primary.name][t.colors.primary.hues.default]),y(l,c,n,"primary",e._PALETTES[t.colors.primary.name][t.colors.primary.hues["hue-2"]],"hue-2"),y(l,c,n,"primary",e._PALETTES[t.colors.primary.name][t.colors.primary.hues["hue-3"]],"hue-3"),y(l,c,n,"primary",e._PALETTES[t.colors.primary.name][t.colors.primary.hues["hue-1"]],"hue-1"),v(a,n,"primary",e._PALETTES[t.colors.primary.name][t.colors.primary.hues.default]),angular.forEach(t.colors,function(t,r){y(u,d,n,r,e._PALETTES[t.name][t.hues.default]),v(h,n,r,e._PALETTES[t.name][t.hues.default]),y(m,g,n,r,e._PALETTES[t.name][t.hues["hue-2"]],"hue-2"),y(m,g,n,r,e._PALETTES[t.name][t.hues["hue-3"]],"hue-3"),y(m,g,n,r,e._PALETTES[t.name][t.hues["hue-1"]],"hue-1")})});function y(e,t,n,r,i,o){if(i){var s={theme:n,palette:r,value:"rgb("+i.value[0]+","+i.value[1]+","+i.value[2]+")",contrast:"rgb("+i.contrast[0]+","+i.contrast[1]+","+i.contrast[2]+")",hue:o};p.insertRule(e(s),f),f+=1,p.insertRule(t(s),f),f+=1}}function v(e,t,n,r,i){if(r){var o="rgb("+r.value[0]+","+r.value[1]+","+r.value[2]+")";p.insertRule(e({theme:t,palette:n,value:o,hue:i}),f),f+=1}}}}(),function(){"use strict";e.$inject=["$window"];function e(e){return e.decodeURIComponent}angular.module("SOGo.Common").filter("decodeUri",e)}(),function(){"use strict";e.$inject=["$window"];function e(e){return e.encodeURIComponent}angular.module("SOGo.Common").filter("encodeUri",e)}(),function(){"use strict";e.$inject=["$sce"];function e(e){return function(t){var n=angular.element("
"+t+"
");return n.find("a").attr("target","_blank"),e.trustAs("html",n.html())}}angular.module("SOGo.Common").filter("ensureTarget",e)}(),function(){"use strict";angular.module("SOGo.Common").filter("loc",function(){return l})}(),function(){"use strict";angular.module("SOGo.Common").filter("range",function(){return function(e){for(var t=[],n=0;n"):void 0}}angular.module("SOGo.Common").filter("txt2html",e)}(),function(){"use strict";e.$inject=["$document","$timeout","$mdDialog","Dialog","usersWithACL","User","folder"];function e(e,t,n,r,i,o,s){var a=this;a.users=i,a.folder=s,a.selectedUser=null,a.selectedUid=null,a.userToAdd="",a.searchText="",a.folderClassName=function(){return!!angular.isFunction(s.getClassName)&&s.getClassName("bg")},a.templateName=function(t){return"UIx"+(e[0].getElementById("UIxAnonymousUserRightsEditor")&&t.$isAnonymous()?"Anonymous":"")+"UserRightsEditor"},a.userFilter=function(e){return o.$filter(e,s.$acl.users)},a.closeModal=function(){s.$acl.$resetUsersRights(),n.hide()},a.saveModal=function(){s.$acl.$saveUsersRights().then(function(){n.hide()},function(e,t){r.alert(l("Warning"),l("An error occured please try again."))})},a.confirmChange=function(e){var t=e.$confirmRights(a.folder);t&&(a.confirmation.showing=!0,a.confirmation.message=t)},a.removeUser=function(e){t(function(){s.$acl.$removeUser(e.uid)},500)},a.addUser=function(e){e&&s.$acl.$addUser(e).then(function(e){a.userToAdd="",a.searchText="",a.selectedUid=null,e&&c(e)})},a.selectAllRights=function(e){s.$acl.$selectAllRights(e)},a.selectUser=c,a.showRights=function(e){return a.selectedUid==e.uid&&!e.inactive},a.confirmation={showing:!1,message:""};function c(e,t){if(t&&t.target.parentNode.classList.contains("md-secondary"))return!1;a.selectedUid==e.uid?a.selectedUid=null:(a.selectedUid=e.uid,a.selectedUser=e,e.inactive||a.selectedUser.$rights())}}angular.module("SOGo.Common").controller("AclController",e)}(),function(){"use strict";e.$inject=["$rootScope","$scope","$timeout","$interval","$http","$window","$mdSidenav","$mdToast","$mdMedia","$log","sgConstant","sgSettings","Resource","Alarm"];function e(e,t,n,r,i,o,s,a,c,u,d,h,m,g){var p=new m(h.baseURL(),h.activeUser());this.$onInit=function(){t.isPopup=h.isPopup,t.activeUser=h.activeUser(),t.baseURL=h.baseURL(),t.leftIsClose=!c(d["gt-md"]),t.centerIsClose=!!o.centerIsClose&&!t.leftIsClose,t.currentDay=window.currentDay,n(function(){r(function(){i.get("../date").then(function(e){t.currentDay=e})},864e5)},1e3*window.currentDay.secondsBeforeTomorrow),t.$watch(function(){return c(d["gt-md"])},function(e){t.isGtMedium=e,e&&(t.leftIsClose=!1)}),e.$on("http:Error",f),h.activeUser("path").calendar&&g.getAlarms()},t.toggleLeft=function(){t.isGtMedium?t.leftIsClose=!t.leftIsClose:(t.leftIsClose=!s("left").isOpen(),t.leftIsClose&&angular.element(o).triggerHandler("resize"),s("left").toggle().then(function(){u.debug("toggle left is done")}))},t.toggleRight=function(){s("right").toggle().then(function(){u.debug("toggle right is done")})},t.toggleCenter=function(e){t.centerIsClose=!t.centerIsClose,e&&e.save&&p.post(null,"saveListState",{state:t.centerIsClose?"collapse":"rise"})};function f(e,t){var n;t.data&&t.data.message&&angular.isString(t.data.message)?n=t.data.message:t.status&&(n=t.statusText),n?a.show({template:["",' ',' error_outline '," "+l(n)+" ","
"," "].join(""),hideDelay:5e3,position:"top right"}):u.debug("untrap error")}}angular.module("SOGo.Common").controller("navController",e)}(),function(){"use strict";function e(e){this.folderId=e}e.factory=["$q","$timeout","sgSettings","Resource","User",function(t,n,r,i,o){return angular.extend(e,{$q:t,$timeout:n,$$resource:new i(r.activeUser("folderURL"),r.activeUser()),$User:o}),e}],angular.module("SOGo.Common").factory("Acl",e.factory),e.prototype.$users=function(t){var n,r=this,i=e.$q.defer();if(!this.users){return(angular.isDefined(t)?e.$$resource.userResource(t).fetch(this.folderId,"acls"):e.$$resource.fetch(this.folderId,"acls")).then(function(o){return r.users=[],angular.forEach(o.users,function(i){(n=new e.$User(i)).canSubscribeUser=n.isSubscribed,n.wasSubscribed=n.isSubscribed,n.$rights=angular.bind(n,n.$acl,r.folderId,t),r.users.push(n)}),i.resolve(r.users),r.users})}return i.resolve(this.users),i.promise},e.prototype.$addUser=function(t,n){var r=this,i=e.$q.defer(),o={uid:t.uid};if(!t.uid||_.indexOf(_.map(this.users,"uid"),t.uid)>-1)i.resolve();else{(angular.isDefined(n)?e.$$resource.userResource(n).fetch(this.folderId,"addUserInAcls",o):e.$$resource.fetch(this.folderId,"addUserInAcls",o)).then(function(){t.wasSubscribed=!1,t.userClass=t.isGroup?"normal-group":"normal-user",t.$rights=angular.bind(t,t.$acl,r.folderId,n),r.users.push(t),i.resolve(t)},function(e,t){i.reject(l("An error occured please try again."))})}return i.promise},e.prototype.$removeUser=function(t,n){var r=this,i={uid:t};return(angular.isDefined(n)?e.$$resource.userResource(n).fetch(this.folderId,"removeUserFromAcls",i):e.$$resource.fetch(this.folderId,"removeUserFromAcls",i)).then(function(){var e=_.indexOf(_.map(r.users,"uid"),t);e>=0&&(r.users[e].$shadowRights=null,r.users.splice(e,1))})},e.prototype.$selectAllRights=function(e){_.forEach(e.rights,function(t,n){angular.isNumber(e.rights[n])?e.rights[n]=1:e.rights[n]="Modifier"})},e.prototype.$resetUsersRights=function(){angular.forEach(this.users,function(e){e.$resetRights()})},e.prototype.$saveUsersRights=function(t){var n=this,r=e.$q.defer(),i=e.$q.defer(),o={action:"saveUserRights"},s=[];if(angular.forEach(this.users,function(e){e.$rightsAreDirty()&&s.push(e.$omit())}),s.length){(angular.isDefined(t)?e.$$resource.userResource(t).save(this.folderId,s,o):e.$$resource.save(this.folderId,s,o)).then(function(){angular.forEach(n.users,function(e){e.$rightsAreDirty()&&(e.$shadowRights=angular.copy(e.rights))}),r.resolve()},r.reject)}else r.resolve();return s=[],angular.forEach(this.users,function(e){!e.wasSubscribed&&e.isSubscribed&&s.push(e.uid)}),s.length?(o={uids:s.join(",")},e.$$resource.fetch(this.folderId,"subscribeUsers",o).then(function(){angular.forEach(n.users,function(e){e.wasSubscribed=e.isSubscribed}),i.resolve()},i.reject)):i.resolve(),e.$q.all([r.promise,i.promise])}}(),function(){"use strict";function e(){this.currentAlarm=null}e.getAlarms=function(){var t=this,n=new Date,r=Math.floor(n.getTime()/1e3);this.$$resource.fetch("","alarmslist?browserTime="+r).then(function(n){var r=n.alarms.sort(function(e,t){var n=parseInt(e[2]);return parseInt(t[2])-n});if(r.length>0){var i=r.pop(),o=new Date,s=Math.floor(o.getTime()/1e3),a=i[0]+"/"+i[1],l=parseInt(i[2]),c=l;l>0&&(c-=s);new Date(1e3*l);var u=angular.bind(t,e.showAlarm,a);t.currentAlarm&&t.$timeout.cancel(t.currentAlarm),t.currentAlarm=t.$timeout(u,1e3*c)}})},e.showAlarm=function(e){var t=this;this.$$resource.fetch(e,"?resetAlarm=yes").then(function(n){t.$toast.show({position:"top right",hideDelay:0,template:["",' ','
','
{{ summary }}
','
'," ",' {{ "Snooze for " | loc }} ',' ',' ',l("5 minutes")," ",' ',l("10 minutes")," ",' ',l("15 minutes")," ",' ',l("30 minutes")," ",' ',l("45 minutes")," ",' ',l("1 hour")," ",' ',l("1 day")," "," "," ",' ',l("Snooze")," ",' ',l("Close")," ","
","
","
"," "].join(""),locals:{url:e},controller:r}),r.$inject=["scope","$mdToast","url"];function r(e,r,i){e.summary=n.summary,e.reminder="10",e.close=function(){r.hide()},e.snooze=function(){t.$$resource.fetch(i,"view?snoozeAlarm="+e.reminder),r.hide()}}})},t.$inject=["$timeout","sgSettings","Resource","$mdToast"];function t(t,n,r,i){return angular.extend(e,{$timeout:t,$$resource:new r(n.activeUser("folderURL")+"Calendar",n.activeUser()),$toast:i}),e}angular.module("SOGo.Common").factory("Alarm",t)}(),function(){"use strict";angular.module("SOGo.Authentication",["ngCookies"]).constant("passwordPolicyConfig",{PolicyPasswordChangeUnsupported:-3,PolicyPasswordSystemUnknown:-2,PolicyPasswordUnknown:-1,PolicyPasswordExpired:0,PolicyAccountLocked:1,PolicyChangeAfterReset:2,PolicyPasswordModNotAllowed:3,PolicyMustSupplyOldPassword:4,PolicyInsufficientPasswordQuality:5,PolicyPasswordTooShort:6,PolicyPasswordTooYoung:7,PolicyPasswordInHistory:8,PolicyNoError:65535}).provider("Authentication",function(){function e(e,t){var n,r,i,o,s,a;return n=e,t&&(n+="@"+t.value),r=""+window.location.href,"/"==(i=ApplicationBaseURL+encodeURIComponent(n))[0]&&(o=r.split("/"),s=o[2],a=o[0],i=a+"//"+s+i),r.startsWith(i)&&!r.endsWith("/logoff")?r:i}this.$get=t,t.$inject=["$q","$http","$cookies","passwordPolicyConfig"];function t(t,n,r,i){function o(){var e,t=null,n=r.get("0xHIGHFLYxSOGo");return n&&n.length>8&&(e=decodeURIComponent(n.substr(8)),t=e.base64decode().split(":")),t}return{login:function(r){var s,a=t.defer(),c=r.username,u=r.password,d=r.domain,h=r.rememberLogin?1:0;return r.loginSuffix&&!c.endsWith(r.loginSuffix)&&(c+=loginSuffix,d=!1),r.language&&"WONoSelectionString"!=r.language&&(s=r.language),n({method:"POST",url:"/SOGo/connect",data:{userName:c,password:u,domain:d,language:s,rememberLogin:h}}).then(function(t){var n=t.data,r=o();r?void 0!==n.expire&&void 0!==n.grace?n.expire<0&&n.grace>0?a.reject({grace:n.grace}):n.expire>0&&-1==n.grace?a.reject({expire:n.expire}):a.resolve({cn:n.cn,url:e(c,d)}):a.resolve({url:e(c,d)}):a.reject(l("cookiesNotEnabled"))},function(e){var t,n,r=e.data;r&&r.LDAPPasswordPolicyError?(n=r.LDAPPasswordPolicyError,t=n==i.PolicyNoError?l("Wrong username or password."):n==i.PolicyAccountLocked?l("Your account was locked due to too many failed attempts."):l("Login failed due to unhandled error case: ")+n):t=l("Unhandled error response"),a.reject({error:t})}),a.promise},changePassword:function(e){var s=t.defer(),a=o(),c=r.get("XSRF-TOKEN");return r.remove("XSRF-TOKEN",{path:"/SOGo/"}),n({method:"POST",url:"/SOGo/so/changePassword",headers:{"X-XSRF-TOKEN":c},data:{userName:a[0],password:a[1],newPassword:e}}).then(s.resolve,function(e){var t,n=e.data,o=n.LDAPPasswordPolicyError;o?o==i.PolicyNoError?t=l("Password change failed"):o==i.PolicyPasswordModNotAllowed?t=l("Password change failed - Permission denied"):o==i.PolicyInsufficientPasswordQuality?t=l("Password change failed - Insufficient password quality"):o==i.PolicyPasswordTooShort?t=l("Password change failed - Password is too short"):o==i.PolicyPasswordTooYoung?t=l("Password change failed - Password is too young"):o==i.PolicyPasswordInHistory?t=l("Password change failed - Password is in history"):(t=l("Unhandled policy error: %{0}").formatted(o),o=i.PolicyPasswordUnknown):(o=i.PolicyPasswordSystemUnknown,t=_("Unhandled error response")),r.put("XSRF-TOKEN",c,{path:"/SOGo/"}),s.reject(t)}),s.promise}}}})}(),function(){"use strict";function e(){}e.alert=function(e,t){var n=this.$modal.alert().title(e).htmlContent(t).ok(l("OK")).multiple(!0);this.$modal.show(n)},e.confirm=function(e,t,n){var r=this.$modal.confirm().title(e).htmlContent(t).ok(n&&n.ok?n.ok:l("OK")).cancel(n&&n.cancel?n.cancel:l("Cancel"));return this.$modal.show(r)},e.prompt=function(e,t,n){var r=n||{},i=e.asCSSIdentifier(),o=this.$q.defer();this.$modal.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,template:['',' "," "].join(""),controller:s}),s.$inject=["scope","$mdDialog"];function s(t,n){t.title=e,t.name="",t.cancel=function(){o.reject(),n.hide()},t.ok=function(){o.resolve(t.name),n.hide()}}return o.promise},t.$inject=["$q","$mdDialog"];function t(t,n){return angular.extend(e,{$q:t,$modal:n}),e}angular.module("SOGo.Common").factory("Dialog",t)}(),function(){"use strict";angular.module("SOGo.Common").factory("Gravatar",function(){return function(e,t,n,r){var i,o,s,a=t,l=n;return e?((i=e.indexOf("<"))>=0&&(o=e.indexOf(">",i))>i&&(e=e.substring(i+1,o)),t||(a=48),s=e.md5(),l&&"none"!=l||(n=r&&r.no_404?"mm":"404"),"https://www.gravatar.com/avatar/"+s+"?s="+a+"&d="+n):""}})}(),function(){"use strict";function e(e,t,n,r,i){angular.extend(this,{_http:e,_q:t,_path:n,_activeUser:r}),angular.extend(this,i),this._path=this._path.replace(/\/$/,"")}e.$factory=["$http","$q",function(t,n){return function(r,i,o){return new e(t,n,r,i,o)}}],angular.module("SOGo.Common").factory("Resource",e.$factory),e.prototype.userResource=function(t){var n=_.compact(this._activeUser.folderURL.split("/"));return t&&n.splice(n.length-1,1,escape(t)),new e(this._http,this._q,"/"+n.join("/"),this._activeUser)},e.prototype.path=function(){var e=[this._path];return arguments.length>0&&Array.prototype.push.apply(e,Array.prototype.slice.call(arguments)),e.join("/")},e.prototype.fetch=function(e,t,n){var r=this._q.defer(),i=[this._path];return e&&i.push(e.split("/")),t&&i.push(t),i=_.compact(_.flatten(i)).join("/"),this._http({method:"GET",url:i,params:n}).then(function(e){return r.resolve(e.data)},r.reject),r.promise},e.prototype.newguid=function(e){var t=this._q.defer(),n=this._path+"/"+e+"/newguid";return this._http.get(n).then(function(e){return t.resolve(e.data)},t.reject),t.promise},e.prototype.create=function(e,t){var n=this._q.defer(),r=this._path+"/"+e;return this._http.post(r,{name:t}).then(function(e){return n.resolve(e.data)},n.reject),n.promise},e.prototype.post=function(e,t,n){var r=this._q.defer(),i=[this._path];return e&&i.push(e),t&&i.push(t),i=_.compact(_.flatten(i)).join("/"),this._http.post(i,n).then(function(e){return r.resolve(e.data)},r.reject),r.promise},e.prototype.save=function(e,t,n){var r=n&&n.action?n.action:"save";return this.post(e,r,t)},e.prototype.download=function(e,t,n,r){this._q.defer();var i=r&&r.type?r.type:"application/zip",o=[this._path];e&&o.push(e),t&&o.push(t),o=_.compact(_.flatten(o)).join("/");return this._http({method:"POST",url:o,data:n,headers:{accept:i},responseType:"arraybuffer",cache:!1,transformResponse:function(e,t,n){var o,s=null;if(n<200||n>299)throw new Error("Bad gateway");e&&(s=new Blob([e],{type:i})),r&&r.filename?o=r.filename:(a=t("content-disposition"))&&a.split(";")[1].trim().split("=")[1].replace(/"/g,"");var a;if(!saveAs)throw new Error("To use Resource.download, FileSaver.js must be loaded.");saveAs(s,o)}})},e.prototype.remove=function(e){var t=this._q.defer(),n=this._path+"/"+e+"/delete";return this._http.get(n).then(function(e){return t.resolve(e.data)},t.reject),t.promise}}(),function(){"use strict";e.$inject=["$rootScope","$timeout"];function e(e,t){return function(n){t(function(){e.$broadcast("sgFocusOn",n)})}}angular.module("SOGo.Common").factory("sgFocus",e)}(),function(){"use strict";e.$inject=["$mdDialog","$sgHotkeys"];function e(e,t){return angular.extend(t,{$modal:e}),new t}angular.module("SOGo.Common").service("sgHotkeys",e).provider("$sgHotkeys",function(){var e={8:"backspace",9:"tab",13:"enter",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"caps",27:"escape",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"delete",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12"},t={42:"*",63:"?"};this.$get=n,n.$inject=["$rootScope","$window"];function n(n,r){var i=function(e){this.id=e.id||guid(),this.key=e.key,this.description=e.description||null,this.context=e.context||null,this.callback=e.callback,this.preventInClass=e.preventInClass,this.args=e.args,this.onKeyUp=!1,this.key.length>1&&(this.lkey=l("key_"+this.key))};i.prototype.clone=function(){return new i(this)};var o=function(){this._hotkeys={},this._hotkeysUp={},this._preventIn=["INPUT","SELECT","TEXTAREA","MD-OPTION"],this._preventInClass=["md-chip-content"],this._onKeydown=this._onKeydown.bind(this),this._onKeyup=this._onKeyup.bind(this),this._onKeypress=this._onKeypress.bind(this),this.initialize()};return o.prototype.initialize=function(){this.registerHotkey(this.createHotkey({key:"?",description:l("Show or hide this help"),callback:this._toggleCheatSheet.bind(this)})),r.addEventListener("keydown",this._onKeydown,!0),r.addEventListener("keyup",this._onKeyup,!0),r.addEventListener("keypress",this._onKeypress,!0)},o.prototype._invokeHotkeyHandlers=function(e,t,n){for(var r=0,i=n.length;r=0;n--){var r=e.clone();r.key=e.key[n];var i=this._deregisterHotkey(r);void 0!==i&&t.push(i[0])}else t.push(this._deregisterHotkey(e));return t},o.prototype._validateHotkey=function(e){if(!(e instanceof i))throw new TypeError("Hotkeys: Expected a hotkey object be instance of HotKey")},o.prototype._registerKey=function(e){var t=this._hotkeys;return e.onKeyUp&&(t=this._hotkeysUp),t[e.key]=t[e.key]||[],t[e.key].push(e),e},o.prototype._registerKeys=function(e){var t=[];if(angular.isArray(e.key))for(var n=e.key.length-1;n>=0;n--){var r=e.clone();r.id=guid(),r.key=e.key[n],t.push(this._registerKey(r))}else t.push(this._registerKey(e));return t},o.prototype.registerHotkey=function(e){return this._validateHotkey(e),this._registerKeys(e)},o.prototype.registerHotkeyUp=function(e){this._validateHotkey(e),e.onKeyUp=!0,this._registerKeys(e)},o.prototype.createHotkey=function(e){if(null===e.key||void 0===e.key)throw new TypeError('HotKeys: Argument "key" is required');if(null===e.callback||void 0===e.callback)throw new TypeError('HotKeys: Argument "callback" is required');e.callback=(t=e.callback,function(e,r){n.$apply(function(){t.call(this,e,r)}.bind(this))});var t;return new i(e)},o.prototype.match=function(e,t){angular.isArray(t)||(t=[t]);var n=this.keyStringFromEvent(e);return Boolean(~t.indexOf(n))},o.prototype._toggleCheatSheet=function(){var e=this;this._cheatSheet?(o.$modal.hide(),this._cheatSheet=null):this._cheatSheet=o.$modal.show({clickOutsideToClose:!0,escapeToClose:!0,template:[""," "," ",' ',' '," {{keys[0].lkey || hotkey}} ","
"," {{keys[0].description}}"," "," "," "," "].join(""),controller:t,locals:{hotkeys:e._hotkeys}}).finally(function(){e._cheatSheet=null}),t.$inject=["$scope","hotkeys"];function t(e,t){e.hotkeys=t,e.closeDialog=function(){o.$modal.hide()}}},o}})}(),function(){"use strict";function e(e){e&&this.init(e)}e.factory=["$q","$log","sgSettings","Resource",function(t,n,r,i){return angular.extend(e,{$q:t,$log:n,$$resource:new i(r.activeUser("folderURL"),r.activeUser()),$query:"",$users:[]}),e}],angular.module("SOGo.Common").factory("User",e.factory),e.$filter=function(t,n,r){var i=e.$$resource,o={search:t};if(r&&r.dry)r&&r.uid&&(i=e.$$resource.userResource(r.uid));else{if(!t)return e.$users.splice(0,e.$users.length),e.$q.when(e.$users);if(e.$query==t)return e.$q.when(e.$users);e.$query=t}return i.fetch(null,"usersSearch",o).then(function(t){var i,o,s,a,l=function(e){return this.uid==e.uid};for(r?r.dry?a=[]:r.results&&(a=r.results):a=e.$users,i=n?_.filter(t.users,function(e){return!_.find(n,_.bind(l,e))}):t.users,o=a.length-1;o>=0;o--)s=a[o],_.find(i,_.bind(l,s))||a.splice(o,1);return _.forEach(i,function(t,n){if(_.isUndefined(_.find(a,_.bind(l,t)))){var r=new e(t);a.splice(n,0,r)}}),e.$log.debug(a),a})},e.prototype.init=function(e){angular.extend(this,e),this.$$shortFormat||(this.$$shortFormat=this.$shortFormat()),this.$$image||(this.$$image=this.image),this.$avatarIcon=this.$isGroup()||this.$isSpecial()?"group":"person",this.empty=" "},e.prototype.$fullname=function(){var e=this.cn||this.uid;return this.c_info&&(e+=" ("+this.c_info.split("\n").join("; ")+")"),e},e.prototype.$shortFormat=function(e){var t=this.$fullname(),n=this.c_email;return!(e&&!1===e.email)&&n&&t!=n&&(t+=" <"+n+">"),t},e.prototype.$acl=function(t,n){var r=this,i=e.$q.defer(),o={uid:this.uid};if(this.$shadowRights)i.resolve(this.rights);else{(angular.isDefined(n)?e.$$resource.userResource(n).fetch(t,"userRights",o):e.$$resource.fetch(t,"userRights",o)).then(function(e){return r.rights=e,r.$shadowRights=angular.copy(e),i.resolve(e),e})}return i.promise},e.prototype.$isGroup=function(){return this.isGroup||this.userClass&&"normal-group"==this.userClass},e.prototype.$isAnonymous=function(){return"anonymous"==this.uid},e.prototype.$isSpecial=function(){return this.userClass&&"public-user"==this.userClass},e.prototype.$confirmRights=function(e){var t=!1;return!this.$confirmation&&(_.some(_.values(this.rights))&&("anonymous"==this.uid?"AddressBook"==e.constructor.name?t=l('Potentially anyone on the Internet will be able to access your address book "%{0}", even if they do not have an account on this system. Is this information suitable for the public Internet?',e.name):"Calendar"==e.constructor.name&&(t=l('Potentially anyone on the Internet will be able to access your calendar "%{0}", even if they do not have an account on this system. Is this information suitable for the public Internet?',e.name)):"anyone"!=this.uid&&""!=this.uid||("AddressBook"==e.constructor.name?t=l('Any user with an account on this system will be able to access your address book "%{0}". Are you certain you trust them all?',e.name):"Calendar"==e.constructor.name?t=l('Any user with an account on this system will be able to access your calendar "%{0}". Are you certain you trust them all?',e.name):"Mailbox"==e.constructor.name&&(t=l('Any user with an account on this system will be able to access your mailbox "%{0}". Are you certain you trust them all?',e.name)))),this.$confirmation=t,t)},e.prototype.$rightsAreDirty=function(){return this.rights&&!_.isEqual(this.rights,this.$shadowRights)},e.prototype.$resetRights=function(e){var t=this;e?_.map(_.keys(this.rights),function(e){angular.isString(t.rights[e])?t.rights[e]="None":t.rights[e]=0}):this.$shadowRights&&(this.rights=angular.copy(this.$shadowRights))},e.prototype.$folders=function(t){var n=this,r=e.$q.defer(),i={type:t};return this.$$folders?r.resolve(this.$$folders):e.$$resource.userResource(this.uid).fetch(null,"foldersSearch",i).then(function(e){n.$$folders=e.folders,r.resolve(e.folders)}),r.promise},e.prototype.$omit=function(){var e={};return angular.forEach(this,function(t,n){"constructor"!=n&&"$"!=n[0]&&(e[n]=t)}),e},e.prototype.toString=function(){return"[User "+this.c_email+"]"}}(),function(){"use strict";e.$inject=["$scope","$element","$http","$q","Preferences","Gravatar"];function e(e,t,n,r,i,o){var s,a;s=this,e.$on("$destroy",function(){a&&t.off("click",a)}),e.$watch(function(){return s.email},function(e,t){e&&s.urlEmail!=e?(l(),i.defaults.SOGoGravatarEnabled&&function(e){var t=o(e,s.size,i.defaults.SOGoAlternateAvatar);n({method:"GET",url:t,cache:!0,headers:{Accept:"image/*"}}).then(function(){s.url||(s.url=t,s.urlEmail=e,c())},function(){l()})}(e)):e||l()}),"sg-src"in t[0].attributes&&e.$watch(function(){return s.src},function(e){e&&(s.url=e,s.urlEmail=""+s.email,t.addClass("sg-avatar-image--zoomable"),a=function(){t.toggleClass("sg-avatar-image--zoom")},t.on("click",a),c())});function l(){s.url=null,s.urlEmail=null,s.img.addClass("ng-hide"),s.genericImg.removeClass("ng-hide")}function c(){s.genericImg.addClass("ng-hide"),s.img.removeClass("ng-hide")}}angular.module("SOGo.Common").directive("sgAvatarImage",function(){return{restrict:"AE",scope:{},bindToController:{size:"@",email:"=sgEmail",src:"=sgSrc"},transclude:!0,template:['',"
",'
not_interested ','
',"
"].join(""),link:function(e,t,n,r){var i,o=t.find("img"),s=t.find("md-icon"),a=angular.element(s[0]),l=angular.element(s[1]);n.size&&(o.attr("width",n.size),o.attr("height",n.size),a.css("font-size",n.size+"px"),l.css("font-size",parseInt(.4*n.size)+"px")),angular.isDefined(n.ngDisabled)&&(i=e.$watch(n.ngDisabled,function(e){n.disabled&&l.css({display:"block"}),i()})),r.img=o,r.genericImg=a},controller:"sgAvatarImageController",controllerAs:"vm"}}).controller("sgAvatarImageController",e)}(),function(){"use strict";e.$inject=["$mdUtil","$animateCss","$$rAF"];function e(e,t,n){return{link:function(e,r){var i=r[0].querySelector(".sg-button-toggle"),o=i.querySelector(".sg-icon-toggle"),s="md-rotate-180-ccw",a=r[0].querySelector(".sg-block-toggle"),l=!1;i.classList.add("md-clickable"),angular.element(i).on("click",function(){(l=!l)?o.classList.add(s):o.classList.remove(s);l&&(a.style.visibility="visible");n(function(){var e=l?a.scrollHeight:0;t(angular.element(a),{easing:"cubic-bezier(0.35, 0, 0.25, 1)",to:{height:e+"px"},duration:.75}).start().then(function(){c()})})}),c();function c(){a.setAttribute("aria-hidden",!l),a.setAttribute("aria-expanded",l),l||(a.style.visibility="hidden")}}}}angular.module("SOGo.Common").directive("sgBlockToggle",e)}(),function(){"use strict";angular.module("SOGo.Common").directive("sgCheckmark",e),e.$inject=["$parse","$mdAria","$mdTheming","$mdUtil"];function e(e,t,n,r){var i="sg-checked";return{restrict:"E",replace:!0,transclude:!0,require:"?ngModel",template:[''," check "," "].join(""),compile:function(o,s){return o.on("click",function(e){this.hasAttribute("disabled")&&e.stopImmediatePropagation()}),function(o,s,a,l){var c=d(e,o,"sgTrueValue",a.sgTrueValue,!0),u=d(e,o,"sgFalseValue",a.sgFalseValue,!1);l=l||r.fakeNgModel(),n(s),t.expectWithText(s,"aria-label"),s.on("click",function(e){s[0].hasAttribute("disabled")||o.$apply(function(){var t=l.$viewValue==c?u:c;l.$setViewValue(t,e&&e.type),l.$render()})}),l.$render=function(){l.$viewValue==c?s.addClass(i):s.removeClass(i)};function d(e,t,n,r,i){var o;if(angular.isDefined(r)){if(!(o=e(r)).constant)throw Error("Expected constant expression for `"+n+"`, but saw `"+r+"`.");return o(t)}return i}}}}}}(),function(){"use strict";e.$inject=["$scope","$element","$mdPanel","sgColors"];function e(e,t,n,r){var i,o,s;this.$onInit=function(){i=this,o=t.controller("ngModel")},this.$postLink=function(){this.buttonIcon=t.find("md-icon"),o.$render=function(){a(o.$viewValue)}};function a(e){s=e,i.buttonIcon.css("color",s)}this.showPicker=function(e){for(var t=n.newPanelPosition().relativeTo(i.buttonIcon).addPanelPosition(n.xPosition.ALIGN_START,n.yPosition.ALIGN_TOPS),l=n.newPanelAnimation().openFrom(i.buttonIcon).duration(100).withAnimation(n.animation.FADE),c=[],u="",d=0;d",g&&(u+=' '),u+=""}var p={attachTo:angular.element(document.body),bindToController:!0,controller:f,controllerAs:"$menuCtrl",position:t,animation:l,targetEvent:e,template:['"].join(""),trapFocus:!0,clickOutsideToClose:!0,escapeToClose:!0,focusOnOpen:!0};n.open(p).then(function(e){e.panelEl.one("click",function(){e.close()})}),f.$inject=["mdPanelRef","$state","$mdDialog","User"];function f(e,t,n,r){this.setColor=function(e,t){e&&(_.forEach(e.currentTarget.parentElement.children,function(e){e.classList.remove("selected")}),e.currentTarget.classList.add("selected")),a(t),o.$setViewValue(t)}}}}angular.module("SOGo.Common").directive("sgColorPicker",function(){return{restrict:"E",require:"ngModel",template:[' '," format_color_fill "," "].join(""),controller:e,controllerAs:"$ctrl"}})}(),function(){"use strict";e.$inject=["$compile"];function e(e){return{restrict:"A",link:function(t,n,r){var i=t.$watch(function(e){return e.$eval(r.sgCompile)},function(r){n.html(r),e(n.contents())(t),i()})}}}angular.module("SOGo.Common").directive("sgCompile",e)}(),function(){"use strict";angular.module("SOGo.Common").directive("sgDatepickerReadonlyInput",function(){return{link:function(e,t,n,r){var i=e.$watch(function(){return t.find("input").eq(0)},function(e){e.length&&(i(),e.prop("disabled",!0),e.parent().addClass("sg-datepicker-readonly-input-container"))})},require:"mdDatepicker",restrict:"A"}})}(),function(){"use strict";e.$inject=["$parse","$rootScope","$document","$timeout","$log"];function e(e,t,n,r,i){return{restrict:"A",link:function(o,s,a){var l;r(function(){var t,n,r;t=e(a.sgDraggable)(o),n=a.sgDragStart?e(a.sgDragStart):null,r=a.sgDragCount?e(a.sgDragCount):null,l=new c(s,t,n,r)}),o.$on("$destroy",function(){l.$destroy()});function c(e,t,r,i){if(this.$element=e,this.folder=t,this.dragStart=r,this.count=i,this.helper=n.find("sg-draggable-helper"),!this.helper)throw Error("sg-draggable requires a sg-draggable-helper element.");this.bindedOnDragDetect=angular.bind(this,this.onDragDetect),this.bindedOnDrag=angular.bind(this,this.onDrag),this.$element.on("mousedown",this.bindedOnDragDetect)}c.prototype={dragHasStarted:!1,$destroy:function(){this.$element.off("mousedown",this.bindedOnDragDetect)},getDistanceFromStart:function(e){var t={x:this.startPosition.clientX-e.clientX,y:this.startPosition.clientY-e.clientY};return Math.sqrt(t.x*t.x+t.y*t.y)},onDragDetect:function(e){e.stopPropagation(),this.dragStart&&!this.dragStart(o)||(n.on("mousemove",this.bindedOnDrag),n.one("mouseup",angular.bind(this,this.onDragEnd)))},onDrag:function(e){var n;this.startPosition?!this.dragHasStarted&&this.getDistanceFromStart(e)>10&&(n=this.helper.find("sg-draggable-helper-counter"),this.dragHasStarted=!0,this.helper.removeClass("ng-hide"),this.count&&this.count(o)>1?n.text(this.count(o)).removeClass("ng-hide"):n.addClass("ng-hide"),i.debug("emit folder:dragstart"),t.$emit("folder:dragstart",this.folder)):this.startPosition={clientX:e.clientX,clientY:e.clientY},this.dragHasStarted&&(e.shiftKey||this.folder.isRemote?this.helper.addClass("sg-draggable-helper--copy"):this.helper.removeClass("sg-draggable-helper--copy"),this.helper.css({top:e.pageY+5+"px",left:e.pageX+5+"px"}))},onDragEnd:function(e){var r="move";this.startPosition=null,n.off("mousemove",this.bindedOnDrag),this.dragHasStarted&&((e.shiftKey||this.folder.isRemote)&&(r="copy"),i.debug("emit folder:dragend"),t.$emit("folder:dragend",this.folder,r),this.dragHasStarted=!1,this.helper.addClass("ng-hide"))}}}}}angular.module("SOGo.Common").directive("sgDraggable",e)}(),function(){"use strict";e.$inject=["$parse","$rootScope","$document","$timeout","$log"];function e(e,t,n,r,i){return{restrict:"A",link:function(n,r,i){var o,s,a,l,c=!1;if(!i.sgDrop)throw Error("sg-droppable requires a sg-drop action.");c=!1,s=e(i.sgDroppable),o=e(i.sgDrop),a=t.$on("folder:dragstart",function(e,t){s(n,{dragFolder:t})&&(r.on("mouseenter",u),r.on("mouseleave",d))}),l=t.$on("folder:dragend",function(e,t,i){r.off("mouseenter"),r.off("mouseleave"),c&&(angular.bind(r[0],d)(e),o(n,{dragFolder:t,dragMode:i}))}),n.$on("destroy",function(){a(),l()});function u(e){c=!0,r.addClass("sg-droppable-over")}function d(e){c=!1,this.classList.remove("sg-droppable-over"),r.off("mousemove")}}}}angular.module("SOGo.Common").directive("sgDroppable",e)}(),function(){"use strict";angular.module("SOGo.Common").directive("sgEnter",function(){return function(e,t,n){t.bind("keydown keypress",function(t){13===t.which&&(e.$apply(n.sgEnter),t.preventDefault())})}})}(),function(){"use strict";angular.module("SOGo.Common").directive("sgEscape",function(){return function(e,t,n){t.bind("keydown",function(t){27===t.keyCode&&e.$apply(n.sgEscape)})}})}(),function(){"use strict";angular.module("SOGo.Common").directive("sgFocusOn",function(){return function(e,t,n){e.$on("sgFocusOn",function(e,r){r===n.sgFocusOn&&(t[0].focus(),"function"==typeof t[0].select&&t[0].select())})}})}(),function(){"use strict";angular.module("SOGo.Common").directive("sgFolderStylesheet",function(){return{restrict:"E",require:"ngModel",scope:{ngModel:"="},replace:!0,bindToController:!0,controller:function(){this.contrast=contrast,this.transparent=function(e,t){var n=hexToRgb(e);return["rgba("+n.r,n.g,n.b,t+")"].join(",")}},controllerAs:"cssCtrl",template:['"].join("")}})}(),function(){"use strict";angular.module("SOGo.Common").directive("sgNoDirtyCheck",function(){return{restrict:"A",require:"ngModel",link:function(e,t,n,r){if(r){var i=r.$pristine&&!r.$dirty;i&&(r.$pristine=!1,r.$dirty=!0)}}}})}(),function(){"use strict";angular.module("SOGo.Common").directive("sgPlaceholder",function(){return{restrict:"A",scope:{placeholder:"=sgPlaceholder"},link:function(e,t,n){e.$watch("placeholder",function(){t[0].placeholder=e.placeholder})}}})}(),function(){"use strict";angular.module("SOGo.Common").directive("sgResetOnDisabled",function(){return{link:function(e,t,n,r){var i=e.$watch(function(){return t.find("input").eq(0)},function(e){e.length&&(i(),r.$scope.$watch("ctrl.isDisabled",function(e){e&&r.ngModelCtrl.$invalid&&r.$scope.$emit("md-calendar-change",r.date)}))})},require:"mdDatepicker",restrict:"A"}})}(),function(){"use strict";angular.module("SOGo.Common").directive("sgRippleClick",e),e.$inject=["$log","$timeout"];function e(e,t){return{restrict:"A",compile:function(n,r){return function(n,r,i){var o,s,a,l;for(l=r.attr("sg-ripple-click"),a=r[0].parentNode;a&&a.id!=l;)a=a.parentNode;a?(s=a.querySelector("sg-ripple-content"))?((o=a.querySelector("sg-ripple"))?o=angular.element(o):(o=angular.element(' '),a.appendChild(o[0]),s.classList.contains("ng-hide")||s.classList.add("ng-hide")),r.on("click",c),n.$on("$destroy",function(){r.off("click",c)})):e.error("sg-ripple-content not found inside #"+l):e.error("No parent element found with id "+l);function c(e){var n;r[0].hasAttribute("disabled")||(n=e.pageX&&e.pageY?{left:e.pageX,top:e.pageY}:e.target.getBoundingClientRect(),s.classList.contains("ng-hide")?(angular.element(a).css({overflow:"hidden",position:"relative"}),angular.element(s).css({top:a.scrollTop+"px"}),t(function(){o.css({top:n.top-a.offsetTop+a.scrollTop+"px",left:n.left-a.offsetLeft+"px",height:"400vmin",width:"400vmin"}),s.classList.remove("ng-hide")})):(o.css({top:n.top-a.offsetTop+a.scrollTop+"px",left:n.left-a.offsetLeft+"px",height:"0px",width:"0px"}),s.classList.add("ng-hide"),t(function(){angular.element(a).css({overflow:"",position:""})},800)))}}}}}}(),function(){"use strict";e.$inject=["$parse"];function e(e){return{restrict:"A",controller:"sgSearchController",controllerAs:"$sgSearchController",priority:1001,compile:function(t,n){t.find("md-input-container");var r=t.find("input"),i=t.find("md-select"),o=t.find("md-button");r.attr("ng-model","$sgSearchController.searchText"),r.attr("ng-model-options","$sgSearchController.searchTextOptions"),r.attr("ng-change","$sgSearchController.onChange()"),i&&(i.attr("ng-model","$sgSearchController.searchField"),i.attr("ng-change","$sgSearchController.onChange()"));o&&o.attr("sg-search-cancel")?(o.attr("ng-click",o.attr("sg-search-cancel")),o.removeAttr("sg-search-cancel")):o=null;return function(t,n,i,s){var a=n.find("button");s.formName=n.attr("name"),s.inputName=r.attr("name"),s.allowDot=e(n.attr("sg-allow-dot"))(t),s.fields=e(n.attr("sg-search-fields"))(t),s.doSearch=e(n.attr("sg-search")),o&&a&&a.on("click",s.cancelSearch)}}}}t.$inject=["$window","$scope","$element"];function t(e,t,n){var r=this;if(r.searchText=null,r.searchTextOptions={updateOn:"default blur",debounce:{default:300,blur:0}},n.attr("sg-search-fields"))var i=t.$watch(r.fields,function(e){r.searchField=_.clone(r.fields),i()});r.onChange=function(){var e=t[r.formName],n=e[r.inputName],i=n.$viewValue;(r.allowDot&&"."==i||e.$valid&&i)&&("."==i&&n.$setValidity("minlength",!0),r.doSearch(t,{searchText:i,searchField:r.searchField}))},r.cancelSearch=function(){r.searchText=null}}angular.module("SOGo.Common").controller("sgSearchController",t).directive("sgSearch",e).directive("sgSearch",function(){return{restrict:"A",priority:1e3,transclude:!0,compile:function(e,t){return function(e,t,n,r,i){i(function(e){t.append(e)})}}}})}(),function(){"use strict";angular.module("SOGo.Common").directive("sgSelectOnly",function(){return{link:function(e,t,n,r){var i=e.$watch(function(){return t.find("input").eq(0)},function(t){var n;t.length&&(i(),n=t.controller("ngModel"),t.on("blur",function(){r.scope.selectedItem||e.$applyAsync(n.$setValidity("required",!1))}))})},require:"mdAutocomplete",restrict:"A"}})}(),function(){"use strict";e.$inject=["User"];function e(e){return{restrict:"A",scope:{folderType:"@sgSubscribe",onFolderSelect:"&sgSubscribeOnSelect"},replace:!1,bindToController:!0,controller:n,controllerAs:"$sgSubscribeDialogController",link:t}}function t(e,t,n,r){t.find("input");t.on("click",r.showDialog)}n.$inject=["$mdDialog"];function n(e){var t=this;t.showDialog=function(){e.show({templateUrl:"../Contacts/UIxContactsUserFolders",clickOutsideToClose:!0,locals:{folderType:t.folderType,onFolderSelect:t.onFolderSelect},controller:r,controllerAs:"subscribe"})}}r.$inject=["$mdDialog","folderType","onFolderSelect","User"];function r(e,t,n,r){var i=this;i.selectedUser=null,i.users=[],i.searchTextOptions={updateOn:"default blur",debounce:{default:300,blur:0}},i.onChange=function(e){r.$filter(i.searchText,null,{results:i.users}).then(function(t){e.$setValidity("matches",t.length>0),e.$setTouched(),i.selectedUser&&_.isUndefined(_.find(t,function(e){return e.uid==i.selectedUser.uid}))&&(i.selectedUser=null)})},i.selectUser=function(e){i.selectedUser==i.users[e]?i.selectedUser=null:i.users[e].$folders(t).then(function(){i.selectedUser=i.users[e]})},i.selectFolder=function(e){n({folderData:e})},i.close=function(){e.hide()}}angular.module("SOGo.Common").directive("sgSubscribe",e)}(),function(){"use strict";angular.module("SOGo.Common").directive("sgTimePane",function(){return{template:['','
','
','
',' {{hour.displayName}} ',"
","
","
",'
','
','
',' {{minute.displayName}} ',"
","
","
",'
",'
',' ',"
","
"].join(""),scope:{},require:["ngModel","sgTimePane","?^mdInputContainer"],controller:t,controllerAs:"ctrl",bindToController:!0,link:function(e,t,n,r){var i=r[0],o=r[1],s=r[2];if(s)throw Error("sg-timepicker should not be placed inside md-input-container.");o.configureNgModel(i,o)}}});var e=0;t.$inject=["$element","$scope","$$mdDateUtil","$mdUtil","$mdConstant","$mdTheming","$$rAF","$attrs","$mdDateLocale"];function t(t,n,r,i,o,s,a,l,c){var u;s(t),this.$element=t,this.$scope=n,this.dateUtil=r,this.$mdUtil=i,this.keyCode=o.KEY_CODE,this.$$rAF=a,this.timePaneElement=t[0].querySelector(".sg-time-pane"),this.ngModelCtrl=null,this.SELECTED_TIME_CLASS="sg-time-selected",this.FOCUSED_TIME_CLASS="md-focus",this.id=e++,this.displayTime=null,this.selectedTime=null,this.isInitialized=!1,n.hours=[],n.hours[0]=[],n.hours[0][0]=[],n.hours[0][1]=[],n.hours[1]=[],n.hours[1][0]=[],n.hours[1][1]=[];for(var d=0;d<6;d++)n.hours[0][0][d]={id:"tp-"+this.id+"-hour-"+d,displayName:d<10?"0"+d:""+d,selected:!1},n.hours[0][1][d]={id:"tp-"+this.id+"-hour-"+(d+6),displayName:d+6<10?"0"+(d+6):""+(d+6),selected:!1},n.hours[1][0][d]={id:"tp-"+this.id+"-hour-"+(d+12),displayName:""+(d+12),selected:!1},n.hours[1][1][d]={id:"tp-"+this.id+"-hour-"+(d+18),displayName:""+(d+18),selected:!1};for(n.min5=[],n.min5[0]=[],n.min5[1]=[],d=0;d<6;d++)u=5*d,n.min5[0][d]={id:"tp-"+this.id+"-minute5-"+u,displayName:u<10?":0"+u:":"+u,selected:!0},n.min5[1][d]={id:"tp-"+this.id+"-minute5-"+(u+30),displayName:":"+(u+30),selected:!1};for(n.min1=[],d=0;d<12;d++){n.min1[d]=[];for(var h=0;h<5;h++)u=5*d+h,n.min1[d][h]={id:"tp-"+this.id+"-minute-"+u,displayName:u<10?":0"+u:":"+u,selected:!0}}n.show5min=!0,n.getToggleBtnLbl=function(){return n.is5min()?">>":"<<"},n.toggleManual5min=function(){n.manual5min=!n.is5min()},n.is5min=function(){return!0===n.manual5min||!1===n.manual5min?n.manual5min:n.show5min},l.tabindex||t.attr("tabindex","-1");var m=this;this.hourClickHandler=function(e){var t=new Date(m.displayTime);t.setHours(Number(e)),m.setNgModelValue(t,"hours")},n.hourClickHandler=this.hourClickHandler,this.minuteClickHandler=function(e){var t=e.substr(1),n=new Date(m.displayTime);n.setMinutes(Number(t)),m.setNgModelValue(n,"minutes")},n.minuteClickHandler=this.minuteClickHandler;var g=angular.bind(this,this.handleKeyEvent);angular.element(document.body).on("keydown",g),n.$on("$destroy",function(){angular.element(document.body).off("keydown",g)})}t.prototype.configureNgModel=function(e,t){var n=this;n.ngModelCtrl=e,n.$mdUtil.nextTick(function(){n.isInitialized=!0}),e.$render=function(){var e=this.$viewValue;n.$mdUtil.nextTick(function(){n.changeSelectedTime(e,t)})}},t.prototype.changeSelectedTime=function(e,t){var n=this.selectedTime;if(this.selectedTime=e,this.displayTime=new Date(e),n){var r=n.getHours(),i=document.getElementById("tp-"+t.id+"-hour-"+r);i&&(i.classList.remove(this.SELECTED_TIME_CLASS),i.setAttribute("aria-selected","false"));var o=n.getMinutes(),s=document.getElementById("tp-"+t.id+"-minute-"+o);s&&(s.classList.remove(this.SELECTED_TIME_CLASS),s.setAttribute("aria-selected","false"));var a=document.getElementById("tp-"+t.id+"-minute5-"+o);a&&(a.classList.remove(this.SELECTED_TIME_CLASS),a.setAttribute("aria-selected","false"))}if(e){var l,c=e.getHours(),u=document.getElementById("tp-"+t.id+"-hour-"+c);u&&(u.classList.add(this.SELECTED_TIME_CLASS),u.setAttribute("aria-selected","true"));var d=e.getMinutes();d%5==0?(t.$scope.show5min=!0,(l=document.getElementById("tp-"+t.id+"-minute5-"+d))&&(l.classList.add(this.SELECTED_TIME_CLASS),l.setAttribute("aria-selected","true"))):t.$scope.show5min=!1,(l=document.getElementById("tp-"+t.id+"-minute-"+d))&&(l.classList.add(this.SELECTED_TIME_CLASS),l.setAttribute("aria-selected","true"))}},t.prototype.setNgModelValue=function(e,t){return this.$scope.$emit("sg-time-pane-change",{date:e,changed:t}),this.ngModelCtrl.$setViewValue(e),this.ngModelCtrl.$render(),e},t.prototype.handleKeyEvent=function(e){var t=this;this.$scope.$apply(function(){return e.which==t.keyCode.ESCAPE||e.which==t.keyCode.TAB?(t.$scope.$emit("md-time-pane-close"),void(e.which==t.keyCode.TAB&&e.preventDefault())):e.which===t.keyCode.ENTER?(t.setNgModelValue(t.displayTime,"enter"),void e.preventDefault()):void 0})},t.prototype.focus=function(e,t){var n=e||this.selectedTime||this.today,r=this.timePaneElement.querySelector(".md-focus");if(r&&r.classList.remove(this.FOCUSED_TIME_CLASS),n){var i=n.getHours(),o=document.getElementById("tp-"+t.id+"-hour-"+i);o&&(o.classList.add(this.FOCUSED_TIME_CLASS),o.focus())}}}(),function(){"use strict";angular.module("SOGo.Common").directive("sgTimepicker",e),e.$inject=["$mdUtil","$mdAria"];function e(e,t){return{template:function(e,t){var n=t.ariaLabel||t.mdPlaceholder;return['',' access_time '," ",'",'"].join("")},require:["ngModel","sgTimepicker","?^form"],scope:{placeholder:"@mdPlaceholder"},controller:s,controllerAs:"ctrl",bindToController:!0,link:function(t,n,r,i){var o=i[0],s=i[1],a=i[2];e.parseAttributeBoolean(r.mdNoAsterisk);if(s.configureNgModel(o),a)var l=t.$watch(function(){return a.$submitted},function(e){e&&(s.updateErrorState(),l())})}}}var t="sg-timepicker-invalid",n="sg-timepicker-open",r={MIN5:{GTXS:192,XS:311},MIN1:{GTXS:384,XS:474}},i={GTXS:530,XS:294},o=/ipad|iphone|ipod|android/i;s.$inject=["$scope","$element","$attrs","$window","$mdConstant","$mdTheming","$mdUtil","$mdDateLocale","$$mdDateUtil","$$rAF","$mdMedia"];function s(e,t,n,r,i,s,a,l,c,u,d){this.$window=r,this.dateLocale=l,this.dateUtil=c,this.$mdConstant=i,this.$mdUtil=a,this.$$rAF=u,this.$mdMedia=d,this.documentElement=angular.element(document.documentElement),this.ngModelCtrl=null,this.inputElement=t[0].querySelector("input"),this.ngInputElement=angular.element(this.inputElement),this.inputContainer=t[0].querySelector(".sg-timepicker-input-container"),this.timePane=t[0].querySelector(".sg-timepicker-time-pane"),this.timeButton=t[0].querySelector(".sg-timepicker-button"),this.inputMask=angular.element(t[0].querySelector(".sg-timepicker-input-mask-opaque")),this.$element=t,this.$attrs=n,this.$scope=e,this.date=null,this.isFocused=!1,this.isDisabled=!1,this.setDisabled(t[0].disabled||angular.isString(n.disabled)),this.isTimeOpen=!1,this.timePaneOpenedFrom=null,this.timePaneId="sg-time-pane"+a.nextUid(),this.bodyClickHandler=angular.bind(this,this.handleBodyClick),this.windowEventName=o.test(navigator.userAgent||navigator.vendor||window.opera)?"orientationchange":"resize",this.windowEventHandler=a.debounce(angular.bind(this,this.closeTimePane),100),this.windowBlurHandler=angular.bind(this,this.handleWindowBlur),this.leftMargin=20,this.topMargin=null,n.tabindex?(this.ngInputElement.attr("tabindex",n.tabindex),n.$set("tabindex",null)):n.$set("tabindex","-1"),s(t),s(angular.element(this.timePane)),this.installPropertyInterceptors(),this.attachChangeListeners(),this.attachInteractionListeners();var h=this;e.$on("$destroy",function(){h.detachTimePane()})}s.prototype.configureNgModel=function(e){this.ngModelCtrl=e;var t=this;t.ngModelCtrl.$formatters.push(function(e){if(e&&!(e instanceof Date))throw Error("The ng-model for sg-timepicker must be a Date instance. Currently the model is a: "+typeof e);return t.time=e,t.inputElement.value=t.dateLocale.formatTime(e),t.resizeInputElement(),t.updateErrorState(),e}),e.$viewChangeListeners.unshift(angular.bind(this,this.updateErrorState))},s.prototype.attachChangeListeners=function(){var e=this;e.$scope.$on("sg-time-pane-change",function(n,r){var i=new Date(r.date);e.ngModelCtrl.$setViewValue(i),e.time=i,e.inputElement.value=e.dateLocale.formatTime(i),"minutes"==r.changed&&e.closeTimePane(),e.resizeInputElement(),e.inputContainer.classList.remove(t)}),e.ngInputElement.on("input",angular.bind(e,e.resizeInputElement));var n=angular.isDefined(this.debounceInterval)?this.debounceInterval:500;e.ngInputElement.on("input",e.$mdUtil.debounce(e.handleInputEvent,n,e))},s.prototype.attachInteractionListeners=function(){var e=this,t=this.$scope,n=this.$mdConstant.KEY_CODE;e.ngInputElement.on("keydown",function(r){r.altKey&&r.keyCode==n.DOWN_ARROW&&(e.openTimePane(r),t.$digest())}),t.$on("md-time-close",function(){e.closeTimePane()})},s.prototype.installPropertyInterceptors=function(){var e=this;if(this.$attrs.ngDisabled){var t=this.$scope.$parent;t&&t.$watch(this.$attrs.ngDisabled,function(t){e.setDisabled(t)})}Object.defineProperty(this,"placeholder",{get:function(){return e.inputElement.placeholder},set:function(t){e.inputElement.placeholder=t||""}})},s.prototype.setDisabled=function(e){this.isDisabled=e,this.inputElement.disabled=e,this.timeButton&&(this.timeButton.disabled=e)},s.prototype.updateErrorState=function(e){var n=e||this.date;this.clearErrorState(),this.dateUtil.isValidDate(n)||this.ngModelCtrl.$setValidity("valid",null===n),this.ngModelCtrl.$valid||this.inputContainer.classList.add(t)},s.prototype.clearErrorState=function(){this.inputContainer.classList.remove(t),["valid"].forEach(function(e){this.ngModelCtrl.$setValidity(e,!0)},this)},s.prototype.resizeInputElement=function(){this.inputElement.size=this.inputElement.value.length+3},s.prototype.handleInputEvent=function(e){var t=this.inputElement.value,n=t?this.dateLocale.parseTime(t):null;if(""===t||this.dateUtil.isValidDate(n)){var r=new Date(this.time);r.setHours(n.getHours()),r.setMinutes(n.getMinutes()),this.ngModelCtrl.$setViewValue(r),this.time=r}this.updateErrorState(n)},s.prototype.attachTimePane=function(){var e=this.timePane,t=document.body;e.style.transform="",this.$element.addClass(n),angular.element(t).addClass("md-datepicker-is-showing");var o=this.inputContainer.getBoundingClientRect(),s=t.getBoundingClientRect();(!this.topMargin||this.topMargin<0)&&(this.topMargin=(this.inputMask.parent().prop("clientHeight")-this.ngInputElement.prop("clientHeight"))/2);var a=o.top-s.top-this.topMargin,l=o.left-s.left-this.leftMargin,c=s.top<0&&0===t.scrollTop?-s.top:document.body.scrollTop,u=s.left<0&&0===t.scrollLeft?-s.left:document.body.scrollLeft,d=c+this.$window.innerHeight,h=u+this.$window.innerWidth;this.inputMask.css({position:"absolute",left:this.leftMargin+"px",top:this.topMargin+"px",width:o.width-1+"px",height:o.height-2+"px"});var m=this.$mdMedia("xs")?i.XS:i.GTXS;if(l+m>h){if(h-m>0)l=h-m;else{l=u;var g=this.$window.innerWidth/m;e.style.transform="scale("+g+")"}e.classList.add("sg-timepicker-pos-adjusted")}var p="object"==typeof this.time&&this.time.getMinutes()%5==0?"MIN5":"MIN1",f=this.$mdMedia("xs")?r[p].XS:r[p].GTXS;a+f>d&&d-f>c&&(a=d-f,e.classList.add("sg-timepicker-pos-adjusted")),e.style.left=l+"px",e.style.top=a+"px",document.body.appendChild(e),this.$$rAF(function(){e.classList.add("md-pane-open")})},s.prototype.detachTimePane=function(){this.$element.removeClass(n),angular.element(document.body).removeClass("md-datepicker-is-showing"),this.timePane.classList.remove("md-pane-open"),this.timePane.classList.remove("md-timepicker-pos-adjusted"),this.isTimeOpen&&this.$mdUtil.enableScrolling(),this.timePane.parentNode&&this.timePane.parentNode.removeChild(this.timePane)},s.prototype.openTimePane=function(e){if(!this.isTimeOpen&&!this.isDisabled){this.isTimeOpen=!0,this.timePaneOpenedFrom=e.target,this.$mdUtil.disableScrollAround(this.timePane),this.attachTimePane(),this.evalAttr("ngFocus");var t=this;this.$mdUtil.nextTick(function(){t.documentElement.on("click touchstart",t.bodyClickHandler)},!1),window.addEventListener(this.windowEventName,this.windowEventHandler)}},s.prototype.closeTimePane=function(){if(this.isTimeOpen){this.detachTimePane(),this.ngModelCtrl.$setTouched(),this.evalAttr("ngBlur"),this.documentElement.off("click touchstart",this.bodyClickHandler),window.removeEventListener(this.windowEventName,this.windowEventHandler),this.timePaneOpenedFrom.focus(),this.timePaneOpenedFrom=null,this.isTimeOpen=!1}},s.prototype.getTimePaneCtrl=function(){return angular.element(this.timePane.querySelector("sg-time-pane")).controller("sgTimePane")},s.prototype.focusTime=function(){var e=this;this.$mdUtil.nextTick(function(){var t=e.getTimePaneCtrl();e.getTimePaneCtrl().focus(null,t)},!1)},s.prototype.setFocused=function(e){e||this.ngModelCtrl.$setTouched(),this.evalAttr(e?"ngFocus":"ngBlur"),this.isFocused=e},s.prototype.handleBodyClick=function(e){if(this.isTimeOpen){this.$mdUtil.getClosest(e.target,"sg-time-pane")||this.closeTimePane(),this.$scope.$digest()}},s.prototype.handleWindowBlur=function(){this.inputFocusedOnWindowBlur=document.activeElement===this.inputElement},s.prototype.evalAttr=function(e){this.$attrs[e]&&this.$scope.$parent.$eval(this.$attrs[e])}}(),function(){"use strict";e.$inject=["$parse","$mdUtil","$mdColors"];function e(e,t,n){return{restrict:"A",require:["mdGridList","?ngModel"],compile:function(e,r){return function(i,o,s,a){var l,c,u,d,h,m=e.find("md-grid-tile"),g=[];for((c=a[1]||t.fakeNgModel()).$render=function(){var e=c.$viewValue;g=c.$viewValue,r.sgToggleGridAttr&&(d=r.sgToggleGridAttr,e=_.map(c.$viewValue,r.sgToggleGridAttr));_.forEach(m,function(t){var n=angular.element(t);_.includes(e,n.attr("value"))&&n.addClass("sg-active")}),c.$validate(),p(c.$invalid)},c.$isEmpty=function(e){return!e||0===e.length},h=function(){var e=angular.element(this),t=e.attr("value");e.toggleClass("sg-active"),function(e){var t=_.findIndex(g,function(t){return d?t[d]==e:t==e});if(t<0)if(d){var n={};n[d]=e,g.push(n)}else g.push(e);else g.splice(t,1);i.$apply(function(){c.$setViewValue(g),c.$setDirty(),c.$validate(),p(c.$invalid)})}(t)},u=0;u /g,">")},String.prototype._base64_keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",String.prototype.base64encode=function(){for(var e,t,n,r,i,o,s,a="",l=0,c=this.utf8encode();l>2,i=(3&e)<<4|(t=c.charCodeAt(l++))>>4,o=(15&t)<<2|(n=c.charCodeAt(l++))>>6,s=63&n,isNaN(t)?o=s=64:isNaN(n)&&(s=64),a=a+this._base64_keyStr.charAt(r)+this._base64_keyStr.charAt(i)+this._base64_keyStr.charAt(o)+this._base64_keyStr.charAt(s);return a},String.prototype.base64decode=function(){for(var e,t,n,r,i,o,s="",a=0,l=""+this;a>4,t=(15&r)<<4|(i=this._base64_keyStr.indexOf(l.charAt(a++)))>>2,n=(3&i)<<6|(o=this._base64_keyStr.indexOf(l.charAt(a++))),s+=String.fromCharCode(e),64!=i&&(s+=String.fromCharCode(t)),64!=o&&(s+=String.fromCharCode(n));return s},String.prototype.md5=function(){if(this.length){return function(e){function t(e,t){return e<>>32-t}function n(e,t){var n,r,i,o,s;return i=2147483648&e,o=2147483648&t,s=(1073741823&e)+(1073741823&t),(n=1073741824&e)&(r=1073741824&t)?2147483648^s^i^o:n|r?1073741824&s?3221225472^s^i^o:1073741824^s^i^o:s^i^o}function r(e,r,i,o,s,a,l){var c,u,d;return n(t(e=n(e,n(n((c=r,u=i,d=o,c&u|~c&d),s),l)),a),r)}function i(e,r,i,o,s,a,l){var c,u,d;return n(t(e=n(e,n(n((c=r,u=i,d=o,c&d|u&~d),s),l)),a),r)}function o(e,r,i,o,s,a,l){var c,u,d;return n(t(e=n(e,n(n((c=r,u=i,d=o,c^u^d),s),l)),a),r)}function s(e,r,i,o,s,a,l){var c,u,d;return n(t(e=n(e,n(n((c=r,u=i,d=o,u^(c|~d)),s),l)),a),r)}function a(e){var t,n="",r="";for(t=0;t<=3;t++)n+=(r="0"+(e>>>8*t&255).toString(16)).substr(r.length-2,2);return n}var l,c,u,d,h,m,g,p,f,y=Array();for(y=function(e){for(var t,n=e.length,r=n+8,i=16*((r-r%64)/64+1),o=Array(i-1),s=0,a=0;a>>29,o}(e=function(e){e=e.replace(/rn/g,"n");for(var t="",n=0;n127&&r<2048?(t+=String.fromCharCode(r>>6|192),t+=String.fromCharCode(63&r|128)):(t+=String.fromCharCode(r>>12|224),t+=String.fromCharCode(r>>6&63|128),t+=String.fromCharCode(63&r|128))}return t}(e)),m=1732584193,g=4023233417,p=2562383102,f=271733878,l=0;l=0&&(a.month=n),n>=0}],"%B":[/[^\d\s\.\/\-]{2,}/,function(t){var n=_.indexOf(_.map(e.months,_.toLower),_.toLower(t));return n>=0&&(a.month=n),n>=0}],"%y":[/\d\d/,function(e){var t=parseInt(s.getFullYear().toString().substring(2))+5;return a.year=parseInt(e),a.yearr){var i=n;n=r,r=i}for(var o=Math.round((r-n)/864e5)+1,s=0;s(n=this.getDay())&&(n+=7),n-t},Date.prototype.firstWeekOfYearForDate=function(e){var t,n,r;return t=e.firstWeekOfYear,(r=new Date(this.getTime())).setMonth(0),r.setDate(1),n=r.dayOfWeek(e),"First4DayWeek"==t?n<4?r.beginOfWeek(e.firstDayOfWeek):r.addDays(7).beginOfWeek(e.firstDayOfWeek):"FirstFullWeek"==t?0===n?r.beginOfWeek(e.firstDayOfWeek):r.addDays(7).beginOfWeek(e.firstDayOfWeek):r.beginOfWeek(e.firstDayOfWeek)},Date.prototype.getWeek=function(e){var t,n,r,i;return(i=new Date(this.getTime())).addDays(6),(t=i.firstWeekOfYearForDate(e)).getTime()0&&(t-=7);var n=this.beginOfDay();return n.setHours(12),n.addDays(t),n},Date.prototype.endOfWeek=function(e){var t=this.beginOfWeek(e);return t.addDays(6),t.setHours(23),t.setMinutes(59),t.setSeconds(59),t.setMilliseconds(999),t},Date.prototype.getDayString=function(){var e=this.getYear();e<1e3&&(e+=1900);var t=""+(this.getMonth()+1);1==t.length&&(t="0"+t),e+=t;var n=""+this.getDate();return 1==n.length&&(n="0"+n),e+=n},Date.prototype.getHourString=function(){var e=this.getHours()+"00";return 3==e.length&&(e="0"+e),e},Date.prototype.format=function(e,t){var n,r,i,o,s=[],a=/%[deaAmbByYUHIMp]/g,c={"%d":this.getDate(),"%e":this.getDate(),"%a":e.shortDays[this.getDay()],"%A":e.days[this.getDay()],"%m":this.getMonth()+1,"%b":e.shortMonths[this.getMonth()],"%B":e.months[this.getMonth()],"%y":this.getFullYear().toString().substring(2),"%Y":this.getFullYear(),"%U":this.getWeek(e),"%H":this.getHours(),"%M":this.getMinutes()};for(c["%I"]=c["%H"]>12?c["%H"]%12:c["%H"],c["%p"]=c["%H"]<12?l("AM"):l("PM"),c["%d"]=(c["%d"]<10?"0":"")+c["%d"],c["%e"]=(c["%e"]<10?" ":"")+c["%e"],c["%m"]=(c["%m"]<10?"0":"")+c["%m"],c["%H"]=(c["%H"]<10?"0":"")+c["%H"],c["%I"]=(c["%I"]<10?"0":"")+c["%I"],c["%M"]=(c["%M"]<10?"0":"")+c["%M"],n=t.replace(a,"\0").split("\0"),i=0,o=(r=t.match(a)).length;i<=o;i++)n.length&&s.push(n.shift()),s.push(c[r[i]]);return s.join("")};function l(){var e,t,n=arguments[0],r=n,i=arguments;for(labels[n]?r=labels[n]:clabels[n]&&(r=clabels[n]),e=1,t=0;e1&&(r=r.replace(/%((%)|s|d)/g,function(t){var n=null;if(t[2])n=t[2];else{switch(n=i[e],t){case"%d":n=parseFloat(n),isNaN(n)&&(n=0)}e++}return n})),r}function hexToRgb(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function contrast(e){var t,n,r=1;if(t=hexToRgb(e)){n=[t.r/255,t.g/255,t.b/255];for(var i=0;i.179?"black":"white"}function guid(){function e(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return(e()+e()+"-"+e()+"-4"+e().substr(0,3)+"-"+e()+"-"+e()+e()+e()).toLowerCase()}
+!function(){"use strict";angular.module("SOGo.Common",["ngAnimate","ngMessages","ngSanitize","ngMaterial","mdColors"]).value("sgSettings",{isPopup:document.body.classList.contains("popup"),baseURL:function(){return ApplicationBaseURL||null},resourcesURL:function(){return ResourcesURL||null},activeUser:function(e){var t={login:UserLogin||null,identification:UserIdentification||null,email:UserEmail||null,language:UserLanguage||null,folderURL:UserFolderURL||null,isSuperUser:IsSuperUser||null,path:{calendar:UserCalendarPath||null,contacts:UserContactsPath||null,mail:UserMailPath||null,preferences:UserPreferencesPath||null,administration:IsSuperUser?UserAdministrationPath:null,help:HelpURL||null,logoff:UserLogoffPath||null}};return e?t[e]:t},minimumSearchLength:function(){return angular.isNumber(minimumSearchLength)?minimumSearchLength:2}}).constant("sgColors",{selection:["#FFFFFF","#330033","#C0C0C0","#999999","#666666","#333333","#000000","#FFCCCC","#FF6666","#FF0000","#CC0000","#990000","#660000","#330000","#FFCC99","#FF9966","#FF9900","#FF6600","#CC6600","#993300","#663300","#FFFF99","#FFFF66","#FFCC66","#FFCC33","#CC9933","#996633","#663333","#FFFFCC","#FFFF33","#FFFF00","#FFCC00","#999900","#666600","#333300","#CCCCCC","#66FF99","#33FF33","#33CC00","#009900","#006600","#003300","#99FFFF","#33FFFF","#66CCCC","#00CCCC","#339999","#336666","#003333","#CCFFFF","#66FFFF","#33CCFF","#3366FF","#3333FF","#000099","#000066","#CCCCFF","#9999FF","#6666CC","#6633FF","#6600CC","#333399","#330099","#FFCCFF","#FF99FF","#CC66CC","#CC33CC","#993399","#663366","#99FF99"]}).constant("sgConstant",{xs:"(max-width: 599px)","gt-xs":"(min-width: 600px)",sm:"(min-width: 600px) and (max-width: 959px)","gt-sm":"(min-width: 960px)",md:"(min-width: 960px) and (max-width: 1023px)","gt-md":"(min-width: 1024px)",lg:"(min-width: 1024px) and (max-width: 1279px)","gt-lg":"(min-width: 1280px)",xl:"(min-width: 1920px)",print:"print"}).config(e).factory("AuthInterceptor",t).factory("ErrorInterceptor",n),e.$inject=["$logProvider","$compileProvider","$httpProvider","$mdThemingProvider","$mdAriaProvider"];function e(e,t,n,r,i){r.definePalette("sogo-green",{50:"eaf5e9",100:"cbe5c8",200:"aad6a5",300:"88c781",400:"66b86a",500:"56b04c",600:"4da143",700:"388e3c",800:"367d2e",900:"225e1b",A100:"fafafa",A200:"69f0ae",A400:"00e676",A700:"00c853",contrastDefaultColor:"dark",contrastLightColors:["300","400","500","600","700","800","900"]}),r.definePalette("sogo-blue",{50:"f0faf9",100:"e1f5f3",200:"ceebe8",300:"bfe0dd",400:"b2d6d3",500:"a1ccc8",600:"8ebfbb",700:"7db3b0",800:"639997",900:"4d8080",A100:"d4f7fa",A200:"c3f5fa",A400:"53e3f0",A700:"00b0c0",contrastDefaultColor:"light",contrastDarkColors:["50","100","200"]}),r.definePalette("sogo-paper",{50:"fcf7f8",100:"f7f1dc",200:"ede5ca",300:"e6d8ba",400:"e2d2a3",500:"d6c48d",600:"baa870",700:"857545",800:"524517",900:"433809",1000:"000000",A100:"ffffff",A200:"eeeeee",A400:"bdbdbd",A700:"616161",contrastDefaultColor:"dark",contrastLightColors:["800","900"]});var o=r.extendPalette("grey",{600:"00B0C0"});r.definePalette("sogo-grey",o),r.theme("default").primaryPalette("sogo-blue",{default:"900","hue-1":"400","hue-2":"800","hue-3":"A700"}).accentPalette("sogo-green",{default:"500","hue-1":"A100","hue-2":"300","hue-3":"A700"}).backgroundPalette("sogo-grey"),DebugEnabled||(e.debugEnabled(!1),t.debugInfoEnabled(!1),i.disableWarnings(),r.generateThemesOnDemand(!0)),n.interceptors.push("AuthInterceptor"),n.interceptors.push("ErrorInterceptor")}t.$inject=["$window","$q"];function t(e,t){return{response:function(n){return n&&/^application\/json/.test(n.config.headers.Accept)&&/^[\n\r ]*/.test(n.data)?(e.location.reload(!0),t.reject()):n}}}n.$inject=["$rootScope","$window","$q","$injector"];function n(e,t,n,r){return{responseError:function(i){var o,s;if(/^application\/json/.test(i.config.headers.Accept)){if(t.usesCASAuthentication&&-1==i.status)return o=n.defer(),(s=angular.element('')).on("load",function(){r.get("$http")(i.config).then(o.resolve,o.reject),s.remove()}),document.body.appendChild(s[0]),o.promise;t.usesSAML2Authentication&&401==i.status?t.location.reload(!0):e.$broadcast("http:Error",i)}return n.reject(i)}}}}(),function(){"use strict";var e;angular.module("mdColors",["ngMaterial"]).config(t).run(n),t.$inject=["$mdThemingProvider"];function t(t){e=t}n.$inject=["$interpolate","$document","$log"];function n(t,n,r){function i(e){return e.join("")}for(var o=t(i([".md-{{theme}}-theme",".md-fg"])+" { color:{{value}};}"),s=t(i([".md-{{theme}}-theme",".md-bg"])+" { background-color:{{value}};}"),a=t(i([".md-{{theme}}-theme",".md-bdr"])+" { border-color:{{value}};}"),l=t(i([".md-{{theme}}-theme",".md-{{hue}}",".md-fg"])+" { color:{{value}};}"),c=t(i([".md-{{theme}}-theme",".md-{{hue}}",".md-bg"])+" { background-color:{{value}};}"),u=t(i([".md-{{theme}}-theme",".md-{{palette}}",".md-fg"])+" { color:{{value}};}"),d=t(i([".md-{{theme}}-theme",".md-{{palette}}",".md-bg"])+" { background-color:{{value}}; color:{{contrast}} !important; }"),h=t(i([".md-{{theme}}-theme",".md-{{palette}}",".md-bdr"])+" { border-color:{{value}};}"),m=t(i([".md-{{theme}}-theme",".md-{{palette}}.md-{{hue}}",".md-fg"])+" { color:{{value}};}"),g=t(i([".md-{{theme}}-theme",".md-{{palette}}.md-{{hue}}",".md-bg"])+" { background-color:{{value}};}"),p=function(){var e=n[0].head.querySelector('style[title="Dynamic-Generated-by-mdColors"]');null===e&&((e=n[0].createElement("style")).title="Dynamic-Generated-by-mdColors",e.appendChild(n[0].createTextNode("")),n[0].head.appendChild(e));return e.sheet}(),f=0;p.cssRules.length>0;)p.deleteRule(0);angular.forEach(e._THEMES,function(t,n){y(o,s,n,"primary",e._PALETTES[t.colors.primary.name][t.colors.primary.hues.default]),y(l,c,n,"primary",e._PALETTES[t.colors.primary.name][t.colors.primary.hues["hue-2"]],"hue-2"),y(l,c,n,"primary",e._PALETTES[t.colors.primary.name][t.colors.primary.hues["hue-3"]],"hue-3"),y(l,c,n,"primary",e._PALETTES[t.colors.primary.name][t.colors.primary.hues["hue-1"]],"hue-1"),v(a,n,"primary",e._PALETTES[t.colors.primary.name][t.colors.primary.hues.default]),angular.forEach(t.colors,function(t,r){y(u,d,n,r,e._PALETTES[t.name][t.hues.default]),v(h,n,r,e._PALETTES[t.name][t.hues.default]),y(m,g,n,r,e._PALETTES[t.name][t.hues["hue-2"]],"hue-2"),y(m,g,n,r,e._PALETTES[t.name][t.hues["hue-3"]],"hue-3"),y(m,g,n,r,e._PALETTES[t.name][t.hues["hue-1"]],"hue-1")})});function y(e,t,n,r,i,o){if(i){var s={theme:n,palette:r,value:"rgb("+i.value[0]+","+i.value[1]+","+i.value[2]+")",contrast:"rgb("+i.contrast[0]+","+i.contrast[1]+","+i.contrast[2]+")",hue:o};p.insertRule(e(s),f),f+=1,p.insertRule(t(s),f),f+=1}}function v(e,t,n,r,i){if(r){var o="rgb("+r.value[0]+","+r.value[1]+","+r.value[2]+")";p.insertRule(e({theme:t,palette:n,value:o,hue:i}),f),f+=1}}}}(),function(){"use strict";e.$inject=["$window"];function e(e){return e.decodeURIComponent}angular.module("SOGo.Common").filter("decodeUri",e)}(),function(){"use strict";e.$inject=["$window"];function e(e){return e.encodeURIComponent}angular.module("SOGo.Common").filter("encodeUri",e)}(),function(){"use strict";e.$inject=["$sce"];function e(e){return function(t){var n=angular.element(""+t+"
");return n.find("a").attr("target","_blank"),e.trustAs("html",n.html())}}angular.module("SOGo.Common").filter("ensureTarget",e)}(),function(){"use strict";angular.module("SOGo.Common").filter("loc",function(){return l})}(),function(){"use strict";angular.module("SOGo.Common").filter("range",function(){return function(e){for(var t=[],n=0;n"):void 0}}angular.module("SOGo.Common").filter("txt2html",e)}(),function(){"use strict";e.$inject=["$document","$timeout","$mdDialog","Dialog","usersWithACL","User","folder"];function e(e,t,n,r,i,o,s){var a=this;a.users=i,a.folder=s,a.selectedUser=null,a.selectedUid=null,a.userToAdd="",a.searchText="",a.folderClassName=function(){return!!angular.isFunction(s.getClassName)&&s.getClassName("bg")},a.templateName=function(t){return"UIx"+(e[0].getElementById("UIxAnonymousUserRightsEditor")&&t.$isAnonymous()?"Anonymous":"")+"UserRightsEditor"},a.userFilter=function(e){return o.$filter(e,s.$acl.users)},a.closeModal=function(){s.$acl.$resetUsersRights(),n.hide()},a.saveModal=function(){s.$acl.$saveUsersRights().then(function(){n.hide()},function(e,t){r.alert(l("Warning"),l("An error occured please try again."))})},a.confirmChange=function(e){var t=e.$confirmRights(a.folder);t&&(a.confirmation.showing=!0,a.confirmation.message=t)},a.removeUser=function(e){t(function(){s.$acl.$removeUser(e.uid)},500)},a.addUser=function(e){e&&s.$acl.$addUser(e).then(function(e){a.userToAdd="",a.searchText="",a.selectedUid=null,e&&c(e)})},a.selectAllRights=function(e){s.$acl.$selectAllRights(e)},a.selectUser=c,a.showRights=function(e){return a.selectedUid==e.uid&&!e.inactive},a.confirmation={showing:!1,message:""};function c(e,t){if(t&&t.target.parentNode.classList.contains("md-secondary"))return!1;a.selectedUid==e.uid?a.selectedUid=null:(a.selectedUid=e.uid,a.selectedUser=e,e.inactive||a.selectedUser.$rights())}}angular.module("SOGo.Common").controller("AclController",e)}(),function(){"use strict";e.$inject=["$rootScope","$scope","$timeout","$interval","$http","$window","$mdSidenav","$mdToast","$mdMedia","$log","sgConstant","sgSettings","Resource","Alarm"];function e(e,t,n,r,i,o,s,a,c,u,d,h,m,g){var p=new m(h.baseURL(),h.activeUser());this.$onInit=function(){t.isPopup=h.isPopup,t.activeUser=h.activeUser(),t.baseURL=h.baseURL(),t.leftIsClose=!c(d["gt-md"]),t.centerIsClose=!!o.centerIsClose&&!t.leftIsClose,t.currentDay=window.currentDay,n(function(){r(function(){i.get("../date").then(function(e){t.currentDay=e})},864e5)},1e3*window.currentDay.secondsBeforeTomorrow),t.$watch(function(){return c(d["gt-md"])},function(e){t.isGtMedium=e,e&&(t.leftIsClose=!1)}),e.$on("http:Error",f),h.activeUser("path").calendar&&g.getAlarms()},t.toggleLeft=function(){t.isGtMedium?t.leftIsClose=!t.leftIsClose:(t.leftIsClose=!s("left").isOpen(),t.leftIsClose&&angular.element(o).triggerHandler("resize"),s("left").toggle().then(function(){u.debug("toggle left is done")}))},t.toggleRight=function(){s("right").toggle().then(function(){u.debug("toggle right is done")})},t.toggleCenter=function(e){t.centerIsClose=!t.centerIsClose,e&&e.save&&p.post(null,"saveListState",{state:t.centerIsClose?"collapse":"rise"})};function f(e,t){var n;t.data&&t.data.message&&angular.isString(t.data.message)?n=t.data.message:t.status&&(n=t.statusText),n?a.show({template:["",' ',' error_outline '," "+l(n)+" ","
"," "].join(""),hideDelay:5e3,position:"top right"}):u.debug("untrap error")}}angular.module("SOGo.Common").controller("navController",e)}(),function(){"use strict";function e(e){this.folderId=e}e.factory=["$q","$timeout","sgSettings","Resource","User",function(t,n,r,i,o){return angular.extend(e,{$q:t,$timeout:n,$$resource:new i(r.activeUser("folderURL"),r.activeUser()),$User:o}),e}],angular.module("SOGo.Common").factory("Acl",e.factory),e.prototype.$users=function(t){var n,r=this,i=e.$q.defer();if(!this.users){return(angular.isDefined(t)?e.$$resource.userResource(t).fetch(this.folderId,"acls"):e.$$resource.fetch(this.folderId,"acls")).then(function(o){return r.users=[],angular.forEach(o.users,function(i){(n=new e.$User(i)).canSubscribeUser=n.isSubscribed,n.wasSubscribed=n.isSubscribed,n.$rights=angular.bind(n,n.$acl,r.folderId,t),r.users.push(n)}),i.resolve(r.users),r.users})}return i.resolve(this.users),i.promise},e.prototype.$addUser=function(t,n){var r=this,i=e.$q.defer(),o={uid:t.uid};if(!t.uid||_.indexOf(_.map(this.users,"uid"),t.uid)>-1)i.resolve();else{(angular.isDefined(n)?e.$$resource.userResource(n).fetch(this.folderId,"addUserInAcls",o):e.$$resource.fetch(this.folderId,"addUserInAcls",o)).then(function(){t.wasSubscribed=!1,t.userClass=t.isGroup?"normal-group":"normal-user",t.$rights=angular.bind(t,t.$acl,r.folderId,n),r.users.push(t),i.resolve(t)},function(e,t){i.reject(l("An error occured please try again."))})}return i.promise},e.prototype.$removeUser=function(t,n){var r=this,i={uid:t};return(angular.isDefined(n)?e.$$resource.userResource(n).fetch(this.folderId,"removeUserFromAcls",i):e.$$resource.fetch(this.folderId,"removeUserFromAcls",i)).then(function(){var e=_.indexOf(_.map(r.users,"uid"),t);e>=0&&(r.users[e].$shadowRights=null,r.users.splice(e,1))})},e.prototype.$selectAllRights=function(e){_.forEach(e.rights,function(t,n){angular.isNumber(e.rights[n])?e.rights[n]=1:e.rights[n]="Modifier"})},e.prototype.$resetUsersRights=function(){angular.forEach(this.users,function(e){e.$resetRights()})},e.prototype.$saveUsersRights=function(t){var n=this,r=e.$q.defer(),i=e.$q.defer(),o={action:"saveUserRights"},s=[];if(angular.forEach(this.users,function(e){e.$rightsAreDirty()&&s.push(e.$omit())}),s.length){(angular.isDefined(t)?e.$$resource.userResource(t).save(this.folderId,s,o):e.$$resource.save(this.folderId,s,o)).then(function(){angular.forEach(n.users,function(e){e.$rightsAreDirty()&&(e.$shadowRights=angular.copy(e.rights))}),r.resolve()},r.reject)}else r.resolve();return s=[],angular.forEach(this.users,function(e){!e.wasSubscribed&&e.isSubscribed&&s.push(e.uid)}),s.length?(o={uids:s.join(",")},e.$$resource.fetch(this.folderId,"subscribeUsers",o).then(function(){angular.forEach(n.users,function(e){e.wasSubscribed=e.isSubscribed}),i.resolve()},i.reject)):i.resolve(),e.$q.all([r.promise,i.promise])}}(),function(){"use strict";function e(){this.currentAlarm=null}e.getAlarms=function(){var t=this,n=new Date,r=Math.floor(n.getTime()/1e3);this.$$resource.fetch("","alarmslist?browserTime="+r).then(function(n){var r=n.alarms.sort(function(e,t){var n=parseInt(e[2]);return parseInt(t[2])-n});if(r.length>0){var i=r.pop(),o=new Date,s=Math.floor(o.getTime()/1e3),a=i[0]+"/"+i[1],l=parseInt(i[2]),c=l;l>0&&(c-=s);new Date(1e3*l);var u=angular.bind(t,e.showAlarm,a);t.currentAlarm&&t.$timeout.cancel(t.currentAlarm),t.currentAlarm=t.$timeout(u,1e3*c)}})},e.showAlarm=function(e){var t=this;this.$$resource.fetch(e,"?resetAlarm=yes").then(function(n){t.$toast.show({position:"top right",hideDelay:0,template:["",' ','
','
{{ summary }}
','
'," ",' {{ "Snooze for " | loc }} ',' ',' ',l("5 minutes")," ",' ',l("10 minutes")," ",' ',l("15 minutes")," ",' ',l("30 minutes")," ",' ',l("45 minutes")," ",' ',l("1 hour")," ",' ',l("1 day")," "," "," ",' ',l("Snooze")," ",' ',l("Close")," ","
","
","
"," "].join(""),locals:{url:e},controller:r}),r.$inject=["scope","$mdToast","url"];function r(e,r,i){e.summary=n.summary,e.reminder="10",e.close=function(){r.hide()},e.snooze=function(){t.$$resource.fetch(i,"view?snoozeAlarm="+e.reminder),r.hide()}}})},t.$inject=["$timeout","sgSettings","Resource","$mdToast"];function t(t,n,r,i){return angular.extend(e,{$timeout:t,$$resource:new r(n.activeUser("folderURL")+"Calendar",n.activeUser()),$toast:i}),e}angular.module("SOGo.Common").factory("Alarm",t)}(),function(){"use strict";angular.module("SOGo.Authentication",["ngCookies"]).constant("passwordPolicyConfig",{PolicyPasswordChangeUnsupported:-3,PolicyPasswordSystemUnknown:-2,PolicyPasswordUnknown:-1,PolicyPasswordExpired:0,PolicyAccountLocked:1,PolicyChangeAfterReset:2,PolicyPasswordModNotAllowed:3,PolicyMustSupplyOldPassword:4,PolicyInsufficientPasswordQuality:5,PolicyPasswordTooShort:6,PolicyPasswordTooYoung:7,PolicyPasswordInHistory:8,PolicyNoError:65535}).provider("Authentication",function(){function e(e,t){var n,r,i,o,s,a;return n=e,t&&(n+="@"+t.value),r=""+window.location.href,"/"==(i=ApplicationBaseURL+encodeURIComponent(n))[0]&&(o=r.split("/"),s=o[2],a=o[0],i=a+"//"+s+i),r.startsWith(i)&&!r.endsWith("/logoff")?r:i}this.$get=t,t.$inject=["$q","$http","$cookies","passwordPolicyConfig"];function t(t,n,r,i){function o(){var e,t=null,n=r.get("0xHIGHFLYxSOGo");return n&&n.length>8&&(e=decodeURIComponent(n.substr(8)),t=e.base64decode().split(":")),t}return{login:function(r){var s,a=t.defer(),c=r.username,u=r.password,d=r.domain,h=r.rememberLogin?1:0;return r.loginSuffix&&!c.endsWith(r.loginSuffix)&&(c+=loginSuffix,d=!1),r.language&&"WONoSelectionString"!=r.language&&(s=r.language),n({method:"POST",url:"/SOGo/connect",data:{userName:c,password:u,domain:d,language:s,rememberLogin:h}}).then(function(t){var n=t.data,r=o();r?void 0!==n.expire&&void 0!==n.grace?n.expire<0&&n.grace>0?a.reject({grace:n.grace}):n.expire>0&&-1==n.grace?a.reject({expire:n.expire}):a.resolve({cn:n.cn,url:e(c,d)}):a.resolve({url:e(c,d)}):a.reject(l("cookiesNotEnabled"))},function(e){var t,n,r=e.data;r&&r.LDAPPasswordPolicyError?(n=r.LDAPPasswordPolicyError,t=n==i.PolicyNoError?l("Wrong username or password."):n==i.PolicyAccountLocked?l("Your account was locked due to too many failed attempts."):l("Login failed due to unhandled error case: ")+n):t=l("Unhandled error response"),a.reject({error:t})}),a.promise},changePassword:function(e){var s=t.defer(),a=o(),c=r.get("XSRF-TOKEN");return r.remove("XSRF-TOKEN",{path:"/SOGo/"}),n({method:"POST",url:"/SOGo/so/changePassword",headers:{"X-XSRF-TOKEN":c},data:{userName:a[0],password:a[1],newPassword:e}}).then(s.resolve,function(e){var t,n=e.data,o=n.LDAPPasswordPolicyError;o?o==i.PolicyNoError?t=l("Password change failed"):o==i.PolicyPasswordModNotAllowed?t=l("Password change failed - Permission denied"):o==i.PolicyInsufficientPasswordQuality?t=l("Password change failed - Insufficient password quality"):o==i.PolicyPasswordTooShort?t=l("Password change failed - Password is too short"):o==i.PolicyPasswordTooYoung?t=l("Password change failed - Password is too young"):o==i.PolicyPasswordInHistory?t=l("Password change failed - Password is in history"):(t=l("Unhandled policy error: %{0}").formatted(o),o=i.PolicyPasswordUnknown):(o=i.PolicyPasswordSystemUnknown,t=_("Unhandled error response")),r.put("XSRF-TOKEN",c,{path:"/SOGo/"}),s.reject(t)}),s.promise}}}})}(),function(){"use strict";function e(){}e.alert=function(e,t){var n=this.$modal.alert().title(e).htmlContent(t).ok(l("OK")).multiple(!0);this.$modal.show(n)},e.confirm=function(e,t,n){var r=this.$modal.confirm().title(e).htmlContent(t).ok(n&&n.ok?n.ok:l("OK")).cancel(n&&n.cancel?n.cancel:l("Cancel"));return this.$modal.show(r)},e.prompt=function(e,t,n){var r=n||{},i=e.asCSSIdentifier(),o=this.$q.defer();this.$modal.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,template:['',' "," "].join(""),controller:s}),s.$inject=["scope","$mdDialog"];function s(t,n){t.title=e,t.name="",t.cancel=function(){o.reject(),n.hide()},t.ok=function(){o.resolve(t.name),n.hide()}}return o.promise},t.$inject=["$q","$mdDialog"];function t(t,n){return angular.extend(e,{$q:t,$modal:n}),e}angular.module("SOGo.Common").factory("Dialog",t)}(),function(){"use strict";angular.module("SOGo.Common").factory("Gravatar",function(){return function(e,t,n,r){var i,o,s,a=t,l=n;return e?((i=e.indexOf("<"))>=0&&(o=e.indexOf(">",i))>i&&(e=e.substring(i+1,o)),t||(a=48),s=e.md5(),l&&"none"!=l||(n=r&&r.no_404?"mm":"404"),"https://www.gravatar.com/avatar/"+s+"?s="+a+"&d="+n):""}})}(),function(){"use strict";function e(e,t,n,r,i,o){angular.extend(this,{_http:e,_q:t,_window:n,_path:r,_activeUser:i}),angular.extend(this,o),this._path=this._path.replace(/\/$/,"")}e.$factory=["$http","$q","$window",function(t,n,r){return function(i,o,s){return new e(t,n,r,i,o,s)}}],angular.module("SOGo.Common").factory("Resource",e.$factory),e.prototype.userResource=function(t){var n=_.compact(this._activeUser.folderURL.split("/"));return t&&n.splice(n.length-1,1,escape(t)),new e(this._http,this._q,"/"+n.join("/"),this._activeUser)},e.prototype.path=function(){var e=[this._path];return arguments.length>0&&Array.prototype.push.apply(e,Array.prototype.slice.call(arguments)),e.join("/")},e.prototype.fetch=function(e,t,n){var r=this._q.defer(),i=[this._path];return e&&i.push(e.split("/")),t&&i.push(t),i=_.compact(_.flatten(i)).join("/"),this._http({method:"GET",url:i,params:n}).then(function(e){return r.resolve(e.data)},r.reject),r.promise},e.prototype.newguid=function(e){var t=this._q.defer(),n=this._path+"/"+e+"/newguid";return this._http.get(n).then(function(e){return t.resolve(e.data)},t.reject),t.promise},e.prototype.create=function(e,t){var n=this._q.defer(),r=this._path+"/"+e;return this._http.post(r,{name:t}).then(function(e){return n.resolve(e.data)},n.reject),n.promise},e.prototype.post=function(e,t,n){var r=this._q.defer(),i=[this._path];return e&&i.push(e),t&&i.push(t),i=_.compact(_.flatten(i)).join("/"),this._http.post(i,n).then(function(e){return r.resolve(e.data)},r.reject),r.promise},e.prototype.save=function(e,t,n){var r=n&&n.action?n.action:"save";return this.post(e,r,t)},e.prototype.download=function(e,t,n,r){this._q.defer();var i=r&&r.type?r.type:"application/zip",o=[this._path];e&&o.push(e),t&&o.push(t),o=_.compact(_.flatten(o)).join("/");return this._http({method:"POST",url:o,data:n,headers:{accept:i},responseType:"arraybuffer",cache:!1,transformResponse:function(e,t,n){var o,s=null;if(n<200||n>299)throw new Error("Bad gateway");e&&(s=new Blob([e],{type:i})),r&&r.filename?o=r.filename:(a=t("content-disposition"))&&a.split(";")[1].trim().split("=")[1].replace(/"/g,"");var a;if(!saveAs)throw new Error("To use Resource.download, FileSaver.js must be loaded.");saveAs(s,o)}})},e.prototype.open=function(e,t){var n=[this._path];e&&n.push(e),t&&n.push(t),n=_.compact(_.flatten(n)).join("/"),this._window.location.href=n},e.prototype.remove=function(e){var t=this._q.defer(),n=this._path+"/"+e+"/delete";return this._http.get(n).then(function(e){return t.resolve(e.data)},t.reject),t.promise}}(),function(){"use strict";e.$inject=["$rootScope","$timeout"];function e(e,t){return function(n){t(function(){e.$broadcast("sgFocusOn",n)})}}angular.module("SOGo.Common").factory("sgFocus",e)}(),function(){"use strict";e.$inject=["$mdDialog","$sgHotkeys"];function e(e,t){return angular.extend(t,{$modal:e}),new t}angular.module("SOGo.Common").service("sgHotkeys",e).provider("$sgHotkeys",function(){var e={8:"backspace",9:"tab",13:"enter",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"caps",27:"escape",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"delete",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12"},t={42:"*",63:"?"};this.$get=n,n.$inject=["$rootScope","$window"];function n(n,r){var i=function(e){this.id=e.id||guid(),this.key=e.key,this.description=e.description||null,this.context=e.context||null,this.callback=e.callback,this.preventInClass=e.preventInClass,this.args=e.args,this.onKeyUp=!1,this.key.length>1&&(this.lkey=l("key_"+this.key))};i.prototype.clone=function(){return new i(this)};var o=function(){this._hotkeys={},this._hotkeysUp={},this._preventIn=["INPUT","SELECT","TEXTAREA","MD-OPTION"],this._preventInClass=["md-chip-content"],this._onKeydown=this._onKeydown.bind(this),this._onKeyup=this._onKeyup.bind(this),this._onKeypress=this._onKeypress.bind(this),this.initialize()};return o.prototype.initialize=function(){this.registerHotkey(this.createHotkey({key:"?",description:l("Show or hide this help"),callback:this._toggleCheatSheet.bind(this)})),r.addEventListener("keydown",this._onKeydown,!0),r.addEventListener("keyup",this._onKeyup,!0),r.addEventListener("keypress",this._onKeypress,!0)},o.prototype._invokeHotkeyHandlers=function(e,t,n){for(var r=0,i=n.length;r=0;n--){var r=e.clone();r.key=e.key[n];var i=this._deregisterHotkey(r);void 0!==i&&t.push(i[0])}else t.push(this._deregisterHotkey(e));return t},o.prototype._validateHotkey=function(e){if(!(e instanceof i))throw new TypeError("Hotkeys: Expected a hotkey object be instance of HotKey")},o.prototype._registerKey=function(e){var t=this._hotkeys;return e.onKeyUp&&(t=this._hotkeysUp),t[e.key]=t[e.key]||[],t[e.key].push(e),e},o.prototype._registerKeys=function(e){var t=[];if(angular.isArray(e.key))for(var n=e.key.length-1;n>=0;n--){var r=e.clone();r.id=guid(),r.key=e.key[n],t.push(this._registerKey(r))}else t.push(this._registerKey(e));return t},o.prototype.registerHotkey=function(e){return this._validateHotkey(e),this._registerKeys(e)},o.prototype.registerHotkeyUp=function(e){this._validateHotkey(e),e.onKeyUp=!0,this._registerKeys(e)},o.prototype.createHotkey=function(e){if(null===e.key||void 0===e.key)throw new TypeError('HotKeys: Argument "key" is required');if(null===e.callback||void 0===e.callback)throw new TypeError('HotKeys: Argument "callback" is required');e.callback=(t=e.callback,function(e,r){n.$apply(function(){t.call(this,e,r)}.bind(this))});var t;return new i(e)},o.prototype.match=function(e,t){angular.isArray(t)||(t=[t]);var n=this.keyStringFromEvent(e);return Boolean(~t.indexOf(n))},o.prototype._toggleCheatSheet=function(){var e=this;this._cheatSheet?(o.$modal.hide(),this._cheatSheet=null):this._cheatSheet=o.$modal.show({clickOutsideToClose:!0,escapeToClose:!0,template:[""," "," ",' ',' '," {{keys[0].lkey || hotkey}} ","
"," {{keys[0].description}}"," "," "," "," "].join(""),controller:t,locals:{hotkeys:e._hotkeys}}).finally(function(){e._cheatSheet=null}),t.$inject=["$scope","hotkeys"];function t(e,t){e.hotkeys=t,e.closeDialog=function(){o.$modal.hide()}}},o}})}(),function(){"use strict";function e(e){e&&this.init(e)}e.factory=["$q","$log","sgSettings","Resource",function(t,n,r,i){return angular.extend(e,{$q:t,$log:n,$$resource:new i(r.activeUser("folderURL"),r.activeUser()),$query:"",$users:[]}),e}],angular.module("SOGo.Common").factory("User",e.factory),e.$filter=function(t,n,r){var i=e.$$resource,o={search:t};if(r&&r.dry)r&&r.uid&&(i=e.$$resource.userResource(r.uid));else{if(!t)return e.$users.splice(0,e.$users.length),e.$q.when(e.$users);if(e.$query==t)return e.$q.when(e.$users);e.$query=t}return i.fetch(null,"usersSearch",o).then(function(t){var i,o,s,a,l=function(e){return this.uid==e.uid};for(r?r.dry?a=[]:r.results&&(a=r.results):a=e.$users,i=n?_.filter(t.users,function(e){return!_.find(n,_.bind(l,e))}):t.users,o=a.length-1;o>=0;o--)s=a[o],_.find(i,_.bind(l,s))||a.splice(o,1);return _.forEach(i,function(t,n){if(_.isUndefined(_.find(a,_.bind(l,t)))){var r=new e(t);a.splice(n,0,r)}}),e.$log.debug(a),a})},e.prototype.init=function(e){angular.extend(this,e),this.$$shortFormat||(this.$$shortFormat=this.$shortFormat()),this.$$image||(this.$$image=this.image),this.$avatarIcon=this.$isGroup()||this.$isSpecial()?"group":"person",this.empty=" "},e.prototype.$fullname=function(){var e=this.cn||this.uid;return this.c_info&&(e+=" ("+this.c_info.split("\n").join("; ")+")"),e},e.prototype.$shortFormat=function(e){var t=this.$fullname(),n=this.c_email;return!(e&&!1===e.email)&&n&&t!=n&&(t+=" <"+n+">"),t},e.prototype.$acl=function(t,n){var r=this,i=e.$q.defer(),o={uid:this.uid};if(this.$shadowRights)i.resolve(this.rights);else{(angular.isDefined(n)?e.$$resource.userResource(n).fetch(t,"userRights",o):e.$$resource.fetch(t,"userRights",o)).then(function(e){return r.rights=e,r.$shadowRights=angular.copy(e),i.resolve(e),e})}return i.promise},e.prototype.$isGroup=function(){return this.isGroup||this.userClass&&"normal-group"==this.userClass},e.prototype.$isAnonymous=function(){return"anonymous"==this.uid},e.prototype.$isSpecial=function(){return this.userClass&&"public-user"==this.userClass},e.prototype.$confirmRights=function(e){var t=!1;return!this.$confirmation&&(_.some(_.values(this.rights))&&("anonymous"==this.uid?"AddressBook"==e.constructor.name?t=l('Potentially anyone on the Internet will be able to access your address book "%{0}", even if they do not have an account on this system. Is this information suitable for the public Internet?',e.name):"Calendar"==e.constructor.name&&(t=l('Potentially anyone on the Internet will be able to access your calendar "%{0}", even if they do not have an account on this system. Is this information suitable for the public Internet?',e.name)):"anyone"!=this.uid&&""!=this.uid||("AddressBook"==e.constructor.name?t=l('Any user with an account on this system will be able to access your address book "%{0}". Are you certain you trust them all?',e.name):"Calendar"==e.constructor.name?t=l('Any user with an account on this system will be able to access your calendar "%{0}". Are you certain you trust them all?',e.name):"Mailbox"==e.constructor.name&&(t=l('Any user with an account on this system will be able to access your mailbox "%{0}". Are you certain you trust them all?',e.name)))),this.$confirmation=t,t)},e.prototype.$rightsAreDirty=function(){return this.rights&&!_.isEqual(this.rights,this.$shadowRights)},e.prototype.$resetRights=function(e){var t=this;e?_.map(_.keys(this.rights),function(e){angular.isString(t.rights[e])?t.rights[e]="None":t.rights[e]=0}):this.$shadowRights&&(this.rights=angular.copy(this.$shadowRights))},e.prototype.$folders=function(t){var n=this,r=e.$q.defer(),i={type:t};return this.$$folders?r.resolve(this.$$folders):e.$$resource.userResource(this.uid).fetch(null,"foldersSearch",i).then(function(e){n.$$folders=e.folders,r.resolve(e.folders)}),r.promise},e.prototype.$omit=function(){var e={};return angular.forEach(this,function(t,n){"constructor"!=n&&"$"!=n[0]&&(e[n]=t)}),e},e.prototype.toString=function(){return"[User "+this.c_email+"]"}}(),function(){"use strict";e.$inject=["$scope","$element","$http","$q","Preferences","Gravatar"];function e(e,t,n,r,i,o){var s,a;s=this,e.$on("$destroy",function(){a&&t.off("click",a)}),e.$watch(function(){return s.email},function(e,t){e&&s.urlEmail!=e?(l(),i.defaults.SOGoGravatarEnabled&&function(e){var t=o(e,s.size,i.defaults.SOGoAlternateAvatar);n({method:"GET",url:t,cache:!0,headers:{Accept:"image/*"}}).then(function(){s.url||(s.url=t,s.urlEmail=e,c())},function(){l()})}(e)):e||l()}),"sg-src"in t[0].attributes&&e.$watch(function(){return s.src},function(e){e&&(s.url=e,s.urlEmail=""+s.email,t.addClass("sg-avatar-image--zoomable"),a=function(){t.toggleClass("sg-avatar-image--zoom")},t.on("click",a),c())});function l(){s.url=null,s.urlEmail=null,s.img.addClass("ng-hide"),s.genericImg.removeClass("ng-hide")}function c(){s.genericImg.addClass("ng-hide"),s.img.removeClass("ng-hide")}}angular.module("SOGo.Common").directive("sgAvatarImage",function(){return{restrict:"AE",scope:{},bindToController:{size:"@",email:"=sgEmail",src:"=sgSrc"},transclude:!0,template:['',"
",'
not_interested ','
',"
"].join(""),link:function(e,t,n,r){var i,o=t.find("img"),s=t.find("md-icon"),a=angular.element(s[0]),l=angular.element(s[1]);n.size&&(o.attr("width",n.size),o.attr("height",n.size),a.css("font-size",n.size+"px"),l.css("font-size",parseInt(.4*n.size)+"px")),angular.isDefined(n.ngDisabled)&&(i=e.$watch(n.ngDisabled,function(e){n.disabled&&l.css({display:"block"}),i()})),r.img=o,r.genericImg=a},controller:"sgAvatarImageController",controllerAs:"vm"}}).controller("sgAvatarImageController",e)}(),function(){"use strict";e.$inject=["$mdUtil","$animateCss","$$rAF"];function e(e,t,n){return{link:function(e,r){var i=r[0].querySelector(".sg-button-toggle"),o=i.querySelector(".sg-icon-toggle"),s="md-rotate-180-ccw",a=r[0].querySelector(".sg-block-toggle"),l=!1;i.classList.add("md-clickable"),angular.element(i).on("click",function(){(l=!l)?o.classList.add(s):o.classList.remove(s);l&&(a.style.visibility="visible");n(function(){var e=l?a.scrollHeight:0;t(angular.element(a),{easing:"cubic-bezier(0.35, 0, 0.25, 1)",to:{height:e+"px"},duration:.75}).start().then(function(){c()})})}),c();function c(){a.setAttribute("aria-hidden",!l),a.setAttribute("aria-expanded",l),l||(a.style.visibility="hidden")}}}}angular.module("SOGo.Common").directive("sgBlockToggle",e)}(),function(){"use strict";angular.module("SOGo.Common").directive("sgCheckmark",e),e.$inject=["$parse","$mdAria","$mdTheming","$mdUtil"];function e(e,t,n,r){var i="sg-checked";return{restrict:"E",replace:!0,transclude:!0,require:"?ngModel",template:[''," check "," "].join(""),compile:function(o,s){return o.on("click",function(e){this.hasAttribute("disabled")&&e.stopImmediatePropagation()}),function(o,s,a,l){var c=d(e,o,"sgTrueValue",a.sgTrueValue,!0),u=d(e,o,"sgFalseValue",a.sgFalseValue,!1);l=l||r.fakeNgModel(),n(s),t.expectWithText(s,"aria-label"),s.on("click",function(e){s[0].hasAttribute("disabled")||o.$apply(function(){var t=l.$viewValue==c?u:c;l.$setViewValue(t,e&&e.type),l.$render()})}),l.$render=function(){l.$viewValue==c?s.addClass(i):s.removeClass(i)};function d(e,t,n,r,i){var o;if(angular.isDefined(r)){if(!(o=e(r)).constant)throw Error("Expected constant expression for `"+n+"`, but saw `"+r+"`.");return o(t)}return i}}}}}}(),function(){"use strict";e.$inject=["$scope","$element","$mdPanel","sgColors"];function e(e,t,n,r){var i,o,s;this.$onInit=function(){i=this,o=t.controller("ngModel")},this.$postLink=function(){this.buttonIcon=t.find("md-icon"),o.$render=function(){a(o.$viewValue)}};function a(e){s=e,i.buttonIcon.css("color",s)}this.showPicker=function(e){for(var t=n.newPanelPosition().relativeTo(i.buttonIcon).addPanelPosition(n.xPosition.ALIGN_START,n.yPosition.ALIGN_TOPS),l=n.newPanelAnimation().openFrom(i.buttonIcon).duration(100).withAnimation(n.animation.FADE),c=[],u="",d=0;d",g&&(u+=' '),u+=""}var p={attachTo:angular.element(document.body),bindToController:!0,controller:f,controllerAs:"$menuCtrl",position:t,animation:l,targetEvent:e,template:['"].join(""),trapFocus:!0,clickOutsideToClose:!0,escapeToClose:!0,focusOnOpen:!0};n.open(p).then(function(e){e.panelEl.one("click",function(){e.close()})}),f.$inject=["mdPanelRef","$state","$mdDialog","User"];function f(e,t,n,r){this.setColor=function(e,t){e&&(_.forEach(e.currentTarget.parentElement.children,function(e){e.classList.remove("selected")}),e.currentTarget.classList.add("selected")),a(t),o.$setViewValue(t)}}}}angular.module("SOGo.Common").directive("sgColorPicker",function(){return{restrict:"E",require:"ngModel",template:[' '," format_color_fill "," "].join(""),controller:e,controllerAs:"$ctrl"}})}(),function(){"use strict";e.$inject=["$compile"];function e(e){return{restrict:"A",link:function(t,n,r){var i=t.$watch(function(e){return e.$eval(r.sgCompile)},function(r){n.html(r),e(n.contents())(t),i()})}}}angular.module("SOGo.Common").directive("sgCompile",e)}(),function(){"use strict";angular.module("SOGo.Common").directive("sgDatepickerReadonlyInput",function(){return{link:function(e,t,n,r){var i=e.$watch(function(){return t.find("input").eq(0)},function(e){e.length&&(i(),e.prop("disabled",!0),e.parent().addClass("sg-datepicker-readonly-input-container"))})},require:"mdDatepicker",restrict:"A"}})}(),function(){"use strict";e.$inject=["$parse","$rootScope","$document","$timeout","$log"];function e(e,t,n,r,i){return{restrict:"A",link:function(o,s,a){var l;r(function(){var t,n,r;t=e(a.sgDraggable)(o),n=a.sgDragStart?e(a.sgDragStart):null,r=a.sgDragCount?e(a.sgDragCount):null,l=new c(s,t,n,r)}),o.$on("$destroy",function(){l.$destroy()});function c(e,t,r,i){if(this.$element=e,this.folder=t,this.dragStart=r,this.count=i,this.helper=n.find("sg-draggable-helper"),!this.helper)throw Error("sg-draggable requires a sg-draggable-helper element.");this.bindedOnDragDetect=angular.bind(this,this.onDragDetect),this.bindedOnDrag=angular.bind(this,this.onDrag),this.$element.on("mousedown",this.bindedOnDragDetect)}c.prototype={dragHasStarted:!1,$destroy:function(){this.$element.off("mousedown",this.bindedOnDragDetect)},getDistanceFromStart:function(e){var t={x:this.startPosition.clientX-e.clientX,y:this.startPosition.clientY-e.clientY};return Math.sqrt(t.x*t.x+t.y*t.y)},onDragDetect:function(e){e.stopPropagation(),this.dragStart&&!this.dragStart(o)||(n.on("mousemove",this.bindedOnDrag),n.one("mouseup",angular.bind(this,this.onDragEnd)))},onDrag:function(e){var n;this.startPosition?!this.dragHasStarted&&this.getDistanceFromStart(e)>10&&(n=this.helper.find("sg-draggable-helper-counter"),this.dragHasStarted=!0,this.helper.removeClass("ng-hide"),this.count&&this.count(o)>1?n.text(this.count(o)).removeClass("ng-hide"):n.addClass("ng-hide"),i.debug("emit folder:dragstart"),t.$emit("folder:dragstart",this.folder)):this.startPosition={clientX:e.clientX,clientY:e.clientY},this.dragHasStarted&&(e.shiftKey||this.folder.isRemote?this.helper.addClass("sg-draggable-helper--copy"):this.helper.removeClass("sg-draggable-helper--copy"),this.helper.css({top:e.pageY+5+"px",left:e.pageX+5+"px"}))},onDragEnd:function(e){var r="move";this.startPosition=null,n.off("mousemove",this.bindedOnDrag),this.dragHasStarted&&((e.shiftKey||this.folder.isRemote)&&(r="copy"),i.debug("emit folder:dragend"),t.$emit("folder:dragend",this.folder,r),this.dragHasStarted=!1,this.helper.addClass("ng-hide"))}}}}}angular.module("SOGo.Common").directive("sgDraggable",e)}(),function(){"use strict";e.$inject=["$parse","$rootScope","$document","$timeout","$log"];function e(e,t,n,r,i){return{restrict:"A",link:function(n,r,i){var o,s,a,l,c=!1;if(!i.sgDrop)throw Error("sg-droppable requires a sg-drop action.");c=!1,s=e(i.sgDroppable),o=e(i.sgDrop),a=t.$on("folder:dragstart",function(e,t){s(n,{dragFolder:t})&&(r.on("mouseenter",u),r.on("mouseleave",d))}),l=t.$on("folder:dragend",function(e,t,i){r.off("mouseenter"),r.off("mouseleave"),c&&(angular.bind(r[0],d)(e),o(n,{dragFolder:t,dragMode:i}))}),n.$on("destroy",function(){a(),l()});function u(e){c=!0,r.addClass("sg-droppable-over")}function d(e){c=!1,this.classList.remove("sg-droppable-over"),r.off("mousemove")}}}}angular.module("SOGo.Common").directive("sgDroppable",e)}(),function(){"use strict";angular.module("SOGo.Common").directive("sgEnter",function(){return function(e,t,n){t.bind("keydown keypress",function(t){13===t.which&&(e.$apply(n.sgEnter),t.preventDefault())})}})}(),function(){"use strict";angular.module("SOGo.Common").directive("sgEscape",function(){return function(e,t,n){t.bind("keydown",function(t){27===t.keyCode&&e.$apply(n.sgEscape)})}})}(),function(){"use strict";angular.module("SOGo.Common").directive("sgFocusOn",function(){return function(e,t,n){e.$on("sgFocusOn",function(e,r){r===n.sgFocusOn&&(t[0].focus(),"function"==typeof t[0].select&&t[0].select())})}})}(),function(){"use strict";angular.module("SOGo.Common").directive("sgFolderStylesheet",function(){return{restrict:"E",require:"ngModel",scope:{ngModel:"="},replace:!0,bindToController:!0,controller:function(){this.contrast=contrast,this.transparent=function(e,t){var n=hexToRgb(e);return["rgba("+n.r,n.g,n.b,t+")"].join(",")}},controllerAs:"cssCtrl",template:['"].join("")}})}(),function(){"use strict";angular.module("SOGo.Common").directive("sgNoDirtyCheck",function(){return{restrict:"A",require:"ngModel",link:function(e,t,n,r){if(r){var i=r.$pristine&&!r.$dirty;i&&(r.$pristine=!1,r.$dirty=!0)}}}})}(),function(){"use strict";angular.module("SOGo.Common").directive("sgPlaceholder",function(){return{restrict:"A",scope:{placeholder:"=sgPlaceholder"},link:function(e,t,n){e.$watch("placeholder",function(){t[0].placeholder=e.placeholder})}}})}(),function(){"use strict";angular.module("SOGo.Common").directive("sgResetOnDisabled",function(){return{link:function(e,t,n,r){var i=e.$watch(function(){return t.find("input").eq(0)},function(e){e.length&&(i(),r.$scope.$watch("ctrl.isDisabled",function(e){e&&r.ngModelCtrl.$invalid&&r.$scope.$emit("md-calendar-change",r.date)}))})},require:"mdDatepicker",restrict:"A"}})}(),function(){"use strict";angular.module("SOGo.Common").directive("sgRippleClick",e),e.$inject=["$log","$timeout"];function e(e,t){return{restrict:"A",compile:function(n,r){return function(n,r,i){var o,s,a,l;for(l=r.attr("sg-ripple-click"),a=r[0].parentNode;a&&a.id!=l;)a=a.parentNode;a?(s=a.querySelector("sg-ripple-content"))?((o=a.querySelector("sg-ripple"))?o=angular.element(o):(o=angular.element(' '),a.appendChild(o[0]),s.classList.contains("ng-hide")||s.classList.add("ng-hide")),r.on("click",c),n.$on("$destroy",function(){r.off("click",c)})):e.error("sg-ripple-content not found inside #"+l):e.error("No parent element found with id "+l);function c(e){var n;r[0].hasAttribute("disabled")||(n=e.pageX&&e.pageY?{left:e.pageX,top:e.pageY}:e.target.getBoundingClientRect(),s.classList.contains("ng-hide")?(angular.element(a).css({overflow:"hidden",position:"relative"}),angular.element(s).css({top:a.scrollTop+"px"}),t(function(){o.css({top:n.top-a.offsetTop+a.scrollTop+"px",left:n.left-a.offsetLeft+"px",height:"400vmin",width:"400vmin"}),s.classList.remove("ng-hide")})):(o.css({top:n.top-a.offsetTop+a.scrollTop+"px",left:n.left-a.offsetLeft+"px",height:"0px",width:"0px"}),s.classList.add("ng-hide"),t(function(){angular.element(a).css({overflow:"",position:""})},800)))}}}}}}(),function(){"use strict";e.$inject=["$parse"];function e(e){return{restrict:"A",controller:"sgSearchController",controllerAs:"$sgSearchController",priority:1001,compile:function(t,n){t.find("md-input-container");var r=t.find("input"),i=t.find("md-select"),o=t.find("md-button");r.attr("ng-model","$sgSearchController.searchText"),r.attr("ng-model-options","$sgSearchController.searchTextOptions"),r.attr("ng-change","$sgSearchController.onChange()"),i&&(i.attr("ng-model","$sgSearchController.searchField"),i.attr("ng-change","$sgSearchController.onChange()"));o&&o.attr("sg-search-cancel")?(o.attr("ng-click",o.attr("sg-search-cancel")),o.removeAttr("sg-search-cancel")):o=null;return function(t,n,i,s){var a=n.find("button");s.formName=n.attr("name"),s.inputName=r.attr("name"),s.allowDot=e(n.attr("sg-allow-dot"))(t),s.fields=e(n.attr("sg-search-fields"))(t),s.doSearch=e(n.attr("sg-search")),o&&a&&a.on("click",s.cancelSearch)}}}}t.$inject=["$window","$scope","$element"];function t(e,t,n){var r=this;if(r.searchText=null,r.searchTextOptions={updateOn:"default blur",debounce:{default:300,blur:0}},n.attr("sg-search-fields"))var i=t.$watch(r.fields,function(e){r.searchField=_.clone(r.fields),i()});r.onChange=function(){var e=t[r.formName],n=e[r.inputName],i=n.$viewValue;(r.allowDot&&"."==i||e.$valid&&i)&&("."==i&&n.$setValidity("minlength",!0),r.doSearch(t,{searchText:i,searchField:r.searchField}))},r.cancelSearch=function(){r.searchText=null}}angular.module("SOGo.Common").controller("sgSearchController",t).directive("sgSearch",e).directive("sgSearch",function(){return{restrict:"A",priority:1e3,transclude:!0,compile:function(e,t){return function(e,t,n,r,i){i(function(e){t.append(e)})}}}})}(),function(){"use strict";angular.module("SOGo.Common").directive("sgSelectOnly",function(){return{link:function(e,t,n,r){var i=e.$watch(function(){return t.find("input").eq(0)},function(t){var n;t.length&&(i(),n=t.controller("ngModel"),t.on("blur",function(){r.scope.selectedItem||e.$applyAsync(n.$setValidity("required",!1))}))})},require:"mdAutocomplete",restrict:"A"}})}(),function(){"use strict";e.$inject=["User"];function e(e){return{restrict:"A",scope:{folderType:"@sgSubscribe",onFolderSelect:"&sgSubscribeOnSelect"},replace:!1,bindToController:!0,controller:n,controllerAs:"$sgSubscribeDialogController",link:t}}function t(e,t,n,r){t.find("input");t.on("click",r.showDialog)}n.$inject=["$mdDialog"];function n(e){var t=this;t.showDialog=function(){e.show({templateUrl:"../Contacts/UIxContactsUserFolders",clickOutsideToClose:!0,locals:{folderType:t.folderType,onFolderSelect:t.onFolderSelect},controller:r,controllerAs:"subscribe"})}}r.$inject=["$mdDialog","folderType","onFolderSelect","User"];function r(e,t,n,r){var i=this;i.selectedUser=null,i.users=[],i.searchTextOptions={updateOn:"default blur",debounce:{default:300,blur:0}},i.onChange=function(e){r.$filter(i.searchText,null,{results:i.users}).then(function(t){e.$setValidity("matches",t.length>0),e.$setTouched(),i.selectedUser&&_.isUndefined(_.find(t,function(e){return e.uid==i.selectedUser.uid}))&&(i.selectedUser=null)})},i.selectUser=function(e){i.selectedUser==i.users[e]?i.selectedUser=null:i.users[e].$folders(t).then(function(){i.selectedUser=i.users[e]})},i.selectFolder=function(e){n({folderData:e})},i.close=function(){e.hide()}}angular.module("SOGo.Common").directive("sgSubscribe",e)}(),function(){"use strict";angular.module("SOGo.Common").directive("sgTimePane",function(){return{template:['','
','
','
',' {{hour.displayName}} ',"
","
","
",'
','
','
',' {{minute.displayName}} ',"
","
","
",'
",'
',' ',"
","
"].join(""),scope:{},require:["ngModel","sgTimePane","?^mdInputContainer"],controller:t,controllerAs:"ctrl",bindToController:!0,link:function(e,t,n,r){var i=r[0],o=r[1],s=r[2];if(s)throw Error("sg-timepicker should not be placed inside md-input-container.");o.configureNgModel(i,o)}}});var e=0;t.$inject=["$element","$scope","$$mdDateUtil","$mdUtil","$mdConstant","$mdTheming","$$rAF","$attrs","$mdDateLocale"];function t(t,n,r,i,o,s,a,l,c){var u;s(t),this.$element=t,this.$scope=n,this.dateUtil=r,this.$mdUtil=i,this.keyCode=o.KEY_CODE,this.$$rAF=a,this.timePaneElement=t[0].querySelector(".sg-time-pane"),this.ngModelCtrl=null,this.SELECTED_TIME_CLASS="sg-time-selected",this.FOCUSED_TIME_CLASS="md-focus",this.id=e++,this.displayTime=null,this.selectedTime=null,this.isInitialized=!1,n.hours=[],n.hours[0]=[],n.hours[0][0]=[],n.hours[0][1]=[],n.hours[1]=[],n.hours[1][0]=[],n.hours[1][1]=[];for(var d=0;d<6;d++)n.hours[0][0][d]={id:"tp-"+this.id+"-hour-"+d,displayName:d<10?"0"+d:""+d,selected:!1},n.hours[0][1][d]={id:"tp-"+this.id+"-hour-"+(d+6),displayName:d+6<10?"0"+(d+6):""+(d+6),selected:!1},n.hours[1][0][d]={id:"tp-"+this.id+"-hour-"+(d+12),displayName:""+(d+12),selected:!1},n.hours[1][1][d]={id:"tp-"+this.id+"-hour-"+(d+18),displayName:""+(d+18),selected:!1};for(n.min5=[],n.min5[0]=[],n.min5[1]=[],d=0;d<6;d++)u=5*d,n.min5[0][d]={id:"tp-"+this.id+"-minute5-"+u,displayName:u<10?":0"+u:":"+u,selected:!0},n.min5[1][d]={id:"tp-"+this.id+"-minute5-"+(u+30),displayName:":"+(u+30),selected:!1};for(n.min1=[],d=0;d<12;d++){n.min1[d]=[];for(var h=0;h<5;h++)u=5*d+h,n.min1[d][h]={id:"tp-"+this.id+"-minute-"+u,displayName:u<10?":0"+u:":"+u,selected:!0}}n.show5min=!0,n.getToggleBtnLbl=function(){return n.is5min()?">>":"<<"},n.toggleManual5min=function(){n.manual5min=!n.is5min()},n.is5min=function(){return!0===n.manual5min||!1===n.manual5min?n.manual5min:n.show5min},l.tabindex||t.attr("tabindex","-1");var m=this;this.hourClickHandler=function(e){var t=new Date(m.displayTime);t.setHours(Number(e)),m.setNgModelValue(t,"hours")},n.hourClickHandler=this.hourClickHandler,this.minuteClickHandler=function(e){var t=e.substr(1),n=new Date(m.displayTime);n.setMinutes(Number(t)),m.setNgModelValue(n,"minutes")},n.minuteClickHandler=this.minuteClickHandler;var g=angular.bind(this,this.handleKeyEvent);angular.element(document.body).on("keydown",g),n.$on("$destroy",function(){angular.element(document.body).off("keydown",g)})}t.prototype.configureNgModel=function(e,t){var n=this;n.ngModelCtrl=e,n.$mdUtil.nextTick(function(){n.isInitialized=!0}),e.$render=function(){var e=this.$viewValue;n.$mdUtil.nextTick(function(){n.changeSelectedTime(e,t)})}},t.prototype.changeSelectedTime=function(e,t){var n=this.selectedTime;if(this.selectedTime=e,this.displayTime=new Date(e),n){var r=n.getHours(),i=document.getElementById("tp-"+t.id+"-hour-"+r);i&&(i.classList.remove(this.SELECTED_TIME_CLASS),i.setAttribute("aria-selected","false"));var o=n.getMinutes(),s=document.getElementById("tp-"+t.id+"-minute-"+o);s&&(s.classList.remove(this.SELECTED_TIME_CLASS),s.setAttribute("aria-selected","false"));var a=document.getElementById("tp-"+t.id+"-minute5-"+o);a&&(a.classList.remove(this.SELECTED_TIME_CLASS),a.setAttribute("aria-selected","false"))}if(e){var l,c=e.getHours(),u=document.getElementById("tp-"+t.id+"-hour-"+c);u&&(u.classList.add(this.SELECTED_TIME_CLASS),u.setAttribute("aria-selected","true"));var d=e.getMinutes();d%5==0?(t.$scope.show5min=!0,(l=document.getElementById("tp-"+t.id+"-minute5-"+d))&&(l.classList.add(this.SELECTED_TIME_CLASS),l.setAttribute("aria-selected","true"))):t.$scope.show5min=!1,(l=document.getElementById("tp-"+t.id+"-minute-"+d))&&(l.classList.add(this.SELECTED_TIME_CLASS),l.setAttribute("aria-selected","true"))}},t.prototype.setNgModelValue=function(e,t){return this.$scope.$emit("sg-time-pane-change",{date:e,changed:t}),this.ngModelCtrl.$setViewValue(e),this.ngModelCtrl.$render(),e},t.prototype.handleKeyEvent=function(e){var t=this;this.$scope.$apply(function(){return e.which==t.keyCode.ESCAPE||e.which==t.keyCode.TAB?(t.$scope.$emit("md-time-pane-close"),void(e.which==t.keyCode.TAB&&e.preventDefault())):e.which===t.keyCode.ENTER?(t.setNgModelValue(t.displayTime,"enter"),void e.preventDefault()):void 0})},t.prototype.focus=function(e,t){var n=e||this.selectedTime||this.today,r=this.timePaneElement.querySelector(".md-focus");if(r&&r.classList.remove(this.FOCUSED_TIME_CLASS),n){var i=n.getHours(),o=document.getElementById("tp-"+t.id+"-hour-"+i);o&&(o.classList.add(this.FOCUSED_TIME_CLASS),o.focus())}}}(),function(){"use strict";angular.module("SOGo.Common").directive("sgTimepicker",e),e.$inject=["$mdUtil","$mdAria"];function e(e,t){return{template:function(e,t){var n=t.ariaLabel||t.mdPlaceholder;return['',' access_time '," ",'",'"].join("")},require:["ngModel","sgTimepicker","?^form"],scope:{placeholder:"@mdPlaceholder"},controller:s,controllerAs:"ctrl",bindToController:!0,link:function(t,n,r,i){var o=i[0],s=i[1],a=i[2];e.parseAttributeBoolean(r.mdNoAsterisk);if(s.configureNgModel(o),a)var l=t.$watch(function(){return a.$submitted},function(e){e&&(s.updateErrorState(),l())})}}}var t="sg-timepicker-invalid",n="sg-timepicker-open",r={MIN5:{GTXS:192,XS:311},MIN1:{GTXS:384,XS:474}},i={GTXS:530,XS:294},o=/ipad|iphone|ipod|android/i;s.$inject=["$scope","$element","$attrs","$window","$mdConstant","$mdTheming","$mdUtil","$mdDateLocale","$$mdDateUtil","$$rAF","$mdMedia"];function s(e,t,n,r,i,s,a,l,c,u,d){this.$window=r,this.dateLocale=l,this.dateUtil=c,this.$mdConstant=i,this.$mdUtil=a,this.$$rAF=u,this.$mdMedia=d,this.documentElement=angular.element(document.documentElement),this.ngModelCtrl=null,this.inputElement=t[0].querySelector("input"),this.ngInputElement=angular.element(this.inputElement),this.inputContainer=t[0].querySelector(".sg-timepicker-input-container"),this.timePane=t[0].querySelector(".sg-timepicker-time-pane"),this.timeButton=t[0].querySelector(".sg-timepicker-button"),this.inputMask=angular.element(t[0].querySelector(".sg-timepicker-input-mask-opaque")),this.$element=t,this.$attrs=n,this.$scope=e,this.date=null,this.isFocused=!1,this.isDisabled=!1,this.setDisabled(t[0].disabled||angular.isString(n.disabled)),this.isTimeOpen=!1,this.timePaneOpenedFrom=null,this.timePaneId="sg-time-pane"+a.nextUid(),this.bodyClickHandler=angular.bind(this,this.handleBodyClick),this.windowEventName=o.test(navigator.userAgent||navigator.vendor||window.opera)?"orientationchange":"resize",this.windowEventHandler=a.debounce(angular.bind(this,this.closeTimePane),100),this.windowBlurHandler=angular.bind(this,this.handleWindowBlur),this.leftMargin=20,this.topMargin=null,n.tabindex?(this.ngInputElement.attr("tabindex",n.tabindex),n.$set("tabindex",null)):n.$set("tabindex","-1"),s(t),s(angular.element(this.timePane)),this.installPropertyInterceptors(),this.attachChangeListeners(),this.attachInteractionListeners();var h=this;e.$on("$destroy",function(){h.detachTimePane()})}s.prototype.configureNgModel=function(e){this.ngModelCtrl=e;var t=this;t.ngModelCtrl.$formatters.push(function(e){if(e&&!(e instanceof Date))throw Error("The ng-model for sg-timepicker must be a Date instance. Currently the model is a: "+typeof e);return t.time=e,t.inputElement.value=t.dateLocale.formatTime(e),t.resizeInputElement(),t.updateErrorState(),e}),e.$viewChangeListeners.unshift(angular.bind(this,this.updateErrorState))},s.prototype.attachChangeListeners=function(){var e=this;e.$scope.$on("sg-time-pane-change",function(n,r){var i=new Date(r.date);e.ngModelCtrl.$setViewValue(i),e.time=i,e.inputElement.value=e.dateLocale.formatTime(i),"minutes"==r.changed&&e.closeTimePane(),e.resizeInputElement(),e.inputContainer.classList.remove(t)}),e.ngInputElement.on("input",angular.bind(e,e.resizeInputElement));var n=angular.isDefined(this.debounceInterval)?this.debounceInterval:500;e.ngInputElement.on("input",e.$mdUtil.debounce(e.handleInputEvent,n,e))},s.prototype.attachInteractionListeners=function(){var e=this,t=this.$scope,n=this.$mdConstant.KEY_CODE;e.ngInputElement.on("keydown",function(r){r.altKey&&r.keyCode==n.DOWN_ARROW&&(e.openTimePane(r),t.$digest())}),t.$on("md-time-close",function(){e.closeTimePane()})},s.prototype.installPropertyInterceptors=function(){var e=this;if(this.$attrs.ngDisabled){var t=this.$scope.$parent;t&&t.$watch(this.$attrs.ngDisabled,function(t){e.setDisabled(t)})}Object.defineProperty(this,"placeholder",{get:function(){return e.inputElement.placeholder},set:function(t){e.inputElement.placeholder=t||""}})},s.prototype.setDisabled=function(e){this.isDisabled=e,this.inputElement.disabled=e,this.timeButton&&(this.timeButton.disabled=e)},s.prototype.updateErrorState=function(e){var n=e||this.date;this.clearErrorState(),this.dateUtil.isValidDate(n)||this.ngModelCtrl.$setValidity("valid",null===n),this.ngModelCtrl.$valid||this.inputContainer.classList.add(t)},s.prototype.clearErrorState=function(){this.inputContainer.classList.remove(t),["valid"].forEach(function(e){this.ngModelCtrl.$setValidity(e,!0)},this)},s.prototype.resizeInputElement=function(){this.inputElement.size=this.inputElement.value.length+3},s.prototype.handleInputEvent=function(e){var t=this.inputElement.value,n=t?this.dateLocale.parseTime(t):null;if(""===t||this.dateUtil.isValidDate(n)){var r=new Date(this.time);r.setHours(n.getHours()),r.setMinutes(n.getMinutes()),this.ngModelCtrl.$setViewValue(r),this.time=r}this.updateErrorState(n)},s.prototype.attachTimePane=function(){var e=this.timePane,t=document.body;e.style.transform="",this.$element.addClass(n),angular.element(t).addClass("md-datepicker-is-showing");var o=this.inputContainer.getBoundingClientRect(),s=t.getBoundingClientRect();(!this.topMargin||this.topMargin<0)&&(this.topMargin=(this.inputMask.parent().prop("clientHeight")-this.ngInputElement.prop("clientHeight"))/2);var a=o.top-s.top-this.topMargin,l=o.left-s.left-this.leftMargin,c=s.top<0&&0===t.scrollTop?-s.top:document.body.scrollTop,u=s.left<0&&0===t.scrollLeft?-s.left:document.body.scrollLeft,d=c+this.$window.innerHeight,h=u+this.$window.innerWidth;this.inputMask.css({position:"absolute",left:this.leftMargin+"px",top:this.topMargin+"px",width:o.width-1+"px",height:o.height-2+"px"});var m=this.$mdMedia("xs")?i.XS:i.GTXS;if(l+m>h){if(h-m>0)l=h-m;else{l=u;var g=this.$window.innerWidth/m;e.style.transform="scale("+g+")"}e.classList.add("sg-timepicker-pos-adjusted")}var p="object"==typeof this.time&&this.time.getMinutes()%5==0?"MIN5":"MIN1",f=this.$mdMedia("xs")?r[p].XS:r[p].GTXS;a+f>d&&d-f>c&&(a=d-f,e.classList.add("sg-timepicker-pos-adjusted")),e.style.left=l+"px",e.style.top=a+"px",document.body.appendChild(e),this.$$rAF(function(){e.classList.add("md-pane-open")})},s.prototype.detachTimePane=function(){this.$element.removeClass(n),angular.element(document.body).removeClass("md-datepicker-is-showing"),this.timePane.classList.remove("md-pane-open"),this.timePane.classList.remove("md-timepicker-pos-adjusted"),this.isTimeOpen&&this.$mdUtil.enableScrolling(),this.timePane.parentNode&&this.timePane.parentNode.removeChild(this.timePane)},s.prototype.openTimePane=function(e){if(!this.isTimeOpen&&!this.isDisabled){this.isTimeOpen=!0,this.timePaneOpenedFrom=e.target,this.$mdUtil.disableScrollAround(this.timePane),this.attachTimePane(),this.evalAttr("ngFocus");var t=this;this.$mdUtil.nextTick(function(){t.documentElement.on("click touchstart",t.bodyClickHandler)},!1),window.addEventListener(this.windowEventName,this.windowEventHandler)}},s.prototype.closeTimePane=function(){if(this.isTimeOpen){this.detachTimePane(),this.ngModelCtrl.$setTouched(),this.evalAttr("ngBlur"),this.documentElement.off("click touchstart",this.bodyClickHandler),window.removeEventListener(this.windowEventName,this.windowEventHandler),this.timePaneOpenedFrom.focus(),this.timePaneOpenedFrom=null,this.isTimeOpen=!1}},s.prototype.getTimePaneCtrl=function(){return angular.element(this.timePane.querySelector("sg-time-pane")).controller("sgTimePane")},s.prototype.focusTime=function(){var e=this;this.$mdUtil.nextTick(function(){var t=e.getTimePaneCtrl();e.getTimePaneCtrl().focus(null,t)},!1)},s.prototype.setFocused=function(e){e||this.ngModelCtrl.$setTouched(),this.evalAttr(e?"ngFocus":"ngBlur"),this.isFocused=e},s.prototype.handleBodyClick=function(e){if(this.isTimeOpen){this.$mdUtil.getClosest(e.target,"sg-time-pane")||this.closeTimePane(),this.$scope.$digest()}},s.prototype.handleWindowBlur=function(){this.inputFocusedOnWindowBlur=document.activeElement===this.inputElement},s.prototype.evalAttr=function(e){this.$attrs[e]&&this.$scope.$parent.$eval(this.$attrs[e])}}(),function(){"use strict";e.$inject=["$parse","$mdUtil","$mdColors"];function e(e,t,n){return{restrict:"A",require:["mdGridList","?ngModel"],compile:function(e,r){return function(i,o,s,a){var l,c,u,d,h,m=e.find("md-grid-tile"),g=[];for((c=a[1]||t.fakeNgModel()).$render=function(){var e=c.$viewValue;g=c.$viewValue,r.sgToggleGridAttr&&(d=r.sgToggleGridAttr,e=_.map(c.$viewValue,r.sgToggleGridAttr));_.forEach(m,function(t){var n=angular.element(t);_.includes(e,n.attr("value"))&&n.addClass("sg-active")}),c.$validate(),p(c.$invalid)},c.$isEmpty=function(e){return!e||0===e.length},h=function(){var e=angular.element(this),t=e.attr("value");e.toggleClass("sg-active"),function(e){var t=_.findIndex(g,function(t){return d?t[d]==e:t==e});if(t<0)if(d){var n={};n[d]=e,g.push(n)}else g.push(e);else g.splice(t,1);i.$apply(function(){c.$setViewValue(g),c.$setDirty(),c.$validate(),p(c.$invalid)})}(t)},u=0;u /g,">")},String.prototype._base64_keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",String.prototype.base64encode=function(){for(var e,t,n,r,i,o,s,a="",l=0,c=this.utf8encode();l>2,i=(3&e)<<4|(t=c.charCodeAt(l++))>>4,o=(15&t)<<2|(n=c.charCodeAt(l++))>>6,s=63&n,isNaN(t)?o=s=64:isNaN(n)&&(s=64),a=a+this._base64_keyStr.charAt(r)+this._base64_keyStr.charAt(i)+this._base64_keyStr.charAt(o)+this._base64_keyStr.charAt(s);return a},String.prototype.base64decode=function(){for(var e,t,n,r,i,o,s="",a=0,l=""+this;a>4,t=(15&r)<<4|(i=this._base64_keyStr.indexOf(l.charAt(a++)))>>2,n=(3&i)<<6|(o=this._base64_keyStr.indexOf(l.charAt(a++))),s+=String.fromCharCode(e),64!=i&&(s+=String.fromCharCode(t)),64!=o&&(s+=String.fromCharCode(n));return s},String.prototype.md5=function(){if(this.length){return function(e){function t(e,t){return e<>>32-t}function n(e,t){var n,r,i,o,s;return i=2147483648&e,o=2147483648&t,s=(1073741823&e)+(1073741823&t),(n=1073741824&e)&(r=1073741824&t)?2147483648^s^i^o:n|r?1073741824&s?3221225472^s^i^o:1073741824^s^i^o:s^i^o}function r(e,r,i,o,s,a,l){var c,u,d;return n(t(e=n(e,n(n((c=r,u=i,d=o,c&u|~c&d),s),l)),a),r)}function i(e,r,i,o,s,a,l){var c,u,d;return n(t(e=n(e,n(n((c=r,u=i,d=o,c&d|u&~d),s),l)),a),r)}function o(e,r,i,o,s,a,l){var c,u,d;return n(t(e=n(e,n(n((c=r,u=i,d=o,c^u^d),s),l)),a),r)}function s(e,r,i,o,s,a,l){var c,u,d;return n(t(e=n(e,n(n((c=r,u=i,d=o,u^(c|~d)),s),l)),a),r)}function a(e){var t,n="",r="";for(t=0;t<=3;t++)n+=(r="0"+(e>>>8*t&255).toString(16)).substr(r.length-2,2);return n}var l,c,u,d,h,m,g,p,f,y=Array();for(y=function(e){for(var t,n=e.length,r=n+8,i=16*((r-r%64)/64+1),o=Array(i-1),s=0,a=0;a>>29,o}(e=function(e){e=e.replace(/rn/g,"n");for(var t="",n=0;n127&&r<2048?(t+=String.fromCharCode(r>>6|192),t+=String.fromCharCode(63&r|128)):(t+=String.fromCharCode(r>>12|224),t+=String.fromCharCode(r>>6&63|128),t+=String.fromCharCode(63&r|128))}return t}(e)),m=1732584193,g=4023233417,p=2562383102,f=271733878,l=0;l=0&&(a.month=n),n>=0}],"%B":[/[^\d\s\.\/\-]{2,}/,function(t){var n=_.indexOf(_.map(e.months,_.toLower),_.toLower(t));return n>=0&&(a.month=n),n>=0}],"%y":[/\d\d/,function(e){var t=parseInt(s.getFullYear().toString().substring(2))+5;return a.year=parseInt(e),a.yearr){var i=n;n=r,r=i}for(var o=Math.round((r-n)/864e5)+1,s=0;s(n=this.getDay())&&(n+=7),n-t},Date.prototype.firstWeekOfYearForDate=function(e){var t,n,r;return t=e.firstWeekOfYear,(r=new Date(this.getTime())).setMonth(0),r.setDate(1),n=r.dayOfWeek(e),"First4DayWeek"==t?n<4?r.beginOfWeek(e.firstDayOfWeek):r.addDays(7).beginOfWeek(e.firstDayOfWeek):"FirstFullWeek"==t?0===n?r.beginOfWeek(e.firstDayOfWeek):r.addDays(7).beginOfWeek(e.firstDayOfWeek):r.beginOfWeek(e.firstDayOfWeek)},Date.prototype.getWeek=function(e){var t,n,r,i;return(i=new Date(this.getTime())).addDays(6),(t=i.firstWeekOfYearForDate(e)).getTime()0&&(t-=7);var n=this.beginOfDay();return n.setHours(12),n.addDays(t),n},Date.prototype.endOfWeek=function(e){var t=this.beginOfWeek(e);return t.addDays(6),t.setHours(23),t.setMinutes(59),t.setSeconds(59),t.setMilliseconds(999),t},Date.prototype.getDayString=function(){var e=this.getYear();e<1e3&&(e+=1900);var t=""+(this.getMonth()+1);1==t.length&&(t="0"+t),e+=t;var n=""+this.getDate();return 1==n.length&&(n="0"+n),e+=n},Date.prototype.getHourString=function(){var e=this.getHours()+"00";return 3==e.length&&(e="0"+e),e},Date.prototype.format=function(e,t){var n,r,i,o,s=[],a=/%[deaAmbByYUHIMp]/g,c={"%d":this.getDate(),"%e":this.getDate(),"%a":e.shortDays[this.getDay()],"%A":e.days[this.getDay()],"%m":this.getMonth()+1,"%b":e.shortMonths[this.getMonth()],"%B":e.months[this.getMonth()],"%y":this.getFullYear().toString().substring(2),"%Y":this.getFullYear(),"%U":this.getWeek(e),"%H":this.getHours(),"%M":this.getMinutes()};for(c["%I"]=c["%H"]>12?c["%H"]%12:c["%H"],c["%p"]=c["%H"]<12?l("AM"):l("PM"),c["%d"]=(c["%d"]<10?"0":"")+c["%d"],c["%e"]=(c["%e"]<10?" ":"")+c["%e"],c["%m"]=(c["%m"]<10?"0":"")+c["%m"],c["%H"]=(c["%H"]<10?"0":"")+c["%H"],c["%I"]=(c["%I"]<10?"0":"")+c["%I"],c["%M"]=(c["%M"]<10?"0":"")+c["%M"],n=t.replace(a,"\0").split("\0"),i=0,o=(r=t.match(a)).length;i<=o;i++)n.length&&s.push(n.shift()),s.push(c[r[i]]);return s.join("")};function l(){var e,t,n=arguments[0],r=n,i=arguments;for(labels[n]?r=labels[n]:clabels[n]&&(r=clabels[n]),e=1,t=0;e1&&(r=r.replace(/%((%)|s|d)/g,function(t){var n=null;if(t[2])n=t[2];else{switch(n=i[e],t){case"%d":n=parseFloat(n),isNaN(n)&&(n=0)}e++}return n})),r}function hexToRgb(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function contrast(e){var t,n,r=1;if(t=hexToRgb(e)){n=[t.r/255,t.g/255,t.b/255];for(var i=0;i.179?"black":"white"}function guid(){function e(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return(e()+e()+"-"+e()+"-4"+e().substr(0,3)+"-"+e()+"-"+e()+e()+e()).toLowerCase()}
//# sourceMappingURL=Common.js.map
\ No newline at end of file
diff --git a/UI/WebServerResources/js/Common.js.map b/UI/WebServerResources/js/Common.js.map
index 6a9f31fd7..0c5a464c1 100644
--- a/UI/WebServerResources/js/Common.js.map
+++ b/UI/WebServerResources/js/Common.js.map
@@ -1 +1 @@
-{"version":3,"sources":["Common/Common.app.js","Common/mdColors.app.js","Common/decodeUri.filter.js","Common/encodeUri.filter.js","Common/ensureTarget.filter.js","Common/loc.filter.js","Common/range.filter.js","Common/txt2html.filter.js","Common/AclController.js","Common/navController.js","Common/Acl.service.js","Common/Alarm.service.js","Common/Authentication.service.js","Common/Dialog.service.js","Common/Gravatar.service.js","Common/Resource.service.js","Common/sgFocus.service.js","Common/sgHotkeys.service.js","Common/User.service.js","Common/sgAvatarImage.directive.js","Common/sgBlockToggle.directive.js","Common/sgCheckmark.directive.js","Common/sgColorPicker.directive.js","Common/sgCompile.directive.js","Common/sgDatepickerReadonlyInput.directive.js","Common/sgDraggable.directive.js","Common/sgDroppable.directive.js","Common/sgEnter.directive.js","Common/sgEscape.directive.js","Common/sgFocus.directive.js","Common/sgFolderStylesheet.directive.js","Common/sgNoDirtyCheck.directive.js","Common/sgPlaceholder.directive.js","Common/sgResetOnDisabled.directive.js","Common/sgRippleClick.directive.js","Common/sgSearch.directive.js","Common/sgSelectOnly.directive.js","Common/sgSubscribe.directive.js","Common/sgTimepicker.directive.js","Common/sgToggleGrid.directive.js","Common/utils.js"],"names":["angular","module","value","isPopup","document","body","classList","contains","baseURL","ApplicationBaseURL","resourcesURL","ResourcesURL","activeUser","param","settings","login","UserLogin","identification","UserIdentification","email","UserEmail","language","UserLanguage","folderURL","UserFolderURL","isSuperUser","IsSuperUser","path","calendar","UserCalendarPath","contacts","UserContactsPath","mail","UserMailPath","preferences","UserPreferencesPath","administration","UserAdministrationPath","help","HelpURL","logoff","UserLogoffPath","minimumSearchLength","isNumber","constant","selection","xs","gt-xs","sm","gt-sm","md","gt-md","lg","gt-lg","xl","print","config","configure","factory","AuthInterceptor","ErrorInterceptor","$inject","$logProvider","$compileProvider","$httpProvider","$mdThemingProvider","$mdAriaProvider","definePalette","50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700","contrastDefaultColor","contrastLightColors","contrastDarkColors","1000","greyMap","extendPalette","theme","primaryPalette","default","hue-1","hue-2","hue-3","accentPalette","backgroundPalette","DebugEnabled","debugEnabled","debugInfoEnabled","disableWarnings","generateThemesOnDemand","interceptors","push","$window","$q","response","test","headers","Accept","data","location","reload","reject","$rootScope","$injector","responseError","rejection","deferred","iframe","usesCASAuthentication","status","defer","element","on","get","$http","then","resolve","remove","appendChild","promise","usesSAML2Authentication","$broadcast","_$mdThemingProvider","run","runBlock","$interpolate","$document","$log","buildCssSelectors","selectors","join","fgDefault","bgDefault","bdrDefault","fgDefaultHue","bgDefaultHue","fgColor","bgColor","bdrColor","fgHue","bgHue","customSheet","style","head","querySelector","createElement","title","createTextNode","sheet","getStyleSheet","index","cssRules","length","deleteRule","forEach","_THEMES","themeName","addRule","_PALETTES","colors","primary","name","hues","addBorderRule","color","paletteName","fgInterpolate","bgInterpolate","colorArray","hueName","context","palette","contrast","hue","insertRule","bdrInterpolate","colorValue","decodeUri","decodeURIComponent","filter","encodeUri","encodeURIComponent","ensureTarget","$sce","tree","find","attr","trustAs","html","l","n","res","i","parseInt","txt2html","linkyFilter","text","String","replace","undefined","AclController","$timeout","$mdDialog","Dialog","usersWithACL","User","folder","vm","this","users","selectedUser","selectedUid","userToAdd","searchText","folderClassName","isFunction","getClassName","templateName","user","getElementById","$isAnonymous","userFilter","$query","$filter","$acl","closeModal","$resetUsersRights","hide","saveModal","$saveUsersRights","alert","confirmChange","confirmation","$confirmRights","showing","message","removeUser","$removeUser","uid","addUser","$addUser","selectUser","selectAllRights","$selectAllRights","showRights","inactive","$event","target","parentNode","$rights","controller","navController","$scope","$interval","$mdSidenav","$mdToast","$mdMedia","sgConstant","sgSettings","Resource","Alarm","resource","$onInit","leftIsClose","centerIsClose","currentDay","window","secondsBeforeTomorrow","$watch","newVal","isGtMedium","$on","onHttpError","getAlarms","toggleLeft","isOpen","triggerHandler","toggle","debug","toggleRight","toggleCenter","options","save","post","state","event","isString","statusText","show","template","hideDelay","position","Acl","folderId","Settings","extend","$$resource","$User","prototype","$users","owner","_this","isDefined","userResource","fetch","canSubscribeUser","isSubscribed","wasSubscribed","bind","_","indexOf","map","userClass","isGroup","$shadowRights","splice","rights","right","$resetRights","deferredSave","deferredSubscribe","action","$rightsAreDirty","$omit","copy","uids","all","currentAlarm","now","Date","browserTime","Math","floor","getTime","alarms","sort","a","b","x","next","pop","utc","url","alarmTime","delay","f","showAlarm","cancel","$toast","locals","AlarmController","scope","summary","reminder","close","snooze","AlarmService","PolicyPasswordChangeUnsupported","PolicyPasswordSystemUnknown","PolicyPasswordUnknown","PolicyPasswordExpired","PolicyAccountLocked","PolicyChangeAfterReset","PolicyPasswordModNotAllowed","PolicyMustSupplyOldPassword","PolicyInsufficientPasswordQuality","PolicyPasswordTooShort","PolicyPasswordTooYoung","PolicyPasswordInHistory","PolicyNoError","provider","redirectUrl","username","domain","userName","address","baseAddress","parts","hostpart","protocol","href","split","startsWith","endsWith","$get","getService","$cookies","passwordPolicyConfig","readLoginCookie","loginValues","cookie","substr","base64decode","d","password","rememberLogin","loginSuffix","method","loginCookie","expire","grace","cn","msg","perr","LDAPPasswordPolicyError","error","changePassword","newPassword","xsrfCookie","X-XSRF-TOKEN","formatted","put","content","$modal","htmlContent","ok","multiple","confirm","prompt","label","o","id","asCSSIdentifier","parent","clickOutsideToClose","escapeToClose","inputType","PromptDialogController","DialogService","size","alternate_avatar","y","hash","s","substring","md5","no_404","_http","_q","_path","_activeUser","$factory","compact","escape","arguments","Array","apply","slice","call","params","flatten","newguid","create","newValue","download","type","accept","responseType","cache","transformResponse","fileName","blob","Error","Blob","filename","header","trim","saveAs","sgFocus","sgHotkeys","$sgHotkeys","service","KEY_CODES","8","9","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","96","97","98","99","101","102","103","104","105","106","107","109","110","111","112","113","114","115","116","117","118","119","120","121","122","123","CHAR_CODES","42","63","HotKey","guid","key","description","callback","preventInClass","args","onKeyUp","lkey","clone","Hotkeys","_hotkeys","_hotkeysUp","_preventIn","_preventInClass","_onKeydown","_onKeyup","_onKeypress","initialize","registerHotkey","createHotkey","_toggleCheatSheet","addEventListener","_invokeHotkeyHandlers","keyString","hotkeys","hotkey","srcElement","nodeName","toUpperCase","includes","intersection","e","console","keyStringFromEvent","charCode","keyCode","which","result","fromCharCode","toLowerCase","ctrlKey","altKey","shiftKey","metaKey","uniq","_deregisterHotkey","ret","table","callbackArray","callbackData","deregisterHotkey","_validateHotkey","isArray","TypeError","_registerKey","_registerKeys","registerHotkeyUp","fn","$apply","match","eventHotkey","Boolean","_cheatSheet","CheatSheetController","finally","closeDialog","userData","init","search","excludedUsers","dry","when","results","compareUids","isUndefined","$$shortFormat","$shortFormat","$$image","image","$avatarIcon","$isGroup","$isSpecial","empty","$fullname","fullname","c_info","c_email","$confirmation","some","values","constructor","isEqual","zero","keys","$folders","$$folders","folders","toString","sgAvatarImageController","$element","Preferences","Gravatar","toggleZoomFcn","off","old","urlEmail","showGenericAvatar","defaults","SOGoGravatarEnabled","SOGoAlternateAvatar","hideGenericAvatar","getGravatar","attributes","src","addClass","toggleClass","img","genericImg","removeClass","directive","restrict","bindToController","transclude","link","attrs","deregisterWatcher","imgElement","mdIcons","mdIconElement","mdBadgeElement","css","ngDisabled","isDisabled","disabled","display","controllerAs","sgBlockToggle","$mdUtil","$animateCss","$$rAF","button","icon","icon_rotate_class","block","add","visibility","targetHeight","scrollHeight","easing","to","height","duration","start","renderContent","setAttribute","sgCheckmarkDirective","$parse","$mdAria","$mdTheming","CHECKED_CSS","require","compile","tElement","tAttrs","hasAttribute","stopImmediatePropagation","ngModelCtrl","trueValue","parseConstantExpr","sgTrueValue","falseValue","sgFalseValue","fakeNgModel","expectWithText","ev","viewValue","$viewValue","$setViewValue","$render","expression","fallback","parseFn","sgColorPickerController","$mdPanel","sgColors","$ctrl","ngModelController","$postLink","buttonIcon","updateColor","newColor","showPicker","panelPosition","newPanelPosition","relativeTo","addPanelPosition","xPosition","ALIGN_START","yPosition","ALIGN_TOPS","panelAnimation","newPanelAnimation","openFrom","withAnimation","animation","FADE","columns","column","currentColor","currentContrastColor","selected","attachTo","MenuController","targetEvent","trapFocus","focusOnOpen","open","panelRef","panelEl","one","mdPanelRef","$state","setColor","currentTarget","parentElement","children","tile","sgCompile","$compile","ensureCompileRunsOnce","$eval","contents","datepickerCtrl","listener","eq","input","prop","sgDraggable","dragStart","count","sgDragStart","sgDragCount","sgDraggableObject","$destroy","helper","bindedOnDragDetect","onDragDetect","bindedOnDrag","onDrag","dragHasStarted","getDistanceFromStart","delta","startPosition","clientX","clientY","sqrt","stopPropagation","onDragEnd","counter","$emit","isRemote","top","pageY","left","pageX","sgDroppable","dropAction","droppable","deregisterFolderDragStart","deregisterFolderDragEnd","overElement","sgDrop","dragFolder","onEnter","onLeave","mode","dragMode","sgEnter","preventDefault","elem","sgEscape","sgFocusOn","focus","select","ngModel","transparent","hex","ratio","hexToRgb","r","g","clean","$pristine","$dirty","placeholder","$invalid","date","sgRippleClick","ripple","container","containerId","coordinates","getBoundingClientRect","overflow","scrollTop","offsetTop","offsetLeft","width","sgSearchPreTransclude","priority","tAttr","inputEl","selectEl","buttonEl","removeAttr","iElement","iAttr","compiledButtonEl","formName","inputName","allowDot","fields","doSearch","cancelSearch","sgSearchController","searchTextOptions","updateOn","debounce","blur","waitforFieldsOnce","searchField","onChange","form","rawSearchText","$valid","$setValidity","append","autoComplete","selectedItem","$applyAsync","sgSubscribe","folderType","onFolderSelect","sgSubscribeDialogController","showDialog","templateUrl","sgSubscribeController","$setTouched","selectFolder","folderData","TimePaneCtrl","controllers","sgTimePaneCtrl","mdInputContainer","configureNgModel","nextUniqueId","$$mdDateUtil","$mdConstant","$attrs","$mdDateLocale","m","dateUtil","KEY_CODE","timePaneElement","SELECTED_TIME_CLASS","FOCUSED_TIME_CLASS","displayTime","selectedTime","isInitialized","hours","displayName","min5","min1","ii","show5min","getToggleBtnLbl","is5min","toggleManual5min","manual5min","tabindex","self","hourClickHandler","displayVal","updated","setHours","Number","setNgModelValue","minuteClickHandler","val","setMinutes","boundKeyHandler","handleKeyEvent","nextTick","changeSelectedTime","previousSelectedTime","prevH","getHours","prevHCell","prevM","getMinutes","prevMCell","prevM5Cell","mCell","newH","hCell","newM","changed","ESCAPE","TAB","ENTER","opt_date","today","previousFocus","timePickerDirective","ariaLabelValue","ariaLabel","mdPlaceholder","TimePickerCtrl","mdTimePickerCtrl","parentForm","parseAttributeBoolean","mdNoAsterisk","parentSubmittedWatcher","$submitted","isSubmitted","updateErrorState","INVALID_CLASS","OPEN_CLASS","TIME_PANE_HEIGHT","MIN5","GTXS","XS","MIN1","TIME_PANE_WIDTH","IS_MOBILE_REGEX","dateLocale","documentElement","inputElement","ngInputElement","inputContainer","timePane","timeButton","inputMask","isFocused","setDisabled","isTimeOpen","timePaneOpenedFrom","timePaneId","nextUid","bodyClickHandler","handleBodyClick","windowEventName","navigator","userAgent","vendor","opera","windowEventHandler","closeTimePane","windowBlurHandler","handleWindowBlur","leftMargin","topMargin","$set","installPropertyInterceptors","attachChangeListeners","attachInteractionListeners","detachTimePane","$formatters","time","formatTime","resizeInputElement","$viewChangeListeners","unshift","debounceInterval","handleInputEvent","keyCodes","DOWN_ARROW","openTimePane","$digest","$parent","Object","defineProperty","set","clearErrorState","isValidDate","field","inputString","parsedTime","parseTime","attachTimePane","transform","elementRect","bodyRect","paneTop","paneLeft","viewportTop","viewportLeft","scrollLeft","viewportBottom","innerHeight","viewportRight","innerWidth","paneWidth","scale","min","paneHeight","enableScrolling","removeChild","disableScrollAround","evalAttr","removeEventListener","getTimePaneCtrl","focusTime","ctrl","setFocused","getClosest","inputFocusedOnWindowBlur","activeElement","sgToggleGrid","$mdColors","modelAttr","tiles","modelDays","flattenedDays","sgToggleGridAttr","$validate","setInvalid","$isEmpty","day","findIndex","$setDirty","invalid","tagName","getThemeColor","suffix","pattern","lastIndexOf","encodeEntities","charCodeAt","_base64_keyStr","base64encode","chr1","chr2","chr3","enc1","enc2","enc3","enc4","output","utf8encode","isNaN","charAt","L","k","K","G","I","F","H","u","aa","Z","D","t","B","P","h","E","v","Y","X","W","V","C","J","capitalize","asDate","newDate","newString","isValidEmail","characters","escapeds","re","RegExp","timeInterval","parseDate","localeProvider","format","string","formattingTokens","tokens","token","regexes","parsedInput","matchesCount","year","getYear","month","getMonth","getDate","hour","minute","%d","%e","%m","%b","shortMonths","toLower","%B","months","%y","nearFuture","getFullYear","%Y","%H","%I","%M","%p","linput","am","pm","NaN","daysUpTo","otherDate","days","day1","day2","tmp","nbrDays","round","setTime","minutesTo","valueOf","getTimezoneOffset","stringWithSeparator","separator","str","addDays","initialDate","milliSeconds","dstOffset","addHours","nbrHours","addMinutes","nbrMinutes","beginOfDay","setSeconds","setMilliseconds","dayOfWeek","offset","baseDayOfWeek","firstDayOfWeek","getDay","firstWeekOfYearForDate","firstWeekRule","januaryFirst","firstWeekOfYear","setMonth","setDate","beginOfWeek","getWeek","firstWeek","previousWeek","weekNumber","endOfWeek","getDayString","getHourString","separators","max","validParts","%a","shortDays","%A","%U","shift","j","labels","clabels","parseFloat","exec","c","pow","S4","random"],"mappings":"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","file":"Common.js"}
\ No newline at end of file
+{"version":3,"sources":["Common/Common.app.js","Common/mdColors.app.js","Common/decodeUri.filter.js","Common/encodeUri.filter.js","Common/ensureTarget.filter.js","Common/loc.filter.js","Common/range.filter.js","Common/txt2html.filter.js","Common/AclController.js","Common/navController.js","Common/Acl.service.js","Common/Alarm.service.js","Common/Authentication.service.js","Common/Dialog.service.js","Common/Gravatar.service.js","Common/Resource.service.js","Common/sgFocus.service.js","Common/sgHotkeys.service.js","Common/User.service.js","Common/sgAvatarImage.directive.js","Common/sgBlockToggle.directive.js","Common/sgCheckmark.directive.js","Common/sgColorPicker.directive.js","Common/sgCompile.directive.js","Common/sgDatepickerReadonlyInput.directive.js","Common/sgDraggable.directive.js","Common/sgDroppable.directive.js","Common/sgEnter.directive.js","Common/sgEscape.directive.js","Common/sgFocus.directive.js","Common/sgFolderStylesheet.directive.js","Common/sgNoDirtyCheck.directive.js","Common/sgPlaceholder.directive.js","Common/sgResetOnDisabled.directive.js","Common/sgRippleClick.directive.js","Common/sgSearch.directive.js","Common/sgSelectOnly.directive.js","Common/sgSubscribe.directive.js","Common/sgTimepicker.directive.js","Common/sgToggleGrid.directive.js","Common/utils.js"],"names":["angular","module","value","isPopup","document","body","classList","contains","baseURL","ApplicationBaseURL","resourcesURL","ResourcesURL","activeUser","param","settings","login","UserLogin","identification","UserIdentification","email","UserEmail","language","UserLanguage","folderURL","UserFolderURL","isSuperUser","IsSuperUser","path","calendar","UserCalendarPath","contacts","UserContactsPath","mail","UserMailPath","preferences","UserPreferencesPath","administration","UserAdministrationPath","help","HelpURL","logoff","UserLogoffPath","minimumSearchLength","isNumber","constant","selection","xs","gt-xs","sm","gt-sm","md","gt-md","lg","gt-lg","xl","print","config","configure","factory","AuthInterceptor","ErrorInterceptor","$inject","$logProvider","$compileProvider","$httpProvider","$mdThemingProvider","$mdAriaProvider","definePalette","50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700","contrastDefaultColor","contrastLightColors","contrastDarkColors","1000","greyMap","extendPalette","theme","primaryPalette","default","hue-1","hue-2","hue-3","accentPalette","backgroundPalette","DebugEnabled","debugEnabled","debugInfoEnabled","disableWarnings","generateThemesOnDemand","interceptors","push","$window","$q","response","test","headers","Accept","data","location","reload","reject","$rootScope","$injector","responseError","rejection","deferred","iframe","usesCASAuthentication","status","defer","element","on","get","$http","then","resolve","remove","appendChild","promise","usesSAML2Authentication","$broadcast","_$mdThemingProvider","run","runBlock","$interpolate","$document","$log","buildCssSelectors","selectors","join","fgDefault","bgDefault","bdrDefault","fgDefaultHue","bgDefaultHue","fgColor","bgColor","bdrColor","fgHue","bgHue","customSheet","style","head","querySelector","createElement","title","createTextNode","sheet","getStyleSheet","index","cssRules","length","deleteRule","forEach","_THEMES","themeName","addRule","_PALETTES","colors","primary","name","hues","addBorderRule","color","paletteName","fgInterpolate","bgInterpolate","colorArray","hueName","context","palette","contrast","hue","insertRule","bdrInterpolate","colorValue","decodeUri","decodeURIComponent","filter","encodeUri","encodeURIComponent","ensureTarget","$sce","tree","find","attr","trustAs","html","l","n","res","i","parseInt","txt2html","linkyFilter","text","String","replace","undefined","AclController","$timeout","$mdDialog","Dialog","usersWithACL","User","folder","vm","this","users","selectedUser","selectedUid","userToAdd","searchText","folderClassName","isFunction","getClassName","templateName","user","getElementById","$isAnonymous","userFilter","$query","$filter","$acl","closeModal","$resetUsersRights","hide","saveModal","$saveUsersRights","alert","confirmChange","confirmation","$confirmRights","showing","message","removeUser","$removeUser","uid","addUser","$addUser","selectUser","selectAllRights","$selectAllRights","showRights","inactive","$event","target","parentNode","$rights","controller","navController","$scope","$interval","$mdSidenav","$mdToast","$mdMedia","sgConstant","sgSettings","Resource","Alarm","resource","$onInit","leftIsClose","centerIsClose","currentDay","window","secondsBeforeTomorrow","$watch","newVal","isGtMedium","$on","onHttpError","getAlarms","toggleLeft","isOpen","triggerHandler","toggle","debug","toggleRight","toggleCenter","options","save","post","state","event","isString","statusText","show","template","hideDelay","position","Acl","folderId","Settings","extend","$$resource","$User","prototype","$users","owner","_this","isDefined","userResource","fetch","canSubscribeUser","isSubscribed","wasSubscribed","bind","_","indexOf","map","userClass","isGroup","$shadowRights","splice","rights","right","$resetRights","deferredSave","deferredSubscribe","action","$rightsAreDirty","$omit","copy","uids","all","currentAlarm","now","Date","browserTime","Math","floor","getTime","alarms","sort","a","b","x","next","pop","utc","url","alarmTime","delay","f","showAlarm","cancel","$toast","locals","AlarmController","scope","summary","reminder","close","snooze","AlarmService","PolicyPasswordChangeUnsupported","PolicyPasswordSystemUnknown","PolicyPasswordUnknown","PolicyPasswordExpired","PolicyAccountLocked","PolicyChangeAfterReset","PolicyPasswordModNotAllowed","PolicyMustSupplyOldPassword","PolicyInsufficientPasswordQuality","PolicyPasswordTooShort","PolicyPasswordTooYoung","PolicyPasswordInHistory","PolicyNoError","provider","redirectUrl","username","domain","userName","address","baseAddress","parts","hostpart","protocol","href","split","startsWith","endsWith","$get","getService","$cookies","passwordPolicyConfig","readLoginCookie","loginValues","cookie","substr","base64decode","d","password","rememberLogin","loginSuffix","method","loginCookie","expire","grace","cn","msg","perr","LDAPPasswordPolicyError","error","changePassword","newPassword","xsrfCookie","X-XSRF-TOKEN","formatted","put","content","$modal","htmlContent","ok","multiple","confirm","prompt","label","o","id","asCSSIdentifier","parent","clickOutsideToClose","escapeToClose","inputType","PromptDialogController","DialogService","size","alternate_avatar","y","hash","s","substring","md5","no_404","_http","_q","_window","_path","_activeUser","$factory","compact","escape","arguments","Array","apply","slice","call","params","flatten","newguid","create","newValue","download","type","accept","responseType","cache","transformResponse","fileName","blob","Error","Blob","filename","header","trim","saveAs","open","sgFocus","sgHotkeys","$sgHotkeys","service","KEY_CODES","8","9","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","96","97","98","99","101","102","103","104","105","106","107","109","110","111","112","113","114","115","116","117","118","119","120","121","122","123","CHAR_CODES","42","63","HotKey","guid","key","description","callback","preventInClass","args","onKeyUp","lkey","clone","Hotkeys","_hotkeys","_hotkeysUp","_preventIn","_preventInClass","_onKeydown","_onKeyup","_onKeypress","initialize","registerHotkey","createHotkey","_toggleCheatSheet","addEventListener","_invokeHotkeyHandlers","keyString","hotkeys","hotkey","srcElement","nodeName","toUpperCase","includes","intersection","e","console","keyStringFromEvent","charCode","keyCode","which","result","fromCharCode","toLowerCase","ctrlKey","altKey","shiftKey","metaKey","uniq","_deregisterHotkey","ret","table","callbackArray","callbackData","deregisterHotkey","_validateHotkey","isArray","TypeError","_registerKey","_registerKeys","registerHotkeyUp","fn","$apply","match","eventHotkey","Boolean","_cheatSheet","CheatSheetController","finally","closeDialog","userData","init","search","excludedUsers","dry","when","results","compareUids","isUndefined","$$shortFormat","$shortFormat","$$image","image","$avatarIcon","$isGroup","$isSpecial","empty","$fullname","fullname","c_info","c_email","$confirmation","some","values","constructor","isEqual","zero","keys","$folders","$$folders","folders","toString","sgAvatarImageController","$element","Preferences","Gravatar","toggleZoomFcn","off","old","urlEmail","showGenericAvatar","defaults","SOGoGravatarEnabled","SOGoAlternateAvatar","hideGenericAvatar","getGravatar","attributes","src","addClass","toggleClass","img","genericImg","removeClass","directive","restrict","bindToController","transclude","link","attrs","deregisterWatcher","imgElement","mdIcons","mdIconElement","mdBadgeElement","css","ngDisabled","isDisabled","disabled","display","controllerAs","sgBlockToggle","$mdUtil","$animateCss","$$rAF","button","icon","icon_rotate_class","block","add","visibility","targetHeight","scrollHeight","easing","to","height","duration","start","renderContent","setAttribute","sgCheckmarkDirective","$parse","$mdAria","$mdTheming","CHECKED_CSS","require","compile","tElement","tAttrs","hasAttribute","stopImmediatePropagation","ngModelCtrl","trueValue","parseConstantExpr","sgTrueValue","falseValue","sgFalseValue","fakeNgModel","expectWithText","ev","viewValue","$viewValue","$setViewValue","$render","expression","fallback","parseFn","sgColorPickerController","$mdPanel","sgColors","$ctrl","ngModelController","$postLink","buttonIcon","updateColor","newColor","showPicker","panelPosition","newPanelPosition","relativeTo","addPanelPosition","xPosition","ALIGN_START","yPosition","ALIGN_TOPS","panelAnimation","newPanelAnimation","openFrom","withAnimation","animation","FADE","columns","column","currentColor","currentContrastColor","selected","attachTo","MenuController","targetEvent","trapFocus","focusOnOpen","panelRef","panelEl","one","mdPanelRef","$state","setColor","currentTarget","parentElement","children","tile","sgCompile","$compile","ensureCompileRunsOnce","$eval","contents","datepickerCtrl","listener","eq","input","prop","sgDraggable","dragStart","count","sgDragStart","sgDragCount","sgDraggableObject","$destroy","helper","bindedOnDragDetect","onDragDetect","bindedOnDrag","onDrag","dragHasStarted","getDistanceFromStart","delta","startPosition","clientX","clientY","sqrt","stopPropagation","onDragEnd","counter","$emit","isRemote","top","pageY","left","pageX","sgDroppable","dropAction","droppable","deregisterFolderDragStart","deregisterFolderDragEnd","overElement","sgDrop","dragFolder","onEnter","onLeave","mode","dragMode","sgEnter","preventDefault","elem","sgEscape","sgFocusOn","focus","select","ngModel","transparent","hex","ratio","hexToRgb","r","g","clean","$pristine","$dirty","placeholder","$invalid","date","sgRippleClick","ripple","container","containerId","coordinates","getBoundingClientRect","overflow","scrollTop","offsetTop","offsetLeft","width","sgSearchPreTransclude","priority","tAttr","inputEl","selectEl","buttonEl","removeAttr","iElement","iAttr","compiledButtonEl","formName","inputName","allowDot","fields","doSearch","cancelSearch","sgSearchController","searchTextOptions","updateOn","debounce","blur","waitforFieldsOnce","searchField","onChange","form","rawSearchText","$valid","$setValidity","append","autoComplete","selectedItem","$applyAsync","sgSubscribe","folderType","onFolderSelect","sgSubscribeDialogController","showDialog","templateUrl","sgSubscribeController","$setTouched","selectFolder","folderData","TimePaneCtrl","controllers","sgTimePaneCtrl","mdInputContainer","configureNgModel","nextUniqueId","$$mdDateUtil","$mdConstant","$attrs","$mdDateLocale","m","dateUtil","KEY_CODE","timePaneElement","SELECTED_TIME_CLASS","FOCUSED_TIME_CLASS","displayTime","selectedTime","isInitialized","hours","displayName","min5","min1","ii","show5min","getToggleBtnLbl","is5min","toggleManual5min","manual5min","tabindex","self","hourClickHandler","displayVal","updated","setHours","Number","setNgModelValue","minuteClickHandler","val","setMinutes","boundKeyHandler","handleKeyEvent","nextTick","changeSelectedTime","previousSelectedTime","prevH","getHours","prevHCell","prevM","getMinutes","prevMCell","prevM5Cell","mCell","newH","hCell","newM","changed","ESCAPE","TAB","ENTER","opt_date","today","previousFocus","timePickerDirective","ariaLabelValue","ariaLabel","mdPlaceholder","TimePickerCtrl","mdTimePickerCtrl","parentForm","parseAttributeBoolean","mdNoAsterisk","parentSubmittedWatcher","$submitted","isSubmitted","updateErrorState","INVALID_CLASS","OPEN_CLASS","TIME_PANE_HEIGHT","MIN5","GTXS","XS","MIN1","TIME_PANE_WIDTH","IS_MOBILE_REGEX","dateLocale","documentElement","inputElement","ngInputElement","inputContainer","timePane","timeButton","inputMask","isFocused","setDisabled","isTimeOpen","timePaneOpenedFrom","timePaneId","nextUid","bodyClickHandler","handleBodyClick","windowEventName","navigator","userAgent","vendor","opera","windowEventHandler","closeTimePane","windowBlurHandler","handleWindowBlur","leftMargin","topMargin","$set","installPropertyInterceptors","attachChangeListeners","attachInteractionListeners","detachTimePane","$formatters","time","formatTime","resizeInputElement","$viewChangeListeners","unshift","debounceInterval","handleInputEvent","keyCodes","DOWN_ARROW","openTimePane","$digest","$parent","Object","defineProperty","set","clearErrorState","isValidDate","field","inputString","parsedTime","parseTime","attachTimePane","transform","elementRect","bodyRect","paneTop","paneLeft","viewportTop","viewportLeft","scrollLeft","viewportBottom","innerHeight","viewportRight","innerWidth","paneWidth","scale","min","paneHeight","enableScrolling","removeChild","disableScrollAround","evalAttr","removeEventListener","getTimePaneCtrl","focusTime","ctrl","setFocused","getClosest","inputFocusedOnWindowBlur","activeElement","sgToggleGrid","$mdColors","modelAttr","tiles","modelDays","flattenedDays","sgToggleGridAttr","$validate","setInvalid","$isEmpty","day","findIndex","$setDirty","invalid","tagName","getThemeColor","suffix","pattern","lastIndexOf","encodeEntities","charCodeAt","_base64_keyStr","base64encode","chr1","chr2","chr3","enc1","enc2","enc3","enc4","output","utf8encode","isNaN","charAt","L","k","K","G","I","F","H","u","aa","Z","D","t","B","P","h","E","v","Y","X","W","V","C","J","capitalize","asDate","newDate","newString","isValidEmail","characters","escapeds","re","RegExp","timeInterval","parseDate","localeProvider","format","string","formattingTokens","tokens","token","regexes","parsedInput","matchesCount","year","getYear","month","getMonth","getDate","hour","minute","%d","%e","%m","%b","shortMonths","toLower","%B","months","%y","nearFuture","getFullYear","%Y","%H","%I","%M","%p","linput","am","pm","NaN","daysUpTo","otherDate","days","day1","day2","tmp","nbrDays","round","setTime","minutesTo","valueOf","getTimezoneOffset","stringWithSeparator","separator","str","addDays","initialDate","milliSeconds","dstOffset","addHours","nbrHours","addMinutes","nbrMinutes","beginOfDay","setSeconds","setMilliseconds","dayOfWeek","offset","baseDayOfWeek","firstDayOfWeek","getDay","firstWeekOfYearForDate","firstWeekRule","januaryFirst","firstWeekOfYear","setMonth","setDate","beginOfWeek","getWeek","firstWeek","previousWeek","weekNumber","endOfWeek","getDayString","getHourString","separators","max","validParts","%a","shortDays","%A","%U","shift","j","labels","clabels","parseFloat","exec","c","pow","S4","random"],"mappings":"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","file":"Common.js"}
\ No newline at end of file
diff --git a/UI/WebServerResources/js/Contacts.services.js b/UI/WebServerResources/js/Contacts.services.js
index adb85186f..b0cb6a185 100644
--- a/UI/WebServerResources/js/Contacts.services.js
+++ b/UI/WebServerResources/js/Contacts.services.js
@@ -1,2 +1,2 @@
-!function(){"use strict";function t(e){if("function"!=typeof e.then)if(this.init(e),this.name&&!this.id){var i=t.$$resource.create("createFolder",this.name);this.$unwrap(i),this.acls={objectEditor:1,objectCreator:1,objectEraser:1}}else this.id&&(this.$acl=new t.$$Acl("Contacts/"+this.id));else this.$unwrap(e)}t.$factory=["$q","$timeout","$log","sgSettings","sgAddressBook_PRELOAD","Resource","Card","Acl","Preferences",function(e,i,r,s,n,a,o,d,u){return angular.extend(t,{$q:e,$timeout:i,$log:r,PRELOAD:n,$$resource:new a(s.activeUser("folderURL")+"Contacts",s.activeUser()),$Card:o,$$Acl:d,$Preferences:u,$query:{value:"",sort:"c_cn",asc:1},activeUser:s.activeUser(),selectedFolder:null,$refreshTimeout:null}),u.settings.Contact.SortingState&&(t.$query.sort=u.settings.Contact.SortingState[0],t.$query.asc=parseInt(u.settings.Contact.SortingState[1])),t}];try{angular.module("SOGo.ContactsUI")}catch(t){angular.module("SOGo.ContactsUI",["SOGo.Common","SOGo.PreferencesUI"])}angular.module("SOGo.ContactsUI").constant("sgAddressBook_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("AddressBook",t.$factory),t.$filterAll=function(e,i,r){var s={search:e};return e?(angular.isUndefined(t.$cards)&&(t.$cards=[]),angular.extend(s,i),t.$$resource.fetch(null,"allContactSearch",s).then(function(i){var s,n,a,o=function(t){return this.id==t.id};for(s=r?_.filter(i.contacts,function(t){return _.isUndefined(_.find(r,_.bind(o,t)))}):i.contacts,a=t.$cards.length-1;a>=0;a--)n=t.$cards[a],_.isUndefined(_.find(s,_.bind(o,n)))&&t.$cards.splice(a,1);return _.forEach(s,function(i,r){if(_.isUndefined(_.find(t.$cards,_.bind(o,i)))){var s=new t.$Card(_.mapKeys(i,function(t,e){return e.toLowerCase()}),e);t.$cards.splice(r,0,s)}}),t.$log.debug(t.$cards),t.$cards})):(t.$cards=[],t.$q.when(t.$cards))},t.$add=function(t){var e,i,r;e=t.isSubscription?this.$subscriptions:this.$addressbooks,r=(i=_.find(e,function(e){return"personal"==t.id||"personal"!=e.id&&1===e.name.localeCompare(t.name)}))?_.indexOf(_.map(e,"id"),i.id):1,e.splice(r,0,t)},t.$findAll=function(e){var i=this;return e&&(this.$addressbooks=[],this.$subscriptions=[],this.$remotes=[],angular.forEach(e,function(e,r){var s=new t(e);s.isRemote?i.$remotes.push(s):s.isSubscription?i.$subscriptions.push(s):i.$addressbooks.push(s)})),_.union(this.$addressbooks,this.$subscriptions,this.$remotes)},t.$subscribe=function(e,i){var r=this;return t.$$resource.userResource(e).fetch(i,"subscribe").then(function(e){var i=new t(e);return _.isUndefined(_.find(r.$subscriptions,function(t){return t.id==e.id}))&&t.$add(i),i})},t.$reloadAll=function(){var e=this;return t.$$resource.fetch("addressbooksList").then(function(i){_.forEach(i.addressbooks,function(i){var r,s;r=i.isRemote?e.$remotes:i.owner!=t.activeUser.login?e.$subscriptions:e.$addressbooks,(s=_.find(r,function(t){return t.id==i.id}))&&s.init(i)})})},t.prototype.init=function(e,i){var r=this;this.$$cards||(this.$$cards=[]),this.idsMap={},this.$cards=[],angular.forEach(e,function(t,e){"headers"!=e&&"cards"!=e&&(r[e]=t)}),this.isOwned=t.activeUser.isSuperUser||this.owner==t.activeUser.login,this.isSubscription=!this.isRemote&&this.owner!=t.activeUser.login},t.prototype.$id=function(){return this.id?t.$q.when(this.id):this.$futureAddressBookData.then(function(t){return t.id})},t.prototype.getLength=function(){return this.$cards.length},t.prototype.getItemAtIndex=function(t){var e;return!this.$isLoading&&t>=0&&t0&&(n=t.$$resource.post(this.id,"headers",{ids:s}),this.$unwrapHeaders(n))}return u},t.prototype.hasSelectedCard=function(){return angular.isDefined(this.selectedCard)},t.prototype.isSelectedCard=function(t){return this.hasSelectedCard()&&this.selectedCard==t},t.prototype.$selectedCard=function(){var t=this;return _.find(this.$cards,function(e){return e.id==t.selectedCard})},t.prototype.$selectedCardIndex=function(){return _.indexOf(_.map(this.$cards,"id"),this.selectedCard)},t.prototype.$selectedCards=function(){return _.filter(this.$cards,function(t){return t.selected})},t.prototype.$selectedCount=function(){var t;return t=0,this.$cards&&(t=_.filter(this.$cards,function(t){return t.selected}).length),t},t.prototype.$startRefreshTimeout=function(){t.$refreshTimeout&&t.$timeout.cancel(t.$refreshTimeout);var e=t.$Preferences.defaults.SOGoRefreshViewCheck;if(e&&"manually"!=e){var i=angular.bind(this,t.prototype.$reload);t.$refreshTimeout=t.$timeout(i,1e3*e.timeInterval())}},t.prototype.$reload=function(){return this.$startRefreshTimeout(),this.$filter()},t.prototype.$filter=function(e,i,r){var s,n=this,a=i&&i.dry;return a?s={value:"",sort:"c_cn",asc:1}:(this.$isLoading=!0,s=t.$query,this.isRemote||(s.partial=1)),i&&(angular.extend(s,i),a&&!e)?(n.$$cards=[],t.$q.when(n.$$cards)):(angular.isDefined(e)&&(s.value=e),n.$id().then(function(i){var o=t.$$resource.post(i,"view",s);return a?o.then(function(s){var a,o,d,u,c,h=n.$$cards,l=function(t){return this==t.id};for(s.headers&&(u=_.invokeMap(s.headers[0],"toLowerCase"),c=u.indexOf("id"),s.headers.splice(0,1),a=_.map(s.headers,function(t){return t[c]})),s.ids&&(a=r?_.filter(s.ids,function(t){return _.isUndefined(_.find(r,_.bind(l,t)))}):s.ids),d=h.length-1;d>=0;d--)o=h[d],_.isUndefined(_.find(a,_.bind(l,o.id)))&&h.splice(d,1);return _.forEach(a,function(r,s){if(_.isUndefined(_.find(h,_.bind(l,r)))){var n=new t.$Card({pid:i,id:r},e);h.splice(s,0,n)}}),_.forEach(a,function(t,e){var i,r;h[e].id!=t&&(i=_.findIndex(h,_.bind(l,t)),r=h.splice(i,1),h.splice(e,0,r[0]))}),_.forEach(s.headers,function(t){var i,r=_.findIndex(h,_.bind(l,t[c]));r>-1&&(i=_.zipObject(u,t),h[r].init(i,e))}),h}):n.$unwrap(o)}))},t.prototype.$rename=function(e){var i,r;return r=this.isSubscription?t.$subscriptions:t.$addressbooks,i=_.indexOf(_.map(r,"id"),this.id),this.name=e,r.splice(i,1),t.$add(this),this.$save()},t.prototype.$delete=function(){var e,i,r=this,s=t.$q.defer();return this.isSubscription?(i=t.$$resource.fetch(this.id,"unsubscribe"),e=t.$subscriptions):(i=t.$$resource.remove(this.id),e=t.$addressbooks),i.then(function(){var t=_.indexOf(_.map(e,"id"),r.id);e.splice(t,1),s.resolve()},s.reject),s.promise},t.prototype.$_deleteCards=function(t){var e=this;_.forEachRight(this.$cards,function(i,r){var s=_.findIndex(t,function(t){return i.id==t});s>-1?(t.splice(s,1),delete e.idsMap[i.id],e.isSelectedCard(i.id)&&delete e.selectedCard,e.$cards.splice(r,1)):e.idsMap[i.id]-=t.length})},t.prototype.$deleteCards=function(e){var i=this,r=_.map(e,"id");return t.$$resource.post(this.id,"batchDelete",{uids:r}).then(function(){i.$_deleteCards(r)})},t.prototype.$copyCards=function(e,i){var r=_.map(e,"id");return t.$$resource.post(this.id,"copy",{uids:r,folder:i})},t.prototype.$moveCards=function(e,i){var r,s=this;return r=_.map(e,"id"),t.$$resource.post(this.id,"move",{uids:r,folder:i}).then(function(){return s.$_deleteCards(r)})},t.prototype.$save=function(){return t.$$resource.save(this.id,this.$omit()).then(function(t){return t})},t.prototype.exportCards=function(e){var i,r,s=null;return i={type:"application/octet-stream",filename:this.name+".ldif"},e&&(r=_.filter(this.$cards,function(t){return t.selected}),s={uids:_.map(r,"id")}),t.$$resource.download(this.id,"export",s,i)},t.prototype.$unwrap=function(e){var i=this;this.$isLoading=!0,this.$futureAddressBookData=e.then(function(e){return t.$timeout(function(){var r;return(!e.ids||i.$topIndex>e.ids.length-1)&&(i.$topIndex=0),angular.forEach(t.$findAll(),function(t,r){t.id==e.id&&angular.extend(i,t)}),i.init(e),i.ids&&(t.$log.debug("unwrapping "+i.ids.length+" cards"),_.reduce(i.ids,function(e,r,s){var n={pid:i.id,id:r};return i.idsMap[n.id]=s,e.push(new t.$Card(n)),e},i.$cards)),e.headers&&(r=_.invokeMap(e.headers[0],"toLowerCase"),e.headers.splice(0,1),i.ids?_.forEach(e.headers,function(t){var e=_.zipObject(r,t),s=i.idsMap[e.id];i.$cards[s].init(e)}):(i.$cards=[],angular.forEach(e.headers,function(e){var s=_.zipObject(r,e);angular.extend(s,{pid:i.id}),i.$cards.push(new t.$Card(s))}))),i.$acl=new t.$$Acl("Contacts/"+i.id),i.$startRefreshTimeout(),i.$isLoading=!1,t.$log.debug("addressbook "+i.id+" ready"),i})},function(e){i.isError=!0,angular.isObject(e)&&t.$timeout(function(){angular.extend(i,e)})})},t.prototype.$unwrapHeaders=function(e){var i=this;e.then(function(e){t.$timeout(function(){var t,r;e.length>0&&(t=_.invokeMap(e[0],"toLowerCase"),e.splice(0,1),_.forEach(e,function(e){e=_.zipObject(t,e),r=i.idsMap[e.id],angular.isDefined(r)&&i.$cards[r].init(e)}))})})},t.prototype.$omit=function(){var t={};return angular.forEach(this,function(e,i){"constructor"!=i&&"acls"!=i&&"ids"!=i&&"idsMap"!=i&&"urls"!=i&&"$"!=i[0]&&(t[i]=e)}),t}}(),function(){"use strict";function t(e,i){if("function"!=typeof e.then){if(this.init(e,i),this.pid&&!this.id){var r=t.$$resource.newguid(this.pid);this.$unwrap(r),this.isNew=!0}}else this.$unwrap(e)}t.$TEL_TYPES=["work","home","cell","fax","pager"],t.$EMAIL_TYPES=["work","home","pref"],t.$URL_TYPES=["work","home","pref"],t.$ADDRESS_TYPES=["work","home"],t.$factory=["$q","$timeout","sgSettings","sgCard_STATUS","Resource","Preferences",function(e,i,r,s,n,a){return angular.extend(t,{STATUS:s,$$resource:new n(r.activeUser("folderURL")+"Contacts",r.activeUser()),$q:e,$timeout:i,$Preferences:a}),a.defaults.SOGoContactsCategories&&(t.$categories=a.defaults.SOGoContactsCategories),a.defaults.SOGoAlternateAvatar&&(t.$alternateAvatar=a.defaults.SOGoAlternateAvatar),t}];try{angular.module("SOGo.ContactsUI")}catch(t){angular.module("SOGo.ContactsUI",["SOGo.Common","SOGo.PreferencesUI"])}angular.module("SOGo.ContactsUI").constant("sgCard_STATUS",{NOT_LOADED:0,DELAYED_LOADING:1,LOADING:2,LOADED:3,DELAYED_MS:300}).factory("Card",t.$factory),t.$find=function(e,i){var r=this.$$resource.fetch([e,i].join("/"),"view");return i?new t(r):t.$unwrapCollection(r)},t.filterCategories=function(e){var i=new RegExp(e,"i");return _.map(_.filter(t.$categories,function(t){return-1!=t.search(i)}),function(t){return{value:t}})},t.$unwrapCollection=function(e){var i={};return i.$futureCardData=e,e.then(function(e){t.$timeout(function(){angular.forEach(e,function(e,r){i[e.id]=new t(e)})})}),i},t.prototype.init=function(e,i){var r=this;if(angular.isUndefined(this.refs)&&(this.refs=[]),angular.isUndefined(this.categories)&&(this.categories=[]),this.c_screenname=null,angular.extend(this,e),this.$$fullname||(this.$$fullname=this.$fullname()),this.$$email||(this.$$email=this.$preferredEmail(i)),this.$$image||(this.$$image=this.image),this.$$image||(this.$$image=t.$Preferences.avatar(this.$$email,32,{no_404:!0})),this.hasphoto&&(this.photoURL=t.$$resource.path(this.pid,this.id,"photo")),this.isgroup&&(this.c_component="vlist"),this.$avatarIcon=this.$isList()?"group":"person",e.orgs&&e.orgs.length&&(this.orgs=_.map(e.orgs,function(t){return{value:t}})),e.notes&&e.notes.length?this.notes=_.map(e.notes,function(t){return{value:t}}):this.notes&&this.notes.length||(this.notes=[{value:""}]),angular.forEach(["addresses","phones","urls"],function(t){angular.forEach(r[t],function(t){t.type&&(t.type=t.type.toLowerCase())})}),angular.forEach(this.refs,function(e,i){e.email&&(e.emails=[{value:e.email}]),e.id=e.reference,r.refs[i]=new t(e)}),this.birthday&&angular.isString(this.birthday)){var s=t.$Preferences.$mdDateLocaleProvider;this.birthday=this.birthday.parseDate(s,"%Y-%m-%d"),this.$birthday=s.formatDate(this.birthday)}this.$loaded=angular.isDefined(this.c_name)?t.STATUS.LOADED:t.STATUS.NOT_LOADED,this.empty=" "},t.prototype.$id=function(){return this.$futureCardData.then(function(t){return t.id})},t.prototype.$isLoading=function(){return this.$loaded==t.STATUS.LOADING},t.prototype.$reload=function(){var e;return this.$futureCardData?this:(e=t.$$resource.fetch([this.pid,this.id].join("/"),"view"),this.$unwrap(e))},t.prototype.$save=function(){var e=this,i="saveAsContact";return"vlist"==this.c_component&&(i="saveAsList",_.forEach(this.refs,function(t){t.reference=t.id})),t.$$resource.save([this.pid,this.id||"_new_"].join("/"),this.$omit(),{action:i}).then(function(i){return e.birthday&&(e.$birthday=t.$Preferences.$mdDateLocaleProvider.formatDate(e.birthday)),e.$shadowData=e.$omit(!0),i})},t.prototype.$delete=function(e,i){if(!e)return t.$$resource.remove([this.pid,this.id].join("/"));i>-1&&this[e].length>i?this[e].splice(i,1):delete this[e]},t.prototype.export=function(){var e,i;return e={uids:[this.id]},i={type:"application/octet-stream",filename:this.$$fullname+".ldif"},t.$$resource.download(this.pid,"export",e,i)},t.prototype.$fullname=function(t){var e,i,r=this.c_cn||"",s=t&&t.html;return 0===r.length&&(i=[],this.c_givenname&&this.c_givenname.length>0&&i.push(this.c_givenname),this.nickname&&this.nickname.length>0&&i.push((s?"":"")+this.nickname+(s?" ":"")),this.c_sn&&this.c_sn.length>0&&i.push(this.c_sn),i.length>0?r=i.join(" "):this.org&&this.org.length>0?r=this.org:this.emails&&this.emails.length>0&&(e=_.find(this.emails,function(t){return""!==t.value}))&&(r=e.value)),this.contactinfo&&(r+=" ("+this.contactinfo.split("\n").join("; ")+")"),r},t.prototype.$description=function(){var t=[];return this.title&&t.push(this.title),this.role&&t.push(this.role),this.org&&t.push(this.org),this.orgs&&(t=_.concat(t,_.map(this.orgs,"value"))),this.description&&t.push(this.description),t.join(", ")},t.prototype.$preferredEmail=function(t){var e,i;return t&&(i=new RegExp(t,"i"),e=_.find(this.emails,function(t){return i.test(t.value)})),e=e?e.value:(e=_.find(this.emails,function(t){return"pref"==t.type}))?e.value:this.emails&&this.emails.length?this.emails[0].value:this.c_mail&&this.c_mail.length?this.c_mail[0]:""},t.prototype.$shortFormat=function(t){var e=[this.$$fullname],i=this.$preferredEmail(t);return i&&i!=this.$$fullname&&e.push(" <"+i+">"),e.join(" ")},t.prototype.$isCard=function(){return"vcard"==this.c_component},t.prototype.$isList=function(t){var e=!t||!t.expandable||t.expandable&&!this.isgroup;return"vlist"==this.c_component&&e},t.prototype.$addOrg=function(t){return angular.isUndefined(this.orgs)?this.orgs=[t]:t==this.org||_.includes(this.orgs,t)||this.orgs.push(t),this.orgs.length-1},t.prototype.$addEmail=function(t){return angular.isUndefined(this.emails)?this.emails=[{type:t,value:""}]:_.isUndefined(_.find(this.emails,function(t){return""===t.value}))&&this.emails.push({type:t,value:""}),this.emails.length-1},t.prototype.$addScreenName=function(t){this.c_screenname=t},t.prototype.$addPhone=function(t){return angular.isUndefined(this.phones)?this.phones=[{type:t,value:""}]:_.isUndefined(_.find(this.phones,function(t){return""===t.value}))&&this.phones.push({type:t,value:""}),this.phones.length-1},t.prototype.$addUrl=function(t,e){return angular.isUndefined(this.urls)?this.urls=[{type:t,value:e}]:_.isUndefined(_.find(this.urls,function(t){return t.value==e}))&&this.urls.push({type:t,value:e}),this.urls.length-1},t.prototype.$addAddress=function(t,e,i,r,s,n,a,o){return angular.isUndefined(this.addresses)?this.addresses=[{type:t,postoffice:e,street:i,street2:r,locality:s,region:n,country:a,postalcode:o}]:_.find(this.addresses,function(t){return t.street==i&&t.street2==r&&t.locality==s&&t.country==a&&t.postalcode==o})||this.addresses.push({type:t,postoffice:e,street:i,street2:r,locality:s,region:n,country:a,postalcode:o}),this.addresses.length-1},t.prototype.$addMember=function(e){var i,r=new t({email:e,emails:[{value:e}]});if(angular.isUndefined(this.refs))this.refs=[r];else if(0===e.length)this.refs.push(r);else{for(i=0;i1?(e=this.$omit(),_.forEach(this.emails,function(r){var s=new t(angular.extend({},e,{emails:[r]}));i.push(s)}),i):[this]:[]},t.prototype.$reset=function(){var t=this;angular.forEach(this,function(e,i){"constructor"!=i&&"$"!=i[0]&&delete t[i]}),this.init(this.$shadowData),this.$shadowData=this.$omit(!0)},t.prototype.$unwrap=function(e){var i=this;return this.$loaded=t.STATUS.DELAYED_LOADING,t.$timeout(function(){i.$loaded!=t.STATUS.LOADED&&(i.$loaded=t.STATUS.LOADING)},t.STATUS.DELAYED_MS),this.$futureCardData=e.then(function(e){return i.init(e),i.$loaded=t.STATUS.LOADED,i.$shadowData=i.$omit(!0),i}),this.$futureCardData},t.prototype.$omit=function(e){var i={};return angular.forEach(this,function(t,r){"refs"==r?i.refs=_.map(t,function(t){return t.$omit(e)}):"constructor"!=r&&"$"!=r[0]&&(i[r]=e?angular.copy(t):t)}),e||(i.birthday?i.birthday=i.birthday.format(t.$Preferences.$mdDateLocaleProvider,"%Y-%m-%d"):i.birthday=""),this.orgs&&(i.orgs=_.map(this.orgs,"value")),this.notes&&(i.notes=_.map(this.notes,"value")),i},t.prototype.toString=function(){var t=this.id+" "+this.$$fullname;return this.$$email&&(t+=" <"+this.$$email+">"),"["+t+"]"}}();
+!function(){"use strict";function t(e){if("function"!=typeof e.then)if(this.init(e),this.name&&!this.id){var i=t.$$resource.create("createFolder",this.name);this.$unwrap(i),this.acls={objectEditor:1,objectCreator:1,objectEraser:1}}else this.id&&(this.$acl=new t.$$Acl("Contacts/"+this.id));else this.$unwrap(e)}t.$factory=["$q","$timeout","$log","sgSettings","sgAddressBook_PRELOAD","Resource","Card","Acl","Preferences",function(e,i,r,s,n,a,o,d,u){return angular.extend(t,{$q:e,$timeout:i,$log:r,PRELOAD:n,$$resource:new a(s.activeUser("folderURL")+"Contacts",s.activeUser()),$Card:o,$$Acl:d,$Preferences:u,$query:{value:"",sort:"c_cn",asc:1},activeUser:s.activeUser(),selectedFolder:null,$refreshTimeout:null}),u.settings.Contact.SortingState&&(t.$query.sort=u.settings.Contact.SortingState[0],t.$query.asc=parseInt(u.settings.Contact.SortingState[1])),t}];try{angular.module("SOGo.ContactsUI")}catch(t){angular.module("SOGo.ContactsUI",["SOGo.Common","SOGo.PreferencesUI"])}angular.module("SOGo.ContactsUI").constant("sgAddressBook_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("AddressBook",t.$factory),t.$filterAll=function(e,i,r){var s={search:e};return e?(angular.isUndefined(t.$cards)&&(t.$cards=[]),angular.extend(s,i),t.$$resource.fetch(null,"allContactSearch",s).then(function(i){var s,n,a,o=function(t){return this.id==t.id};for(s=r?_.filter(i.contacts,function(t){return _.isUndefined(_.find(r,_.bind(o,t)))}):i.contacts,a=t.$cards.length-1;a>=0;a--)n=t.$cards[a],_.isUndefined(_.find(s,_.bind(o,n)))&&t.$cards.splice(a,1);return _.forEach(s,function(i,r){if(_.isUndefined(_.find(t.$cards,_.bind(o,i)))){var s=new t.$Card(_.mapKeys(i,function(t,e){return e.toLowerCase()}),e);t.$cards.splice(r,0,s)}}),t.$log.debug(t.$cards),t.$cards})):(t.$cards=[],t.$q.when(t.$cards))},t.$add=function(t){var e,i,r;e=t.isSubscription?this.$subscriptions:this.$addressbooks,r=(i=_.find(e,function(e){return"personal"==t.id||"personal"!=e.id&&1===e.name.localeCompare(t.name)}))?_.indexOf(_.map(e,"id"),i.id):1,e.splice(r,0,t)},t.$findAll=function(e){var i=this;return e&&(this.$addressbooks=[],this.$subscriptions=[],this.$remotes=[],angular.forEach(e,function(e,r){var s=new t(e);s.isRemote?i.$remotes.push(s):s.isSubscription?i.$subscriptions.push(s):i.$addressbooks.push(s)})),_.union(this.$addressbooks,this.$subscriptions,this.$remotes)},t.$subscribe=function(e,i){var r=this;return t.$$resource.userResource(e).fetch(i,"subscribe").then(function(e){var i=new t(e);return _.isUndefined(_.find(r.$subscriptions,function(t){return t.id==e.id}))&&t.$add(i),i})},t.$reloadAll=function(){var e=this;return t.$$resource.fetch("addressbooksList").then(function(i){_.forEach(i.addressbooks,function(i){var r,s;r=i.isRemote?e.$remotes:i.owner!=t.activeUser.login?e.$subscriptions:e.$addressbooks,(s=_.find(r,function(t){return t.id==i.id}))&&s.init(i)})})},t.prototype.init=function(e,i){var r=this;this.$$cards||(this.$$cards=[]),this.idsMap={},this.$cards=[],angular.forEach(e,function(t,e){"headers"!=e&&"cards"!=e&&(r[e]=t)}),this.isOwned=t.activeUser.isSuperUser||this.owner==t.activeUser.login,this.isSubscription=!this.isRemote&&this.owner!=t.activeUser.login},t.prototype.$id=function(){return this.id?t.$q.when(this.id):this.$futureAddressBookData.then(function(t){return t.id})},t.prototype.getLength=function(){return this.$cards.length},t.prototype.getItemAtIndex=function(t){var e;return!this.$isLoading&&t>=0&&t0&&(n=t.$$resource.post(this.id,"headers",{ids:s}),this.$unwrapHeaders(n))}return u},t.prototype.hasSelectedCard=function(){return angular.isDefined(this.selectedCard)},t.prototype.isSelectedCard=function(t){return this.hasSelectedCard()&&this.selectedCard==t},t.prototype.$selectedCard=function(){var t=this;return _.find(this.$cards,function(e){return e.id==t.selectedCard})},t.prototype.$selectedCardIndex=function(){return _.indexOf(_.map(this.$cards,"id"),this.selectedCard)},t.prototype.$selectedCards=function(){return _.filter(this.$cards,function(t){return t.selected})},t.prototype.$selectedCount=function(){var t;return t=0,this.$cards&&(t=_.filter(this.$cards,function(t){return t.selected}).length),t},t.prototype.$startRefreshTimeout=function(){t.$refreshTimeout&&t.$timeout.cancel(t.$refreshTimeout);var e=t.$Preferences.defaults.SOGoRefreshViewCheck;if(e&&"manually"!=e){var i=angular.bind(this,t.prototype.$reload);t.$refreshTimeout=t.$timeout(i,1e3*e.timeInterval())}},t.prototype.$reload=function(){return this.$startRefreshTimeout(),this.$filter()},t.prototype.$filter=function(e,i,r){var s,n=this,a=i&&i.dry;return a?s={value:"",sort:"c_cn",asc:1}:(this.$isLoading=!0,s=t.$query,this.isRemote||(s.partial=1)),i&&(angular.extend(s,i),a&&!e)?(n.$$cards=[],t.$q.when(n.$$cards)):(angular.isDefined(e)&&(s.value=e),n.$id().then(function(i){var o=t.$$resource.post(i,"view",s);return a?o.then(function(s){var a,o,d,u,c,h=n.$$cards,l=function(t){return this==t.id};for(s.headers&&(u=_.invokeMap(s.headers[0],"toLowerCase"),c=u.indexOf("id"),s.headers.splice(0,1),a=_.map(s.headers,function(t){return t[c]})),s.ids&&(a=r?_.filter(s.ids,function(t){return _.isUndefined(_.find(r,_.bind(l,t)))}):s.ids),d=h.length-1;d>=0;d--)o=h[d],_.isUndefined(_.find(a,_.bind(l,o.id)))&&h.splice(d,1);return _.forEach(a,function(r,s){if(_.isUndefined(_.find(h,_.bind(l,r)))){var n=new t.$Card({pid:i,id:r},e);h.splice(s,0,n)}}),_.forEach(a,function(t,e){var i,r;h[e].id!=t&&(i=_.findIndex(h,_.bind(l,t)),r=h.splice(i,1),h.splice(e,0,r[0]))}),_.forEach(s.headers,function(t){var i,r=_.findIndex(h,_.bind(l,t[c]));r>-1&&(i=_.zipObject(u,t),h[r].init(i,e))}),h}):n.$unwrap(o)}))},t.prototype.$rename=function(e){var i,r;return r=this.isSubscription?t.$subscriptions:t.$addressbooks,i=_.indexOf(_.map(r,"id"),this.id),this.name=e,r.splice(i,1),t.$add(this),this.$save()},t.prototype.$delete=function(){var e,i,r=this,s=t.$q.defer();return this.isSubscription?(i=t.$$resource.fetch(this.id,"unsubscribe"),e=t.$subscriptions):(i=t.$$resource.remove(this.id),e=t.$addressbooks),i.then(function(){var t=_.indexOf(_.map(e,"id"),r.id);e.splice(t,1),s.resolve()},s.reject),s.promise},t.prototype.$_deleteCards=function(t){var e=this;_.forEachRight(this.$cards,function(i,r){var s=_.findIndex(t,function(t){return i.id==t});s>-1?(t.splice(s,1),delete e.idsMap[i.id],e.isSelectedCard(i.id)&&delete e.selectedCard,e.$cards.splice(r,1)):e.idsMap[i.id]-=t.length})},t.prototype.$deleteCards=function(e){var i=this,r=_.map(e,"id");return t.$$resource.post(this.id,"batchDelete",{uids:r}).then(function(){i.$_deleteCards(r)})},t.prototype.$copyCards=function(e,i){var r=_.map(e,"id");return t.$$resource.post(this.id,"copy",{uids:r,folder:i})},t.prototype.$moveCards=function(e,i){var r,s=this;return r=_.map(e,"id"),t.$$resource.post(this.id,"move",{uids:r,folder:i}).then(function(){return s.$_deleteCards(r)})},t.prototype.$save=function(){return t.$$resource.save(this.id,this.$omit()).then(function(t){return t})},t.prototype.exportCards=function(e){var i,r,s=null;return i={type:"application/octet-stream",filename:this.name+".ldif"},e&&(r=_.filter(this.$cards,function(t){return t.selected}),s={uids:_.map(r,"id")}),s?t.$$resource.download(this.id,"export",s,i):t.$$resource.open(this.id,"export",s,i)},t.prototype.$unwrap=function(e){var i=this;this.$isLoading=!0,this.$futureAddressBookData=e.then(function(e){return t.$timeout(function(){var r;return(!e.ids||i.$topIndex>e.ids.length-1)&&(i.$topIndex=0),angular.forEach(t.$findAll(),function(t,r){t.id==e.id&&angular.extend(i,t)}),i.init(e),i.ids&&(t.$log.debug("unwrapping "+i.ids.length+" cards"),_.reduce(i.ids,function(e,r,s){var n={pid:i.id,id:r};return i.idsMap[n.id]=s,e.push(new t.$Card(n)),e},i.$cards)),e.headers&&(r=_.invokeMap(e.headers[0],"toLowerCase"),e.headers.splice(0,1),i.ids?_.forEach(e.headers,function(t){var e=_.zipObject(r,t),s=i.idsMap[e.id];i.$cards[s].init(e)}):(i.$cards=[],angular.forEach(e.headers,function(e){var s=_.zipObject(r,e);angular.extend(s,{pid:i.id}),i.$cards.push(new t.$Card(s))}))),i.$acl=new t.$$Acl("Contacts/"+i.id),i.$startRefreshTimeout(),i.$isLoading=!1,t.$log.debug("addressbook "+i.id+" ready"),i})},function(e){i.isError=!0,angular.isObject(e)&&t.$timeout(function(){angular.extend(i,e)})})},t.prototype.$unwrapHeaders=function(e){var i=this;e.then(function(e){t.$timeout(function(){var t,r;e.length>0&&(t=_.invokeMap(e[0],"toLowerCase"),e.splice(0,1),_.forEach(e,function(e){e=_.zipObject(t,e),r=i.idsMap[e.id],angular.isDefined(r)&&i.$cards[r].init(e)}))})})},t.prototype.$omit=function(){var t={};return angular.forEach(this,function(e,i){"constructor"!=i&&"acls"!=i&&"ids"!=i&&"idsMap"!=i&&"urls"!=i&&"$"!=i[0]&&(t[i]=e)}),t}}(),function(){"use strict";function t(e,i){if("function"!=typeof e.then){if(this.init(e,i),this.pid&&!this.id){var r=t.$$resource.newguid(this.pid);this.$unwrap(r),this.isNew=!0}}else this.$unwrap(e)}t.$TEL_TYPES=["work","home","cell","fax","pager"],t.$EMAIL_TYPES=["work","home","pref"],t.$URL_TYPES=["work","home","pref"],t.$ADDRESS_TYPES=["work","home"],t.$factory=["$q","$timeout","sgSettings","sgCard_STATUS","Resource","Preferences",function(e,i,r,s,n,a){return angular.extend(t,{STATUS:s,$$resource:new n(r.activeUser("folderURL")+"Contacts",r.activeUser()),$q:e,$timeout:i,$Preferences:a}),a.defaults.SOGoContactsCategories&&(t.$categories=a.defaults.SOGoContactsCategories),a.defaults.SOGoAlternateAvatar&&(t.$alternateAvatar=a.defaults.SOGoAlternateAvatar),t}];try{angular.module("SOGo.ContactsUI")}catch(t){angular.module("SOGo.ContactsUI",["SOGo.Common","SOGo.PreferencesUI"])}angular.module("SOGo.ContactsUI").constant("sgCard_STATUS",{NOT_LOADED:0,DELAYED_LOADING:1,LOADING:2,LOADED:3,DELAYED_MS:300}).factory("Card",t.$factory),t.$find=function(e,i){var r=this.$$resource.fetch([e,i].join("/"),"view");return i?new t(r):t.$unwrapCollection(r)},t.filterCategories=function(e){var i=new RegExp(e,"i");return _.map(_.filter(t.$categories,function(t){return-1!=t.search(i)}),function(t){return{value:t}})},t.$unwrapCollection=function(e){var i={};return i.$futureCardData=e,e.then(function(e){t.$timeout(function(){angular.forEach(e,function(e,r){i[e.id]=new t(e)})})}),i},t.prototype.init=function(e,i){var r=this;if(angular.isUndefined(this.refs)&&(this.refs=[]),angular.isUndefined(this.categories)&&(this.categories=[]),this.c_screenname=null,angular.extend(this,e),this.$$fullname||(this.$$fullname=this.$fullname()),this.$$email||(this.$$email=this.$preferredEmail(i)),this.$$image||(this.$$image=this.image),this.$$image||(this.$$image=t.$Preferences.avatar(this.$$email,32,{no_404:!0})),this.hasphoto&&(this.photoURL=t.$$resource.path(this.pid,this.id,"photo")),this.isgroup&&(this.c_component="vlist"),this.$avatarIcon=this.$isList()?"group":"person",e.orgs&&e.orgs.length&&(this.orgs=_.map(e.orgs,function(t){return{value:t}})),e.notes&&e.notes.length?this.notes=_.map(e.notes,function(t){return{value:t}}):this.notes&&this.notes.length||(this.notes=[{value:""}]),angular.forEach(["addresses","phones","urls"],function(t){angular.forEach(r[t],function(t){t.type&&(t.type=t.type.toLowerCase())})}),angular.forEach(this.refs,function(e,i){e.email&&(e.emails=[{value:e.email}]),e.id=e.reference,r.refs[i]=new t(e)}),this.birthday&&angular.isString(this.birthday)){var s=t.$Preferences.$mdDateLocaleProvider;this.birthday=this.birthday.parseDate(s,"%Y-%m-%d"),this.$birthday=s.formatDate(this.birthday)}this.$loaded=angular.isDefined(this.c_name)?t.STATUS.LOADED:t.STATUS.NOT_LOADED,this.empty=" "},t.prototype.$id=function(){return this.$futureCardData.then(function(t){return t.id})},t.prototype.$isLoading=function(){return this.$loaded==t.STATUS.LOADING},t.prototype.$reload=function(){var e;return this.$futureCardData?this:(e=t.$$resource.fetch([this.pid,this.id].join("/"),"view"),this.$unwrap(e))},t.prototype.$save=function(){var e=this,i="saveAsContact";return"vlist"==this.c_component&&(i="saveAsList",_.forEach(this.refs,function(t){t.reference=t.id})),t.$$resource.save([this.pid,this.id||"_new_"].join("/"),this.$omit(),{action:i}).then(function(i){return e.birthday&&(e.$birthday=t.$Preferences.$mdDateLocaleProvider.formatDate(e.birthday)),e.$shadowData=e.$omit(!0),i})},t.prototype.$delete=function(e,i){if(!e)return t.$$resource.remove([this.pid,this.id].join("/"));i>-1&&this[e].length>i?this[e].splice(i,1):delete this[e]},t.prototype.export=function(){var e,i;return e={uids:[this.id]},i={type:"application/octet-stream",filename:this.$$fullname+".ldif"},t.$$resource.download(this.pid,"export",e,i)},t.prototype.$fullname=function(t){var e,i,r=this.c_cn||"",s=t&&t.html;return 0===r.length&&(i=[],this.c_givenname&&this.c_givenname.length>0&&i.push(this.c_givenname),this.nickname&&this.nickname.length>0&&i.push((s?"":"")+this.nickname+(s?" ":"")),this.c_sn&&this.c_sn.length>0&&i.push(this.c_sn),i.length>0?r=i.join(" "):this.org&&this.org.length>0?r=this.org:this.emails&&this.emails.length>0&&(e=_.find(this.emails,function(t){return""!==t.value}))&&(r=e.value)),this.contactinfo&&(r+=" ("+this.contactinfo.split("\n").join("; ")+")"),r},t.prototype.$description=function(){var t=[];return this.title&&t.push(this.title),this.role&&t.push(this.role),this.org&&t.push(this.org),this.orgs&&(t=_.concat(t,_.map(this.orgs,"value"))),this.description&&t.push(this.description),t.join(", ")},t.prototype.$preferredEmail=function(t){var e,i;return t&&(i=new RegExp(t,"i"),e=_.find(this.emails,function(t){return i.test(t.value)})),e=e?e.value:(e=_.find(this.emails,function(t){return"pref"==t.type}))?e.value:this.emails&&this.emails.length?this.emails[0].value:this.c_mail&&this.c_mail.length?this.c_mail[0]:""},t.prototype.$shortFormat=function(t){var e=[this.$$fullname],i=this.$preferredEmail(t);return i&&i!=this.$$fullname&&e.push(" <"+i+">"),e.join(" ")},t.prototype.$isCard=function(){return"vcard"==this.c_component},t.prototype.$isList=function(t){var e=!t||!t.expandable||t.expandable&&!this.isgroup;return"vlist"==this.c_component&&e},t.prototype.$addOrg=function(t){return angular.isUndefined(this.orgs)?this.orgs=[t]:t==this.org||_.includes(this.orgs,t)||this.orgs.push(t),this.orgs.length-1},t.prototype.$addEmail=function(t){return angular.isUndefined(this.emails)?this.emails=[{type:t,value:""}]:_.isUndefined(_.find(this.emails,function(t){return""===t.value}))&&this.emails.push({type:t,value:""}),this.emails.length-1},t.prototype.$addScreenName=function(t){this.c_screenname=t},t.prototype.$addPhone=function(t){return angular.isUndefined(this.phones)?this.phones=[{type:t,value:""}]:_.isUndefined(_.find(this.phones,function(t){return""===t.value}))&&this.phones.push({type:t,value:""}),this.phones.length-1},t.prototype.$addUrl=function(t,e){return angular.isUndefined(this.urls)?this.urls=[{type:t,value:e}]:_.isUndefined(_.find(this.urls,function(t){return t.value==e}))&&this.urls.push({type:t,value:e}),this.urls.length-1},t.prototype.$addAddress=function(t,e,i,r,s,n,a,o){return angular.isUndefined(this.addresses)?this.addresses=[{type:t,postoffice:e,street:i,street2:r,locality:s,region:n,country:a,postalcode:o}]:_.find(this.addresses,function(t){return t.street==i&&t.street2==r&&t.locality==s&&t.country==a&&t.postalcode==o})||this.addresses.push({type:t,postoffice:e,street:i,street2:r,locality:s,region:n,country:a,postalcode:o}),this.addresses.length-1},t.prototype.$addMember=function(e){var i,r=new t({email:e,emails:[{value:e}]});if(angular.isUndefined(this.refs))this.refs=[r];else if(0===e.length)this.refs.push(r);else{for(i=0;i1?(e=this.$omit(),_.forEach(this.emails,function(r){var s=new t(angular.extend({},e,{emails:[r]}));i.push(s)}),i):[this]:[]},t.prototype.$reset=function(){var t=this;angular.forEach(this,function(e,i){"constructor"!=i&&"$"!=i[0]&&delete t[i]}),this.init(this.$shadowData),this.$shadowData=this.$omit(!0)},t.prototype.$unwrap=function(e){var i=this;return this.$loaded=t.STATUS.DELAYED_LOADING,t.$timeout(function(){i.$loaded!=t.STATUS.LOADED&&(i.$loaded=t.STATUS.LOADING)},t.STATUS.DELAYED_MS),this.$futureCardData=e.then(function(e){return i.init(e),i.$loaded=t.STATUS.LOADED,i.$shadowData=i.$omit(!0),i}),this.$futureCardData},t.prototype.$omit=function(e){var i={};return angular.forEach(this,function(t,r){"refs"==r?i.refs=_.map(t,function(t){return t.$omit(e)}):"constructor"!=r&&"$"!=r[0]&&(i[r]=e?angular.copy(t):t)}),e||(i.birthday?i.birthday=i.birthday.format(t.$Preferences.$mdDateLocaleProvider,"%Y-%m-%d"):i.birthday=""),this.orgs&&(i.orgs=_.map(this.orgs,"value")),this.notes&&(i.notes=_.map(this.notes,"value")),i},t.prototype.toString=function(){var t=this.id+" "+this.$$fullname;return this.$$email&&(t+=" <"+this.$$email+">"),"["+t+"]"}}();
//# sourceMappingURL=Contacts.services.js.map
\ No newline at end of file
diff --git a/UI/WebServerResources/js/Contacts.services.js.map b/UI/WebServerResources/js/Contacts.services.js.map
index 68e310345..d09c53561 100644
--- a/UI/WebServerResources/js/Contacts.services.js.map
+++ b/UI/WebServerResources/js/Contacts.services.js.map
@@ -1 +1 @@
-{"version":3,"sources":["Contacts/AddressBook.service.js","Contacts/Card.service.js"],"names":["AddressBook","futureAddressBookData","then","this","init","name","id","newAddressBookData","$$resource","create","$unwrap","acls","objectEditor","objectCreator","objectEraser","$acl","$$Acl","$factory","$q","$timeout","$log","Settings","AddressBook_PRELOAD","Resource","Card","Acl","Preferences","angular","extend","PRELOAD","activeUser","$Card","$Preferences","$query","value","sort","asc","selectedFolder","$refreshTimeout","settings","Contact","SortingState","parseInt","module","e","constant","LOOKAHEAD","SIZE","factory","$filterAll","search","options","excludedCards","params","isUndefined","$cards","fetch","response","results","card","index","compareIds","data","_","filter","contacts","find","bind","length","splice","forEach","mapKeys","key","toLowerCase","debug","when","$add","addressbook","list","sibling","i","isSubscription","$subscriptions","$addressbooks","o","localeCompare","indexOf","map","$findAll","_this","$remotes","isRemote","push","union","$subscribe","uid","path","userResource","addressbookData","$reloadAll","addressbooks","group","owner","login","prototype","$$cards","idsMap","isOwned","isSuperUser","$id","$futureAddressBookData","getLength","getItemAtIndex","$isLoading","$lastVisibleIndex","Math","max","$loadCard","endIndex","ids","futureHeadersData","cardId","startIndex","loaded","isDefined","$loaded","STATUS","NOT_LOADED","min","LOADED","LOADING","join","post","$unwrapHeaders","hasSelectedCard","selectedCard","isSelectedCard","$selectedCard","$selectedCardIndex","$selectedCards","selected","$selectedCount","count","$startRefreshTimeout","cancel","refreshViewCheck","defaults","SOGoRefreshViewCheck","f","$reload","timeInterval","$filter","query","dry","partial","addressbookId","futureData","fields","idFieldIndex","cards","headers","invokeMap","pid","oldIndex","removedCards","findIndex","zipObject","$rename","$save","$delete","promise","d","defer","remove","resolve","reject","$_deleteCards","forEachRight","selectedIndex","$deleteCards","uids","$copyCards","folder","$moveCards","save","$omit","exportCards","selectedOnly","selectedCards","type","filename","download","$topIndex","reduce","isError","isObject","j","cardHeaders","futureCardData","newCardData","newguid","isNew","$TEL_TYPES","$EMAIL_TYPES","$URL_TYPES","$ADDRESS_TYPES","Card_STATUS","SOGoContactsCategories","$categories","SOGoAlternateAvatar","$alternateAvatar","DELAYED_LOADING","DELAYED_MS","$find","$unwrapCollection","filterCategories","re","RegExp","category","collection","$futureCardData","refs","categories","c_screenname","$$fullname","$fullname","$$email","$preferredEmail","$$image","image","avatar","no_404","hasphoto","photoURL","isgroup","c_component","$avatarIcon","$isList","orgs","org","notes","note","email","emails","reference","birthday","isString","dlp","$mdDateLocaleProvider","parseDate","$birthday","formatDate","c_name","empty","action","ref","$shadowData","attribute","export","names","fn","c_cn","html","c_givenname","nickname","c_sn","contactinfo","split","$description","description","title","role","concat","test","c_mail","$shortFormat","fullname","$isCard","condition","expandable","$addOrg","includes","$addEmail","$addScreenName","screenName","$addPhone","phones","$addUrl","url","urls","$addAddress","postoffice","street","street2","locality","region","country","postalcode","addresses","$addMember","$certificate","hasCertificate","$$certificate","$removeCertificate","explode","$reset","deep","copy","format","toString","desc"],"mappings":"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","file":"Contacts.services.js"}
\ No newline at end of file
+{"version":3,"sources":["Contacts/AddressBook.service.js","Contacts/Card.service.js"],"names":["AddressBook","futureAddressBookData","then","this","init","name","id","newAddressBookData","$$resource","create","$unwrap","acls","objectEditor","objectCreator","objectEraser","$acl","$$Acl","$factory","$q","$timeout","$log","Settings","AddressBook_PRELOAD","Resource","Card","Acl","Preferences","angular","extend","PRELOAD","activeUser","$Card","$Preferences","$query","value","sort","asc","selectedFolder","$refreshTimeout","settings","Contact","SortingState","parseInt","module","e","constant","LOOKAHEAD","SIZE","factory","$filterAll","search","options","excludedCards","params","isUndefined","$cards","fetch","response","results","card","index","compareIds","data","_","filter","contacts","find","bind","length","splice","forEach","mapKeys","key","toLowerCase","debug","when","$add","addressbook","list","sibling","i","isSubscription","$subscriptions","$addressbooks","o","localeCompare","indexOf","map","$findAll","_this","$remotes","isRemote","push","union","$subscribe","uid","path","userResource","addressbookData","$reloadAll","addressbooks","group","owner","login","prototype","$$cards","idsMap","isOwned","isSuperUser","$id","$futureAddressBookData","getLength","getItemAtIndex","$isLoading","$lastVisibleIndex","Math","max","$loadCard","endIndex","ids","futureHeadersData","cardId","startIndex","loaded","isDefined","$loaded","STATUS","NOT_LOADED","min","LOADED","LOADING","join","post","$unwrapHeaders","hasSelectedCard","selectedCard","isSelectedCard","$selectedCard","$selectedCardIndex","$selectedCards","selected","$selectedCount","count","$startRefreshTimeout","cancel","refreshViewCheck","defaults","SOGoRefreshViewCheck","f","$reload","timeInterval","$filter","query","dry","partial","addressbookId","futureData","fields","idFieldIndex","cards","headers","invokeMap","pid","oldIndex","removedCards","findIndex","zipObject","$rename","$save","$delete","promise","d","defer","remove","resolve","reject","$_deleteCards","forEachRight","selectedIndex","$deleteCards","uids","$copyCards","folder","$moveCards","save","$omit","exportCards","selectedOnly","selectedCards","type","filename","download","open","$topIndex","reduce","isError","isObject","j","cardHeaders","futureCardData","newCardData","newguid","isNew","$TEL_TYPES","$EMAIL_TYPES","$URL_TYPES","$ADDRESS_TYPES","Card_STATUS","SOGoContactsCategories","$categories","SOGoAlternateAvatar","$alternateAvatar","DELAYED_LOADING","DELAYED_MS","$find","$unwrapCollection","filterCategories","re","RegExp","category","collection","$futureCardData","refs","categories","c_screenname","$$fullname","$fullname","$$email","$preferredEmail","$$image","image","avatar","no_404","hasphoto","photoURL","isgroup","c_component","$avatarIcon","$isList","orgs","org","notes","note","email","emails","reference","birthday","isString","dlp","$mdDateLocaleProvider","parseDate","$birthday","formatDate","c_name","empty","action","ref","$shadowData","attribute","export","names","fn","c_cn","html","c_givenname","nickname","c_sn","contactinfo","split","$description","description","title","role","concat","test","c_mail","$shortFormat","fullname","$isCard","condition","expandable","$addOrg","includes","$addEmail","$addScreenName","screenName","$addPhone","phones","$addUrl","url","urls","$addAddress","postoffice","street","street2","locality","region","country","postalcode","addresses","$addMember","$certificate","hasCertificate","$$certificate","$removeCertificate","explode","$reset","deep","copy","format","toString","desc"],"mappings":"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","file":"Contacts.services.js"}
\ No newline at end of file
diff --git a/UI/WebServerResources/js/Mailer.services.js b/UI/WebServerResources/js/Mailer.services.js
index 9212cb1d3..54bfb7462 100644
--- a/UI/WebServerResources/js/Mailer.services.js
+++ b/UI/WebServerResources/js/Mailer.services.js
@@ -1,2 +1,2 @@
-!function(){"use strict";function e(t){"function"!=typeof t.then&&(angular.extend(this,t),_.forEach(this.identities,function(e){e.fullName?e.full=e.fullName+" <"+e.email+">":e.full="<"+e.email+">"}),e.$log.debug("Account: "+JSON.stringify(t,void 0,2)))}e.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Mailbox","Message",function(t,n,s,i,o,a,r,l){return angular.extend(e,{$q:t,$timeout:n,$log:s,$$resource:new o(i.activeUser("folderURL")+"Mail",i.activeUser()),$Preferences:a,$Mailbox:r,$Message:l}),e}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Account",e.$factory),e.$findAll=function(t){return t?e.$unwrapCollection(t):e.$$resource.fetch("","mailAccounts").then(function(t){return e.$unwrapCollection(t)})},e.$unwrapCollection=function(t){var n=[];return angular.forEach(t,function(t,s){t.id=s,n[s]=new e(t)}),e.$accounts=n,n},e.prototype.getLength=function(){return this.$flattenMailboxes().length},e.prototype.getItemAtIndex=function(e){var t;return t=this.$flattenMailboxes(),e>=0&&e=0,e.children&&e.children.length>0&&i(e.children)})};if(e.$Preferences.settings.Mail.ExpandedFolders){if(angular.isString(e.$Preferences.settings.Mail.ExpandedFolders))try{s=angular.fromJson(e.$Preferences.settings.Mail.ExpandedFolders)}catch(t){e.$log.warn("Can't parse list of expanded folders. String was: "+e.$Preferences.settings.Mail.ExpandedFolders),s=[]}else s=e.$Preferences.settings.Mail.ExpandedFolders;n.$expanded=s.indexOf("/"+n.id)>=0,s.length>0&&i(n.$mailboxes)}return e.$accounts&&(n.$expanded|=1==e.$accounts.length),n.$flattenMailboxes({reload:!0}),n.$mailboxes}):e.$q.when(this.$mailboxes)},e.prototype.$flattenMailboxes=function(t){var n=[],s=[],i=function(e){_.forEach(e,function(e){n.push(e),(t&&t.all||e.$expanded)&&e.children&&e.children.length>0&&i(e.children)})};return!this.$$flattenMailboxes||t&&(t.reload||t.all)?(i(this.$mailboxes),t&&t.all||(this.$$flattenMailboxes=n,t&&t.saveState&&(_.forEach(e.$accounts,function(e){e.$expanded&&s.push("/"+e.id),_.reduce(e.$$flattenMailboxes,function(e,t){return t.$expanded&&e.push("/"+t.id),e},s)}),e.$$resource.post(null,"saveFoldersState",s)))):n=this.$$flattenMailboxes,n},e.prototype.$getMailboxByType=function(e){var t=function(n){var s=_.find(n,function(t){return t.type==e});return s||angular.forEach(n,function(e){!s&&e.children&&e.children.length>0&&(s=t(e.children))}),s};return t(this.$mailboxes)},e.prototype.$getMailboxByPath=function(e){var t=function(n){var s=_.find(n,function(t){return t.path==e});return s||angular.forEach(n,function(e){!s&&e.children&&e.children.length>0&&(s=t(e.children))}),s};return t(this.$mailboxes)},e.prototype.$newMailbox=function(t,n){var s=this;return e.$$resource.post(t.toString(),"createFolder",{name:n}).then(function(){s.$getMailboxes({reload:!0})})},e.prototype.$certificate=function(){var t=this;return this.security&&this.security.hasCertificate?this.$$certificate?e.$q.when(this.$$certificate):e.$$resource.fetch(this.id.toString(),"certificate").then(function(e){return t.$$certificate=e,e}):e.$q.reject()},e.prototype.$removeCertificate=function(){var t=this;return e.$$resource.fetch(this.id.toString(),"removeCertificate").then(function(){t.security.hasCertificate=!1})},e.prototype.updateQuota=function(e){var t,n;t=Math.round(1e4*e.usedSpace/e.maxQuota)/100,n=l("quotasFormat").formatted(t,Math.round(e.maxQuota/10.24)/100),this.$quota={percent:t,description:n}},e.prototype.$newMessage=function(t){var n=this;return e.$$resource.fetch(this.id.toString(),"compose").then(function(t){e.$log.debug("New message (compose): "+JSON.stringify(t,void 0,2));return new e.$Message(t.accountId,n.$getMailboxByPath(t.mailboxPath),t)}).then(function(s){return e.$$resource.fetch(s.$absolutePath({asDraft:!0}),"edit").then(function(i){var o=e.$Preferences.defaults.AuxiliaryMailAccounts[n.id];return o.security&&(o.security.alwaysSign&&(i.sign=!0),o.security.alwaysEncrypt&&(i.encrypt=!0)),e.$log.debug("New message (edit): "+JSON.stringify(i,void 0,2)),angular.extend(s.editable,i),s.isNew=!0,t&&t.mailto&&(angular.isObject(t.mailto)?angular.extend(s.editable,t.mailto):s.$parseMailto(t.mailto)),s})})},e.prototype.$addDelegate=function(t){var n=this,s=e.$q.defer(),i={uid:t.uid};return!t.uid||_.indexOf(_.map(this.delegates,"uid"),t.uid)>-1?s.resolve():e.$$resource.fetch(this.id.toString(),"addDelegate",i).then(function(){n.delegates.push(t),s.resolve(n.users)},function(e,t){s.reject(l("An error occured please try again."))}),s.promise},e.prototype.$removeDelegate=function(t){var n=this,s={uid:t};return e.$$resource.fetch(this.id.toString(),"removeDelegate",s).then(function(){var e=_.indexOf(_.map(n.delegates,"uid"),t);e>=0&&n.delegates.splice(e,1)})}}(),function(){"use strict";function e(t,n){if(this.$account=t,"function"!=typeof n.then){if(this.init(n),this.name&&!this.path){var s=e.$$resource.create("createFolder",this.name);this.$unwrap(s)}}else this.$unwrap(n)}e.$factory=["$q","$timeout","$log","sgSettings","Resource","Message","Acl","Preferences","sgMailbox_PRELOAD",function(t,n,s,i,o,a,r,l,c){return angular.extend(e,{$q:t,$timeout:n,$log:s,$$resource:new o(i.activeUser("folderURL")+"Mail",i.activeUser()),$Message:a,$$Acl:r,$Preferences:l,$query:{sort:"arrival",asc:0},selectedFolder:null,$refreshTimeout:null,$virtualMode:!1,$virtualPath:!1,PRELOAD:c}),l.settings.Mail.SortingState&&(e.$query.sort=l.settings.Mail.SortingState[0],e.$query.asc=parseInt(l.settings.Mail.SortingState[1])),e}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMailbox_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("Mailbox",e.$factory),e.$find=function(t,n){var s;return s=n&&n.all?this.$$resource.fetch(t.id.toString(),"viewAll"):this.$$resource.fetch(t.id.toString(),"view"),e.$unwrapCollection(t,s)},e.$unwrapCollection=function(t,n){var s=[],i=function(n,s){for(var o=0;o=0&&e=0},e.prototype.isNoSelect=function(){return this.flags.indexOf("noselect")>=0},e.prototype.getClassName=function(e){return!1},e.prototype.$rename=function(){var t,n,s,i,o=this;return this.name==this.$shadowData.name?e.$q.when():(n=(t=function(e,n){var s=null;return _.find(n,function(e){return e.path==o.path})?s=e:angular.forEach(n,function(e){!s&&e.children&&e.children.length>0&&(s=t(e,e.children))}),s})(null,this.$account.$mailboxes),s=null===n?this.$account.$mailboxes:n.children,i=_.indexOf(_.map(s,"id"),this.id),this.$save().then(function(e){var t,n=o.path;o.init(e),s.splice(i,1),t=_.find(s,function(e){return"folder"==e.type&&e.name.localeCompare(o.name)>0}),i=t?_.indexOf(_.map(s,"id"),t.id):s.length,s.splice(i,0,o);var a=new RegExp("^"+n),r=function(e){_.forEach(e.children,function(e){e.path=e.path.replace(a,o.path),e.id=e.$id(),r(e)})};r(o)}))},e.prototype.$compact=function(){var t=this;return e.$$resource.post(this.id,"expunge").then(function(e){return e.quotas&&t.$account.updateQuota(e.quotas),!0})},e.prototype.$canFolderAs=function(){return"folder"==this.type&&0===this.level},e.prototype.$setFolderAs=function(t){return e.$$resource.post(this.id,"setAs"+t+"Folder")},e.prototype.$emptyTrash=function(){var t=this;return e.$$resource.post(this.id,"emptyTrash").then(function(e){t.$messages=[],t.uidsMap={},t.unseenCount=0,angular.isDefined(t.children)&&t.children.length&&t.$account.$getMailboxes({reload:!0}),e.quotas&&t.$account.updateQuota(e.quotas)})},e.prototype.$markAsRead=function(){var t=this;return e.$$resource.post(this.id,"markRead").then(function(){t.unseenCount=0,_.forEach(t.$messages,function(e){e.isread=!0})})},e.prototype.$flagMessages=function(t,n,s){var i={msgUIDs:_.map(t,"uid"),flags:n,operation:s};return e.$$resource.post(this.id,"addOrRemoveLabel",i).then(function(){return t})},e.prototype.saveSelectedMessages=function(){var t,n;return t=_.filter(this.$messages,function(e){return e.selected}),{uids:n=_.map(t,"uid")},{filename:l("Saved Messages.zip")},e.$$resource.download(this.id,"saveMessages",{uids:n})},e.prototype.exportFolder=function(){var t;return t={filename:this.name+".zip"},e.$$resource.download(this.id,"exportFolder",null,t)},e.prototype.$delete=function(t){var n=this;return e.$$resource.post(this.id,"delete",t).then(function(){return n.$account.$getMailboxes({reload:!0}),!0})},e.prototype.$_deleteMessages=function(e,t){var n,s=this,i=this.$messages.length;return n=_.filter(t,function(e,t){return!e.isread}),this.unseenCount-=n.length,_.forEachRight(this.$messages,function(t,n){var o=_.findIndex(e,function(e){return t.uid==e});o>-1?(e.splice(o,1),delete s.uidsMap[t.uid],t.uid==s.selectedMessage&&delete s.selectedMessage,s.$messages.splice(n,1),nt.uids.length-1)&&(n.$topIndex=0),n.init(t),n.uids&&(e.$log.debug("unwrapping "+n.uids.length+" messages"),a=_.invokeMap(n.headers[0],"toLowerCase"),n.headers.splice(0,1),n.threaded&&(o=n.uids[0],n.uids.splice(0,1)),_.reduce(n.uids,function(t,s,a){var r,l;return r=n.threaded?_.zipObject(o,s):{uid:s.toString()},n.uidsMap[r.uid]=a,(l=new e.$Message(n.$account.id,n,r,!0)).selected=i.indexOf(l.uid)>-1,t.push(l),t},n.$messages),_.forEach(n.headers,function(e){var t=_.zipObject(a,e),s=n.uidsMap[t.uid.toString()];n.$messages[s].init(t)})),e.$log.debug("mailbox "+n.id+" ready"),n.$isLoading=!1,s.resolve(n.$messages)})},function(e){angular.extend(n,e),n.isError=!0,n.$isLoading=!1,s.reject()}),s.promise},e.prototype.$unwrapHeaders=function(t){var n=this;t.then(function(t){e.$timeout(function(){var e,s;t.length>0&&(e=_.invokeMap(t[0],"toLowerCase"),t.splice(0,1),_.forEach(t,function(t){t=_.zipObject(e,t),s=n.uidsMap[t.uid.toString()],angular.isDefined(s)&&n.$messages[s].init(t)}))})})},e.prototype.$updateSubscribe=function(){var t=this.subscribed?"subscribe":"unsubscribe";e.$$resource.post(this.id,t)}}(),function(){"use strict";function e(e,t,n,s){this.accountId=e,this.$mailbox=t,this.$hasUnsafeContent=!1,this.$loadUnsafeContent=!1,this.editable={to:[],cc:[],bcc:[]},this.selected=!1,"function"!=typeof n.then?(!angular.isUndefined(s)&&s||this.init(n),this.uid=parseInt(n.uid)):this.$unwrap(n)}e.$factory=["$q","$timeout","$log","sgSettings","sgMessage_STATUS","Resource","Preferences",function(t,n,s,i,o,a,r){return angular.extend(e,{STATUS:o,$q:t,$timeout:n,$log:s,$$resource:new a(i.activeUser("folderURL")+"Mail",i.activeUser()),$Preferences:r,$avatar:angular.bind(r,r.avatar)}),r.defaults.SOGoMailLabelsColors&&(e.$tags=r.defaults.SOGoMailLabelsColors),r.defaults.SOGoMailDisplayRemoteInlineImages&&"always"==r.defaults.SOGoMailDisplayRemoteInlineImages&&(e.$displayRemoteInlineImages=!0),e}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMessage_STATUS",{NOT_LOADED:0,DELAYED_LOADING:1,LOADING:2,LOADED:3,DELAYED_MS:300}).factory("Message",e.$factory),e.filterTags=function(t,n){var s=new RegExp(t,"i"),i=[];return _.forEach(_.keys(e.$tags),function(t){var o=e.$tags[t];-1!=o[0].search(s)&&(_.includes(n,t)||i.push({name:t,description:o[0],color:o[1]}))}),i},e.prototype.init=function(e){var t=this;angular.extend(this,e),this.$formatFullAddresses(),this.$loadUnsafeContent=!1,_.forEach(this.flags,function(e,n){"$"==e.charAt(0)&&t.flags.splice(n,1,"_"+e)})},e.prototype.$absolutePath=function(t){var n=this,s=this.id;function i(){var e;return(e=_.map(n.$mailbox.path.split("/"),function(e){return"folder"+e.asCSSIdentifier()})).splice(0,0,n.accountId),e.join("/")}return(angular.isUndefined(this.id)||t&&t.nocache)&&(this.id=i()+"/"+this.uid,s=this.id),t&&t.asDraft&&this.draftId&&(s=i()+"/"+this.draftId),t&&t.withResourcePath&&(s=e.$$resource.path(s)),s},e.prototype.$setUID=function(e){var t,n=this.uid||-1,s=this;n!=parseInt(e)&&(this.uid=parseInt(e),this.$absolutePath({nocache:!0}),n>-1?(n=n.toString(),angular.isDefined(this.$mailbox.uidsMap[n])&&(t=this.$mailbox.uidsMap[n],this.$mailbox.uidsMap[e]=t,delete this.$mailbox.uidsMap[n],_.forEach(["from","to","subject"],function(e){s.$mailbox.$messages[t][e]=s[e]}))):this.$mailbox.constructor.selectedFolder&&"draft"==this.$mailbox.constructor.selectedFolder.type&&this.$mailbox.constructor.selectedFolder.$filter())},e.prototype.$formatFullAddresses=function(){var t=this,n=_.map(t.$mailbox.$account.identities,"email");_.forEach(["from","to","cc","bcc","reply-to"],function(s){_.forEach(t[s],function(t){t.name&&t.name!=t.email?(t.full=t.name+" <"+t.email+">",t.name.length<10?t.shortname=t.name:t.name.split(" ").length&&(t.shortname=_.first(_.last(t.name.split(/, */)).split(/ +/)).replace("'",""))):t.email&&(t.full="<"+t.email+">",t.shortname=t.email.split("@")[0]),t.image=e.$avatar(t.email,32),_.indexOf(n,t.email)>=0&&(t.shortname=l("me"))})})},e.prototype.$shortRecipients=function(e){var t=this,n=[],s=0,i=0;return _.forEach(["to","cc","bcc"],function(o){i+=t[o]?t[o].length:0,_.forEach(t[o],function(t,i){se&&n.push(l("and %{0} more...",i-e)),n.join(", ")},e.prototype.$shortAddress=function(e){var t="";return this[e]&&this[e].length>0&&(t=this[e][0].name||this[e][0].email||""),t},e.prototype.allowReplyAll=function(){var e=0;return e=_.reduce(["to","cc"],_.bind(function(e,t){return this[t]?e+this[t].length:e},this),e),!this.isDraft&&e>1},e.prototype.loadUnsafeContent=function(){this.$loadUnsafeContent=!0,delete this.$parts},e.prototype.$content=function(){var t=this,n=[],s=function(i){i.msgclass="msg-attachment-other","UIxMailPartAlternativeViewer"==i.type?s(_.find(i.content,function(e){return i.preferredPart==e.contentType})):angular.isArray(i.content)?("UIxMailPartSignedViewer"==i.type&&1===i["supports-smime"]?t.signed={valid:i.valid,certificate:i.certificates[i.certificates.length-1],message:i.message}:"UIxMailPartEncryptedViewer"==i.type&&(t.encrypted={valid:i.valid},i.valid?t.encrypted.message=l("This message is encrypted"):t.encrypted.message=l("This message can't be decrypted. Please make sure you have uploaded your S/MIME certificate from the mail preferences module.")),_.forEach(i.content,function(e){s(e)})):(angular.isUndefined(i.safeContent)&&(i.safeContent=i.content,t.$hasUnsafeContent|=i.safeContent.indexOf(" unsafe-")>-1),"UIxMailPartHTMLViewer"==i.type?(i.html=!0,t.$loadUnsafeContent||e.$displayRemoteInlineImages?(angular.isUndefined(i.unsafeContent)&&(i.unsafeContent=document.createElement("div"),i.unsafeContent.innerHTML=i.safeContent,angular.forEach(["src","data","classid","background","style"],function(e){var t,n,s,o=i.unsafeContent.querySelectorAll("[unsafe-"+e+"]");for(s=0;s"}),n={to:t},_.forEach(["subject","body"],function(t){var i=new RegExp(t+"=([^&]+)");t="body"==t?"text":t,(s=i.exec(e))&&(n[t]=decodeURIComponent(s[1]))}),_.forEach(["cc","bcc"],function(t){var i=new RegExp(t+"=([^&]+)");(s=i.exec(e))&&(n[t]=_.map(decodeURIComponent(s[1]).split(","),function(e){return"<"+e.trim()+">"}))}),angular.extend(this.editable,n))},e.prototype.$reply=function(){return this.$newDraft("reply")},e.prototype.$replyAll=function(){return this.$newDraft("replyall")},e.prototype.$forward=function(){return this.$newDraft("forward")},e.prototype.$newDraft=function(t){var n=this;return e.$$resource.fetch(this.$absolutePath(),t).then(function(s){var i,o;return e.$log.debug("New "+t+": "+JSON.stringify(s,void 0,2)),i=n.$mailbox.$account.$getMailboxByPath(s.mailboxPath),o=new e(s.accountId,i,s),e.$$resource.fetch(o.$absolutePath({asDraft:!0}),"edit").then(function(s){e.$log.debug("New "+t+": "+JSON.stringify(s,void 0,2)+" original UID: "+n.uid);var i=e.$Preferences.defaults.AuxiliaryMailAccounts[n.$mailbox.$account.id];return i.security&&(i.security.alwaysSign&&(s.sign=!0),i.security.alwaysEncrypt&&(s.encrypt=!0)),angular.extend(o.editable,s),o.origin={message:n,action:t},o})})},e.prototype.$save=function(){var t=this,n=this.editable;return e.$log.debug("save = "+JSON.stringify(n,void 0,2)),e.$$resource.save(this.$absolutePath({asDraft:!0}),n).then(function(n){e.$log.debug("save = "+JSON.stringify(n,void 0,2)),t.$setUID(n.uid),t.$reload(),t.isNew=!1})},e.prototype.$send=function(){var t=this,n=angular.copy(this.editable);return e.$log.debug("send = "+JSON.stringify(n,void 0,2)),e.$$resource.post(this.$absolutePath({asDraft:!0}),"send",n).then(function(n){return"success"==n.status?(angular.isDefined(t.origin)&&(t.origin.action.startsWith("reply")?t.origin.message.isanswered=!0:"forward"==t.origin.action&&(t.origin.message.isforwarded=!0)),n):e.$q.reject(n.data)})},e.prototype.$unwrap=function(t){var n=this;return this.$loaded=e.STATUS.DELAYED_LOADING,e.$timeout(function(){n.$loaded!=e.STATUS.LOADED&&(n.$loaded=e.STATUS.LOADING)},e.STATUS.DELAYED_MS),this.$futureMessageData=t.then(function(t){return 0===n.isread&&(n.isread=!0,n.$mailbox.unseenCount--),e.$timeout(function(){return delete n.$parts,n.$loaded=e.STATUS.LOADED,n.init(t),n})}),this.$futureMessageData},e.prototype.$omit=function(e){var t={},n=e&&e.privateAttributes;return angular.forEach(this,function(e,s){("constructor"!=s&&"$"!=s[0]||n)&&(t[s]=e)}),t},e.prototype.download=function(){var t,n;return t={uids:[this.uid]},n={filename:this.subject+".zip"},e.$$resource.download(this.$mailbox.id,"saveMessages",t,n)},e.prototype.downloadAttachments=function(){var t;return t={filename:l("attachments")+"-"+this.uid+".zip"},e.$$resource.download(this.$absolutePath(),"archiveAttachments",null,t)}}(),function(){"use strict";function e(){this.show=!1,this.message=null,this.elements=[]}e.$factory=["$document","$timeout","$mdPanel","sgHotkeys",function(t,n,s,i){return angular.extend(e,{$document:t,$timeout:n,$mdPanel:s,sgHotkeys:i}),new e}],e.prototype.setMessage=function(e){this.message=e},e.prototype.registerImage=function(e){this.elements.push(e)},e.prototype.registerHotkeys=function(t){this.keys=[e.sgHotkeys.createHotkey({key:"left",description:l("View previous item"),callback:angular.bind(t,t.previousImage)}),e.sgHotkeys.createHotkey({key:"right",description:l("View next item"),callback:angular.bind(t,t.nextImage)})],_.forEach(this.keys,function(t){e.sgHotkeys.registerHotkey(t)})},e.prototype.showGallery=function(t,n){var s=this,i=e.$mdPanel,o=angular.element(this.message.$content()[n].content).find("img")[0].src,a=_.filter(this.message.attachmentAttrs,function(e){return 0===e.mimetype.indexOf("image/")}),r=_.findIndex(a,function(e){return e.url.indexOf(o)>=0});angular.element(e.$document[0].body).addClass("sg-image-gallery-backdrop");var c=i.newPanelPosition().absolute(),u=i.newPanelAnimation().openFrom(t.target).duration(100).withAnimation(i.animation.FADE),d={attachTo:angular.element(document.body),locals:{lastIndex:a.length-1,images:a,selectedIndex:r,selectedImage:a[r]},bindToController:!0,controller:h,controllerAs:"$panelCtrl",position:c,animation:u,targetEvent:t,fullscreen:!0,hasBackdrop:!0,template:['',' ",' ','
'," navigate_before "," ",'
','
'," navigate_next "," ","
",' ','
','
',"
","
"," "].join(""),trapFocus:!0,clickOutsideToClose:!0,escapeToClose:!0,focusOnOpen:!0,onOpenComplete:function(){s.show=!0,_.forEach(e.$document.find("sg-image-gallery")[0].getElementsByClassName("sg-image-thumbnail"),function(t){var n=t.children[0];angular.element(n).one("load",function(){n.naturalWidth0&&this.selectImage(this.selectedIndex-1)}}},angular.module("SOGo.MailerUI").factory("ImageGallery",e.$factory)}(),function(){"use strict";function e(e){this.$account=e}e.$factory=["$q","$timeout","$log","sgSettings","Resource","Message","Mailbox","sgMailbox_PRELOAD",function(t,n,s,i,o,a,r,l){return angular.extend(e,{$q:t,$timeout:n,$log:s,$$resource:new o(i.activeUser("folderURL")+"Mail",i.activeUser()),$Message:r,selectedFolder:null,PRELOAD:l}),e}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMailbox_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("VirtualMailbox",e.$factory),e.$absolutePath=function(e){return[e,"virtual"].join("/")},e.prototype.init=function(e){this.$isLoading=!1,this.$mailboxes=[],this.uidsMap={},angular.extend(this,e),this.id=this.$id()},e.prototype.setMailboxes=function(e){this.$mailboxes=e,_.forEach(this.$mailboxes,function(e){e.$messages=[],e.uidsMap={}})},e.prototype.startSearch=function(t,n){var s=this,i=e.$q.when();this.$isLoading=!0,_.forEach(this.$mailboxes,function(o){i=i.then(function(){if(s.$isLoading)return e.$log.debug("searching mailbox "+o.path),o.$filter({sort:"date",asc:!1,match:t},n)})}),i.finally(function(){s.$isLoading=!1})},e.prototype.stopSearch=function(){e.$log.debug("stopping search..."),this.$isLoading=!1},e.prototype.selectFolder=function(){},e.prototype.resetSelectedMessage=function(){_.forEach(this.$mailboxes,function(e){delete e.selectedMessage})},e.prototype.hasSelectedMessage=function(){return angular.isDefined(_.find(this.$mailboxes,function(e){return angular.isDefined(e.selectedMessage)}))},e.prototype.isSelectedMessage=function(e,t){return angular.isDefined(_.find(this.$mailboxes,function(n){return n.path==t&&n.selectedMessage==e}))},e.prototype.getLength=function(){var e=0;return angular.isDefined(this.$mailboxes)?(_.forEach(this.$mailboxes,function(t){e+=t.$messages.length}),e):e},e.prototype.getItemAtIndex=function(e){var t,n,s,i,o;if(angular.isDefined(this.$mailboxes)&&e>=0)for(t=0,n=0;n0){var s=_.map(t,"uid");o.push(t);var r=e.$$resource.post(n,"addOrRemoveLabel",_.assign(i,{msgUIDs:s}));a.push(r)}}),e.$q.all(a).then(function(){return _.flatten(o)})},e.prototype.$deleteMessages=function(t){var n=[];return _.forEach(t,function(e,t){if(e.length>0){var s=e[0].$mailbox.$deleteMessages(e);n.push(s)}}),e.$q.all(n)},e.prototype.$markOrUnMarkMessagesAsJunk=function(t){var n=[];return _.forEach(t,function(e,t){if(e.length>0){var s=e[0].$mailbox.$markOrUnMarkMessagesAsJunk(e);n.push(s)}}),e.$q.all(n)},e.prototype.$copyMessages=function(t,n){var s=[];return _.forEach(t,function(e,t){if(e.length>0){var i=e[0].$mailbox.$copyMessages(e,n);s.push(i)}}),e.$q.all(s)},e.prototype.$moveMessages=function(t,n){var s=[];return _.forEach(t,function(e,t){if(e.length>0){var i=e[0].$mailbox.$moveMessages(e,n);s.push(i)}}),e.$q.all(s)}}(),function(){"use strict";e.$inject=["$window","$scope","$timeout","$q","$state","$mdDialog","$mdToast","stateAccounts","stateAccount","stateMailbox","sgHotkeys","encodeUriFilter","sgSettings","sgFocus","Dialog","Preferences","Account","Mailbox"];function e(e,t,n,s,i,o,a,r,c,u,d,h,g,f,m,p,$,b){var v,y=this,M=angular.element(e.document).find("title").attr("sg-default")||"SOGo",x=[];v={subject:"Subject",from:"From",date:"Date",size:"Size",arrival:"Order Received"},this.$onInit=function(){e.$mailboxController=y,this.service=b,this.accounts=r,this.account=c,this.selectedFolder=u,this.messageDialog=null,this.mode={search:!1,multiple:0},(n=x).push(d.createHotkey({key:l("hotkey_search"),description:l("Search"),callback:y.searchMode})),n.push(d.createHotkey({key:l("hotkey_compose"),description:l("Write a new message"),callback:function(e){null===y.messageDialog&&y.newMessage(e)}})),n.push(d.createHotkey({key:l("hotkey_junk"),description:l("Mark the selected messages as junk"),callback:y.markOrUnMarkMessagesAsJunk})),n.push(d.createHotkey({key:"space",description:l("Toggle item"),callback:y.toggleMessageSelection})),n.push(d.createHotkey({key:"shift+space",description:l("Toggle range of items"),callback:y.toggleMessageSelection})),n.push(d.createHotkey({key:"up",description:l("View next item"),callback:w,preventInClass:["sg-mail-part"]})),n.push(d.createHotkey({key:"down",description:l("View previous item"),callback:I,preventInClass:["sg-mail-part"]})),n.push(d.createHotkey({key:"shift+up",description:l("Add next item to selection"),callback:E,preventInClass:["sg-mail-part"]})),n.push(d.createHotkey({key:"shift+down",description:l("Add previous item to selection"),callback:S,preventInClass:["sg-mail-part"]})),_.forEach(["backspace","delete"],function(e){n.push(d.createHotkey({key:e,description:l("Delete selected message or folder"),callback:y.confirmDeleteSelectedMessages}))}),_.forEach(n,function(e){d.registerHotkey(e)});var n;angular.element(e).on("beforeunload",C),t.$on("$destroy",function(){angular.element(e).off("beforeunload",C),_.forEach(x,function(e){d.deregisterHotkey(e)})}),t.$watch(function(){return y.selectedFolder.unseenCount},function(t){var n=M+" - ";t&&(n+="("+t+") "),n+=y.selectedFolder.$displayName,e.document.title=n})};function C(e){return y.selectedFolder.$compact()}this.centerIsClose=function(e){return this.selectedFolder.hasSelectedMessage()&&!!e},this.sort=function(e){if(!e)return v[y.service.$query.sort];y.selectedFolder.$filter({sort:e})},this.sortedBy=function(e){return b.$query.sort==e},this.ascending=function(){return b.$query.asc},this.searchMode=function(){y.mode.search=!0,f("search")},this.cancelSearch=function(){y.mode.search=!1,y.selectedFolder.$filter().then(function(){y.selectedFolder.selectedMessage&&n(function(){y.selectedFolder.$topIndex=y.selectedFolder.uidsMap[y.selectedFolder.selectedMessage]})})},this.composeWindowEnabled=function(){return p.defaults.SOGoMailComposeWindowEnabled},this.newMessage=function(t,n){var s;null===y.messageDialog&&(n||"popup"==p.defaults.SOGoMailComposeWindow?function(){var t=[g.baseURL(),"UIxMailPopupView#!/Mail",y.account.id,h(h(y.selectedFolder.path)),"new"].join("/"),n=y.selectedFolder.$id()+"/"+Math.random(0,1e3);console.debug(t),e.open(t,n,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))}():(s=y.account.$newMessage(),y.messageDialog=o.show({parent:angular.element(document.body),targetEvent:t,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:y.account,stateMessage:s}}).catch(_.noop).finally(function(){y.messageDialog=null})))};function w(e){var t=y.selectedFolder.$selectedMessageIndex();return angular.isDefined(t)?(t--,y.selectedFolder.$topIndex>0&&y.selectedFolder.$topIndex--):(t=y.selectedFolder.getLength()-1,y.selectedFolder.$topIndex=y.selectedFolder.getLength()),t>-1&&y.selectMessage(y.selectedFolder.$messages[t]),e.preventDefault(),t}function I(e){var t=y.selectedFolder.$selectedMessageIndex();return angular.isDefined(t)?(t++,y.selectedFolder.$topIndex=0&&y.toggleMessageSelection(e,y.selectedFolder.$messages[t])}function S(e){var t;y.selectedFolder.hasSelectedMessage()&&(t=I(e))>=0&&y.toggleMessageSelection(e,y.selectedFolder.$messages[t])}this.selectMessage=function(e){b.$virtualMode?i.go("mail.account.virtualMailbox.message",{mailboxId:h(e.$mailbox.path),messageId:e.uid}):i.go("mail.account.mailbox.message",{messageId:e.uid})},this.toggleMessageSelection=function(e,t){var n,s,i,o=y.selectedFolder;if(t||(t=o.$selectedMessage()),!t)return!0;if(t.selected=!t.selected,y.mode.multiple+=t.selected?1:-1,e.shiftKey&&o.$selectedCount()>1){for(s=(n=o.uidsMap[t.uid])-2;s>=0&&!o.$messages[s].selected;)s--;if(s<0)for(s=n+2;s=0&&s0&&(a-=1,s=y.selectedFolder.$messages[a]),t0&&(y.messageDialog=m.confirm(l("Confirmation"),l("Are you sure you want to delete the selected messages?"),{ok:l("Delete")}).then(function(){var e=y.selectedFolder.hasSelectedMessage();y.selectedFolder.$deleteMessages(t).then(function(t){b.$virtualMode?e&&i.go("mail.account.virtualMailbox"):F(e,t)},function(n){y.messageDialog=m.confirm(l("Warning"),l("The messages could not be moved to the trash folder. Would you like to delete them immediately?"),{ok:l("Delete")}).then(function(){y.selectedFolder.$deleteMessages(t,{withoutTrash:!0}).then(function(t){b.$virtualMode?e&&i.go("mail.account.virtualMailbox"):F(e,t)})})})}).finally(function(){y.messageDialog=null})),e.preventDefault()},this.markOrUnMarkMessagesAsJunk=function(){var e=y.selectedFolder.hasSelectedMessage(),t=y.selectedFolder.$selectedMessages();0===_.size(t)&&e&&(t=[y.selectedFolder.$selectedMessage()]),_.size(t)>0&&y.selectedFolder.$markOrUnMarkMessagesAsJunk(t).then(function(){var n="/"+y.account.id+"/folderINBOX";"junk"!=y.selectedFolder.type&&(n="/"+y.account.$getMailboxByType("junk").id),y.selectedFolder.$moveMessages(t,n).then(function(t){b.$virtualMode?e&&i.go("mail.account.virtualMailbox"):F(e,t)})})},this.copySelectedMessages=function(e){var t=y.selectedFolder.$selectedMessages();_.size(t)>0&&y.selectedFolder.$copyMessages(t,"/"+e).then(function(){a.show(a.simple().content(l("%{0} message(s) copied",y.selectedFolder.$selectedCount())).position("top right").hideDelay(2e3))})},this.moveSelectedMessages=function(e){var t=y.selectedFolder.hasSelectedMessage(),n=y.selectedFolder.$selectedMessages(),s=y.selectedFolder.$selectedCount();_.size(n)>0&&y.selectedFolder.$moveMessages(n,"/"+e).then(function(e){a.show(a.simple().content(l("%{0} message(s) moved",s)).position("top right").hideDelay(2e3)),b.$virtualMode?t&&i.go("mail.account.virtualMailbox"):F(t,e)})},this.selectAll=function(){var e=0;_.forEach(A(),function(t){for(var n=0,s=t.$messages.length;n0&&y.selectedFolder.$flagMessages(e,"\\Flagged","add").then(function(e){_.forEach(e,function(e){e.isflagged=!0})})},this.markSelectedMessagesAsUnread=function(){var e=y.selectedFolder.$selectedMessages();_.size(e)>0&&y.selectedFolder.$flagMessages(e,"seen","remove").then(function(e){_.forEach(e,function(e){e.isread&&e.$mailbox.unseenCount++,e.isread=!1})})},this.markSelectedMessagesAsRead=function(){var e=y.selectedFolder.$selectedMessages();_.size(e)>0&&y.selectedFolder.$flagMessages(e,"seen","add").then(function(e){_.forEach(e,function(e){e.isread||e.$mailbox.unseenCount--,e.isread=!0})})}}angular.module("SOGo.MailerUI").controller("MailboxController",e),t.$inject=["$delegate"];function t(e){return e[0].controller.prototype.resetScroll=function(){"messagesList"==this.$element.parent().attr("id")?this.updateSize():this.scrollTo(0)},e}angular.module("material.components.virtualRepeat").decorator("mdVirtualRepeatContainerDirective",t)}(),function(){"use strict";e.$inject=["$scope","$state","$transitions","$timeout","$window","$mdDialog","$mdToast","sgFocus","encodeUriFilter","Dialog","sgSettings","sgHotkeys","Account","Mailbox","VirtualMailbox","User","Preferences","stateAccounts"];function e(e,t,n,s,i,o,a,r,c,u,d,h,g,f,m,p,$,b){var v,y,M=this,x=[];this.$onInit=function(){this.service=f,this.accounts=b,this.currentSearchParam="",this.search={options:{"":"",subject:l("Enter Subject"),from:l("Enter From"),to:l("Enter To"),cc:l("Enter Cc"),body:l("Enter Body")},subfolders:1,match:"AND",params:[]},this.showSubscribedOnly=$.defaults.SOGoMailShowSubscribedFoldersOnly,this.refreshUnseenCount(),t=x,_.forEach(["backspace","delete"],function(e){t.push(h.createHotkey({key:e,description:l("Delete selected message or folder"),callback:function(){f.selectedFolderController&&f.selectedFolder&&f.selectedFolder.$isEditable&&!f.selectedFolder.hasSelectedMessage()&&f.selectedFolderController.confirmDelete(f.selectedFolder)}}))}),_.forEach(t,function(e){h.registerHotkey(e)});var t;e.$on("$destroy",function(){_.forEach(x,function(e){h.deregisterHotkey(e)})})};this.hideAdvancedSearch=function(){M.service.$virtualPath=!1,M.service.$virtualMode=!1,v=M.accounts[0],y=M.searchPreviousMailbox,t.go("mail.account.mailbox",{accountId:v.id,mailboxId:c(y.path)})},this.toggleAdvancedSearch=function(){if(f.selectedFolder.$isLoading)M.virtualMailbox.stopSearch();else{var e,n=[],s=function(e){_.forEach(e,function(e){n.push(e),e.children&&e.children.length>0&&s(e.children)})};M.virtualMailbox=new m(M.accounts[0]),f.$virtualMode||(M.searchPreviousMailbox=f.selectedFolder),f.selectedFolder=M.virtualMailbox,f.$virtualMode=!0,angular.isDefined(f.$virtualPath)?(e=M.accounts[0].$getMailboxByPath(f.$virtualPath),n.push(e),M.search.subfolders&&e.children.length&&s(e.children)):n=M.accounts[0].$flattenMailboxes(),M.virtualMailbox.setMailboxes(n),M.virtualMailbox.startSearch(M.search.match,M.search.params),"mail.account.virtualMailbox"!=t.$current.name&&t.go("mail.account.virtualMailbox",{accountId:M.accounts[0].id})}},this.addSearchParam=function(e){return M.currentSearchParam=e,r("advancedSearch"),!1},this.newSearchParam=function(e){if(e.length&&M.currentSearchParam.length){var t=0,n=M.currentSearchParam;return e.startsWith("!")&&(t=1,e=e.substring(1).trim()),M.currentSearchParam="",{searchBy:n,searchInput:e,negative:t}}},this.toggleAccountState=function(e){e.$expanded=!e.$expanded,e.$flattenMailboxes({reload:!0,saveState:!0}),s(function(){angular.element(i).triggerHandler("resize")},150)},this.subscribe=function(e){o.show({templateUrl:e.id+"/subscribe",controller:t,controllerAs:"subscriptions",clickOutsideToClose:!0,escapeToClose:!0,locals:{srcAccount:e}}).finally(function(){e.$getMailboxes({reload:!0})}),t.$inject=["$scope","$mdDialog","srcAccount"];function t(e,t,n){var s=this;s.loading=!0,s.filter={name:""},s.account=new g({id:n.id,name:n.name}),s.close=function(){t.hide()},s.account.$getMailboxes({reload:!0,all:!0}).then(function(){s.loading=!1})}},this.newFolder=function(e){u.prompt(l("New Folder..."),l("Enter the new name of your folder")).then(function(t){e.$newMailbox(e.id,t).then(function(){},function(e,n){u.alert(l('An error occured while creating the mailbox "%{0}".',t),l(e.error))})})},this.delegate=function(e){o.show({templateUrl:e.id+"/delegation",controller:t,controllerAs:"delegate",clickOutsideToClose:!0,escapeToClose:!0,locals:{User:p,account:e}}),t.$inject=["$scope","$mdDialog","User","account"];function t(e,t,n,s){var i=this;i.users=s.delegates,i.account=s,i.userToAdd="",i.searchText="",i.userFilter=function(e){return n.$filter(e,s.delegates)},i.closeModal=function(){t.hide()},i.removeUser=function(e){s.$removeDelegate(e.uid).catch(function(e,t){u.alert(l("Warning"),l("An error occured please try again."))})},i.addUser=function(e){e&&s.$addDelegate(e).then(function(){i.userToAdd="",i.searchText=""},function(e){u.alert(l("Warning"),e)})}}},this.refreshUnseenCount=function(){var e,t=i.unseenCountFolders;_.forEach(M.accounts,function(e){_.includes(t,e.id+"/folderINBOX")||t.push(e.id+"/folderINBOX"),_.forEach(e.$$flattenMailboxes,function(e){angular.isDefined(e.unseenCount)&&!_.includes(t,e.id)&&t.push(e.id)})}),g.$$resource.post("","unseenCount",{mailboxes:t}).then(function(e){_.forEach(M.accounts,function(t){_.forEach(t.$$flattenMailboxes,function(t){e[t.id]&&(t.unseenCount=e[t.id])})})}),(e=$.defaults.SOGoRefreshViewCheck)&&"manually"!=e&&s(M.refreshUnseenCount,1e3*e.timeInterval())},this.isDroppableFolder=function(e,t){return t.id!=e.id&&!t.isNoSelect()},this.dragSelectedMessages=function(e,n,s){var i,o,r,c,u,d;i="/"+n.id,0===(o=e.$selectedMessages()).length&&(o=[e.$selectedMessage()]),r=_.map(o,"uid"),c=e.selectedMessage&&r.indexOf(e.selectedMessage)>=0,"copy"==s?(u=e.$copyMessages(o,i),d=l("%{0} message(s) copied",o.length)):(u=e.$moveMessages(o,i),d=l("%{0} message(s) moved",o.length)),u.then(function(){c&&t.go("mail.account.mailbox"),a.show(a.simple().content(d).position("top right").hideDelay(2e3))})}}angular.module("SOGo.MailerUI").controller("MailboxesController",e)}(),function(){"use strict";e.$inject=["$window","$scope","$state","$mdMedia","$mdDialog","sgConstant","stateAccounts","stateAccount","stateMailbox","stateMessage","sgHotkeys","encodeUriFilter","sgSettings","ImageGallery","sgFocus","Dialog","Preferences","Calendar","Component","Account","Mailbox","Message"];function e(e,t,n,s,i,o,a,r,c,u,d,h,g,f,m,p,$,b,v,y,M,x){var C=this,w=[];this.$onInit=function(){e.$messageController=C,f.setMessage(u),this.$state=n,this.accounts=a,this.account=r,this.mailbox=c,this.message=u,this.service=x,this.tags={searchText:"",selected:""},this.showFlags=u.flags&&u.flags.length>0,this.$showDetailedRecipients=!1,C.showRawSource=!1,(s=w).push(d.createHotkey({key:l("hotkey_reply"),description:l("Reply to the message"),callback:E(angular.bind(C,C.reply))})),s.push(d.createHotkey({key:l("hotkey_replyall"),description:l("Reply to sender and all recipients"),callback:E(angular.bind(C,C.replyAll))})),s.push(d.createHotkey({key:l("hotkey_forward"),description:l("Forward selected message"),callback:E(angular.bind(C,C.forward))})),s.push(d.createHotkey({key:l("hotkey_flag"),description:l("Flagged"),callback:E(angular.bind(u,u.toggleFlag))})),_.forEach(["backspace","delete"],function(e){s.push(d.createHotkey({key:e,callback:E(function(e){0===C.mailbox.$selectedCount()&&C.deleteMessage(),e.preventDefault()})}))}),_.forEach(s,function(e){d.registerHotkey(e)});var s;e.opener?(t.$watchCollection(function(){return C.message.flags},function(e,t){var n;(e||t)&&(n=S()).messageCtrl&&n.messageCtrl.service.$timeout(function(){n.messageCtrl.showFlags=!0,n.messageCtrl.message.flags=e})}),t.$watch(function(){return C.message.isflagged},function(e,t){var n=S();n.mailboxCtrl&&n.mailboxCtrl.service.$timeout(function(){_.find(n.mailboxCtrl.selectedFolder.$messages,{uid:C.message.uid}).isflagged=e})})):t.$watchCollection(function(){return C.message.flags},function(e,t){var n,s,i;(e||t)&&(n=e||[],s=t||[],_.forEach(n,function(e,t){angular.isObject(e)&&(n[t]=e.name)}),n.length>s.length?(i=_.difference(n,s),_.forEach(i,function(e){C.message.addTag(e)})):n.length0&&(t.mailbox.messageDialog=arguments[0]),t.mailbox.messageDialog):null}function E(e){return function(){if(null===I())return e.apply(C,arguments)}}function S(){var t,n,s={};return e.opener&&e.opener.$mailboxController&&e.opener.$mailboxController.selectedFolder.$id()==c.$id()&&(n=e.opener.$mailboxController,s.mailboxCtrl=n,e.opener.$messageController&&e.opener.$messageController.message.uid==u.uid&&(t=e.opener.$messageController,s.messageCtrl=t)),s}this.addFlags=function(e){e.stopPropagation(),e.preventDefault(),this.showFlags=!0,m("flags")},this.toggleDetailedRecipients=function(e){this.$showDetailedRecipients=!this.$showDetailedRecipients,e.stopPropagation(),e.preventDefault()},this.filterMailtoLinks=function(e){var t;"A"==e.target.tagName&&"href"in e.target.attributes&&(t=e.target.attributes.href.value,/^mailto:([^\?]+)/.exec(t)&&(delete e.target.attributes.target,this.newMessage(e,t)))},this.deleteMessage=function(){var e,t,i,a,r,l=S();l.messageCtrl?(e=l.mailboxCtrl.selectedFolder,t=l.messageCtrl.message,i=l.messageCtrl.$state):(e=c,t=u,i=n),e.$deleteMessages([t]).then(function(n){var l=n;if(t=null,angular.isDefined(i)){n>0&&(l-=1,a=e.$messages[l]),ne.$lastVisibleIndex&&(e.$topIndex=l-(e.$lastVisibleIndex-e.$topIndex))):i.go("mail.account.mailbox").then(function(){t=null,delete e.selectedMessage})}catch(e){}}C.closePopup()})};function A(e,t){null===I()&&I(i.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:C.account,stateMessage:t}}).catch(_.noop).finally(function(){I(null),C.closePopup()}))}this._showMailEditorInPopup=function(e){return!g.isPopup&&"popup"==$.defaults.SOGoMailComposeWindow&&(this.openInPopup(e),!0)},this.close=function(){n.go("mail.account.mailbox").then(function(){C.message=null,delete c.selectedMessage})},this.reply=function(e){this._showMailEditorInPopup("reply")||A(e,this.message.$reply())},this.replyAll=function(e){this._showMailEditorInPopup("replyall")||A(e,this.message.$replyAll())},this.forward=function(e){this._showMailEditorInPopup("forward")||A(e,this.message.$forward())},this.edit=function(e){this._showMailEditorInPopup("edit")||this.message.$editableContent().then(function(){A(e,C.message)})},this.openInPopup=function(t){var n=[g.baseURL(),"UIxMailPopupView#!/Mail",this.message.accountId,h(h(this.message.$mailbox.path)),this.message.uid].join("/"),s=this.message.$absolutePath();t&&(n+="/"+t),e.open(n,s,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))},this.closePopup=function(){e.document.body.classList.contains("popup")&&e.close()},this.newMessage=function(e,t){e.stopPropagation(),e.preventDefault(),this.account.$newMessage({mailto:t}).then(function(t){A(e,t)})},this.toggleRawSource=function(e){this.showRawSource||this.message.$rawSource?this.showRawSource=!this.showRawSource:x.$$resource.post(this.message.id,"viewsource").then(function(e){C.message.$rawSource=e,C.showRawSource=!0})},this.print=function(t){e.print()},this.convertToEvent=function(e){return F(e,"appointment")},this.convertToTask=function(e){return F(e,"task")};function F(e,t){C.message.$plainContent().then(function(n){var s={pid:b.$defaultCalendar(),type:t,summary:n.subject,comment:n.content},o=new v(s),a=[g.activeUser("folderURL"),"Calendar","UIx"+t.capitalize()+"EditorTemplate"].join("/");return i.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:a,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:o}})})}}angular.module("SOGo.MailerUI").controller("MessageController",e)}(),function(){"use strict";e.$inject=["$scope","$window","$stateParams","$mdConstant","$mdUtil","$mdDialog","$mdToast","FileUploader","stateAccount","stateMessage","encodeUriFilter","$timeout","Dialog","AddressBook","Card","Preferences"];function e(e,t,n,s,i,o,a,r,c,u,d,h,g,f,m,p){var $=this;this.$onInit=function(){$.addRecipient=S,$.autocomplete={to:{},cc:{},bcc:{}},$.autosave=null,$.autosaveDrafts=A,$.cancel=x,$.contactFilter=E,$.isFullscreen=!1,$.hideBcc=0===u.editable.bcc.length,$.hideCc=0===u.editable.cc.length,$.identities=_.uniq(_.map(c.identities,"full")),$.message=u,$.recipientSeparatorKeys=[s.KEY_CODE.ENTER,s.KEY_CODE.TAB,s.KEY_CODE.COMMA,s.KEY_CODE.SEMICOLON],$.removeAttachment=M,$.save=C,$.send=w,$.sendState=!1,$.toggleFullscreen=I,$.uploader=new r({url:$.message.$absolutePath({asDraft:!0,withResourcePath:!0})+"/save",autoUpload:!0,alias:"attachments",removeAfterUpload:!1,onSuccessItem:function(e,t,n,s){$.message.$setUID(t.uid),$.message.$reload({asDraft:!1}),e.inlineUrl=t.lastAttachmentAttrs[0].url},onCancelItem:function(e,t,n,s){$.message.$deleteAttachment(e.file.name),this.removeFromQueue(e)},onErrorItem:function(e,t,n,s){a.show(a.simple().content(l('Error while uploading the file "%{0}":',e.file.name)+" "+(t.message?l(t.message):"")).position("top right").action(l("OK")).hideDelay(!1)),this.removeFromQueue(e)}}),p.defaults.SOGoMailAutoSave&&($.autosave=h($.autosaveDrafts,1e3*p.defaults.SOGoMailAutoSave*60)),$.localeCode=p.defaults.LocaleCode,e.$on("$destroy",function(){$.uploader.destroy()}),"reply"==n.actionName?u.$reply().then(function(e){$.message=e,$.hideCc=!e.editable.cc||0===e.editable.cc.length,$.hideBcc=!e.editable.bcc||0===e.editable.bcc.length,v()}):"replyall"==n.actionName?u.$replyAll().then(function(e){$.message=e,$.hideCc=!e.editable.cc||0===e.editable.cc.length,$.hideBcc=!e.editable.bcc||0===e.editable.bcc.length,v()}):"forward"==n.actionName?u.$forward().then(function(e){$.message=e,v(),y()}):angular.isDefined(u)&&($.message=u,v(),y())};function b(){var e,n={};try{t.opener&&"$mailboxController"in t.opener&&"selectedFolder"in t.opener.$mailboxController&&("draft"==t.opener.$mailboxController.selectedFolder.type?(n.draftMailboxCtrl=t.opener.$mailboxController,"$messageController"in t.opener&&t.opener.$messageController.message.uid==u.uid&&(n.draftMessageCtrl=t.opener.$messageController)):u.origin&&(e=u.origin.message,t.opener.$mailboxController.selectedFolder.$id()==e.$mailbox.$id()&&(n.originMailboxCtrl=t.opener.$mailboxController)))}catch(e){}return n}function v(){$.uploader.url=$.message.$absolutePath({asDraft:!0,withResourcePath:!0})+"/save"}function y(){var e,t,n,s=$.message.editable.attachmentAttrs;if(s)for(e=0;e',' '," {{$ctrl.mailbox.$icon}} "," ",' ',' ',' ',"
",' ',' '," ",' '].join(""),controller:"sgMailboxListItemController",controllerAs:"$ctrl"}})}(),function(){e.$inject=["$scope","$element","Mailbox"];function e(e,t,n){var s=this;this.$onInit=function(){var t=["uid","isread","isflagged","flags","subject"];this.MailboxService=n,"draft"==n.selectedFolder.type&&t.push("subject"),e.$watch(function(){return s.message?[_.pick(s.message,t)]:null},function(e,t){s.message&&s.onUpdate()},!0)},this.onUpdate=function(){this.message.isread?t.removeClass("unread"):t.addClass("unread"),n.selectedFolder.isSelectedMessage(this.message.uid,this.message.$mailbox.path)?t.addClass("md-default-theme md-accent md-bg md-hue-2"):t.removeClass("md-default-theme md-accent md-bg md-hue-2")},this.setVisibility=function(e,t){t?e.classList.remove("ng-hide"):e.classList.add("ng-hide")}}angular.module("SOGo.MailerUI").controller("sgMessageListItemController",e).directive("sgMessageListItem",function(){return{restrict:"C",scope:{},bindToController:{message:"=sgMessage"},controller:"sgMessageListItemController"}})}(),function(){e.$inject=["$scope","$element","$parse","$state","$mdUtil","$mdToast","Mailbox","Message","encodeUriFilter"];function e(e,t,n,s,i,o,a,r,l){var c=this;this.$postLink=function(){var n,s,o,l;this.parentController=e.parentController,o=this.parentController.onUpdate,l=this.parentController.setVisibility,_.forEach(t.find("div"),function(e){e.classList.contains("sg-tile-content")?n=angular.element(e):e.classList.contains("sg-tile-icons")&&(s=angular.element(e))}),this.priorityIconElement=n.find("md-icon")[0],a.$virtualMode&&(this.mailboxNameElement=n.find("span")[0],this.mailboxNameElement.classList.remove("ng-hide")),this.senderElement=n.find("span")[1],_.forEach(n.find("div"),function(e){e.classList.contains("sg-tile-subject")?c.subjectElement=e:e.classList.contains("sg-tile-size")?c.sizeElement=e:e.classList.contains("sg-tile-date")&&(c.dateElement=e)}),_.forEach(s.find("md-icon"),function(e){"star"==e.textContent?c.flagIconElement=e:"reply"==e.textContent?c.answerIconElement=e:"forward"==e.textContent?c.forwardIconElement=e:"attach_file"==e.textContent&&(c.attachmentIconElement=e)}),this.parentController.onUpdate=function(){var e;c.message=c.parentController.message;var n=i.nodesToArray(t[0].querySelectorAll(".sg-category"));for(_.forEach(n,function(e){t[0].removeChild(e)}),e=0;e');a.css("left",3*e+"px"),a.css("background-color",c.service.$tags[s][1]),t.prepend(a)}}c.mailboxNameElement&&(c.mailboxNameElement.innerHTML=c.message.$mailbox.$displayName),"sent"==c.MailboxService.selectedFolder.type?c.senderElement.innerHTML=c.message.$shortAddress("to").encodeEntities():c.senderElement.innerHTML=c.message.$shortAddress("from").encodeEntities(),c.message.priority&&c.message.priority.level<3?(c.priorityIconElement.classList.remove("ng-hide"),c.message.priority.level<2?c.priorityIconElement.classList.add("md-warn"):c.priorityIconElement.classList.remove("md-warn")):c.priorityIconElement.classList.add("ng-hide"),c.subjectElement.innerHTML=c.message.subject.encodeEntities(),c.sizeElement.innerHTML=c.message.size,c.dateElement.innerHTML=c.message.relativedate,l(c.flagIconElement,c.message.isflagged),l(c.answerIconElement,c.message.isanswered),l(c.forwardIconElement,c.message.isforwarded),l(c.attachmentIconElement,c.message.hasattachment),angular.bind(c.parentController,o)()},this.service=r,this.MailboxService=a}}angular.module("SOGo.MailerUI").controller("sgMessageListItemMainController",e).directive("sgMessageListItemMain",function(){return{restrict:"C",require:"^^sgMessageListItem",scope:{},template:['','
',"
",' \x3c!-- mailbox --\x3e ',' error '," \x3c!-- sender or recipient --\x3e ","
",'
\x3c!-- date --\x3e
',"
",'
','
\x3c!-- subject --\x3e
','
\x3c!-- size --\x3e
',"
","
",'',' star ',' reply ',' forward ',' attach_file ',"
",'',' \x3c!-- message loading progress --\x3e ',"
"].join(""),link:function(e,t,n,s){e.parentController=s},controller:"sgMessageListItemMainController",controllerAs:"$ctrl"}})}(),function(){"use strict";e.$inject=["$element","ImageGallery"];function e(e,t){var n=this;this.$postLink=function(){t.registerImage(e),e.on("click",this.showImage)},this.showImage=function(e){"IMG"==e.target.tagName&&t.showGallery(e,n.partIndex)}}angular.module("SOGo.MailerUI").directive("sgZoomableImage",function(){return{restrict:"A",bindToController:{partIndex:"=sgZoomableImage"},controller:e}})}();
+!function(){"use strict";function e(t){"function"!=typeof t.then&&(angular.extend(this,t),_.forEach(this.identities,function(e){e.fullName?e.full=e.fullName+" <"+e.email+">":e.full="<"+e.email+">"}),e.$log.debug("Account: "+JSON.stringify(t,void 0,2)))}e.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Mailbox","Message",function(t,n,s,i,o,a,r,l){return angular.extend(e,{$q:t,$timeout:n,$log:s,$$resource:new o(i.activeUser("folderURL")+"Mail",i.activeUser()),$Preferences:a,$Mailbox:r,$Message:l}),e}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Account",e.$factory),e.$findAll=function(t){return t?e.$unwrapCollection(t):e.$$resource.fetch("","mailAccounts").then(function(t){return e.$unwrapCollection(t)})},e.$unwrapCollection=function(t){var n=[];return angular.forEach(t,function(t,s){t.id=s,n[s]=new e(t)}),e.$accounts=n,n},e.prototype.getLength=function(){return this.$flattenMailboxes().length},e.prototype.getItemAtIndex=function(e){var t;return t=this.$flattenMailboxes(),e>=0&&e=0,e.children&&e.children.length>0&&i(e.children)})};if(e.$Preferences.settings.Mail.ExpandedFolders){if(angular.isString(e.$Preferences.settings.Mail.ExpandedFolders))try{s=angular.fromJson(e.$Preferences.settings.Mail.ExpandedFolders)}catch(t){e.$log.warn("Can't parse list of expanded folders. String was: "+e.$Preferences.settings.Mail.ExpandedFolders),s=[]}else s=e.$Preferences.settings.Mail.ExpandedFolders;n.$expanded=s.indexOf("/"+n.id)>=0,s.length>0&&i(n.$mailboxes)}return e.$accounts&&(n.$expanded|=1==e.$accounts.length),n.$flattenMailboxes({reload:!0}),n.$mailboxes}):e.$q.when(this.$mailboxes)},e.prototype.$flattenMailboxes=function(t){var n=[],s=[],i=function(e){_.forEach(e,function(e){n.push(e),(t&&t.all||e.$expanded)&&e.children&&e.children.length>0&&i(e.children)})};return!this.$$flattenMailboxes||t&&(t.reload||t.all)?(i(this.$mailboxes),t&&t.all||(this.$$flattenMailboxes=n,t&&t.saveState&&(_.forEach(e.$accounts,function(e){e.$expanded&&s.push("/"+e.id),_.reduce(e.$$flattenMailboxes,function(e,t){return t.$expanded&&e.push("/"+t.id),e},s)}),e.$$resource.post(null,"saveFoldersState",s)))):n=this.$$flattenMailboxes,n},e.prototype.$getMailboxByType=function(e){var t=function(n){var s=_.find(n,function(t){return t.type==e});return s||angular.forEach(n,function(e){!s&&e.children&&e.children.length>0&&(s=t(e.children))}),s};return t(this.$mailboxes)},e.prototype.$getMailboxByPath=function(e){var t=function(n){var s=_.find(n,function(t){return t.path==e});return s||angular.forEach(n,function(e){!s&&e.children&&e.children.length>0&&(s=t(e.children))}),s};return t(this.$mailboxes)},e.prototype.$newMailbox=function(t,n){var s=this;return e.$$resource.post(t.toString(),"createFolder",{name:n}).then(function(){s.$getMailboxes({reload:!0})})},e.prototype.$certificate=function(){var t=this;return this.security&&this.security.hasCertificate?this.$$certificate?e.$q.when(this.$$certificate):e.$$resource.fetch(this.id.toString(),"certificate").then(function(e){return t.$$certificate=e,e}):e.$q.reject()},e.prototype.$removeCertificate=function(){var t=this;return e.$$resource.fetch(this.id.toString(),"removeCertificate").then(function(){t.security.hasCertificate=!1})},e.prototype.updateQuota=function(e){var t,n;t=Math.round(1e4*e.usedSpace/e.maxQuota)/100,n=l("quotasFormat").formatted(t,Math.round(e.maxQuota/10.24)/100),this.$quota={percent:t,description:n}},e.prototype.$newMessage=function(t){var n=this;return e.$$resource.fetch(this.id.toString(),"compose").then(function(t){e.$log.debug("New message (compose): "+JSON.stringify(t,void 0,2));return new e.$Message(t.accountId,n.$getMailboxByPath(t.mailboxPath),t)}).then(function(s){return e.$$resource.fetch(s.$absolutePath({asDraft:!0}),"edit").then(function(i){var o=e.$Preferences.defaults.AuxiliaryMailAccounts[n.id];return o.security&&(o.security.alwaysSign&&(i.sign=!0),o.security.alwaysEncrypt&&(i.encrypt=!0)),e.$log.debug("New message (edit): "+JSON.stringify(i,void 0,2)),angular.extend(s.editable,i),s.isNew=!0,t&&t.mailto&&(angular.isObject(t.mailto)?angular.extend(s.editable,t.mailto):s.$parseMailto(t.mailto)),s})})},e.prototype.$addDelegate=function(t){var n=this,s=e.$q.defer(),i={uid:t.uid};return!t.uid||_.indexOf(_.map(this.delegates,"uid"),t.uid)>-1?s.resolve():e.$$resource.fetch(this.id.toString(),"addDelegate",i).then(function(){n.delegates.push(t),s.resolve(n.users)},function(e,t){s.reject(l("An error occured please try again."))}),s.promise},e.prototype.$removeDelegate=function(t){var n=this,s={uid:t};return e.$$resource.fetch(this.id.toString(),"removeDelegate",s).then(function(){var e=_.indexOf(_.map(n.delegates,"uid"),t);e>=0&&n.delegates.splice(e,1)})}}(),function(){"use strict";function e(t,n){if(this.$account=t,"function"!=typeof n.then){if(this.init(n),this.name&&!this.path){var s=e.$$resource.create("createFolder",this.name);this.$unwrap(s)}}else this.$unwrap(n)}e.$factory=["$q","$timeout","$log","sgSettings","Resource","Message","Acl","Preferences","sgMailbox_PRELOAD",function(t,n,s,i,o,a,r,l,c){return angular.extend(e,{$q:t,$timeout:n,$log:s,$$resource:new o(i.activeUser("folderURL")+"Mail",i.activeUser()),$Message:a,$$Acl:r,$Preferences:l,$query:{sort:"arrival",asc:0},selectedFolder:null,$refreshTimeout:null,$virtualMode:!1,$virtualPath:!1,PRELOAD:c}),l.settings.Mail.SortingState&&(e.$query.sort=l.settings.Mail.SortingState[0],e.$query.asc=parseInt(l.settings.Mail.SortingState[1])),e}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMailbox_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("Mailbox",e.$factory),e.$find=function(t,n){var s;return s=n&&n.all?this.$$resource.fetch(t.id.toString(),"viewAll"):this.$$resource.fetch(t.id.toString(),"view"),e.$unwrapCollection(t,s)},e.$unwrapCollection=function(t,n){var s=[],i=function(n,s){for(var o=0;o=0&&e=0},e.prototype.isNoSelect=function(){return this.flags.indexOf("noselect")>=0},e.prototype.getClassName=function(e){return!1},e.prototype.$rename=function(){var t,n,s,i,o=this;return this.name==this.$shadowData.name?e.$q.when():(n=(t=function(e,n){var s=null;return _.find(n,function(e){return e.path==o.path})?s=e:angular.forEach(n,function(e){!s&&e.children&&e.children.length>0&&(s=t(e,e.children))}),s})(null,this.$account.$mailboxes),s=null===n?this.$account.$mailboxes:n.children,i=_.indexOf(_.map(s,"id"),this.id),this.$save().then(function(e){var t,n=o.path;o.init(e),s.splice(i,1),t=_.find(s,function(e){return"folder"==e.type&&e.name.localeCompare(o.name)>0}),i=t?_.indexOf(_.map(s,"id"),t.id):s.length,s.splice(i,0,o);var a=new RegExp("^"+n),r=function(e){_.forEach(e.children,function(e){e.path=e.path.replace(a,o.path),e.id=e.$id(),r(e)})};r(o)}))},e.prototype.$compact=function(){var t=this;return e.$$resource.post(this.id,"expunge").then(function(e){return e.quotas&&t.$account.updateQuota(e.quotas),!0})},e.prototype.$canFolderAs=function(){return"folder"==this.type&&0===this.level},e.prototype.$setFolderAs=function(t){return e.$$resource.post(this.id,"setAs"+t+"Folder")},e.prototype.$emptyTrash=function(){var t=this;return e.$$resource.post(this.id,"emptyTrash").then(function(e){t.$messages=[],t.uidsMap={},t.unseenCount=0,angular.isDefined(t.children)&&t.children.length&&t.$account.$getMailboxes({reload:!0}),e.quotas&&t.$account.updateQuota(e.quotas)})},e.prototype.$markAsRead=function(){var t=this;return e.$$resource.post(this.id,"markRead").then(function(){t.unseenCount=0,_.forEach(t.$messages,function(e){e.isread=!0})})},e.prototype.$flagMessages=function(t,n,s){var i={msgUIDs:_.map(t,"uid"),flags:n,operation:s};return e.$$resource.post(this.id,"addOrRemoveLabel",i).then(function(){return t})},e.prototype.saveSelectedMessages=function(){var t,n;return t=_.filter(this.$messages,function(e){return e.selected}),{uids:n=_.map(t,"uid")},{filename:l("Saved Messages.zip")},e.$$resource.download(this.id,"saveMessages",{uids:n})},e.prototype.exportFolder=function(){var t;return t={filename:this.name+".zip"},e.$$resource.open(this.id,"exportFolder",null,t)},e.prototype.$delete=function(t){var n=this;return e.$$resource.post(this.id,"delete",t).then(function(){return n.$account.$getMailboxes({reload:!0}),!0})},e.prototype.$_deleteMessages=function(e,t){var n,s=this,i=this.$messages.length;return n=_.filter(t,function(e,t){return!e.isread}),this.unseenCount-=n.length,_.forEachRight(this.$messages,function(t,n){var o=_.findIndex(e,function(e){return t.uid==e});o>-1?(e.splice(o,1),delete s.uidsMap[t.uid],t.uid==s.selectedMessage&&delete s.selectedMessage,s.$messages.splice(n,1),nt.uids.length-1)&&(n.$topIndex=0),n.init(t),n.uids&&(e.$log.debug("unwrapping "+n.uids.length+" messages"),a=_.invokeMap(n.headers[0],"toLowerCase"),n.headers.splice(0,1),n.threaded&&(o=n.uids[0],n.uids.splice(0,1)),_.reduce(n.uids,function(t,s,a){var r,l;return r=n.threaded?_.zipObject(o,s):{uid:s.toString()},n.uidsMap[r.uid]=a,(l=new e.$Message(n.$account.id,n,r,!0)).selected=i.indexOf(l.uid)>-1,t.push(l),t},n.$messages),_.forEach(n.headers,function(e){var t=_.zipObject(a,e),s=n.uidsMap[t.uid.toString()];n.$messages[s].init(t)})),e.$log.debug("mailbox "+n.id+" ready"),n.$isLoading=!1,s.resolve(n.$messages)})},function(e){angular.extend(n,e),n.isError=!0,n.$isLoading=!1,s.reject()}),s.promise},e.prototype.$unwrapHeaders=function(t){var n=this;t.then(function(t){e.$timeout(function(){var e,s;t.length>0&&(e=_.invokeMap(t[0],"toLowerCase"),t.splice(0,1),_.forEach(t,function(t){t=_.zipObject(e,t),s=n.uidsMap[t.uid.toString()],angular.isDefined(s)&&n.$messages[s].init(t)}))})})},e.prototype.$updateSubscribe=function(){var t=this.subscribed?"subscribe":"unsubscribe";e.$$resource.post(this.id,t)}}(),function(){"use strict";function e(e,t,n,s){this.accountId=e,this.$mailbox=t,this.$hasUnsafeContent=!1,this.$loadUnsafeContent=!1,this.editable={to:[],cc:[],bcc:[]},this.selected=!1,"function"!=typeof n.then?(!angular.isUndefined(s)&&s||this.init(n),this.uid=parseInt(n.uid)):this.$unwrap(n)}e.$factory=["$q","$timeout","$log","sgSettings","sgMessage_STATUS","Resource","Preferences",function(t,n,s,i,o,a,r){return angular.extend(e,{STATUS:o,$q:t,$timeout:n,$log:s,$$resource:new a(i.activeUser("folderURL")+"Mail",i.activeUser()),$Preferences:r,$avatar:angular.bind(r,r.avatar)}),r.defaults.SOGoMailLabelsColors&&(e.$tags=r.defaults.SOGoMailLabelsColors),r.defaults.SOGoMailDisplayRemoteInlineImages&&"always"==r.defaults.SOGoMailDisplayRemoteInlineImages&&(e.$displayRemoteInlineImages=!0),e}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMessage_STATUS",{NOT_LOADED:0,DELAYED_LOADING:1,LOADING:2,LOADED:3,DELAYED_MS:300}).factory("Message",e.$factory),e.filterTags=function(t,n){var s=new RegExp(t,"i"),i=[];return _.forEach(_.keys(e.$tags),function(t){var o=e.$tags[t];-1!=o[0].search(s)&&(_.includes(n,t)||i.push({name:t,description:o[0],color:o[1]}))}),i},e.prototype.init=function(e){var t=this;angular.extend(this,e),this.$formatFullAddresses(),this.$loadUnsafeContent=!1,_.forEach(this.flags,function(e,n){"$"==e.charAt(0)&&t.flags.splice(n,1,"_"+e)})},e.prototype.$absolutePath=function(t){var n=this,s=this.id;function i(){var e;return(e=_.map(n.$mailbox.path.split("/"),function(e){return"folder"+e.asCSSIdentifier()})).splice(0,0,n.accountId),e.join("/")}return(angular.isUndefined(this.id)||t&&t.nocache)&&(this.id=i()+"/"+this.uid,s=this.id),t&&t.asDraft&&this.draftId&&(s=i()+"/"+this.draftId),t&&t.withResourcePath&&(s=e.$$resource.path(s)),s},e.prototype.$setUID=function(e){var t,n=this.uid||-1,s=this;n!=parseInt(e)&&(this.uid=parseInt(e),this.$absolutePath({nocache:!0}),n>-1?(n=n.toString(),angular.isDefined(this.$mailbox.uidsMap[n])&&(t=this.$mailbox.uidsMap[n],this.$mailbox.uidsMap[e]=t,delete this.$mailbox.uidsMap[n],_.forEach(["from","to","subject"],function(e){s.$mailbox.$messages[t][e]=s[e]}))):this.$mailbox.constructor.selectedFolder&&"draft"==this.$mailbox.constructor.selectedFolder.type&&this.$mailbox.constructor.selectedFolder.$filter())},e.prototype.$formatFullAddresses=function(){var t=this,n=_.map(t.$mailbox.$account.identities,"email");_.forEach(["from","to","cc","bcc","reply-to"],function(s){_.forEach(t[s],function(t){t.name&&t.name!=t.email?(t.full=t.name+" <"+t.email+">",t.name.length<10?t.shortname=t.name:t.name.split(" ").length&&(t.shortname=_.first(_.last(t.name.split(/, */)).split(/ +/)).replace("'",""))):t.email&&(t.full="<"+t.email+">",t.shortname=t.email.split("@")[0]),t.image=e.$avatar(t.email,32),_.indexOf(n,t.email)>=0&&(t.shortname=l("me"))})})},e.prototype.$shortRecipients=function(e){var t=this,n=[],s=0,i=0;return _.forEach(["to","cc","bcc"],function(o){i+=t[o]?t[o].length:0,_.forEach(t[o],function(t,i){se&&n.push(l("and %{0} more...",i-e)),n.join(", ")},e.prototype.$shortAddress=function(e){var t="";return this[e]&&this[e].length>0&&(t=this[e][0].name||this[e][0].email||""),t},e.prototype.allowReplyAll=function(){var e=0;return e=_.reduce(["to","cc"],_.bind(function(e,t){return this[t]?e+this[t].length:e},this),e),!this.isDraft&&e>1},e.prototype.loadUnsafeContent=function(){this.$loadUnsafeContent=!0,delete this.$parts},e.prototype.$content=function(){var t=this,n=[],s=function(i){i.msgclass="msg-attachment-other","UIxMailPartAlternativeViewer"==i.type?s(_.find(i.content,function(e){return i.preferredPart==e.contentType})):angular.isArray(i.content)?("UIxMailPartSignedViewer"==i.type&&1===i["supports-smime"]?t.signed={valid:i.valid,certificate:i.certificates[i.certificates.length-1],message:i.message}:"UIxMailPartEncryptedViewer"==i.type&&(t.encrypted={valid:i.valid},i.valid?t.encrypted.message=l("This message is encrypted"):t.encrypted.message=l("This message can't be decrypted. Please make sure you have uploaded your S/MIME certificate from the mail preferences module.")),_.forEach(i.content,function(e){s(e)})):(angular.isUndefined(i.safeContent)&&(i.safeContent=i.content,t.$hasUnsafeContent|=i.safeContent.indexOf(" unsafe-")>-1),"UIxMailPartHTMLViewer"==i.type?(i.html=!0,t.$loadUnsafeContent||e.$displayRemoteInlineImages?(angular.isUndefined(i.unsafeContent)&&(i.unsafeContent=document.createElement("div"),i.unsafeContent.innerHTML=i.safeContent,angular.forEach(["src","data","classid","background","style"],function(e){var t,n,s,o=i.unsafeContent.querySelectorAll("[unsafe-"+e+"]");for(s=0;s"}),n={to:t},_.forEach(["subject","body"],function(t){var i=new RegExp(t+"=([^&]+)");t="body"==t?"text":t,(s=i.exec(e))&&(n[t]=decodeURIComponent(s[1]))}),_.forEach(["cc","bcc"],function(t){var i=new RegExp(t+"=([^&]+)");(s=i.exec(e))&&(n[t]=_.map(decodeURIComponent(s[1]).split(","),function(e){return"<"+e.trim()+">"}))}),angular.extend(this.editable,n))},e.prototype.$reply=function(){return this.$newDraft("reply")},e.prototype.$replyAll=function(){return this.$newDraft("replyall")},e.prototype.$forward=function(){return this.$newDraft("forward")},e.prototype.$newDraft=function(t){var n=this;return e.$$resource.fetch(this.$absolutePath(),t).then(function(s){var i,o;return e.$log.debug("New "+t+": "+JSON.stringify(s,void 0,2)),i=n.$mailbox.$account.$getMailboxByPath(s.mailboxPath),o=new e(s.accountId,i,s),e.$$resource.fetch(o.$absolutePath({asDraft:!0}),"edit").then(function(s){e.$log.debug("New "+t+": "+JSON.stringify(s,void 0,2)+" original UID: "+n.uid);var i=e.$Preferences.defaults.AuxiliaryMailAccounts[n.$mailbox.$account.id];return i.security&&(i.security.alwaysSign&&(s.sign=!0),i.security.alwaysEncrypt&&(s.encrypt=!0)),angular.extend(o.editable,s),o.origin={message:n,action:t},o})})},e.prototype.$save=function(){var t=this,n=this.editable;return e.$log.debug("save = "+JSON.stringify(n,void 0,2)),e.$$resource.save(this.$absolutePath({asDraft:!0}),n).then(function(n){e.$log.debug("save = "+JSON.stringify(n,void 0,2)),t.$setUID(n.uid),t.$reload(),t.isNew=!1})},e.prototype.$send=function(){var t=this,n=angular.copy(this.editable);return e.$log.debug("send = "+JSON.stringify(n,void 0,2)),e.$$resource.post(this.$absolutePath({asDraft:!0}),"send",n).then(function(n){return"success"==n.status?(angular.isDefined(t.origin)&&(t.origin.action.startsWith("reply")?t.origin.message.isanswered=!0:"forward"==t.origin.action&&(t.origin.message.isforwarded=!0)),n):e.$q.reject(n.data)})},e.prototype.$unwrap=function(t){var n=this;return this.$loaded=e.STATUS.DELAYED_LOADING,e.$timeout(function(){n.$loaded!=e.STATUS.LOADED&&(n.$loaded=e.STATUS.LOADING)},e.STATUS.DELAYED_MS),this.$futureMessageData=t.then(function(t){return 0===n.isread&&(n.isread=!0,n.$mailbox.unseenCount--),e.$timeout(function(){return delete n.$parts,n.$loaded=e.STATUS.LOADED,n.init(t),n})}),this.$futureMessageData},e.prototype.$omit=function(e){var t={},n=e&&e.privateAttributes;return angular.forEach(this,function(e,s){("constructor"!=s&&"$"!=s[0]||n)&&(t[s]=e)}),t},e.prototype.download=function(){var t,n;return t={uids:[this.uid]},n={filename:this.subject+".zip"},e.$$resource.download(this.$mailbox.id,"saveMessages",t,n)},e.prototype.downloadAttachments=function(){var t;return t={filename:l("attachments")+"-"+this.uid+".zip"},e.$$resource.download(this.$absolutePath(),"archiveAttachments",null,t)}}(),function(){"use strict";function e(){this.show=!1,this.message=null,this.elements=[]}e.$factory=["$document","$timeout","$mdPanel","sgHotkeys",function(t,n,s,i){return angular.extend(e,{$document:t,$timeout:n,$mdPanel:s,sgHotkeys:i}),new e}],e.prototype.setMessage=function(e){this.message=e},e.prototype.registerImage=function(e){this.elements.push(e)},e.prototype.registerHotkeys=function(t){this.keys=[e.sgHotkeys.createHotkey({key:"left",description:l("View previous item"),callback:angular.bind(t,t.previousImage)}),e.sgHotkeys.createHotkey({key:"right",description:l("View next item"),callback:angular.bind(t,t.nextImage)})],_.forEach(this.keys,function(t){e.sgHotkeys.registerHotkey(t)})},e.prototype.showGallery=function(t,n){var s=this,i=e.$mdPanel,o=angular.element(this.message.$content()[n].content).find("img")[0].src,a=_.filter(this.message.attachmentAttrs,function(e){return 0===e.mimetype.indexOf("image/")}),r=_.findIndex(a,function(e){return e.url.indexOf(o)>=0});angular.element(e.$document[0].body).addClass("sg-image-gallery-backdrop");var c=i.newPanelPosition().absolute(),u=i.newPanelAnimation().openFrom(t.target).duration(100).withAnimation(i.animation.FADE),d={attachTo:angular.element(document.body),locals:{lastIndex:a.length-1,images:a,selectedIndex:r,selectedImage:a[r]},bindToController:!0,controller:h,controllerAs:"$panelCtrl",position:c,animation:u,targetEvent:t,fullscreen:!0,hasBackdrop:!0,template:['',' ",' ','
'," navigate_before "," ",'
','
'," navigate_next "," ","
",' ','
','
',"
","
"," "].join(""),trapFocus:!0,clickOutsideToClose:!0,escapeToClose:!0,focusOnOpen:!0,onOpenComplete:function(){s.show=!0,_.forEach(e.$document.find("sg-image-gallery")[0].getElementsByClassName("sg-image-thumbnail"),function(t){var n=t.children[0];angular.element(n).one("load",function(){n.naturalWidth0&&this.selectImage(this.selectedIndex-1)}}},angular.module("SOGo.MailerUI").factory("ImageGallery",e.$factory)}(),function(){"use strict";function e(e){this.$account=e}e.$factory=["$q","$timeout","$log","sgSettings","Resource","Message","Mailbox","sgMailbox_PRELOAD",function(t,n,s,i,o,a,r,l){return angular.extend(e,{$q:t,$timeout:n,$log:s,$$resource:new o(i.activeUser("folderURL")+"Mail",i.activeUser()),$Message:r,selectedFolder:null,PRELOAD:l}),e}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMailbox_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("VirtualMailbox",e.$factory),e.$absolutePath=function(e){return[e,"virtual"].join("/")},e.prototype.init=function(e){this.$isLoading=!1,this.$mailboxes=[],this.uidsMap={},angular.extend(this,e),this.id=this.$id()},e.prototype.setMailboxes=function(e){this.$mailboxes=e,_.forEach(this.$mailboxes,function(e){e.$messages=[],e.uidsMap={}})},e.prototype.startSearch=function(t,n){var s=this,i=e.$q.when();this.$isLoading=!0,_.forEach(this.$mailboxes,function(o){i=i.then(function(){if(s.$isLoading)return e.$log.debug("searching mailbox "+o.path),o.$filter({sort:"date",asc:!1,match:t},n)})}),i.finally(function(){s.$isLoading=!1})},e.prototype.stopSearch=function(){e.$log.debug("stopping search..."),this.$isLoading=!1},e.prototype.selectFolder=function(){},e.prototype.resetSelectedMessage=function(){_.forEach(this.$mailboxes,function(e){delete e.selectedMessage})},e.prototype.hasSelectedMessage=function(){return angular.isDefined(_.find(this.$mailboxes,function(e){return angular.isDefined(e.selectedMessage)}))},e.prototype.isSelectedMessage=function(e,t){return angular.isDefined(_.find(this.$mailboxes,function(n){return n.path==t&&n.selectedMessage==e}))},e.prototype.getLength=function(){var e=0;return angular.isDefined(this.$mailboxes)?(_.forEach(this.$mailboxes,function(t){e+=t.$messages.length}),e):e},e.prototype.getItemAtIndex=function(e){var t,n,s,i,o;if(angular.isDefined(this.$mailboxes)&&e>=0)for(t=0,n=0;n0){var s=_.map(t,"uid");o.push(t);var r=e.$$resource.post(n,"addOrRemoveLabel",_.assign(i,{msgUIDs:s}));a.push(r)}}),e.$q.all(a).then(function(){return _.flatten(o)})},e.prototype.$deleteMessages=function(t){var n=[];return _.forEach(t,function(e,t){if(e.length>0){var s=e[0].$mailbox.$deleteMessages(e);n.push(s)}}),e.$q.all(n)},e.prototype.$markOrUnMarkMessagesAsJunk=function(t){var n=[];return _.forEach(t,function(e,t){if(e.length>0){var s=e[0].$mailbox.$markOrUnMarkMessagesAsJunk(e);n.push(s)}}),e.$q.all(n)},e.prototype.$copyMessages=function(t,n){var s=[];return _.forEach(t,function(e,t){if(e.length>0){var i=e[0].$mailbox.$copyMessages(e,n);s.push(i)}}),e.$q.all(s)},e.prototype.$moveMessages=function(t,n){var s=[];return _.forEach(t,function(e,t){if(e.length>0){var i=e[0].$mailbox.$moveMessages(e,n);s.push(i)}}),e.$q.all(s)}}(),function(){"use strict";e.$inject=["$window","$scope","$timeout","$q","$state","$mdDialog","$mdToast","stateAccounts","stateAccount","stateMailbox","sgHotkeys","encodeUriFilter","sgSettings","sgFocus","Dialog","Preferences","Account","Mailbox"];function e(e,t,n,s,i,o,a,r,c,u,d,h,g,f,m,p,$,b){var v,y=this,M=angular.element(e.document).find("title").attr("sg-default")||"SOGo",x=[];v={subject:"Subject",from:"From",date:"Date",size:"Size",arrival:"Order Received"},this.$onInit=function(){e.$mailboxController=y,this.service=b,this.accounts=r,this.account=c,this.selectedFolder=u,this.messageDialog=null,this.mode={search:!1,multiple:0},(n=x).push(d.createHotkey({key:l("hotkey_search"),description:l("Search"),callback:y.searchMode})),n.push(d.createHotkey({key:l("hotkey_compose"),description:l("Write a new message"),callback:function(e){null===y.messageDialog&&y.newMessage(e)}})),n.push(d.createHotkey({key:l("hotkey_junk"),description:l("Mark the selected messages as junk"),callback:y.markOrUnMarkMessagesAsJunk})),n.push(d.createHotkey({key:"space",description:l("Toggle item"),callback:y.toggleMessageSelection})),n.push(d.createHotkey({key:"shift+space",description:l("Toggle range of items"),callback:y.toggleMessageSelection})),n.push(d.createHotkey({key:"up",description:l("View next item"),callback:w,preventInClass:["sg-mail-part"]})),n.push(d.createHotkey({key:"down",description:l("View previous item"),callback:I,preventInClass:["sg-mail-part"]})),n.push(d.createHotkey({key:"shift+up",description:l("Add next item to selection"),callback:E,preventInClass:["sg-mail-part"]})),n.push(d.createHotkey({key:"shift+down",description:l("Add previous item to selection"),callback:S,preventInClass:["sg-mail-part"]})),_.forEach(["backspace","delete"],function(e){n.push(d.createHotkey({key:e,description:l("Delete selected message or folder"),callback:y.confirmDeleteSelectedMessages}))}),_.forEach(n,function(e){d.registerHotkey(e)});var n;angular.element(e).on("beforeunload",C),t.$on("$destroy",function(){angular.element(e).off("beforeunload",C),_.forEach(x,function(e){d.deregisterHotkey(e)})}),t.$watch(function(){return y.selectedFolder.unseenCount},function(t){var n=M+" - ";t&&(n+="("+t+") "),n+=y.selectedFolder.$displayName,e.document.title=n})};function C(e){return y.selectedFolder.$compact()}this.centerIsClose=function(e){return this.selectedFolder.hasSelectedMessage()&&!!e},this.sort=function(e){if(!e)return v[y.service.$query.sort];y.selectedFolder.$filter({sort:e})},this.sortedBy=function(e){return b.$query.sort==e},this.ascending=function(){return b.$query.asc},this.searchMode=function(){y.mode.search=!0,f("search")},this.cancelSearch=function(){y.mode.search=!1,y.selectedFolder.$filter().then(function(){y.selectedFolder.selectedMessage&&n(function(){y.selectedFolder.$topIndex=y.selectedFolder.uidsMap[y.selectedFolder.selectedMessage]})})},this.composeWindowEnabled=function(){return p.defaults.SOGoMailComposeWindowEnabled},this.newMessage=function(t,n){var s;null===y.messageDialog&&(n||"popup"==p.defaults.SOGoMailComposeWindow?function(){var t=[g.baseURL(),"UIxMailPopupView#!/Mail",y.account.id,h(h(y.selectedFolder.path)),"new"].join("/"),n=y.selectedFolder.$id()+"/"+Math.random(0,1e3);console.debug(t),e.open(t,n,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))}():(s=y.account.$newMessage(),y.messageDialog=o.show({parent:angular.element(document.body),targetEvent:t,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:y.account,stateMessage:s}}).catch(_.noop).finally(function(){y.messageDialog=null})))};function w(e){var t=y.selectedFolder.$selectedMessageIndex();return angular.isDefined(t)?(t--,y.selectedFolder.$topIndex>0&&y.selectedFolder.$topIndex--):(t=y.selectedFolder.getLength()-1,y.selectedFolder.$topIndex=y.selectedFolder.getLength()),t>-1&&y.selectMessage(y.selectedFolder.$messages[t]),e.preventDefault(),t}function I(e){var t=y.selectedFolder.$selectedMessageIndex();return angular.isDefined(t)?(t++,y.selectedFolder.$topIndex=0&&y.toggleMessageSelection(e,y.selectedFolder.$messages[t])}function S(e){var t;y.selectedFolder.hasSelectedMessage()&&(t=I(e))>=0&&y.toggleMessageSelection(e,y.selectedFolder.$messages[t])}this.selectMessage=function(e){b.$virtualMode?i.go("mail.account.virtualMailbox.message",{mailboxId:h(e.$mailbox.path),messageId:e.uid}):i.go("mail.account.mailbox.message",{messageId:e.uid})},this.toggleMessageSelection=function(e,t){var n,s,i,o=y.selectedFolder;if(t||(t=o.$selectedMessage()),!t)return!0;if(t.selected=!t.selected,y.mode.multiple+=t.selected?1:-1,e.shiftKey&&o.$selectedCount()>1){for(s=(n=o.uidsMap[t.uid])-2;s>=0&&!o.$messages[s].selected;)s--;if(s<0)for(s=n+2;s=0&&s0&&(a-=1,s=y.selectedFolder.$messages[a]),t0&&(y.messageDialog=m.confirm(l("Confirmation"),l("Are you sure you want to delete the selected messages?"),{ok:l("Delete")}).then(function(){var e=y.selectedFolder.hasSelectedMessage();y.selectedFolder.$deleteMessages(t).then(function(t){b.$virtualMode?e&&i.go("mail.account.virtualMailbox"):F(e,t)},function(n){y.messageDialog=m.confirm(l("Warning"),l("The messages could not be moved to the trash folder. Would you like to delete them immediately?"),{ok:l("Delete")}).then(function(){y.selectedFolder.$deleteMessages(t,{withoutTrash:!0}).then(function(t){b.$virtualMode?e&&i.go("mail.account.virtualMailbox"):F(e,t)})})})}).finally(function(){y.messageDialog=null})),e.preventDefault()},this.markOrUnMarkMessagesAsJunk=function(){var e=y.selectedFolder.hasSelectedMessage(),t=y.selectedFolder.$selectedMessages();0===_.size(t)&&e&&(t=[y.selectedFolder.$selectedMessage()]),_.size(t)>0&&y.selectedFolder.$markOrUnMarkMessagesAsJunk(t).then(function(){var n="/"+y.account.id+"/folderINBOX";"junk"!=y.selectedFolder.type&&(n="/"+y.account.$getMailboxByType("junk").id),y.selectedFolder.$moveMessages(t,n).then(function(t){b.$virtualMode?e&&i.go("mail.account.virtualMailbox"):F(e,t)})})},this.copySelectedMessages=function(e){var t=y.selectedFolder.$selectedMessages();_.size(t)>0&&y.selectedFolder.$copyMessages(t,"/"+e).then(function(){a.show(a.simple().content(l("%{0} message(s) copied",y.selectedFolder.$selectedCount())).position("top right").hideDelay(2e3))})},this.moveSelectedMessages=function(e){var t=y.selectedFolder.hasSelectedMessage(),n=y.selectedFolder.$selectedMessages(),s=y.selectedFolder.$selectedCount();_.size(n)>0&&y.selectedFolder.$moveMessages(n,"/"+e).then(function(e){a.show(a.simple().content(l("%{0} message(s) moved",s)).position("top right").hideDelay(2e3)),b.$virtualMode?t&&i.go("mail.account.virtualMailbox"):F(t,e)})},this.selectAll=function(){var e=0;_.forEach(A(),function(t){for(var n=0,s=t.$messages.length;n0&&y.selectedFolder.$flagMessages(e,"\\Flagged","add").then(function(e){_.forEach(e,function(e){e.isflagged=!0})})},this.markSelectedMessagesAsUnread=function(){var e=y.selectedFolder.$selectedMessages();_.size(e)>0&&y.selectedFolder.$flagMessages(e,"seen","remove").then(function(e){_.forEach(e,function(e){e.isread&&e.$mailbox.unseenCount++,e.isread=!1})})},this.markSelectedMessagesAsRead=function(){var e=y.selectedFolder.$selectedMessages();_.size(e)>0&&y.selectedFolder.$flagMessages(e,"seen","add").then(function(e){_.forEach(e,function(e){e.isread||e.$mailbox.unseenCount--,e.isread=!0})})}}angular.module("SOGo.MailerUI").controller("MailboxController",e),t.$inject=["$delegate"];function t(e){return e[0].controller.prototype.resetScroll=function(){"messagesList"==this.$element.parent().attr("id")?this.updateSize():this.scrollTo(0)},e}angular.module("material.components.virtualRepeat").decorator("mdVirtualRepeatContainerDirective",t)}(),function(){"use strict";e.$inject=["$scope","$state","$transitions","$timeout","$window","$mdDialog","$mdToast","sgFocus","encodeUriFilter","Dialog","sgSettings","sgHotkeys","Account","Mailbox","VirtualMailbox","User","Preferences","stateAccounts"];function e(e,t,n,s,i,o,a,r,c,u,d,h,g,f,m,p,$,b){var v,y,M=this,x=[];this.$onInit=function(){this.service=f,this.accounts=b,this.currentSearchParam="",this.search={options:{"":"",subject:l("Enter Subject"),from:l("Enter From"),to:l("Enter To"),cc:l("Enter Cc"),body:l("Enter Body")},subfolders:1,match:"AND",params:[]},this.showSubscribedOnly=$.defaults.SOGoMailShowSubscribedFoldersOnly,this.refreshUnseenCount(),t=x,_.forEach(["backspace","delete"],function(e){t.push(h.createHotkey({key:e,description:l("Delete selected message or folder"),callback:function(){f.selectedFolderController&&f.selectedFolder&&f.selectedFolder.$isEditable&&!f.selectedFolder.hasSelectedMessage()&&f.selectedFolderController.confirmDelete(f.selectedFolder)}}))}),_.forEach(t,function(e){h.registerHotkey(e)});var t;e.$on("$destroy",function(){_.forEach(x,function(e){h.deregisterHotkey(e)})})};this.hideAdvancedSearch=function(){M.service.$virtualPath=!1,M.service.$virtualMode=!1,v=M.accounts[0],y=M.searchPreviousMailbox,t.go("mail.account.mailbox",{accountId:v.id,mailboxId:c(y.path)})},this.toggleAdvancedSearch=function(){if(f.selectedFolder.$isLoading)M.virtualMailbox.stopSearch();else{var e,n=[],s=function(e){_.forEach(e,function(e){n.push(e),e.children&&e.children.length>0&&s(e.children)})};M.virtualMailbox=new m(M.accounts[0]),f.$virtualMode||(M.searchPreviousMailbox=f.selectedFolder),f.selectedFolder=M.virtualMailbox,f.$virtualMode=!0,angular.isDefined(f.$virtualPath)?(e=M.accounts[0].$getMailboxByPath(f.$virtualPath),n.push(e),M.search.subfolders&&e.children.length&&s(e.children)):n=M.accounts[0].$flattenMailboxes(),M.virtualMailbox.setMailboxes(n),M.virtualMailbox.startSearch(M.search.match,M.search.params),"mail.account.virtualMailbox"!=t.$current.name&&t.go("mail.account.virtualMailbox",{accountId:M.accounts[0].id})}},this.addSearchParam=function(e){return M.currentSearchParam=e,r("advancedSearch"),!1},this.newSearchParam=function(e){if(e.length&&M.currentSearchParam.length){var t=0,n=M.currentSearchParam;return e.startsWith("!")&&(t=1,e=e.substring(1).trim()),M.currentSearchParam="",{searchBy:n,searchInput:e,negative:t}}},this.toggleAccountState=function(e){e.$expanded=!e.$expanded,e.$flattenMailboxes({reload:!0,saveState:!0}),s(function(){angular.element(i).triggerHandler("resize")},150)},this.subscribe=function(e){o.show({templateUrl:e.id+"/subscribe",controller:t,controllerAs:"subscriptions",clickOutsideToClose:!0,escapeToClose:!0,locals:{srcAccount:e}}).finally(function(){e.$getMailboxes({reload:!0})}),t.$inject=["$scope","$mdDialog","srcAccount"];function t(e,t,n){var s=this;s.loading=!0,s.filter={name:""},s.account=new g({id:n.id,name:n.name}),s.close=function(){t.hide()},s.account.$getMailboxes({reload:!0,all:!0}).then(function(){s.loading=!1})}},this.newFolder=function(e){u.prompt(l("New Folder..."),l("Enter the new name of your folder")).then(function(t){e.$newMailbox(e.id,t).then(function(){},function(e,n){u.alert(l('An error occured while creating the mailbox "%{0}".',t),l(e.error))})})},this.delegate=function(e){o.show({templateUrl:e.id+"/delegation",controller:t,controllerAs:"delegate",clickOutsideToClose:!0,escapeToClose:!0,locals:{User:p,account:e}}),t.$inject=["$scope","$mdDialog","User","account"];function t(e,t,n,s){var i=this;i.users=s.delegates,i.account=s,i.userToAdd="",i.searchText="",i.userFilter=function(e){return n.$filter(e,s.delegates)},i.closeModal=function(){t.hide()},i.removeUser=function(e){s.$removeDelegate(e.uid).catch(function(e,t){u.alert(l("Warning"),l("An error occured please try again."))})},i.addUser=function(e){e&&s.$addDelegate(e).then(function(){i.userToAdd="",i.searchText=""},function(e){u.alert(l("Warning"),e)})}}},this.refreshUnseenCount=function(){var e,t=i.unseenCountFolders;_.forEach(M.accounts,function(e){_.includes(t,e.id+"/folderINBOX")||t.push(e.id+"/folderINBOX"),_.forEach(e.$$flattenMailboxes,function(e){angular.isDefined(e.unseenCount)&&!_.includes(t,e.id)&&t.push(e.id)})}),g.$$resource.post("","unseenCount",{mailboxes:t}).then(function(e){_.forEach(M.accounts,function(t){_.forEach(t.$$flattenMailboxes,function(t){e[t.id]&&(t.unseenCount=e[t.id])})})}),(e=$.defaults.SOGoRefreshViewCheck)&&"manually"!=e&&s(M.refreshUnseenCount,1e3*e.timeInterval())},this.isDroppableFolder=function(e,t){return t.id!=e.id&&!t.isNoSelect()},this.dragSelectedMessages=function(e,n,s){var i,o,r,c,u,d;i="/"+n.id,0===(o=e.$selectedMessages()).length&&(o=[e.$selectedMessage()]),r=_.map(o,"uid"),c=e.selectedMessage&&r.indexOf(e.selectedMessage)>=0,"copy"==s?(u=e.$copyMessages(o,i),d=l("%{0} message(s) copied",o.length)):(u=e.$moveMessages(o,i),d=l("%{0} message(s) moved",o.length)),u.then(function(){c&&t.go("mail.account.mailbox"),a.show(a.simple().content(d).position("top right").hideDelay(2e3))})}}angular.module("SOGo.MailerUI").controller("MailboxesController",e)}(),function(){"use strict";e.$inject=["$window","$scope","$state","$mdMedia","$mdDialog","sgConstant","stateAccounts","stateAccount","stateMailbox","stateMessage","sgHotkeys","encodeUriFilter","sgSettings","ImageGallery","sgFocus","Dialog","Preferences","Calendar","Component","Account","Mailbox","Message"];function e(e,t,n,s,i,o,a,r,c,u,d,h,g,f,m,p,$,b,v,y,M,x){var C=this,w=[];this.$onInit=function(){e.$messageController=C,f.setMessage(u),this.$state=n,this.accounts=a,this.account=r,this.mailbox=c,this.message=u,this.service=x,this.tags={searchText:"",selected:""},this.showFlags=u.flags&&u.flags.length>0,this.$showDetailedRecipients=!1,C.showRawSource=!1,(s=w).push(d.createHotkey({key:l("hotkey_reply"),description:l("Reply to the message"),callback:E(angular.bind(C,C.reply))})),s.push(d.createHotkey({key:l("hotkey_replyall"),description:l("Reply to sender and all recipients"),callback:E(angular.bind(C,C.replyAll))})),s.push(d.createHotkey({key:l("hotkey_forward"),description:l("Forward selected message"),callback:E(angular.bind(C,C.forward))})),s.push(d.createHotkey({key:l("hotkey_flag"),description:l("Flagged"),callback:E(angular.bind(u,u.toggleFlag))})),_.forEach(["backspace","delete"],function(e){s.push(d.createHotkey({key:e,callback:E(function(e){0===C.mailbox.$selectedCount()&&C.deleteMessage(),e.preventDefault()})}))}),_.forEach(s,function(e){d.registerHotkey(e)});var s;e.opener?(t.$watchCollection(function(){return C.message.flags},function(e,t){var n;(e||t)&&(n=S()).messageCtrl&&n.messageCtrl.service.$timeout(function(){n.messageCtrl.showFlags=!0,n.messageCtrl.message.flags=e})}),t.$watch(function(){return C.message.isflagged},function(e,t){var n=S();n.mailboxCtrl&&n.mailboxCtrl.service.$timeout(function(){_.find(n.mailboxCtrl.selectedFolder.$messages,{uid:C.message.uid}).isflagged=e})})):t.$watchCollection(function(){return C.message.flags},function(e,t){var n,s,i;(e||t)&&(n=e||[],s=t||[],_.forEach(n,function(e,t){angular.isObject(e)&&(n[t]=e.name)}),n.length>s.length?(i=_.difference(n,s),_.forEach(i,function(e){C.message.addTag(e)})):n.length0&&(t.mailbox.messageDialog=arguments[0]),t.mailbox.messageDialog):null}function E(e){return function(){if(null===I())return e.apply(C,arguments)}}function S(){var t,n,s={};return e.opener&&e.opener.$mailboxController&&e.opener.$mailboxController.selectedFolder.$id()==c.$id()&&(n=e.opener.$mailboxController,s.mailboxCtrl=n,e.opener.$messageController&&e.opener.$messageController.message.uid==u.uid&&(t=e.opener.$messageController,s.messageCtrl=t)),s}this.addFlags=function(e){e.stopPropagation(),e.preventDefault(),this.showFlags=!0,m("flags")},this.toggleDetailedRecipients=function(e){this.$showDetailedRecipients=!this.$showDetailedRecipients,e.stopPropagation(),e.preventDefault()},this.filterMailtoLinks=function(e){var t;"A"==e.target.tagName&&"href"in e.target.attributes&&(t=e.target.attributes.href.value,/^mailto:([^\?]+)/.exec(t)&&(delete e.target.attributes.target,this.newMessage(e,t)))},this.deleteMessage=function(){var e,t,i,a,r,l=S();l.messageCtrl?(e=l.mailboxCtrl.selectedFolder,t=l.messageCtrl.message,i=l.messageCtrl.$state):(e=c,t=u,i=n),e.$deleteMessages([t]).then(function(n){var l=n;if(t=null,angular.isDefined(i)){n>0&&(l-=1,a=e.$messages[l]),ne.$lastVisibleIndex&&(e.$topIndex=l-(e.$lastVisibleIndex-e.$topIndex))):i.go("mail.account.mailbox").then(function(){t=null,delete e.selectedMessage})}catch(e){}}C.closePopup()})};function A(e,t){null===I()&&I(i.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:C.account,stateMessage:t}}).catch(_.noop).finally(function(){I(null),C.closePopup()}))}this._showMailEditorInPopup=function(e){return!g.isPopup&&"popup"==$.defaults.SOGoMailComposeWindow&&(this.openInPopup(e),!0)},this.close=function(){n.go("mail.account.mailbox").then(function(){C.message=null,delete c.selectedMessage})},this.reply=function(e){this._showMailEditorInPopup("reply")||A(e,this.message.$reply())},this.replyAll=function(e){this._showMailEditorInPopup("replyall")||A(e,this.message.$replyAll())},this.forward=function(e){this._showMailEditorInPopup("forward")||A(e,this.message.$forward())},this.edit=function(e){this._showMailEditorInPopup("edit")||this.message.$editableContent().then(function(){A(e,C.message)})},this.openInPopup=function(t){var n=[g.baseURL(),"UIxMailPopupView#!/Mail",this.message.accountId,h(h(this.message.$mailbox.path)),this.message.uid].join("/"),s=this.message.$absolutePath();t&&(n+="/"+t),e.open(n,s,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))},this.closePopup=function(){e.document.body.classList.contains("popup")&&e.close()},this.newMessage=function(e,t){e.stopPropagation(),e.preventDefault(),this.account.$newMessage({mailto:t}).then(function(t){A(e,t)})},this.toggleRawSource=function(e){this.showRawSource||this.message.$rawSource?this.showRawSource=!this.showRawSource:x.$$resource.post(this.message.id,"viewsource").then(function(e){C.message.$rawSource=e,C.showRawSource=!0})},this.print=function(t){e.print()},this.convertToEvent=function(e){return F(e,"appointment")},this.convertToTask=function(e){return F(e,"task")};function F(e,t){C.message.$plainContent().then(function(n){var s={pid:b.$defaultCalendar(),type:t,summary:n.subject,comment:n.content},o=new v(s),a=[g.activeUser("folderURL"),"Calendar","UIx"+t.capitalize()+"EditorTemplate"].join("/");return i.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:a,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:o}})})}}angular.module("SOGo.MailerUI").controller("MessageController",e)}(),function(){"use strict";e.$inject=["$scope","$window","$stateParams","$mdConstant","$mdUtil","$mdDialog","$mdToast","FileUploader","stateAccount","stateMessage","encodeUriFilter","$timeout","Dialog","AddressBook","Card","Preferences"];function e(e,t,n,s,i,o,a,r,c,u,d,h,g,f,m,p){var $=this;this.$onInit=function(){$.addRecipient=S,$.autocomplete={to:{},cc:{},bcc:{}},$.autosave=null,$.autosaveDrafts=A,$.cancel=x,$.contactFilter=E,$.isFullscreen=!1,$.hideBcc=0===u.editable.bcc.length,$.hideCc=0===u.editable.cc.length,$.identities=_.uniq(_.map(c.identities,"full")),$.message=u,$.recipientSeparatorKeys=[s.KEY_CODE.ENTER,s.KEY_CODE.TAB,s.KEY_CODE.COMMA,s.KEY_CODE.SEMICOLON],$.removeAttachment=M,$.save=C,$.send=w,$.sendState=!1,$.toggleFullscreen=I,$.uploader=new r({url:$.message.$absolutePath({asDraft:!0,withResourcePath:!0})+"/save",autoUpload:!0,alias:"attachments",removeAfterUpload:!1,onSuccessItem:function(e,t,n,s){$.message.$setUID(t.uid),$.message.$reload({asDraft:!1}),e.inlineUrl=t.lastAttachmentAttrs[0].url},onCancelItem:function(e,t,n,s){$.message.$deleteAttachment(e.file.name),this.removeFromQueue(e)},onErrorItem:function(e,t,n,s){a.show(a.simple().content(l('Error while uploading the file "%{0}":',e.file.name)+" "+(t.message?l(t.message):"")).position("top right").action(l("OK")).hideDelay(!1)),this.removeFromQueue(e)}}),p.defaults.SOGoMailAutoSave&&($.autosave=h($.autosaveDrafts,1e3*p.defaults.SOGoMailAutoSave*60)),$.localeCode=p.defaults.LocaleCode,e.$on("$destroy",function(){$.uploader.destroy()}),"reply"==n.actionName?u.$reply().then(function(e){$.message=e,$.hideCc=!e.editable.cc||0===e.editable.cc.length,$.hideBcc=!e.editable.bcc||0===e.editable.bcc.length,v()}):"replyall"==n.actionName?u.$replyAll().then(function(e){$.message=e,$.hideCc=!e.editable.cc||0===e.editable.cc.length,$.hideBcc=!e.editable.bcc||0===e.editable.bcc.length,v()}):"forward"==n.actionName?u.$forward().then(function(e){$.message=e,v(),y()}):angular.isDefined(u)&&($.message=u,v(),y())};function b(){var e,n={};try{t.opener&&"$mailboxController"in t.opener&&"selectedFolder"in t.opener.$mailboxController&&("draft"==t.opener.$mailboxController.selectedFolder.type?(n.draftMailboxCtrl=t.opener.$mailboxController,"$messageController"in t.opener&&t.opener.$messageController.message.uid==u.uid&&(n.draftMessageCtrl=t.opener.$messageController)):u.origin&&(e=u.origin.message,t.opener.$mailboxController.selectedFolder.$id()==e.$mailbox.$id()&&(n.originMailboxCtrl=t.opener.$mailboxController)))}catch(e){}return n}function v(){$.uploader.url=$.message.$absolutePath({asDraft:!0,withResourcePath:!0})+"/save"}function y(){var e,t,n,s=$.message.editable.attachmentAttrs;if(s)for(e=0;e',' '," {{$ctrl.mailbox.$icon}} "," ",' ',' ',' ',"
",' ',' '," ",' '].join(""),controller:"sgMailboxListItemController",controllerAs:"$ctrl"}})}(),function(){e.$inject=["$scope","$element","Mailbox"];function e(e,t,n){var s=this;this.$onInit=function(){var t=["uid","isread","isflagged","flags","subject"];this.MailboxService=n,"draft"==n.selectedFolder.type&&t.push("subject"),e.$watch(function(){return s.message?[_.pick(s.message,t)]:null},function(e,t){s.message&&s.onUpdate()},!0)},this.onUpdate=function(){this.message.isread?t.removeClass("unread"):t.addClass("unread"),n.selectedFolder.isSelectedMessage(this.message.uid,this.message.$mailbox.path)?t.addClass("md-default-theme md-accent md-bg md-hue-2"):t.removeClass("md-default-theme md-accent md-bg md-hue-2")},this.setVisibility=function(e,t){t?e.classList.remove("ng-hide"):e.classList.add("ng-hide")}}angular.module("SOGo.MailerUI").controller("sgMessageListItemController",e).directive("sgMessageListItem",function(){return{restrict:"C",scope:{},bindToController:{message:"=sgMessage"},controller:"sgMessageListItemController"}})}(),function(){e.$inject=["$scope","$element","$parse","$state","$mdUtil","$mdToast","Mailbox","Message","encodeUriFilter"];function e(e,t,n,s,i,o,a,r,l){var c=this;this.$postLink=function(){var n,s,o,l;this.parentController=e.parentController,o=this.parentController.onUpdate,l=this.parentController.setVisibility,_.forEach(t.find("div"),function(e){e.classList.contains("sg-tile-content")?n=angular.element(e):e.classList.contains("sg-tile-icons")&&(s=angular.element(e))}),this.priorityIconElement=n.find("md-icon")[0],a.$virtualMode&&(this.mailboxNameElement=n.find("span")[0],this.mailboxNameElement.classList.remove("ng-hide")),this.senderElement=n.find("span")[1],_.forEach(n.find("div"),function(e){e.classList.contains("sg-tile-subject")?c.subjectElement=e:e.classList.contains("sg-tile-size")?c.sizeElement=e:e.classList.contains("sg-tile-date")&&(c.dateElement=e)}),_.forEach(s.find("md-icon"),function(e){"star"==e.textContent?c.flagIconElement=e:"reply"==e.textContent?c.answerIconElement=e:"forward"==e.textContent?c.forwardIconElement=e:"attach_file"==e.textContent&&(c.attachmentIconElement=e)}),this.parentController.onUpdate=function(){var e;c.message=c.parentController.message;var n=i.nodesToArray(t[0].querySelectorAll(".sg-category"));for(_.forEach(n,function(e){t[0].removeChild(e)}),e=0;e');a.css("left",3*e+"px"),a.css("background-color",c.service.$tags[s][1]),t.prepend(a)}}c.mailboxNameElement&&(c.mailboxNameElement.innerHTML=c.message.$mailbox.$displayName),"sent"==c.MailboxService.selectedFolder.type?c.senderElement.innerHTML=c.message.$shortAddress("to").encodeEntities():c.senderElement.innerHTML=c.message.$shortAddress("from").encodeEntities(),c.message.priority&&c.message.priority.level<3?(c.priorityIconElement.classList.remove("ng-hide"),c.message.priority.level<2?c.priorityIconElement.classList.add("md-warn"):c.priorityIconElement.classList.remove("md-warn")):c.priorityIconElement.classList.add("ng-hide"),c.subjectElement.innerHTML=c.message.subject.encodeEntities(),c.sizeElement.innerHTML=c.message.size,c.dateElement.innerHTML=c.message.relativedate,l(c.flagIconElement,c.message.isflagged),l(c.answerIconElement,c.message.isanswered),l(c.forwardIconElement,c.message.isforwarded),l(c.attachmentIconElement,c.message.hasattachment),angular.bind(c.parentController,o)()},this.service=r,this.MailboxService=a}}angular.module("SOGo.MailerUI").controller("sgMessageListItemMainController",e).directive("sgMessageListItemMain",function(){return{restrict:"C",require:"^^sgMessageListItem",scope:{},template:['','
',"
",' \x3c!-- mailbox --\x3e ',' error '," \x3c!-- sender or recipient --\x3e ","
",'
\x3c!-- date --\x3e
',"
",'
','
\x3c!-- subject --\x3e
','
\x3c!-- size --\x3e
',"
","
",'',' star ',' reply ',' forward ',' attach_file ',"
",'',' \x3c!-- message loading progress --\x3e ',"
"].join(""),link:function(e,t,n,s){e.parentController=s},controller:"sgMessageListItemMainController",controllerAs:"$ctrl"}})}(),function(){"use strict";e.$inject=["$element","ImageGallery"];function e(e,t){var n=this;this.$postLink=function(){t.registerImage(e),e.on("click",this.showImage)},this.showImage=function(e){"IMG"==e.target.tagName&&t.showGallery(e,n.partIndex)}}angular.module("SOGo.MailerUI").directive("sgZoomableImage",function(){return{restrict:"A",bindToController:{partIndex:"=sgZoomableImage"},controller:e}})}();
//# sourceMappingURL=Mailer.services.js.map
\ No newline at end of file
diff --git a/UI/WebServerResources/js/Mailer.services.js.map b/UI/WebServerResources/js/Mailer.services.js.map
index 360f37b7c..2e44d3290 100644
--- a/UI/WebServerResources/js/Mailer.services.js.map
+++ b/UI/WebServerResources/js/Mailer.services.js.map
@@ -1 +1 @@
-{"version":3,"sources":["Mailer/Account.service.js","Mailer/Mailbox.service.js","Mailer/Message.service.js","Mailer/sgImageGallery.service.js","Mailer/VirtualMailbox.service.js","Mailer/MailboxController.js","Mailer/MailboxesController.js","Mailer/MessageController.js","Mailer/MessageEditorController.js","Mailer/sgAccountSection.directive.js","Mailer/sgIMIP.directive.js","Mailer/sgMailboxListItem.directive.js","Mailer/sgMessageListItem.directive.js","Mailer/sgMessageListItemMain.directive.js","Mailer/sgZoomableImage.directive.js"],"names":["Account","futureAccountData","then","angular","extend","this","_","forEach","identities","identity","fullName","full","email","$log","debug","JSON","stringify","undefined","$factory","$q","$timeout","Settings","Resource","Preferences","Mailbox","Message","$$resource","activeUser","$Preferences","$Mailbox","$Message","module","e","factory","$findAll","data","$unwrapCollection","fetch","o","collection","i","id","$accounts","prototype","getLength","$flattenMailboxes","length","getItemAtIndex","index","expandedMailboxes","$getMailboxes","options","_this","$mailboxes","reload","$find","$expanded","expandedFolders","_visit","mailboxes","indexOf","children","settings","Mail","ExpandedFolders","isString","fromJson","warn","when","allMailboxes","push","all","$$flattenMailboxes","saveState","account","reduce","mailbox","post","$getMailboxByType","type","_find","find","$getMailboxByPath","path","$newMailbox","name","toString","$certificate","security","hasCertificate","$$certificate","reject","$removeCertificate","updateQuota","percent","description","Math","round","usedSpace","maxQuota","l","formatted","$quota","$newMessage","accountId","mailboxPath","message","$absolutePath","asDraft","accountDefaults","defaults","AuxiliaryMailAccounts","alwaysSign","sign","alwaysEncrypt","encrypt","editable","isNew","mailto","isObject","$parseMailto","$addDelegate","user","deferred","defer","param","uid","map","delegates","resolve","users","status","promise","$removeDelegate","splice","futureMailboxData","$account","init","newMailboxData","create","$unwrap","Acl","PRELOAD","$$Acl","$query","sort","asc","selectedFolder","$refreshTimeout","$virtualMode","$virtualPath","SortingState","parseInt","constant","LOOKAHEAD","SIZE","createMailboxes","level","quotas","split","component","asCSSIdentifier","join","isUndefined","uidsMap","headers","$isLoading","$messages","$id","$acl","$displayName","$isEditable","isEditable","$isSpecial","$icon","$isNoInferiors","isNoInferiors","$shadowData","$omit","selectFolder","$lastVisibleIndex","max","$loadMessage","$selectedMessages","filter","selected","$selectedCount","isSelectedMessage","messageId","selectedMessage","$selectedMessage","$selectedMessageIndex","hasSelectedMessage","isDefined","$filter","sortingAttributes","filters","unseenCount","cancel","searchInput","secondFilter","match","searchBy","copy","refreshViewCheck","SOGoRefreshViewCheck","f","bind","timeInterval","endIndex","uids","futureHeadersData","startIndex","loaded","subject","min","loading","$unwrapHeaders","flags","isNoSelect","getClassName","base","$rename","findParent","parent","parentMailbox","$save","sibling","oldPath","localeCompare","pathRE","RegExp","_updateChildren","child","replace","$compact","$canFolderAs","$setFolderAs","$emptyTrash","$markAsRead","isread","$flagMessages","messages","operation","msgUIDs","saveSelectedMessages","selectedMessages","selectedUIDs","filename","download","exportFolder","$delete","$_deleteMessages","unseen","firstIndex","forEachRight","selectedIndex","findIndex","$deleteMessages","$markOrUnMarkMessagesAsJunk","method","$copyMessages","folder","$moveMessages","$reset","value","key","save","response","error","$futureMailboxData","$topIndex","invokeMap","threaded","msgs","msg","msgObject","zipObject","isError","j","messageHeaders","$updateSubscribe","action","subscribed","futureMessageData","lazy","$mailbox","$hasUnsafeContent","$loadUnsafeContent","to","cc","bcc","Message_STATUS","STATUS","$avatar","avatar","SOGoMailLabelsColors","$tags","SOGoMailDisplayRemoteInlineImages","$displayRemoteInlineImages","NOT_LOADED","DELAYED_LOADING","LOADING","LOADED","DELAYED_MS","filterTags","query","excludedTags","re","results","keys","tag","pair","search","includes","color","$formatFullAddresses","flag","charAt","buildPath","nocache","draftId","withResourcePath","$setUID","oldUID","attr","constructor","shortname","first","last","image","$shortRecipients","result","count","total","$shortAddress","address","allowReplyAll","recipientsCount","isDraft","loadUnsafeContent","$parts","$content","parts","part","msgclass","content","alternatePart","preferredPart","contentType","isArray","signed","valid","certificate","certificates","encrypted","mixedPart","safeContent","html","unsafeContent","document","createElement","innerHTML","suffix","element","elements","querySelectorAll","removeAttr","compile","$editableContent","from","toLowerCase","text","$plainContent","addTag","$addOrRemoveTag","removeTag","$imipAction","$reload","$sendMDN","shouldAskReceipt","$deleteAttachment","attachmentAttrs","attachment","toggleFlag","isflagged","$loaded","useCache","$futureMessageData","exec","decodeURIComponent","trim","$reply","$newDraft","$replyAll","$forward","origin","$send","startsWith","isanswered","isforwarded","privateAttributes","downloadAttachments","ImageGallery","show","$document","$mdPanel","sgHotkeys","setMessage","registerImage","registerHotkeys","$ctrl","createHotkey","callback","previousImage","nextImage","registerHotkey","showGallery","$event","partIndex","partSrc","src","images","attrs","mimetype","url","body","addClass","panelPosition","newPanelPosition","absolute","panelAnimation","newPanelAnimation","openFrom","target","duration","withAnimation","animation","FADE","config","attachTo","locals","lastIndex","selectedImage","bindToController","controller","PanelController","controllerAs","position","targetEvent","fullscreen","hasBackdrop","template","trapFocus","clickOutsideToClose","escapeToClose","focusOnOpen","onOpenComplete","getElementsByClassName","imgContainer","imgEl","one","naturalWidth","naturalHeight","classList","add","remove","onDomRemoved","removeClass","hotkeys","deregisterHotkey","open","mdPanelRef","$inject","close","selectImage","VirtualMailbox","setMailboxes","startSearch","params","finally","stopSearch","resetSelectedMessage","len","k","transform","messagesMap","sum","allMessages","promises","assign","flatten","MailboxController","$window","$scope","$state","$mdDialog","$mdToast","stateAccounts","stateAccount","stateMailbox","encodeUriFilter","sgSettings","focus","Dialog","sortLabels","vm","defaultWindowTitle","date","size","arrival","$onInit","$mailboxController","service","accounts","messageDialog","mode","multiple","searchMode","newMessage","markOrUnMarkMessagesAsJunk","toggleMessageSelection","_nextMessage","preventInClass","_previousMessage","_addNextMessageToSelection","_addPreviousMessageToSelection","hotkey","confirmDeleteSelectedMessages","on","_compactBeforeUnload","$on","off","$watch","title","event","centerIsClose","navController_centerIsClose","field","sortedBy","ascending","cancelSearch","composeWindowEnabled","SOGoMailComposeWindowEnabled","inPopup","SOGoMailComposeWindow","baseURL","wId","random","console","_newMessageInPopup","templateUrl","stateMessage","catch","noop","selectMessage","preventDefault","go","mailboxId","nextSelectedIndex","shiftKey","stopPropagation","_currentMailboxes","_unselectMessage","nextMessage","previousMessage","nextIndex","confirm","ok","deleteSelectedMessage","withoutTrash","moveSelectedMessage","dstFolder","copySelectedMessages","simple","hideDelay","moveSelectedMessages","selectAll","unselectMessages","markSelectedMessagesAsFlagged","markSelectedMessagesAsUnread","markSelectedMessagesAsRead","mdVirtualRepeatContainerDirectiveDecorator","$delegate","resetScroll","$element","updateSize","scrollTo","decorator","MailboxesController","$transitions","User","currentSearchParam","","subfolders","showSubscribedOnly","SOGoMailShowSubscribedFoldersOnly","refreshUnseenCount","selectedFolderController","confirmDelete","hideAdvancedSearch","searchPreviousMailbox","toggleAdvancedSearch","virtualMailbox","root","folders","$current","addSearchParam","v","newSearchParam","pattern","n","searchParam","substring","negative","toggleAccountState","triggerHandler","subscribe","SubscriptionsDialogController","srcAccount","hide","newFolder","parentFolder","prompt","alert","delegate","MailboxDelegationController","userToAdd","searchText","userFilter","closeModal","removeUser","addUser","unseenCountFolders","isDroppableFolder","srcFolder","dragSelectedMessages","dstId","clearMessageView","success","MessageController","$mdMedia","sgConstant","Calendar","Component","$messageController","tags","showFlags","$showDetailedRecipients","showRawSource","_unlessInDialog","reply","replyAll","forward","deleteMessage","opener","$watchCollection","newTags","oldTags","ctrls","$parentControllers","messageCtrl","wasflagged","mailboxCtrl","_newTags","_oldTags","difference","_messageDialog","arguments","apply","addFlags","toggleDetailedRecipients","filterMailtoLinks","href","tagName","attributes","state","parentCtrls","closePopup","_showMailEditor","_showMailEditorInPopup","isPopup","openInPopup","edit","contains","toggleRawSource","$rawSource","print","convertToEvent","_convertToComponent","convertToTask","componentData","pid","$defaultCalendar","summary","comment","capitalize","stateComponent","MessageEditorController","$stateParams","$mdConstant","$mdUtil","FileUploader","AddressBook","Card","addRecipient","autocomplete","autosave","autosaveDrafts","contactFilter","isFullscreen","hideBcc","hideCc","uniq","recipientSeparatorKeys","KEY_CODE","ENTER","TAB","COMMA","SEMICOLON","removeAttachment","send","sendState","toggleFullscreen","uploader","autoUpload","alias","removeAfterUpload","onSuccessItem","item","inlineUrl","lastAttachmentAttrs","onCancelItem","file","removeFromQueue","onErrorItem","SOGoMailAutoSave","localeCode","LocaleCode","destroy","actionName","_updateFileUploader","_addAttachments","originMessage","draftMailboxCtrl","draftMessageCtrl","originMailboxCtrl","fileItem","FileItem","progress","isUploaded","isSuccess","queue","isUploading","cancelItem","getElementById","prop","errorMessage","statusText","$filterAll","cards","explodedCards","manyCards","card","uniqBy","$$fullname","$$email","contact","recipients","recipient","list","emailRE","charCodeAt","test","$isList","expandable","refs","ref","$shortFormat","container","c_name","listId","SendMessageToastController","closeToast","sgAccountController","$mdSidenav","$postLink","quotaElement","div","addMailboxController","mailboxController","selectedMailboxCtrl","ctrl","unselectFolder","directive","restrict","scope","sgImipController","delegateInvitation","delegatedTo","iCalendarAction","receiveUpdates","c_email","viewer","pathToAttachment","link","iElement","sgImipPath","sgMailboxListItemController","editMode","accountController","selectableElement","clickableElement","inputContainer","inputElement","moreOptionsButton","childLevel","editFolder","srcEvent","select","panel","saveFolder","disabled","revertEditing","showMenu","relativeTo","addPanelPosition","xPosition","ALIGN_START","yPosition","ALIGN_TOPS","itemCtrl","MenuController","panelRef","panelEl","$menuCtrl","markFolderRead","compactFolder","emptyTrashFolder","showAdvancedSearch","share","$users","usersWithACL","setFolderAs","require","sgMessageListItemController","watchedAttrs","MailboxService","pick","newId","oldId","onUpdate","setVisibility","visible","sgMessageListItemMainController","$parse","contentDivElement","iconsDivElement","parentControllerOnUpdate","parentController","priorityIconElement","mailboxNameElement","senderElement","subjectElement","sizeElement","dateElement","textContent","flagIconElement","answerIconElement","forwardIconElement","attachmentIconElement","flagElements","nodesToArray","flagElement","removeChild","css","prepend","encodeEntities","priority","relativedate","hasattachment","sgZoomableImageController","showImage"],"mappings":"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","file":"Mailer.services.js"}
\ No newline at end of file
+{"version":3,"sources":["Mailer/Account.service.js","Mailer/Mailbox.service.js","Mailer/Message.service.js","Mailer/sgImageGallery.service.js","Mailer/VirtualMailbox.service.js","Mailer/MailboxController.js","Mailer/MailboxesController.js","Mailer/MessageController.js","Mailer/MessageEditorController.js","Mailer/sgAccountSection.directive.js","Mailer/sgIMIP.directive.js","Mailer/sgMailboxListItem.directive.js","Mailer/sgMessageListItem.directive.js","Mailer/sgMessageListItemMain.directive.js","Mailer/sgZoomableImage.directive.js"],"names":["Account","futureAccountData","then","angular","extend","this","_","forEach","identities","identity","fullName","full","email","$log","debug","JSON","stringify","undefined","$factory","$q","$timeout","Settings","Resource","Preferences","Mailbox","Message","$$resource","activeUser","$Preferences","$Mailbox","$Message","module","e","factory","$findAll","data","$unwrapCollection","fetch","o","collection","i","id","$accounts","prototype","getLength","$flattenMailboxes","length","getItemAtIndex","index","expandedMailboxes","$getMailboxes","options","_this","$mailboxes","reload","$find","$expanded","expandedFolders","_visit","mailboxes","indexOf","children","settings","Mail","ExpandedFolders","isString","fromJson","warn","when","allMailboxes","push","all","$$flattenMailboxes","saveState","account","reduce","mailbox","post","$getMailboxByType","type","_find","find","$getMailboxByPath","path","$newMailbox","name","toString","$certificate","security","hasCertificate","$$certificate","reject","$removeCertificate","updateQuota","percent","description","Math","round","usedSpace","maxQuota","l","formatted","$quota","$newMessage","accountId","mailboxPath","message","$absolutePath","asDraft","accountDefaults","defaults","AuxiliaryMailAccounts","alwaysSign","sign","alwaysEncrypt","encrypt","editable","isNew","mailto","isObject","$parseMailto","$addDelegate","user","deferred","defer","param","uid","map","delegates","resolve","users","status","promise","$removeDelegate","splice","futureMailboxData","$account","init","newMailboxData","create","$unwrap","Acl","PRELOAD","$$Acl","$query","sort","asc","selectedFolder","$refreshTimeout","$virtualMode","$virtualPath","SortingState","parseInt","constant","LOOKAHEAD","SIZE","createMailboxes","level","quotas","split","component","asCSSIdentifier","join","isUndefined","uidsMap","headers","$isLoading","$messages","$id","$acl","$displayName","$isEditable","isEditable","$isSpecial","$icon","$isNoInferiors","isNoInferiors","$shadowData","$omit","selectFolder","$lastVisibleIndex","max","$loadMessage","$selectedMessages","filter","selected","$selectedCount","isSelectedMessage","messageId","selectedMessage","$selectedMessage","$selectedMessageIndex","hasSelectedMessage","isDefined","$filter","sortingAttributes","filters","unseenCount","cancel","searchInput","secondFilter","match","searchBy","copy","refreshViewCheck","SOGoRefreshViewCheck","f","bind","timeInterval","endIndex","uids","futureHeadersData","startIndex","loaded","subject","min","loading","$unwrapHeaders","flags","isNoSelect","getClassName","base","$rename","findParent","parent","parentMailbox","$save","sibling","oldPath","localeCompare","pathRE","RegExp","_updateChildren","child","replace","$compact","$canFolderAs","$setFolderAs","$emptyTrash","$markAsRead","isread","$flagMessages","messages","operation","msgUIDs","saveSelectedMessages","selectedMessages","selectedUIDs","filename","download","exportFolder","open","$delete","$_deleteMessages","unseen","firstIndex","forEachRight","selectedIndex","findIndex","$deleteMessages","$markOrUnMarkMessagesAsJunk","method","$copyMessages","folder","$moveMessages","$reset","value","key","save","response","error","$futureMailboxData","$topIndex","invokeMap","threaded","msgs","msg","msgObject","zipObject","isError","j","messageHeaders","$updateSubscribe","action","subscribed","futureMessageData","lazy","$mailbox","$hasUnsafeContent","$loadUnsafeContent","to","cc","bcc","Message_STATUS","STATUS","$avatar","avatar","SOGoMailLabelsColors","$tags","SOGoMailDisplayRemoteInlineImages","$displayRemoteInlineImages","NOT_LOADED","DELAYED_LOADING","LOADING","LOADED","DELAYED_MS","filterTags","query","excludedTags","re","results","keys","tag","pair","search","includes","color","$formatFullAddresses","flag","charAt","buildPath","nocache","draftId","withResourcePath","$setUID","oldUID","attr","constructor","shortname","first","last","image","$shortRecipients","result","count","total","$shortAddress","address","allowReplyAll","recipientsCount","isDraft","loadUnsafeContent","$parts","$content","parts","part","msgclass","content","alternatePart","preferredPart","contentType","isArray","signed","valid","certificate","certificates","encrypted","mixedPart","safeContent","html","unsafeContent","document","createElement","innerHTML","suffix","element","elements","querySelectorAll","removeAttr","compile","$editableContent","from","toLowerCase","text","$plainContent","addTag","$addOrRemoveTag","removeTag","$imipAction","$reload","$sendMDN","shouldAskReceipt","$deleteAttachment","attachmentAttrs","attachment","toggleFlag","isflagged","$loaded","useCache","$futureMessageData","exec","decodeURIComponent","trim","$reply","$newDraft","$replyAll","$forward","origin","$send","startsWith","isanswered","isforwarded","privateAttributes","downloadAttachments","ImageGallery","show","$document","$mdPanel","sgHotkeys","setMessage","registerImage","registerHotkeys","$ctrl","createHotkey","callback","previousImage","nextImage","registerHotkey","showGallery","$event","partIndex","partSrc","src","images","attrs","mimetype","url","body","addClass","panelPosition","newPanelPosition","absolute","panelAnimation","newPanelAnimation","openFrom","target","duration","withAnimation","animation","FADE","config","attachTo","locals","lastIndex","selectedImage","bindToController","controller","PanelController","controllerAs","position","targetEvent","fullscreen","hasBackdrop","template","trapFocus","clickOutsideToClose","escapeToClose","focusOnOpen","onOpenComplete","getElementsByClassName","imgContainer","imgEl","one","naturalWidth","naturalHeight","classList","add","remove","onDomRemoved","removeClass","hotkeys","deregisterHotkey","mdPanelRef","$inject","close","selectImage","VirtualMailbox","setMailboxes","startSearch","params","finally","stopSearch","resetSelectedMessage","len","k","transform","messagesMap","sum","allMessages","promises","assign","flatten","MailboxController","$window","$scope","$state","$mdDialog","$mdToast","stateAccounts","stateAccount","stateMailbox","encodeUriFilter","sgSettings","focus","Dialog","sortLabels","vm","defaultWindowTitle","date","size","arrival","$onInit","$mailboxController","service","accounts","messageDialog","mode","multiple","searchMode","newMessage","markOrUnMarkMessagesAsJunk","toggleMessageSelection","_nextMessage","preventInClass","_previousMessage","_addNextMessageToSelection","_addPreviousMessageToSelection","hotkey","confirmDeleteSelectedMessages","on","_compactBeforeUnload","$on","off","$watch","title","event","centerIsClose","navController_centerIsClose","field","sortedBy","ascending","cancelSearch","composeWindowEnabled","SOGoMailComposeWindowEnabled","inPopup","SOGoMailComposeWindow","baseURL","wId","random","console","_newMessageInPopup","templateUrl","stateMessage","catch","noop","selectMessage","preventDefault","go","mailboxId","nextSelectedIndex","shiftKey","stopPropagation","_currentMailboxes","_unselectMessage","nextMessage","previousMessage","nextIndex","confirm","ok","deleteSelectedMessage","withoutTrash","moveSelectedMessage","dstFolder","copySelectedMessages","simple","hideDelay","moveSelectedMessages","selectAll","unselectMessages","markSelectedMessagesAsFlagged","markSelectedMessagesAsUnread","markSelectedMessagesAsRead","mdVirtualRepeatContainerDirectiveDecorator","$delegate","resetScroll","$element","updateSize","scrollTo","decorator","MailboxesController","$transitions","User","currentSearchParam","","subfolders","showSubscribedOnly","SOGoMailShowSubscribedFoldersOnly","refreshUnseenCount","selectedFolderController","confirmDelete","hideAdvancedSearch","searchPreviousMailbox","toggleAdvancedSearch","virtualMailbox","root","folders","$current","addSearchParam","v","newSearchParam","pattern","n","searchParam","substring","negative","toggleAccountState","triggerHandler","subscribe","SubscriptionsDialogController","srcAccount","hide","newFolder","parentFolder","prompt","alert","delegate","MailboxDelegationController","userToAdd","searchText","userFilter","closeModal","removeUser","addUser","unseenCountFolders","isDroppableFolder","srcFolder","dragSelectedMessages","dstId","clearMessageView","success","MessageController","$mdMedia","sgConstant","Calendar","Component","$messageController","tags","showFlags","$showDetailedRecipients","showRawSource","_unlessInDialog","reply","replyAll","forward","deleteMessage","opener","$watchCollection","newTags","oldTags","ctrls","$parentControllers","messageCtrl","wasflagged","mailboxCtrl","_newTags","_oldTags","difference","_messageDialog","arguments","apply","addFlags","toggleDetailedRecipients","filterMailtoLinks","href","tagName","attributes","state","parentCtrls","closePopup","_showMailEditor","_showMailEditorInPopup","isPopup","openInPopup","edit","contains","toggleRawSource","$rawSource","print","convertToEvent","_convertToComponent","convertToTask","componentData","pid","$defaultCalendar","summary","comment","capitalize","stateComponent","MessageEditorController","$stateParams","$mdConstant","$mdUtil","FileUploader","AddressBook","Card","addRecipient","autocomplete","autosave","autosaveDrafts","contactFilter","isFullscreen","hideBcc","hideCc","uniq","recipientSeparatorKeys","KEY_CODE","ENTER","TAB","COMMA","SEMICOLON","removeAttachment","send","sendState","toggleFullscreen","uploader","autoUpload","alias","removeAfterUpload","onSuccessItem","item","inlineUrl","lastAttachmentAttrs","onCancelItem","file","removeFromQueue","onErrorItem","SOGoMailAutoSave","localeCode","LocaleCode","destroy","actionName","_updateFileUploader","_addAttachments","originMessage","draftMailboxCtrl","draftMessageCtrl","originMailboxCtrl","fileItem","FileItem","progress","isUploaded","isSuccess","queue","isUploading","cancelItem","getElementById","prop","errorMessage","statusText","$filterAll","cards","explodedCards","manyCards","card","uniqBy","$$fullname","$$email","contact","recipients","recipient","list","emailRE","charCodeAt","test","$isList","expandable","refs","ref","$shortFormat","container","c_name","listId","SendMessageToastController","closeToast","sgAccountController","$mdSidenav","$postLink","quotaElement","div","addMailboxController","mailboxController","selectedMailboxCtrl","ctrl","unselectFolder","directive","restrict","scope","sgImipController","delegateInvitation","delegatedTo","iCalendarAction","receiveUpdates","c_email","viewer","pathToAttachment","link","iElement","sgImipPath","sgMailboxListItemController","editMode","accountController","selectableElement","clickableElement","inputContainer","inputElement","moreOptionsButton","childLevel","editFolder","srcEvent","select","panel","saveFolder","disabled","revertEditing","showMenu","relativeTo","addPanelPosition","xPosition","ALIGN_START","yPosition","ALIGN_TOPS","itemCtrl","MenuController","panelRef","panelEl","$menuCtrl","markFolderRead","compactFolder","emptyTrashFolder","showAdvancedSearch","share","$users","usersWithACL","setFolderAs","require","sgMessageListItemController","watchedAttrs","MailboxService","pick","newId","oldId","onUpdate","setVisibility","visible","sgMessageListItemMainController","$parse","contentDivElement","iconsDivElement","parentControllerOnUpdate","parentController","priorityIconElement","mailboxNameElement","senderElement","subjectElement","sizeElement","dateElement","textContent","flagIconElement","answerIconElement","forwardIconElement","attachmentIconElement","flagElements","nodesToArray","flagElement","removeChild","css","prepend","encodeEntities","priority","relativedate","hasattachment","sgZoomableImageController","showImage"],"mappings":"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","file":"Mailer.services.js"}
\ No newline at end of file
diff --git a/UI/WebServerResources/js/Scheduler.services.js b/UI/WebServerResources/js/Scheduler.services.js
index ba2766102..907be25d8 100644
--- a/UI/WebServerResources/js/Scheduler.services.js
+++ b/UI/WebServerResources/js/Scheduler.services.js
@@ -1,2 +1,2 @@
-!function(){"use strict";function e(t){if(this.init(t),this.name&&!this.id){var n=e.$$resource.create("createFolder",this.name);this.$unwrap(n)}}e.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Component","Acl",function(t,n,a,o,i,r,s,c){return angular.extend(e,{$q:t,$timeout:n,$log:a,$$resource:new i(o.activeUser("folderURL")+"Calendar",o.activeUser()),$Preferences:r,$Component:s,$$Acl:c,activeUser:o.activeUser(),$view:null}),e}];try{angular.module("SOGo.SchedulerUI")}catch(e){angular.module("SOGo.SchedulerUI",["SOGo.Common"])}angular.module("SOGo.SchedulerUI").value("CalendarSettings",{EventDragDayLength:96,EventDragHorizontalOffset:3,ConflictHTTPErrorCode:409}).factory("Calendar",e.$factory),e.$defaultCalendar=function(){var t;return"first"==e.$Preferences.defaults.SOGoDefaultCalendar&&(t=_.find(e.$findAll(null,!0),function(e){return e.active}))?t.id:"personal"},e.$add=function(t){var n,a;n=t.isWebCalendar?this.$webcalendars:t.isSubscription?this.$subscriptions:this.$calendars,(a=_.findIndex(n,function(e,n){return"personal"==t.id||"personal"!=e.id&&e.name.localeCompare(t.name)>0}))<0?n.push(t):n.splice(a,0,t),e.$Preferences.settings.Calendar.FoldersOrder&&e.saveFoldersOrder(_.flatMap(e.$findAll(),"id")),e.$reloadAll()},e.$findAll=function(t,n){var a=this;if(t)this.$calendars=[],this.$subscriptions=[],this.$webcalendars=[],angular.forEach(t,function(t,n){var o=new e(t);o.isWebCalendar?a.$webcalendars.push(o):o.isSubscription?a.$subscriptions.push(o):a.$calendars.push(o)});else if(angular.isUndefined(this.$calendars))return this.$calendars=[],this.$subscriptions=[],this.$webcalendars=[],e.$$resource.fetch("calendarslist").then(function(t){return e.$findAll(t.calendars,n)});return n?_.union(this.$calendars,_.filter(this.$subscriptions,function(e){return e.isOwned||e.acls.objectCreator})):_.union(this.$calendars,this.$subscriptions,this.$webcalendars)},e.$reloadAll=function(){var t=this;e.$$resource.fetch("calendarslist").then(function(n){_.forEach(n.calendars,function(n){var a,o;a=n.isWebCalendar?t.$webcalendars:n.owner!=e.activeUser.login?t.$subscriptions:t.$calendars,(o=_.find(a,function(e){return e.id==n.id}))&&o.init(n)})})},e.$get=function(t){var n;return(n=_.find(e.$calendars,function(e){return e.id==t}))||(n=_.find(e.$subscriptions,function(e){return e.id==t})),n||(n=_.find(e.$webcalendars,function(e){return e.id==t})),n},e.$getIndex=function(t){var n;return(n=_.indexOf(_.map(e.$calendars,"id"),t))<0&&(n=_.indexOf(_.map(e.$subscriptions,"id"),t)),n<0&&(n=_.indexOf(_.map(e.$webcalendars,"id"),t)),n},e.$subscribe=function(t,n){var a=this;return e.$$resource.userResource(t).fetch(n,"subscribe").then(function(t){var n=new e(angular.extend({active:1},t));return _.find(a.$subscriptions,function(e){return e.id==t.id})||e.$add(n),n})},e.$addWebCalendar=function(t){var n=e.$q.defer();return _.find(this.$webcalendars,function(e){return e.urls.webCalendarURL==t})?n.reject():e.$$resource.post(null,"addWebCalendar",{url:t}).then(function(a){angular.extend(a,{isWebCalendar:!0,isEditable:!0,isRemote:!1,owner:e.activeUser.login,urls:{webCalendarURL:t}});var o=new e(a);e.$$resource.fetch(o.id,"reload").then(function(t){e.$log.debug(JSON.stringify(t,void 0,2)),e.$add(o),n.resolve()},function(e){401==e.status?n.resolve(o):n.reject()})},n.reject),n.promise},e.reloadWebCalendars=function(){var t=[];return _.forEach(this.$webcalendars,function(n){var a=e.$$resource.fetch(n.id,"reload");a.then(function(e){n.$error=!1},function(e){n.$error=l(e.statusText)}),t.push(a)}),e.$q.all(t)},e.$deleteComponents=function(t){var n={},a=[];return _.forEach(t,function(e){angular.isDefined(n[e.pid])||(n[e.pid]=[]),n[e.pid].push(e.id)}),_.forEach(n,function(t,n){a.push(e.$$resource.post(n,"batchDelete",{uids:t}))}),e.$q.all(a)},e.saveFoldersActivation=function(t){var n={};return _.forEach(t,function(t){var a=e.$get(t);n[a.id]=a.active}),e.$$resource.post(null,"saveFoldersActivation",n)},e.saveFoldersOrder=function(t){return this.$$resource.post(null,"saveFoldersOrder",{folders:t}).then(function(){if(e.$Preferences.settings.Calendar.FoldersOrder=t,!t)return e.$$resource.fetch("calendarslist").then(function(t){return e.$findAll(t.calendars)})})},e.prototype.init=function(t){this.color=this.color||"#AAAAAA",this.active=1,angular.extend(this,t),this.id&&(this.$acl=new e.$$Acl("Calendar/"+this.id)),this.isOwned=e.activeUser.isSuperUser||this.owner==e.activeUser.login,this.isSubscription=!this.isRemote&&this.owner!=e.activeUser.login,angular.isUndefined(this.$shadowData)&&(this.$shadowData=this.$omit())},e.prototype.$id=function(){return this.id?e.$q.when(this.id):this.$futureCalendarData.then(function(e){return e.id})},e.prototype.getClassName=function(e){return angular.isUndefined(e)&&(e="fg"),e+"-folder"+this.id},e.prototype.$rename=function(){var t,n,a=this;return this.name==this.$shadowData.name?e.$q.when():(n=this.isWebCalendar?e.$webcalendars:this.isSubscription?e.$subscriptions:e.$calendars,(t=_.indexOf(_.map(n,"id"),this.id))>-1?this.$save().then(function(){n.splice(t,1),e.$add(a)}):e.$q.reject())},e.prototype.$delete=function(){var t,n,a=this;return this.isSubscription?(n=e.$$resource.fetch(this.id,"unsubscribe"),t=e.$subscriptions):(n=e.$$resource.remove(this.id),t=this.isWebCalendar?e.$webcalendars:e.$calendars),n.then(function(){var e=_.indexOf(_.map(t,"id"),a.id);t.splice(e,1)})},e.prototype.$reset=function(){var e=this;angular.forEach(this,function(t,n){"constructor"!=n&&"$"!=n[0]&&delete e[n]}),angular.extend(this,this.$shadowData),this.$shadowData=this.$omit()},e.prototype.$save=function(){var t=this;return e.$$resource.save(this.id,this.$omit()).then(function(e){return t.$shadowData=t.$omit(),e},function(n){return e.$log.error(JSON.stringify(n,void 0,2)),t.$reset(),n})},e.prototype.setCredentials=function(t,n){var a=this,o=e.$q.defer();return e.$$resource.post(this.id,"set-credentials",{username:t,password:n}).then(function(){e.$$resource.fetch(a.id,"reload").then(function(t){e.$add(a),o.resolve()},function(e){401==e.status?o.reject(l("Wrong username or password")):o.reject(e.statusText)})},o.reject),o.promise},e.prototype.export=function(){var t;return t={type:"application/octet-stream",filename:this.name+".ics"},e.$$resource.download(this.id+".ics","export",null,t)},e.prototype.$setActivation=function(){return e.$$resource.fetch(this.id,(this.active?"":"de")+"activateFolder")},e.prototype.$getComponent=function(t,n){return e.$Component.$find(this.id,t,n)},e.prototype.$unwrap=function(t){var n=this;this.$futureCalendarData=t.then(function(t){return e.$timeout(function(){return n.init(t),n})},function(t){n.isError=!0,angular.isObject(t)&&e.$timeout(function(){angular.extend(n,t)})})},e.prototype.$omit=function(){var e={};return angular.forEach(this,function(t,n){"constructor"!=n&&"$"!=n[0]&&(e[n]=t)}),e}}(),function(){"use strict";function e(t){if("function"!=typeof t.then){if(this.init(t),this.pid&&!this.id){var n=e.$$resource.newguid(this.pid);this.$unwrap(n),this.isNew=!0}}else this.$unwrap(t)}e.$factory=["$q","$timeout","$log","$rootScope","sgSettings","sgComponent_STATUS","Preferences","User","Card","Gravatar","Resource",function(t,n,a,o,i,r,s,c,l,d,u){return angular.extend(e,{STATUS:r,$q:t,$timeout:n,$log:a,$rootScope:o,$settings:i,$User:c,$Preferences:s,$Card:l,$gravatar:d,$$resource:new u(i.activeUser("folderURL")+"Calendar",i.activeUser()),timeFormat:"%H:%M",$query:{value:"",search:"title_Category_Location"},$queryEvents:{sort:"start",asc:1,filterpopup:"view_next7"},$queryTasks:{sort:"status",asc:1,filterpopup:"view_incomplete"},$refreshTimeout:null,$ghost:{}}),s.settings.Calendar.EventsFilterState&&(e.$queryEvents.filterpopup=s.settings.Calendar.EventsFilterState),s.settings.Calendar.TasksFilterState&&(e.$queryTasks.filterpopup=s.settings.Calendar.TasksFilterState),s.settings.Calendar.EventsSortingState&&(e.$queryEvents.sort=s.settings.Calendar.EventsSortingState[0],e.$queryEvents.asc=parseInt(s.settings.Calendar.EventsSortingState[1])),s.settings.Calendar.TasksSortingState&&(e.$queryTasks.sort=s.settings.Calendar.TasksSortingState[0],e.$queryTasks.asc=parseInt(s.settings.Calendar.TasksSortingState[1])),e.$queryTasks.show_completed=parseInt(s.settings.ShowCompletedTasks),e.$categories=s.defaults.SOGoCalendarCategoriesColors,s.defaults.SOGoTimeFormat&&(e.timeFormat=s.defaults.SOGoTimeFormat),e}];try{angular.module("SOGo.SchedulerUI")}catch(e){angular.module("SOGo.SchedulerUI",["SOGo.Common"])}angular.module("SOGo.SchedulerUI").constant("sgComponent_STATUS",{NOT_LOADED:0,DELAYED_LOADING:1,LOADING:2,LOADED:3,DELAYED_MS:300}).factory("Component",e.$factory),e.$selectedCount=function(){var t;return t=0,e.$events&&(t+=_.filter(e.$events,function(e){return e.selected}).length),e.$tasks&&(t+=_.filter(e.$tasks,function(e){return e.selected}).length),t},e.$startRefreshTimeout=function(t){e.$refreshTimeout&&e.$timeout.cancel(e.$refreshTimeout);var n=e.$Preferences.defaults.SOGoRefreshViewCheck;if(n&&"manually"!=n){var a=angular.bind(e.$rootScope,e.$rootScope.$emit,"calendars:list");e.$refreshTimeout=e.$timeout(a,1e3*n.timeInterval())}},e.$isLoading=function(){return e.$loaded==e.STATUS.LOADING},e.$filter=function(t,n){var a,o,i=this,r=new Date,s=r.getDate(),c=r.getMonth()+1,l=r.getFullYear(),d="$query"+t.capitalize(),u={day:l+(c<10?"0":"")+c+(s<10?"0":"")+s},p=!1;return e.$startRefreshTimeout(t),angular.extend(this.$query,u),n&&_.forEach(_.keys(n),function(t){p|=i.$query[t]&&n[t]!=e.$query[t],"reload"==t&&n[t]?p=!0:angular.isDefined(i.$query[t])?i.$query[t]=n[t]:i[d][t]=n[t]}),a=this.$$resource.fetch(null,t+"list",angular.extend(this[d],this.$query)),p&&(delete e[o="tasks"==t?"$events":"$tasks"],e.$log.debug("force reload of "+o)),this.$unwrapCollection(t,a)},e.$find=function(t,n,a){var o=[t,encodeURIComponent(n)];return a&&o.push(a),new e(this.$$resource.fetch(o.join("/"),"view"))},e.filterCategories=function(t){var n=new RegExp(t,"i");return _.filter(_.keys(e.$categories),function(e){return-1!=e.search(n)})},e.saveSelectedList=function(e){return this.$$resource.post(null,"saveSelectedList",{list:e+"ListView"})},e.$eventsBlocksForView=function(t,n){var a,o,i,r;return a=e.$Preferences.defaults.SOGoFirstDayOfWeek,"day"==t?(o="dayView",i=r=n):"multicolumnday"==t?(o="multicolumndayView",i=r=n):"week"==t?(o="weekView",i=n.beginOfWeek(a),(r=new Date).setTime(i.getTime()),r.addDays(6)):"month"==t&&(o="monthView",(i=n).setDate(1),i=i.beginOfWeek(a),(r=new Date).setTime(n.getTime()),r.setMonth(r.getMonth()+1),r.addDays(-1),r=r.endOfWeek(a)),this.$eventsBlocks(o,i,r)},e.$eventsBlocks=function(t,n,a){var o,i,r,s=[],c=[],l=e.$q.defer();return o={view:t.toLowerCase(),sd:n.getDayString(),ed:a.getDayString()},this.$$resource.fetch(null,"eventsblocks",o).then(function(t){var n,a;n=function(t,n,a){var o,i=_.zipObject(this.eventsFields,n),r=new Date(1e3*i.c_startdate);return i.hour=r.getHourString(),i.blocks=[],o=new e(i),t.push(o),t},a=function(e){this[e.nbr].blocks.push(e),e.component=this[e.nbr],e.isFirst=1==this[e.nbr].blocks.length},e.$views=[],e.$timeout(function(){_.forEach(t,function(t,o){var l,d=[],u={},p={};for(t.eventsFields.splice(_.indexOf(t.eventsFields,"c_folder"),1,"pid"),t.eventsFields.splice(_.indexOf(t.eventsFields,"c_name"),1,"id"),t.eventsFields.splice(_.indexOf(t.eventsFields,"c_recurrence_id"),1,"occurrenceId"),t.eventsFields.splice(_.indexOf(t.eventsFields,"c_title"),1,"summary"),_.reduce(t.events,_.bind(n,t),d),_.forEach(_.flatten(t.blocks),_.bind(a,d)),_.forEach(_.flatten(t.allDayBlocks),_.bind(a,d)),0===s.length&&(s=_.flatMap(t.days,"date"),c=_.flatMap(t.days,"number")),i=0;i0&&(this.repeat.month={type:"bymonthday"}),angular.isUndefined(this.repeat.month)&&(this.repeat.month={}),angular.isUndefined(this.repeat.month.occurrence)&&angular.extend(this.repeat.month,{occurrence:"1",day:"SU"}),angular.isUndefined(this.repeat.months)&&(this.repeat.months=[]),angular.isUndefined(this.repeat.year)&&(this.repeat.year={}),this.repeat.count?this.repeat.end="count":this.repeat.until?(this.repeat.end="until",angular.isString(this.repeat.until)&&(this.repeat.until=e.$parseDate(this.repeat.until,{no_time:!0}))):this.repeat.end="never",this.$hasCustomRepeat=this.hasCustomRepeat(),this.isNew){var a="appointment"==this.type?"Events":"Tasks";this.classification=e.$Preferences.defaults["SOGoCalendar"+a+"DefaultClassification"].toLowerCase();var o=/-PT?([0-9]+)([MHDW])/.exec(e.$Preferences.defaults.SOGoCalendarDefaultReminder);o&&(this.$hasAlarm=!0,this.alarm.quantity=parseInt(o[1]),this.alarm.unit={M:"MINUTES",H:"HOURS",D:"DAYS",W:"WEEKS"}[o[2]]),this.sendAppointmentNotifications=e.$Preferences.defaults.SOGoAppointmentSendEMailNotifications}else angular.isUndefined(t.$hasAlarm)&&(this.$hasAlarm=angular.isDefined(t.alarm));this.destinationCalendar=this.pid,this.attendees&&_.forEach(this.attendees,function(t){t.image=e.$gravatar(t.email,32)}),this.updateFreeBusy(),this.selected=!1},e.prototype.initOrganizer=function(t){var n,a=this;t&&t.isSubscription?n=e.$User.$filter(t.owner).then(function(e){var t=e[0];a.organizer={uid:t.uid,name:t.cn,email:t.c_email}}):(this.organizer={uid:e.$settings.activeUser("login"),name:e.$settings.activeUser("identification"),email:e.$settings.activeUser("email")},n=e.$q.when()),n.then(function(){a.updateFreeBusyAttendee(a.organizer)})},e.prototype.hasCustomRepeat=function(){return angular.isUndefined(this.occurrenceId)&&angular.isDefined(this.repeat)&&(this.repeat.interval>1||angular.isDefined(this.repeat.days)&&this.repeat.days.length>0||angular.isDefined(this.repeat.monthdays)&&this.repeat.monthdays.length>0||angular.isDefined(this.repeat.months)&&this.repeat.months.length>0||angular.isDefined(this.repeat.month)&&angular.isDefined(this.repeat.month.type)||angular.isDefined(this.repeat.dates)&&this.repeat.dates.length>0)},e.prototype.isEditable=function(){return!this.occurrenceId&&!this.isReadOnly},e.prototype.isEditableOccurrence=function(){return this.occurrenceId&&!this.isReadOnly},e.prototype.isInvitation=function(){return!this.occurrenceId&&this.userHasRSVP},e.prototype.isInvitationOccurrence=function(){return this.occurrenceId&&this.userHasRSVP},e.prototype.showPercentComplete=function(){return"task"==this.type&&this.percentComplete>0&&"cancelled"!=this.status},e.prototype.enablePercentComplete=function(){return"task"==this.type&&"not-specified"!=this.status&&"cancelled"!=this.status},e.prototype.coversFreeBusy=function(e,t,n){return angular.isDefined(this.freebusy[e])&&angular.isDefined(this.freebusy[e][t])&&1==this.freebusy[e][t][n]},e.prototype.updateFreeBusyCoverage=function(){var e=this,t={};if(this.start&&this.end){var n=new Date(this.start.getTime()),a=new Date(this.end.getTime()),o=parseInt(n.getMinutes()/15+.5),i=parseInt(a.getMinutes()/15+.5);return n.setMinutes(15*o),a.setMinutes(15*i),_.forEach(n.daysUpTo(a),function(n,a){var i,r=n.getDate(),s=n.getDayString();if(s==e.start.getDayString())for(i=n.getHours().toString(),t[s]={},t[s][i]=[];o>0;)t[s][i].push(0),o--;else n=n.beginOfDay(),t[s]={};for(;n.getTime()0},e.prototype.addAttachUrl=function(e){if(angular.isUndefined(this.attachUrls))this.attachUrls=[{value:e}];else{for(var t=0;t-1&&this.attachUrls.length>e&&this.attachUrls.splice(e,1)},e.prototype.$addDueDate=function(){this.due=new Date,this.due.setMinutes(15*Math.round(this.due.getMinutes()/15)),this.dueDate=this.due.toISOString()},e.prototype.$deleteDueDate=function(){delete this.due,delete this.dueDate},e.prototype.$addStartDate=function(){this.start=new Date,this.start.setMinutes(15*Math.round(this.start.getMinutes()/15))},e.prototype.$deleteStartDate=function(){delete this.start,delete this.startDate},e.prototype.$addRecurrenceDate=function(){var e=new Date;e.setMinutes(15*Math.round(e.getMinutes()/15)),angular.isUndefined(this.repeat.dates)&&(this.repeat={frequency:"custom",dates:[]}),this.repeat.dates.push(e)},e.prototype.$deleteRecurrenceDate=function(e){e>-1&&this.repeat&&this.repeat.dates&&this.repeat.dates.length>e&&this.repeat.dates.splice(e,1)},e.prototype.$reset=function(){var e=this;angular.forEach(this,function(t,n){"constructor"!=n&&"$"!=n[0]&&delete e[n]}),this.init(this.$shadowData),this.$shadowData=this.$omit()},e.prototype.$reply=function(){var t,n=this,a=[this.pid,encodeURIComponent(this.id)];return this.occurrenceId&&a.push(this.occurrenceId),t={reply:this.reply,delegatedTo:this.delegatedTo,alarm:this.$hasAlarm?this.alarm:{}},e.$$resource.save(a.join("/"),t,{action:"rsvpAppointment"}).then(function(e){return n.$shadowData=n.$omit(),e})},e.prototype.$adjust=function(t){var n=[this.pid,encodeURIComponent(this.id)];return _.every(_.values(t),function(e){return 0===e})?e.$q.when():(this.occurrenceId&&n.push(this.occurrenceId),e.$log.debug("adjust "+n.join("/")+" "+JSON.stringify(t)),e.$$resource.save(n.join("/"),t,{action:"adjust"}))},e.prototype.$save=function(t){var n,a,o,i,r=this;return o=this.$omit(),i=e.$Preferences.$mdDateLocaleProvider,o.startDate=o.start?o.start.format(i,"%Y-%m-%d"):"",o.startTime=o.start?o.start.format(i,"%H:%M"):"",o.endDate=o.end?o.end.format(i,"%Y-%m-%d"):"",o.endTime=o.end?o.end.format(i,"%H:%M"):"",o.dueDate=o.due?o.due.format(i,"%Y-%m-%d"):"",o.dueTime=o.due?o.due.format(i,"%H:%M"):"",o.completedDate=o.completed?o.completed.format(i,"%Y-%m-%d"):"",this.hasCustomRepeat()?"monthly"==this.repeat.frequency&&this.repeat.month.type&&"byday"==this.repeat.month.type&&"relative"!=this.repeat.month.day||"yearly"==this.repeat.frequency&&this.repeat.year.byday?(delete o.repeat.monthdays,o.repeat.days=[{day:this.repeat.month.day,occurrence:this.repeat.month.occurrence.toString()}]):"monthly"!=this.repeat.frequency&&"yearly"!=this.repeat.frequency||!this.repeat.month.type?"custom"==this.repeat.frequency&&this.repeat.dates&&_.forEach(o.repeat.dates,function(e,t,n){n[t]={date:e.format(i,"%Y-%m-%d"),time:e.format(i,"%H:%M")}}):(delete o.repeat.days,"relative"==this.repeat.month.day&&(o.repeat.monthdays=[this.repeat.month.occurrence])):this.repeat.frequency&&"never"!=this.repeat.frequency&&(o.repeat={frequency:this.repeat.frequency}),o.startDate&&this.repeat.frequency&&"never"!=this.repeat.frequency?"until"==this.repeat.end&&this.repeat.until?o.repeat.until=this.repeat.until.stringWithSeparator("-"):"count"==this.repeat.end&&this.repeat.count?o.repeat.count=this.repeat.count:(delete o.repeat.until,delete o.repeat.count):delete o.repeat,"not-specified"==this.status?delete o.status:"completed"!=this.status&&delete o.completedDate,o.startDate&&this.$hasAlarm?!this.alarm.action||"email"!=this.alarm.action||this.attendees&&this.attendees.length>0||(o.alarm.attendees=0,o.alarm.organizer=1):o.alarm={},a=[this.pid,encodeURIComponent(this.id)],this.isNew&&(n={action:"saveAs"+this.type.capitalize()}),this.occurrenceId&&a.push(this.occurrenceId),angular.extend(o,t),e.$$resource.save(a.join("/"),o,n).then(function(e){return r.$shadowData=r.$omit(),e})},e.prototype.remove=function(t){var n=[this.pid,encodeURIComponent(this.id)];return t&&this.occurrenceId&&n.push(this.occurrenceId),e.$$resource.remove(n.join("/"))},e.prototype.$unwrap=function(t){var n=this;this.$futureComponentData=t,this.$futureComponentData.then(function(e){n.init(e),n.$shadowData=n.$omit()},function(t){angular.extend(n,t),n.isError=!0,e.$log.error(n.error)})},e.prototype.$omit=function(){var e={};return angular.forEach(this,function(t,n){"constructor"==n||"$hasAlarm"!=n&&"$"==n[0]||"blocks"==n||(e[n]=angular.copy(t))}),e},e.prototype.repeatDescription=function(){var e=null;return this.repeat&&(e=l("repeat_"+this.repeat.frequency.toUpperCase())),e},e.prototype.alarmDescription=function(){var e,t=null;return this.alarm&&(e=["reminder",this.alarm.quantity],this.alarm.quantity>0&&e.push(this.alarm.unit.toUpperCase(),this.alarm.reference.toUpperCase()),(e=e.join("_"))===(t=l(e))&&(t=[this.alarm.quantity,l("reminder_"+this.alarm.unit.toUpperCase()),l("reminder_"+this.alarm.reference.toUpperCase())].join(" "))),t},e.prototype.copyTo=function(t){return e.$$resource.post(this.pid+"/"+encodeURIComponent(this.id),"copy",{destination:t})},e.prototype.moveTo=function(t){return e.$$resource.post(this.pid+"/"+encodeURIComponent(this.id),"move",{destination:t})},e.prototype.toString=function(){return"[Component "+this.id+"]"}}(),function(){"use strict";e.$inject=["$scope","$rootScope","$state","$stateParams","sgHotkeys","Calendar","Component","Preferences","stateEventsBlocks"];function e(t,n,a,o,i,r,s,c,d){var u,p=this,h=[];angular.isUndefined(e.expandedAllDays)&&(e.expandedAllDays=!1),p.selectedDate=o.day.asDate(),p.expandedAllDays=e.expandedAllDays,p.toggleAllDays=function(){e.expandedAllDays=!e.expandedAllDays,p.expandedAllDays=e.expandedAllDays},p.views=d,p.changeDate=y,p.changeView=v,this.$onInit=function(){(e=h).push(i.createHotkey({key:l("hotkey_today"),description:l("Today"),callback:y,args:new Date})),e.push(i.createHotkey({key:l("hotkey_dayview"),description:l("Day"),callback:v,args:"day"})),e.push(i.createHotkey({key:l("hotkey_weekview"),description:l("Week"),callback:v,args:"week"})),e.push(i.createHotkey({key:l("hotkey_monthview"),description:l("Month"),callback:v,args:"month"})),e.push(i.createHotkey({key:l("hotkey_multicolumndayview"),description:l("Multicolumn Day View"),callback:v,args:"multicolumnday"})),e.push(i.createHotkey({key:"left",description:l("Move backward"),callback:m,args:-1})),e.push(i.createHotkey({key:"right",description:l("Move forward"),callback:m,args:1})),_.forEach(e,function(e){i.registerHotkey(e)});var e;f(p.selectedDate),u=n.$on("calendars:list",g),t.$on("$destroy",function(){u(),_.forEach(h,function(e){i.deregisterHotkey(e)})})};function m(e,t){var n;"week"==o.view?n=p.selectedDate.beginOfWeek(c.defaults.SOGoFirstDayOfWeek).addDays(7*t):"month"==o.view?((n=p.selectedDate).setDate(1),n.setMonth(n.getMonth()+t)):n=p.selectedDate.addDays(t),y(e,n)}function f(e){"month"==o.view?(e.setDate(1),e.setHours(12),e.$dateFormat="%B %Y"):"week"==o.view?(e.setTime(e.beginOfWeek(c.defaults.SOGoFirstDayOfWeek).getTime()),e.$dateFormat=l("Week %d").replace("%d","%U")):e.$dateFormat="%A"}function g(){s.$eventsBlocksForView(o.view,o.day.asDate()).then(function(e){var t,n,a;for(t=0;t=t;n--)p.views.splice(n,1)})}function y(e,t){var n=t?t.getDayString():angular.element(e.currentTarget).attr("date");t&&f(t),a.go("calendars.view",{day:n})}function v(e,t){a.go("calendars.view",{view:t})}}angular.module("SOGo.SchedulerUI").controller("CalendarController",e)}(),function(){"use strict";e.$inject=["$rootScope","$scope","$q","$timeout","$state","$mdDialog","sgHotkeys","sgFocus","Dialog","Preferences","CalendarSettings","Calendar","Component","Alarm"];function e(e,t,n,a,o,i,r,s,c,d,u,p,h,m){var f,g,y=this,v=[];g={title:"Title",location:"Location",calendarName:"Calendar",start:"Start",priority:"Priority",category:"Category",status:"Status",events:{end:"End"},tasks:{end:"Due Date"}},y.component=h,y.componentType="events",y.selectedList=0,y.selectComponentType=$,y.unselectComponents=function(){_.forEach(h["$"+y.componentType],function(e){e.selected=!1}),y.mode.multiple=0},y.selectAll=function(){_.forEach(h["$"+y.componentType],function(e){e.selected=!0}),y.mode.multiple=h["$"+y.componentType].length},y.searchMode=C,y.toggleComponentSelection=function(e,t){t.selected=!t.selected,y.mode.multiple+=t.selected?1:-1,e.preventDefault(),e.stopPropagation()},y.confirmDeleteSelectedComponents=function(){c.confirm(l("Warning"),l("Are you sure you want to delete the selected components?"),{ok:l("Delete")}).then(function(){var t=_.filter(h["$"+y.componentType],function(e){return e.selected});p.$deleteComponents(t).then(function(){y.mode.multiple=0,e.$emit("calendars:list")})})},y.openEvent=function(e,t){b(e,t,"appointment")},y.openTask=function(e,t){b(e,t,"task")},y.newComponent=D,y.filter=function(e){{if(!e)return h["$query"+y.componentType.capitalize()].filterpopup;h.$filter(y.componentType,{filterpopup:e})}},y.filteredBy=function(e){return h["$query"+y.componentType.capitalize()].filterpopup==e},y.sort=function(e){{if(!e){var t=h["$query"+y.componentType.capitalize()].sort;return g[t]||g[y.componentType][t]}h.$filter(y.componentType,{sort:e})}},y.sortedBy=function(e){return h["$query"+y.componentType.capitalize()].sort==e},y.reload=function(){p.reloadWebCalendars().finally(function(){e.$emit("calendars:list")})},y.cancelSearch=function(){y.mode.search=!1,h.$filter(y.componentType,{value:""})},y.mode={search:!1,multiple:0},this.$onInit=function(){(n=v).push(r.createHotkey({key:l("hotkey_search"),description:l("Search"),callback:C})),n.push(r.createHotkey({key:l("hotkey_create_event"),description:l("Create a new event"),callback:D,args:"appointment"})),n.push(r.createHotkey({key:l("hotkey_create_task"),description:l("Create a new task"),callback:D,args:"task"})),_.forEach(n,function(e){r.registerHotkey(e)});var n;f="events","tasksListView"==d.settings.Calendar.SelectedList&&(y.selectedList=1,f="tasks"),$(f,{reload:!0}),e.$on("calendars:list",function(){h.$filter(y.componentType,{reload:!0})}),e.$on("calendar:dragend",k),t.$on("$destroy",function(){_.forEach(v,function(e){r.deregisterHotkey(e)})})};function $(e,t){(t&&t.reload||y.componentType!=e)&&(angular.isUndefined(h["$"+e])&&h.$filter(e),y.unselectComponents(),y.componentType=e,h.saveSelectedList(e))}function C(){y.mode.search=!0,s("search")}function b(e,t,a){if(t.viewable){var o=n.when();angular.isUndefined(t.$futureComponentData)&&(o=(t=p.$get(t.pid).$getComponent(t.id,t.occurrenceId)).$futureComponentData),o.then(function(){var n="UIx"+a.capitalize()+"ViewTemplate";i.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:n,controller:"ComponentController",controllerAs:"editor",locals:{stateComponent:t}})})}}function D(e,t,n){var a;n?(a=n).updateFreeBusy():a=new h({pid:p.$defaultCalendar(),type:t});var o="UIx"+t.capitalize()+"EditorTemplate";return i.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:o,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:a}})}function k(t){var n,o,r,s,c,d,f;n=h.$ghost.component,o=h.$ghost.pointerHandler,n.isNew?(r=o.currentEventCoordinates,n.summary="",n.isAllDay&&(r.duration-=96),n.setDelta(15*r.duration),D(null,"appointment",n).catch().finally(function(){a(function(){h.$resetGhost()})})):(s=o.currentEventCoordinates.getDelta(o.originalEventCoordinates),c={days:s.dayNumber,start:15*s.start,duration:15*s.duration},o.originalCalendar&&0!==s.dayNumber&&(d=o.currentEventCoordinates.dayNumber,f=_.filter(p.$findAll(),{active:1}),c.destination=f[d].id,c.days=0),n.isException||!n.occurrenceId?n.$adjust(c).then(function(){e.$emit("calendars:list"),m.getAlarms()},function(e){y(e,n,c)}).finally(function(){a(function(){h.$resetGhost()})}):n.occurrenceId&&i.show({clickOutsideToClose:!0,escapeToClose:!0,locals:{component:n,params:c},template:['',' '," "+l("editRepeatingItem")+"
"," "," ",' '+l("button_thisOccurrenceOnly")+" ",' '+l("button_allOccurrences")+" "," "," "].join(""),controller:g}).then(function(){e.$emit("calendars:list")},function(){}).finally(function(){a(function(){h.$resetGhost()})})),g.$inject=["$scope","$mdDialog","component","params"];function g(e,t,n,a){e.updateThisOccurrence=function(){n.$adjust(a).then(t.hide,function(e){t.cancel().then(function(){y(e,n,a)},function(){})})},e.updateAllOccurrences=function(){delete n.occurrenceId,n.$adjust(a).then(t.hide,function(e){t.cancel().then(function(){y(e,n,a)},function(){})})}}function y(t,n,a){t.status==u.ConflictHTTPErrorCode&&t.data&&t.data.message&&angular.isObject(t.data.message)&&i.show({parent:angular.element(document.body),clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxAttendeeConflictDialog",controller:v,controllerAs:"$AttendeeConflictDialogController",locals:{component:n,params:a,conflictError:t.data.message}}).then(function(){e.$emit("calendars:list")},function(){})}v.$inject=["$scope","$mdDialog","component","params","conflictError"];function v(e,t,n,a,o){this.conflictError=o,this.cancel=t.cancel,this.save=function(){n.$adjust(angular.extend({ignoreConflicts:!0},a)).then(t.hide)}}}this.ascending=function(){return h["$query"+y.componentType.capitalize()].asc}}angular.module("SOGo.SchedulerUI").controller("CalendarListController",e)}(),function(){"use strict";e.$inject=["$rootScope","$scope","$window","$mdDialog","$log","$mdToast","Dialog","sgSettings","Preferences","Calendar"];function e(e,t,n,a,o,i,r,s,c,d){var u=this;u.activeUser=s.activeUser,u.service=d,u.newCalendar=function(e){r.prompt(l("New calendar"),l("Name of the Calendar")).then(function(e){var t=new d({name:e,isEditable:!0,isRemote:!1,owner:UserLogin});t.$id().then(function(){d.$add(t)})})},u.addWebCalendar=function(){r.prompt(l("Subscribe to a web calendar..."),l("URL of the Calendar"),{inputType:"url"}).then(function(t){d.$addWebCalendar(t).then(function(n){angular.isObject(n)&&a.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:"UIxWebCalendarAuthDialog",controller:e,controllerAs:"$WebCalendarAuthDialogController",locals:{url:t,calendar:n}})})}),e.$inject=["scope","$mdDialog","url","calendar"];function e(e,t,n,a){var o=this,i=n.split("/"),r=i[2];o.title=l("Please identify yourself to %{0}").formatted(r),o.url=n,o.authenticate=function(e){!e.$valid&&e.$error.required||a.setCredentials(o.username,o.password).then(function(e){t.hide()},function(t){e.password.$setValidity("credentials",!1)})},o.cancel=function(){t.cancel()}}},u.subscribeToFolder=function(e){o.debug("subscribeToFolder "+e.owner+e.name),d.$subscribe(e.owner,e.name).then(function(e){i.show(i.simple().content(l("Successfully subscribed to calendar")).position("top right").hideDelay(3e3))})},u.filter={name:""},u.sortableMode=!1,u.toggleSortableMode=function(){u.sortableMode=!u.sortableMode,u.filter.name=""},u.resetSort=function(){d.saveFoldersOrder()},u.sortableCalendars={scrollableContainer:"#sidenav-content",containment:"md-list",orderChanged:function(){d.saveFoldersOrder(_.flatMap(d.$findAll(),"id"))},accept:function(e,t,n){return e.sortableScope.element[0]==t.element[0]}},this.$onInit=function(){u.categories=_.map(c.defaults.SOGoCalendarCategories,function(e){return{id:e.asCSSIdentifier(),name:e,color:c.defaults.SOGoCalendarCategoriesColors[e]}}),t.$watch(function(){return _.union(_.map(d.$calendars,function(e){return _.pick(e,["id","active","color"])}),_.map(d.$subscriptions,function(e){return _.pick(e,["id","active","color"])}),_.map(d.$webcalendars,function(e){return _.pick(e,["id","active","color"])}))},function(t,n){var a,i,r;a=_.intersectionBy(t,n,"id"),i=_.map(_.filter(a,function(e){var t=_.find(n,{id:e.id});return!_.isEqual(e,t)}),"id"),r=d.$q.when(),i.length>0&&(o.debug(i.join(", ")+" changed"),r=d.saveFoldersActivation(i)),(i.length>0||a.length!=t.length||a.length!=n.length)&&r.then(function(){e.$emit("calendars:list")})},!0)}}angular.module("SOGo.SchedulerUI").controller("CalendarsController",e)}(),function(){"use strict";e.$inject=["$rootScope","$mdDialog","Calendar","Component","AddressBook","Alarm","Account","stateComponent"];function e(e,t,n,a,o,i,r,s){var c,d=this;d.calendarService=n,d.service=a,d.component=s,d.close=function(){t.hide()},d.highPriority=function(){return d.component&&d.component.priority&&d.component.priority<5},d.cardFilter=function(e){return o.$filterAll(e)},d.newMessageWithAllRecipients=function(e){var t=_.map(d.component.attendees,function(e){return e.name+" <"+e.email+">"});u(e,t)},d.newMessageWithRecipient=function(e,t,n){u(e,[t+" <"+n+">"])},d.edit=p,d.editAllOccurrences=function(){(c=n.$get(d.component.pid).$getComponent(d.component.id)).$futureComponentData.then(function(){d.component=c,p()})},d.reply=h,d.replyAllOccurrences=function(){(c=n.$get(d.component.pid).$getComponent(d.component.id)).$futureComponentData.then(function(){c.reply=d.component.reply,c.delegatedTo=d.component.delegatedTo,c.$hasAlarm=d.component.$hasAlarm,c.alarm=d.component.alarm,h(c)})},d.deleteOccurrence=function(){d.component.remove(!0).then(function(){e.$emit("calendars:list"),t.hide()})},d.deleteAllOccurrences=function(){d.component.remove().then(function(){e.$emit("calendars:list"),t.hide()})},d.toggleRawSource=function(e){n.$$resource.post(d.component.pid+"/"+d.component.id,"raw").then(function(n){t.hide(),t.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,template:['',' ',' '," "," ",' '+l("Close")+" "," "," "].join(""),controller:a,locals:{data:n}}),a.$inject=["scope","$mdDialog","data"];function a(e,t,n){e.data=n,e.close=function(){t.hide()}}})},d.copySelectedComponent=function(n){d.component.copyTo(n).then(function(){t.hide(),e.$emit("calendars:list")})},d.moveSelectedComponent=function(n){d.component.moveTo(n).then(function(){t.hide(),e.$emit("calendars:list")})},d.organizer=[s.organizer];function u(e,n){r.$findAll().then(function(a){var o=_.find(a,function(e){if(0===e.id)return e});o.$getMailboxes().then(function(a){o.$newMessage().then(function(a){angular.extend(a.editable,{to:n,subject:d.component.summary}),t.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"../Mail/UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:o,stateMessage:a}})})})}),e.preventDefault(),e.stopPropagation()}function p(){var e="vevent"==d.component.component?"Appointment":"Task";t.hide().then(function(){var n="UIx"+e+"EditorTemplate";t.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:n,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:d.component}})})}function h(n){(n||d.component).$reply().then(function(){e.$emit("calendars:list"),i.getAlarms(),t.hide()})}}t.$inject=["$rootScope","$scope","$log","$timeout","$mdDialog","sgFocus","User","CalendarSettings","Calendar","Component","AddressBook","Card","Alarm","stateComponent"];function t(e,t,n,a,o,i,r,s,c,d,u,p,h,m){var f,g,y=this;y.service=c,y.component=m,y.categories={},y.showRecurrenceEditor=y.component.$hasCustomRepeat,y.toggleRecurrenceEditor=function(){y.showRecurrenceEditor=!y.showRecurrenceEditor,y.component.$hasCustomRepeat=y.showRecurrenceEditor},y.recurrenceMonthDaysAreRequired=function(){return y.component&&"monthly"==y.component.repeat.frequency&&"bymonthday"==y.component.repeat.month.type},y.showAttendeesEditor=y.component.attendees&&y.component.attendees.length,y.toggleAttendeesEditor=function(){y.showAttendeesEditor=!y.showAttendeesEditor},y.changeFrequency=function(){"custom"==y.component.repeat.frequency&&(y.showRecurrenceEditor=!0)},y.changeCalendar=function(){y.component.attendees&&y.component.attendees.length>0&&y.component.initOrganizer(c.$get(y.component.destinationCalendar))},y.cardFilter=function(e){return u.$filterAll(e),u.$cards},y.addAttendee=function(e){var t,n,a=!y.component.attendees||0===y.component.attendees.length,o=c.$get(y.component.destinationCalendar),i=a?{organizerCalendar:o}:{},r=/([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)/i;function s(e){var t=e.match(r),n=t[0],o=e.replace(new RegExp(" *"+n+">? *"),"");return y.showAttendeesEditor|=a,y.searchText="",new p({c_cn:_.trim(o,' "'),emails:[{value:n}]})}if(angular.isString(e)){for(n="",t=0;t5?l("low"):y.component.priority>4?l("normal"):l("high")},y.changeAlarmRelation=v,y.onAlarmChange=function(e){if("task"!==y.component.type)return;y.component.start||"START"!=y.component.alarm.relation?y.component.due||"END"!=y.component.alarm.relation||(y.component.alarm.relation="START"):y.component.alarm.relation="END";v(e)},y.reset=$,y.cancel=function(e){$(e),y.component.isNew&&(y.component=null);o.hide()},y.edit=C,y.save=function(t,n){v(t),t.$valid&&y.component.$save(n).then(function(t){e.$emit("calendars:list"),h.getAlarms(),o.hide()},function(e){e.status==s.ConflictHTTPErrorCode&&_.isObject(e.data.message)?y.attendeeConflictError=e.data.message:C(t)})},y.attendeeConflictError=!1,y.attendeesEditor={days:b(),hours:function(){for(var e=[],t=0;t<=23;t++)e.push(t.toString());return e}()},y.addStartDate=function(e){y.component.$addStartDate(),f=new Date(y.component.start.getTime()),y.component.due||(y.component.alarm.relation="START");v(e)},y.removeStartDate=function(e){y.component.$deleteStartDate(),y.component.due&&(y.component.alarm.relation="END");v(e)},y.addDueDate=function(e){y.component.$addDueDate(),new Date(y.component.due.getTime()),y.component.start||(y.component.alarm.relation="END");v(e)},y.removeDueDate=function(e){y.component.$deleteDueDate(),y.component.start&&(y.component.alarm.relation="START");v(e)},y.adjustStartTime=function(){if(y.component.start){0!==f.valueOf()-y.component.start.valueOf()&&(f=new Date(y.component.start.getTime()),"appointment"===y.component.type&&(y.component.end=new Date(y.component.start.getTime()),y.component.end.addMinutes(y.component.delta),g=new Date(y.component.end.getTime())),D())}},y.adjustEndTime=function(){if(y.component.end){var e=g.valueOf()-y.component.end.valueOf();0!==e&&((e=y.component.start.minutesTo(y.component.end))<0?y.component.end=new Date(g.getTime()):(y.component.delta=e,g=new Date(y.component.end.getTime())),D())}},y.adjustDueTime=function(){new Date(y.component.due.getTime())},y.component.start&&(f=new Date(y.component.start.getTime())),y.component.end&&(g=new Date(y.component.end.getTime())),y.component.due&&new Date(y.component.due.getTime());function v(e){"task"==y.component.type&&y.component.$hasAlarm&&(!y.component.start&&"START"==y.component.alarm.relation||!y.component.due&&"END"==y.component.alarm.relation)?e.alarmRelation.$setValidity("alarm",!1):e.alarmRelation.$setValidity("alarm",!0)}function $(e){y.component.$reset(),e.$setPristine()}function C(e){y.attendeeConflictError=!1,e.$setPristine(),e.$setDirty()}function b(){var e=[];return y.component.start&&y.component.end&&(e=y.component.start.daysUpTo(y.component.end)),_.map(e,function(e){return{stringWithSeparator:e.stringWithSeparator(),getDayString:e.getDayString()}})}function D(){y.attendeesEditor.days=b(),y.component.updateFreeBusy()}}angular.module("SOGo.SchedulerUI").controller("ComponentController",e).controller("ComponentEditorController",t)}(),function(){"use strict";e.$inject=["$scope","Calendar"];function e(e,t){this.day=e.day,this.dayNumber=e.dayNumber,this.dayString=e.dayString,this.calendarData=function(){var n,a,o;return e.calendar?(n=e.calendar,o=_.filter(t.$findAll(),{active:1}),a=_.findIndex(o,function(e){return e.id==n}),{pid:n,index:a}):null}}angular.module("SOGo.SchedulerUI").directive("sgCalendarDay",function(){return{restrict:"E",scope:{day:"@sgDay",dayNumber:"@sgDayNumber",dayString:"@sgDayString",calendar:"@sgCalendar"},controller:e}})}(),function(){"use strict";e.$inject=["CalendarSettings"];function e(e){return{restrict:"E",scope:{block:"=sgBlock",clickBlock:"&sgClick"},replace:!0,template:function(e,t){var n=_.has(t,"sgCalendarGhost")?"":"::";return['",'
','
",'
','
{{'+n+"block.component.c_priority}} "," {{ "+n+"block.component.summary }}",'
',' ',' ',' ',' '," ",'
',' place ',"
","
","
",'
{{ block.startHour }}
','
{{ block.endHour }}
',"
"].join("")},link:function(e,t,n){var a,o,i;_.has(n,"sgCalendarGhost")||(a=100/e.block.siblings,o=e.block.position*a,0===(i=100-(e.block.position+1)*a)&&(i=10),t.css("left",o+"%"),t.css("right",i+"%"),e.block.component&&e.block.component.c_isallday||(t.addClass("starts"+e.block.start),t.addClass("lasts"+e.block.length)),e.block.userState&&t.addClass("sg-event--"+e.block.userState),e.block.component&&(t.addClass("bg-folder"+e.block.component.pid),t.addClass("contrast-bdr-folder"+e.block.component.pid),0===e.block.component.c_isopaque&&t.addClass("sg-event--transparent"),0===e.block.component.c_status&&t.addClass("sg-event--cancelled")))}}}angular.module("SOGo.SchedulerUI").directive("sgCalendarDayBlock",e)}(),function(){"use strict";angular.module("SOGo.SchedulerUI").directive("sgCalendarDayTable",function(){return{restrict:"E",scope:{blocks:"=sgBlocks",day:"@sgDay",clickBlock:"&sgClick"},template:[" '].join("")}})}(),function(){"use strict";e.$inject=["$rootScope","$timeout","CalendarSettings","Calendar","Component"];function e(e,t,n,a,o){return{restrict:"A",require:["^sgCalendarDay","^sgCalendarScrollView"],link:function(t,i,r,s){var c,l,d,u,p;c=i[0],l=s[0],d=s[1],u=-1,i.addClass("sg-event--ghost md-whiteframe-3dp ng-hide");var h=e.$on("calendar:dragstart",function(){var e,n,a;t.block=o.$ghost,(n=l.calendarData())&&(u=n.index,e=n.pid,p=t.block.pointerHandler.originalCalendar.index);e||(e=t.block.component.pid);(a=t.block.component.blocks[0].userState)&&i.addClass("sg-event--"+a);i.addClass("bg-folder"+e)}),m=e.$on("calendar:drag",function(){var e,o,r,s,c,h,m,f;if(e=!1,a.$view&&a.$view.type==d.type){if(o="multiday-allday"===d.type,r=t.block.component.c_isallday,s=t.block.pointerHandler.currentEventCoordinates.dayNumber,c=t.block.pointerHandler.currentEventCoordinates.start,m=t.block.pointerHandler.currentEventCoordinates.duration,f=n.EventDragDayLength-c,angular.isUndefined(m))return;for((h=m)>f&&(h=f),s>-1&&(u<0&&s==l.dayNumber||s==u&&(p==u||!t.block.component.isException))&&(e=!0,o||(r||(t.block.startHour=($=c,g($))),a.$view.quarterHeight?(i.css("top",c*a.$view.quarterHeight+"px"),i.css("height",h*a.$view.quarterHeight+"px")):i.css("top",a.$view.topOffset+"px")),i.removeClass("fg-folder"+t.block.component.pid),i.removeClass("sg-event--ghost--last"),i.addClass("sg-event--ghost--first"),t.block.isFirst=!0),m-=h,s++;!e&&m&&s<=l.dayNumber;)(h=m)>n.EventDragDayLength&&(h=n.EventDragDayLength),s>-1&&s==l.dayNumber&&(e=!0,o||(i.css("top",a.$view.topOffset+"px"),a.$view.quarterHeight&&i.css("height",h*a.$view.quarterHeight+"px")),i.removeClass("sg-event--ghost--first"),i.removeClass("sg-event--ghost--last"),i.addClass("fg-folder"+t.block.component.pid)),m-=h,s++,c=0;m||(o?i.addClass("sg-event--ghost--last"):r||(t.block.endHour=(y=c,v=h,g((y+v)%n.EventDragDayLength))))}var y,v;var $;e?i.removeClass("ng-hide"):i.addClass("ng-hide")}),f=e.$on("calendar:dragend",function(){_.forEachRight(c.classList,function(e){/^bg-folder/.test(e)&&i.removeClass(e)}),i.addClass("ng-hide")});t.$on("$destroy",function(){h(),m(),f()});function g(e){var t,n,a;return t=15*e,(n=Math.floor(t/60))<10&&(n="0"+n),(a=t%60)<10&&(a="0"+a),n+":"+a}}}}angular.module("SOGo.SchedulerUI").directive("sgCalendarGhost",e)}(),function(){"use strict";e.$inject=["CalendarSettings"];function e(e){return{restrict:"E",scope:{component:"=sgComponent",clickComponent:"&sgClick"},replace:!0,template:function(e,t){return['','
",'
'," {{ ::component.c_title }}",'
',' ',' ',' ',' '," ",'
',' access_time ',"
",'
',' place ',"
","
"].join("")},link:function(e,t,n){e.component.viewable&&t.addClass("md-clickable");e.component.userstate&&t.addClass("sg-event--"+e.component.userstate);t.addClass("bg-folder"+e.component.pid),t.addClass("contrast-bdr-folder"+e.component.pid),0===e.component.c_isopaque&&t.addClass("sg-event--transparent");0===e.component.c_status&&t.addClass("sg-event--cancelled")}}}angular.module("SOGo.SchedulerUI").directive("sgCalendarListEvent",e)}(),function(){e.$inject=["$rootScope","$scope","$element","$timeout","$mdToast","$mdPanel","$mdMedia","$mdSidenav","sgConstant","Dialog","Calendar"];function e(e,t,n,a,o,i,r,s,c,d,u){var p=this;this.$onInit=function(){this.editMode=!1},this.$postLink=function(){this.clickableElement=n.find("p")[0],this.nameElements=this.clickableElement.getElementsByClassName("sg-calendar-name"),this.inputContainer=n.find("md-input-container")[0],this.inputElement=n.find("input")[0],this.moreOptionsButton=_.last(n.find("md-icon")),this.updateCalendarName()},this.updateCalendarName=function(){_.forEach(this.nameElements,function(e){e.innerHTML=p.calendar.name})},this.editFolder=function(e){e.stopPropagation(),e.preventDefault(),this.editMode=!0,this.inputElement.value=this.calendar.name,this.clickableElement.classList.add("ng-hide"),this.inputContainer.classList.remove("ng-hide"),"touchend"==e.srcEvent.type?a(function(){p.inputElement.focus(),p.inputElement.select()},200):(this.inputElement.select(),this.inputElement.focus()),this.panel&&this.panel.close()},this.saveFolder=function(e){this.inputElement.disabled||(this.calendar.name=this.inputElement.value,this.inputElement.disabled=!0,this.calendar.$rename().then(function(e){p.editMode=!1,p.inputContainer.classList.add("ng-hide"),p.clickableElement.classList.remove("ng-hide"),p.updateCalendarName()}).finally(function(){p.inputElement.disabled=!1}))},this.revertEditing=function(){this.editMode=!1,this.clickableElement.classList.remove("ng-hide"),this.inputContainer.classList.add("ng-hide"),this.inputElement.value=this.calendar.name},this.confirmDelete=function(){this.calendar.isSubscription?this.calendar.$delete().catch(function(e,t){d.alert(l('An error occured while deleting the calendar "%{0}".',p.calendar.name),l(e.error))}):d.confirm(l("Warning"),l('Are you sure you want to delete the calendar "%{0}"?',this.calendar.name),{ok:l("Delete")}).then(function(){p.calendar.$delete().catch(function(e,t){d.alert(l('An error occured while deleting the calendar "%{0}".',p.calendar.name),l(e.error))})})},this.showMenu=function(t){var n=i.newPanelPosition().relativeTo(this.moreOptionsButton).addPanelPosition(i.xPosition.ALIGN_START,i.yPosition.ALIGN_TOPS),a=i.newPanelAnimation().openFrom(this.moreOptionsButton).duration(100).withAnimation(i.animation.FADE),r={attachTo:angular.element(document.body),locals:{itemCtrl:this,calendar:this.calendar,editFolder:angular.bind(this,this.editFolder),confirmDelete:angular.bind(this,this.confirmDelete)},bindToController:!0,controller:s,controllerAs:"$menuCtrl",position:n,animation:a,targetEvent:t,templateUrl:"UIxCalendarMenu",trapFocus:!0,clickOutsideToClose:!0,escapeToClose:!0,focusOnOpen:!0};i.open(r).then(function(e){p.panel=e,e.panelEl.one("click",function(){e.close()})}),s.$inject=["mdPanelRef","$mdDialog","FileUploader","User"];function s(n,a,i,r){var s=this;this.showOnly=function(){_.forEach(u.$findAll(),function(e){s.calendar.id==e.id?e.active=1:e.active=0})},this.showAll=function(){_.forEach(u.$findAll(),function(e){e.active=1})},this.showProperties=function(){var e=this.calendar.color;a.show({templateUrl:this.calendar.id+"/properties",controller:t,controllerAs:"properties",clickOutsideToClose:!0,escapeToClose:!0,locals:{srcCalendar:this.calendar}}).catch(function(){s.calendar.color=e}),t.$inject=["$scope","$mdDialog","srcCalendar"];function t(e,t,n){var a=this;a.calendar=new u(n.$omit()),a.saveProperties=function(e){e.$valid&&(a.calendar.$save(),n.init(a.calendar.$omit()),t.hide())},a.close=function(){t.cancel()},e.$watch(function(){return a.calendar.color},function(){n.color=a.calendar.color})}},this.showLinks=function(){a.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:this.calendar.id+"/links",controller:e,controllerAs:"links",locals:{calendar:this.calendar}}),e.$inject=["$mdDialog","calendar"];function e(e,t){this.calendar=t,this.close=function(){e.hide()}}},this.importCalendar=function(){a.show({parent:angular.element(document.body),targetEvent:t,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:"UIxCalendarImportDialog",controller:n,controllerAs:"$CalendarImportDialogController",locals:{folder:this.calendar}}),n.$inject=["scope","$mdDialog","folder"];function n(t,n,a){this.uploader=new i({url:ApplicationBaseURL+[a.id,"import"].join("/"),autoUpload:!0,queueLimit:1,filters:[{name:r,fn:r}],onSuccessItem:function(t,a,i,r){var s;n.hide(),0===a.imported?s=l("No event was imported."):(s=l("A total of %{0} events were imported in the calendar.",a.imported),e.$emit("calendars:list")),o.show(o.simple().content(s).position("top right").hideDelay(3e3))},onErrorItem:function(e,t,n,a){o.show({template:["",' ',' error_outline '," "+l("An error occurred while importing calendar.")+" ","
"," "].join(""),position:"top right",hideDelay:3e3})}}),this.close=function(){n.hide()};function r(e){var t=0===e.type.indexOf("text")||/\.(ics)$/.test(e.name);return t||o.show({template:["",' ',' error_outline '," "+l("Select an iCalendar file (.ics).")+" ","
"," "].join(""),position:"top right",hideDelay:3e3}),t}}},this.share=function(){this.calendar.$acl.$users().then(function(){a.show({templateUrl:s.calendar.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:s.calendar.$acl.users,User:r,folder:s.calendar}})})}}}}angular.module("SOGo.SchedulerUI").controller("sgCalendarListItemController",e).directive("sgCalendarListItem",function(){return{restrict:"C",scope:{},bindToController:{calendar:"=sgCalendar"},template:[' ','',' ',' error ',' ',' ',"
",'',' '," ",''," drag_handle "," ",''].join(""),controller:"sgCalendarListItemController",controllerAs:"$ctrl"}})}(),function(){"use strict";angular.module("SOGo.SchedulerUI").directive("sgCalendarMonthDay",function(){return{restrict:"E",scope:{blocks:"=sgBlocks",day:"@sgDay",clickBlock:"&sgClick"},template:[" '].join("")}})}(),function(){"use strict";angular.module("SOGo.SchedulerUI").directive("sgCalendarMonthEvent",function(){return{restrict:"E",scope:{block:"=sgBlock",clickBlock:"&sgClick"},replace:!0,template:function(e,t){var n=_.has(t,"sgCalendarGhost")?"":"::";return['','
",'
{{ '+n+"block.component.startHour }} ",'
{{'+n+"block.component.c_priority}} "," {{ "+n+"block.component.summary }}",'
',' ',' ',' ',' '," ","
"].join("")},link:function(e,t,n){_.has(n,"sgCalendarGhost")||(e.block.userState&&t.addClass("sg-event--"+e.block.userState),e.block.component&&(t.addClass("bg-folder"+e.block.component.pid),0===e.block.component.c_isopaque&&t.addClass("sg-event--transparent"),0===e.block.component.c_status&&t.addClass("sg-event--cancelled")))}}})}(),function(){"use strict";e.$inject=["$rootScope","$window","$document","$q","$timeout","$mdGesture","Calendar","Component","Preferences"];function e(e,n,a,o,i,r,s,c,l){return{restrict:"A",scope:{type:"@sgCalendarScrollView"},controller:t,link:function(t,a,o,r){var d,u,p=!1;d=null,u=t.type,p="multicolumndayview"==a.attr("sg-view"),r.isMultiColumn=p,i(function(){if(d=new h(a,u),"monthly"!=u){var e,t,n;l.defaults.SOGoDayStartTime&&(e=l.defaults.SOGoDayStartTime.split(":"),t=document.getElementById("hour"+parseInt(e[0])),n=parseInt(e[1])*d.quarterHeight,d.element.scrollTop=t.offsetTop+n)}r.quarterHeight=d.quarterHeight}),t.$on("$destroy",function(){d&&d.$destroy()});function h(t,a){this.$element=t,this.element=t[0],this.type=a,this.quarterHeight=this.getQuarterHeight(),this.scrollStep=6*this.quarterHeight,this.dayNumbers=this.getDayNumbers(),this.maxX=this.getMaxColumns(),this.deregisterDragStart=e.$on("calendar:dragstart",angular.bind(this,this.onDragStart)),this.deregisterDragStop=e.$on("calendar:dragend",angular.bind(this,this.onDragEnd)),this.bindedUpdateCoordinates=angular.bind(this,this.updateCoordinates),this.bindedUpdateFromPointerHandler=angular.bind(this,this.updateFromPointerHandler),this.updateCoordinates(),angular.element(n).on("resize",this.bindedUpdateCoordinates)}h.prototype={$destroy:function(){this.deregisterDragStart(),this.deregisterDragStop(),this.$element.off("mousemove",this.bindedUpdateFromPointerHandler),angular.element(n).off("resize",this.bindedUpdateCoordinates)},onDragStart:function(){this.$element.on("mousemove",this.bindedUpdateFromPointerHandler),this.updateCoordinates(),this.updateFromPointerHandler()},onDragEnd:function(){this.$element.off("mousemove",this.bindedUpdateFromPointerHandler),s.$view=null},getQuarterHeight:function(){var e,t,n=null;return e=document.getElementById("hour0"),t=document.getElementById("hour23"),e&&t&&(n=(t.offsetTop-e.offsetTop)/92),n},getDayDimensions:function(e){var t,n,a,o,i,r,s;return n=t=a=o=0,(i=this.element.getElementsByClassName("day")).length>0&&(n=(r=i[0].getBoundingClientRect()).height,t=r.width,a=r.left-e,(s=i[0].getElementsByClassName("sg-calendar-tile-header")).length>0&&(o=s[0].clientHeight)),{height:n,width:t,offset:{left:a,top:o}}},getDayNumbers:function(){var e;return e=this.element.getElementsByTagName("sg-calendar-day"),_.map(e,function(e,t){return p?t:parseInt(e.attributes["sg-day-number"].value)})},getMaxColumns:function(){var e,t=0;return"monthly"==this.type?(e=this.element.getElementsByTagName("md-grid-list")[0],t=parseInt(e.attributes["md-cols"].value)-1):t=this.element.getElementsByClassName("day").length-1,t},updateCoordinates:function(){var e,t;e=this.element.getBoundingClientRect(),t=this.getDayDimensions(e.left),angular.extend(this,{coordinates:{x:e.left,y:e.top},dayHeight:t.height,dayWidth:t.width,daysOffset:t.offset.left,topOffset:t.offset.top})},updateFromPointerHandler:function(){var e,t,n,a,o,i;e=c.$ghost.pointerHandler,this.coordinates&&e&&(t=e.getContainerBasedCoordinates(this))&&(s.$view=this,n=(new Date).getTime(),(!this.lastScroll||n>this.lastScroll+100)&&(this.lastScroll=n,(a=t.y-this.scrollStep)<0?(a<(o=-this.element.scrollTop)&&(a=o),this.element.scrollTop+=a):(i=(a=t.y+this.scrollStep)-this.element.clientHeight)>0&&(this.element.scrollTop+=i)))}}}}}t.$inject=["$scope"];function t(e){this.type=e.type}angular.module("SOGo.SchedulerUI").directive("sgCalendarScrollView",e)}(),function(){"use strict";angular.module("SOGo.SchedulerUI").directive("sgCategoryStylesheet",function(){return{restrict:"E",require:"ngModel",scope:{ngModel:"="},replace:!0,template:['"].join("")}})}(),function(){"use strict";e.$inject=["$rootScope","$timeout","$log","Preferences","Calendar","CalendarSettings","Component"];function e(e,t,n,a,o,i,r){return{restrict:"CA",require:"^sgCalendarDay",link:function(s,c,d,u){if(s.block){if(!s.block.component.editable||s.block.userState)return void c.removeClass("sg-draggable-calendar-block");!function(){var e,t,n,a,o,i,r,l,d,u;if(s.block.length<3)return;e=s.block.component,t=s.block.dayIndex,n=_.findIndex(e.blocks,["dayIndex",t]),a=0===n,o=n===e.blocks.length-1,(i=angular.element('
')).addClass("bdr-folder"+e.pid),e.c_isallday||"SG-CALENDAR-MONTH-DAY"===c[0].parentNode.tagName?(a&&(r=angular.element('
').append(i),c.append(r)),o&&(l=angular.element('
').append(i.clone()),c.append(l))):(a&&(d=angular.element('
').append(i),c.append(d)),o&&(u=angular.element('
').append(i.clone()),c.append(u)))}()}c.on("mousedown",p),s.$on("$destroy",function(){c.off("mousedown",p),c.off("mousemove",h)});function p(e){var t,n,a,o;e.stopPropagation(),e.target.scrollHeight>e.target.clientHeight+1&&(a=e.target.getBoundingClientRect(),o=a.left+a.width-18,e.pageX>o)||(t="move-event",s.block&&s.block.component?"dragGrip-top"==e.target.className||"dragGrip-left"==e.target.className?t="change-start":"dragGrip-bottom"!=e.target.className&&"dragGrip-right"!=e.target.className||(t="change-end"):t="change-end",(n=new y(t)).initFromEvent(e),r.$ghost.pointerHandler=n,angular.element(document).one("mouseup",m),angular.element(document).on("mousemove",h))}function h(e){var n=r.$ghost.pointerHandler;t(function(){n.updateFromEvent(e)})}function m(t){var n,a;n=s.block,a=r.$ghost.pointerHandler,angular.element(document).off("mousemove",h),a.dragHasStarted&&(e.$emit("calendar:dragend"),a.dragHasStarted=!1),n&&n.component&&_.forEach(n.component.blocks,function(e){e.dragging=!1})}function f(){}f.prototype={x:-1,y:-1,getDelta:function(e){var t=new f;return t.x=this.x-e.x,t.y=this.y-e.y,o.$view&&(t.days=o.$view.dayNumbers[this.x]-o.$view.dayNumbers[e.x]),t},getDistance:function(e){var t=this.getDelta(e);return Math.sqrt(t.x*t.x+t.y*t.y)},clone:function(){var e=new f;return e.x=this.x,e.y=this.y,e}};function g(e){this.setEventType(e)}g.prototype={dayNumber:-1,weekDay:-1,start:-1,duration:-1,eventType:null,setEventType:function(e){this.eventType=e},initFromBlock:function(e){var t=-1;"monthly"===this.eventType?(this.start=0,this.duration=e.component.blocks.length*i.EventDragDayLength):(this.start=e.component.blocks[0].start,this.duration=_.sumBy(e.component.blocks,function(e){var n,a;return a=e.dayNumber,n=t<0?0:a-t-1,t=a,e.length+n*i.EventDragDayLength}))},initFromCalendar:function(e){this.dayNumber=e},getDelta:function(e){var t=new g;return t.dayNumber=this.dayNumber-e.dayNumber,t.start=this.start-e.start,t.duration=this.duration-e.duration,t},_quartersToHM:function(e){var t=15*e,n=Math.floor(t/60);n<10&&(n="0"+n);var a=t%60;return a<10&&(a="0"+a),n+":"+a},getStartTime:function(){return this._quartersToHM(this.start)},getEndTime:function(){var e=(this.start+this.duration)%i.EventDragDayLength;return this._quartersToHM(e)},clone:function(){var e=new g;return e.dayNumber=this.dayNumber,e.start=this.start,e.duration=this.duration,e}};function y(e){this.dragMode=e}y.prototype={originalCoordinates:null,currentCoordinates:null,originalViewCoordinates:null,currentViewCoordinates:null,originalEventCoordinates:null,currentEventCoordinates:null,originalCalendar:null,dragHasStarted:!1,getEventViewCoordinates:null,initFromBlock:function(e){this.currentEventCoordinates=new g(this.eventType),this.originalEventCoordinates=new g(this.eventType),this.originalEventCoordinates.initFromBlock(e)},initFromEvent:function(e){this.currentCoordinates=new f,this.updateFromEvent(e),this.originalCoordinates=this.currentCoordinates.clone()},initFromCalendar:function(e){this.originalCalendar=e,this.currentEventCoordinates.initFromCalendar(e.index),this.originalEventCoordinates.initFromCalendar(e.index)},updateFromEvent:function(t){if(this.currentCoordinates.x=t.pageX,this.currentCoordinates.y=t.pageY,this.dragHasStarted&&o.$view){var i=this.getEventViewCoordinates(o.$view);this.originalViewCoordinates||(this.originalViewCoordinates=this.getEventViewCoordinates(o.$view,this.originalCoordinates),r.$ghost.component.isNew&&(this.setTimeFromQuarters(r.$ghost.component.start,this.originalViewCoordinates.y),n.debug("new event start date "+r.$ghost.component.start))),this.currentViewCoordinates&&i&&i.x==this.currentViewCoordinates.x&&i.y==this.currentViewCoordinates.y||(this.currentViewCoordinates=i,this.originalViewCoordinates&&(i||(this.currentViewCoordinates=this.originalViewCoordinates.clone()),this.updateEventCoordinates()))}else if(this.originalCoordinates&&this.currentCoordinates&&!this.dragHasStarted){var d=this.getDistance();d>3&&(this.dragHasStarted=!0,function(t){var i,d,p,h,m,f,g,y,v;p=c.hasClass("clickableHourCell"),h="SG-CALENDAR-MONTH-DAY"==c[0].parentNode.tagName||c.hasClass("clickableDayCell"),v=u.calendarData(),s.block&&s.block.component?i=s.block:(m=u.dayString.parseDate(a.$mdDateLocaleProvider,"%Y-%m-%e"),f={type:"appointment",pid:v?v.pid:o.$defaultCalendar(),summary:l("New Event"),startDate:m,isAllDay:p?0:1},g=new r(f),(i={component:g,dayNumber:u.dayNumber,length:0}).component.blocks=[i]);d="multiday",h?d="monthly":i.component.c_isallday&&(d="multiday-allday");_.forEach(i.component.blocks,function(e){e.dragging=!0}),(y=r.$ghost.pointerHandler).prepareWithEventType(d),y.initFromBlock(i),v&&y.initFromCalendar(v);r.$ghost.component=i.component,n.debug("emit calendar:dragstart "+d),e.$emit("calendar:dragstart")}())}},updateEventCoordinates:function(){var t,a=this.currentViewCoordinates.getDelta(this.originalViewCoordinates),r=a.days*i.EventDragDayLength+a.y;n.debug("quarters delta "+r),angular.isUndefined(this.originalEventCoordinates.start)?(this.originalEventCoordinates.dayNumber=o.$view.dayNumbers[this.originalViewCoordinates.x],this.originalEventCoordinates.start=this.originalViewCoordinates.y):this.originalEventCoordinates.dayNumber<0&&(this.originalEventCoordinates.dayNumber=o.$view.dayNumbers[s.block.component.blocks[0].dayIndex]),this.currentEventCoordinates.dayNumber=this.originalEventCoordinates.dayNumber,"move-event"==this.dragMode?(this.currentEventCoordinates.start=this.originalEventCoordinates.start+r,this.currentEventCoordinates.duration=this.originalEventCoordinates.duration):"change-start"==this.dragMode?(t=this.originalEventCoordinates.duration-r)>0?(this.currentEventCoordinates.start=this.originalEventCoordinates.start+r,this.currentEventCoordinates.duration=t):t<0&&(this.currentEventCoordinates.start=this.originalEventCoordinates.start+this.originalEventCoordinates.duration,this.currentEventCoordinates.duration=-t):"change-end"==this.dragMode&&((t=this.originalEventCoordinates.duration+r)>0?(this.currentEventCoordinates.start=this.originalEventCoordinates.start,this.currentEventCoordinates.duration=t):t<0&&(this.currentEventCoordinates.start=this.originalEventCoordinates.start+t,this.currentEventCoordinates.duration=-t));var c;this.currentEventCoordinates.start<0?(c=Math.ceil(-this.currentEventCoordinates.start/i.EventDragDayLength),this.currentEventCoordinates.start+=c*i.EventDragDayLength,this.currentEventCoordinates.dayNumber-=c):this.currentEventCoordinates.start>=i.EventDragDayLength&&(c=Math.floor(this.currentEventCoordinates.start/i.EventDragDayLength),this.currentEventCoordinates.start-=c*i.EventDragDayLength,this.currentEventCoordinates.dayNumber+=c),n.debug("event coordinates "+JSON.stringify(this.currentEventCoordinates)),e.$emit("calendar:drag")},getContainerBasedCoordinates:function(e,t){var n=t||this.currentCoordinates,a=n.getDelta(e.coordinates),o=e.element;return(a.xo.clientWidth||a.y<0||a.y>o.clientHeight)&&(a=null),a},prepareWithEventType:function(e){var t={multiday:this.getEventMultiDayViewCoordinates,"multiday-allday":this.getEventMultiDayAllDayViewCoordinates,monthly:this.getEventMonthlyViewCoordinates,unknown:null},n=t[e];this.eventType=e,this.getEventViewCoordinates=n},getEventMultiDayViewCoordinates:function(e,t){var n=this.getEventMultiDayAllDayViewCoordinates(e,t);if(n){var a=e.quarterHeight,o=this.getContainerBasedCoordinates(e,t);o.y+=e.element.scrollTop,n.y=Math.floor((o.y-i.EventDragHorizontalOffset)/a);var r=i.EventDragDayLength-1;n.y<0?n.y=0:n.y>r&&(n.y=r)}return n},getEventMultiDayAllDayViewCoordinates:function(e,t){var n,a=this.getContainerBasedCoordinates(e,t);if(a){n=new f;var i=e.dayWidth,r=e.daysOffset;n.x=Math.floor((a.x-r)/i);var s=0,c=o.$view.maxX;if("move-event"!=this.dragMode){var l=u.calendarData();l&&(s=c=l.index)}n.xc&&(n.x=c),n.y=0}else n=null;return n},getEventMonthlyViewCoordinates:function(e,t){var n,a=this.getContainerBasedCoordinates(e,t);if(a){n=new f;var o=e.maxX,i=e.dayWidth,r=e.daysOffset,s=e.dayHeight,c=Math.floor((a.y-0)/s);c<0&&(c=0),n.x=Math.floor((a.x-r)/i),n.x<0?n.x=0:n.x>o&&(n.x=o),n.x+=(o+1)*c,n.y=0}else n=null;return n},getDistance:function(){return this.currentCoordinates.getDistance(this.originalCoordinates)},setTimeFromQuarters:function(e,t){var n,a;n=Math.floor(t/4),a=t%4*15,e.setHours(n,a)}}}}}angular.module("SOGo.SchedulerUI").directive("sgDraggableCalendarBlock",e)}(),function(){"use strict";e.$inject=["$scope","$element","$timeout"];function e(e,t,n){var a,o=this,i=t.controller("sgCalendarScrollView");e.nowDay=null,e.lineElement=null,e.updateLine=function(r){var s=new Date,c=s.getDayString(),l=s.getHours(),d=4*e.quarterHeight,u=s.getMinutes(),p=e.quarterHeight/15,h=parseInt(l*d+u*p-1);(r||c!=e.nowDay)&&(e.lineElement&&e.lineElement.remove(),e.lineElement=function(e,n){var a=angular.element("");i.isMultiColumn?n&&n[0].attributes["sg-day"].value==e&&t.append(a):_.forEach(n,function(t){t.attributes["sg-day"].value==e&&angular.element(t).find("div").eq(0).append(a)});return a}(c,e.days),e.nowDay=c);e.lineElement&&(e.lineElement.css("top",h+"px"),a=n(angular.bind(o,e.updateLine),6e4))},e.$on("$destroy",function(){a&&n.cancel(a)})}angular.module("SOGo.SchedulerUI").directive("sgNowLine",function(){return{restrict:"C",require:"^^sgCalendarScrollView",link:function(e,t,n,a){function o(){return t.find("sg-calendar-day")}var i=e.$watch(function(){return a.quarterHeight},function(t){if(t){i(),e.quarterHeight=t;var n=e.$watch(o,function(t){t.length&&(n(),e.days=t,e.updateLine())})}})},controller:e}})}();
+!function(){"use strict";function e(t){if(this.init(t),this.name&&!this.id){var n=e.$$resource.create("createFolder",this.name);this.$unwrap(n)}}e.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Component","Acl",function(t,n,a,o,i,r,s,c){return angular.extend(e,{$q:t,$timeout:n,$log:a,$$resource:new i(o.activeUser("folderURL")+"Calendar",o.activeUser()),$Preferences:r,$Component:s,$$Acl:c,activeUser:o.activeUser(),$view:null}),e}];try{angular.module("SOGo.SchedulerUI")}catch(e){angular.module("SOGo.SchedulerUI",["SOGo.Common"])}angular.module("SOGo.SchedulerUI").value("CalendarSettings",{EventDragDayLength:96,EventDragHorizontalOffset:3,ConflictHTTPErrorCode:409}).factory("Calendar",e.$factory),e.$defaultCalendar=function(){var t;return"first"==e.$Preferences.defaults.SOGoDefaultCalendar&&(t=_.find(e.$findAll(null,!0),function(e){return e.active}))?t.id:"personal"},e.$add=function(t){var n,a;n=t.isWebCalendar?this.$webcalendars:t.isSubscription?this.$subscriptions:this.$calendars,(a=_.findIndex(n,function(e,n){return"personal"==t.id||"personal"!=e.id&&e.name.localeCompare(t.name)>0}))<0?n.push(t):n.splice(a,0,t),e.$Preferences.settings.Calendar.FoldersOrder&&e.saveFoldersOrder(_.flatMap(e.$findAll(),"id")),e.$reloadAll()},e.$findAll=function(t,n){var a=this;if(t)this.$calendars=[],this.$subscriptions=[],this.$webcalendars=[],angular.forEach(t,function(t,n){var o=new e(t);o.isWebCalendar?a.$webcalendars.push(o):o.isSubscription?a.$subscriptions.push(o):a.$calendars.push(o)});else if(angular.isUndefined(this.$calendars))return this.$calendars=[],this.$subscriptions=[],this.$webcalendars=[],e.$$resource.fetch("calendarslist").then(function(t){return e.$findAll(t.calendars,n)});return n?_.union(this.$calendars,_.filter(this.$subscriptions,function(e){return e.isOwned||e.acls.objectCreator})):_.union(this.$calendars,this.$subscriptions,this.$webcalendars)},e.$reloadAll=function(){var t=this;e.$$resource.fetch("calendarslist").then(function(n){_.forEach(n.calendars,function(n){var a,o;a=n.isWebCalendar?t.$webcalendars:n.owner!=e.activeUser.login?t.$subscriptions:t.$calendars,(o=_.find(a,function(e){return e.id==n.id}))&&o.init(n)})})},e.$get=function(t){var n;return(n=_.find(e.$calendars,function(e){return e.id==t}))||(n=_.find(e.$subscriptions,function(e){return e.id==t})),n||(n=_.find(e.$webcalendars,function(e){return e.id==t})),n},e.$getIndex=function(t){var n;return(n=_.indexOf(_.map(e.$calendars,"id"),t))<0&&(n=_.indexOf(_.map(e.$subscriptions,"id"),t)),n<0&&(n=_.indexOf(_.map(e.$webcalendars,"id"),t)),n},e.$subscribe=function(t,n){var a=this;return e.$$resource.userResource(t).fetch(n,"subscribe").then(function(t){var n=new e(angular.extend({active:1},t));return _.find(a.$subscriptions,function(e){return e.id==t.id})||e.$add(n),n})},e.$addWebCalendar=function(t){var n=e.$q.defer();return _.find(this.$webcalendars,function(e){return e.urls.webCalendarURL==t})?n.reject():e.$$resource.post(null,"addWebCalendar",{url:t}).then(function(a){angular.extend(a,{isWebCalendar:!0,isEditable:!0,isRemote:!1,owner:e.activeUser.login,urls:{webCalendarURL:t}});var o=new e(a);e.$$resource.fetch(o.id,"reload").then(function(t){e.$log.debug(JSON.stringify(t,void 0,2)),e.$add(o),n.resolve()},function(e){401==e.status?n.resolve(o):n.reject()})},n.reject),n.promise},e.reloadWebCalendars=function(){var t=[];return _.forEach(this.$webcalendars,function(n){var a=e.$$resource.fetch(n.id,"reload");a.then(function(e){n.$error=!1},function(e){n.$error=l(e.statusText)}),t.push(a)}),e.$q.all(t)},e.$deleteComponents=function(t){var n={},a=[];return _.forEach(t,function(e){angular.isDefined(n[e.pid])||(n[e.pid]=[]),n[e.pid].push(e.id)}),_.forEach(n,function(t,n){a.push(e.$$resource.post(n,"batchDelete",{uids:t}))}),e.$q.all(a)},e.saveFoldersActivation=function(t){var n={};return _.forEach(t,function(t){var a=e.$get(t);n[a.id]=a.active}),e.$$resource.post(null,"saveFoldersActivation",n)},e.saveFoldersOrder=function(t){return this.$$resource.post(null,"saveFoldersOrder",{folders:t}).then(function(){if(e.$Preferences.settings.Calendar.FoldersOrder=t,!t)return e.$$resource.fetch("calendarslist").then(function(t){return e.$findAll(t.calendars)})})},e.prototype.init=function(t){this.color=this.color||"#AAAAAA",this.active=1,angular.extend(this,t),this.id&&(this.$acl=new e.$$Acl("Calendar/"+this.id)),this.isOwned=e.activeUser.isSuperUser||this.owner==e.activeUser.login,this.isSubscription=!this.isRemote&&this.owner!=e.activeUser.login,angular.isUndefined(this.$shadowData)&&(this.$shadowData=this.$omit())},e.prototype.$id=function(){return this.id?e.$q.when(this.id):this.$futureCalendarData.then(function(e){return e.id})},e.prototype.getClassName=function(e){return angular.isUndefined(e)&&(e="fg"),e+"-folder"+this.id},e.prototype.$rename=function(){var t,n,a=this;return this.name==this.$shadowData.name?e.$q.when():(n=this.isWebCalendar?e.$webcalendars:this.isSubscription?e.$subscriptions:e.$calendars,(t=_.indexOf(_.map(n,"id"),this.id))>-1?this.$save().then(function(){n.splice(t,1),e.$add(a)}):e.$q.reject())},e.prototype.$delete=function(){var t,n,a=this;return this.isSubscription?(n=e.$$resource.fetch(this.id,"unsubscribe"),t=e.$subscriptions):(n=e.$$resource.remove(this.id),t=this.isWebCalendar?e.$webcalendars:e.$calendars),n.then(function(){var e=_.indexOf(_.map(t,"id"),a.id);t.splice(e,1)})},e.prototype.$reset=function(){var e=this;angular.forEach(this,function(t,n){"constructor"!=n&&"$"!=n[0]&&delete e[n]}),angular.extend(this,this.$shadowData),this.$shadowData=this.$omit()},e.prototype.$save=function(){var t=this;return e.$$resource.save(this.id,this.$omit()).then(function(e){return t.$shadowData=t.$omit(),e},function(n){return e.$log.error(JSON.stringify(n,void 0,2)),t.$reset(),n})},e.prototype.setCredentials=function(t,n){var a=this,o=e.$q.defer();return e.$$resource.post(this.id,"set-credentials",{username:t,password:n}).then(function(){e.$$resource.fetch(a.id,"reload").then(function(t){e.$add(a),o.resolve()},function(e){401==e.status?o.reject(l("Wrong username or password")):o.reject(e.statusText)})},o.reject),o.promise},e.prototype.export=function(){var t;return t={type:"application/octet-stream",filename:this.name+".ics"},e.$$resource.open(this.id+".ics","export",null,t)},e.prototype.$setActivation=function(){return e.$$resource.fetch(this.id,(this.active?"":"de")+"activateFolder")},e.prototype.$getComponent=function(t,n){return e.$Component.$find(this.id,t,n)},e.prototype.$unwrap=function(t){var n=this;this.$futureCalendarData=t.then(function(t){return e.$timeout(function(){return n.init(t),n})},function(t){n.isError=!0,angular.isObject(t)&&e.$timeout(function(){angular.extend(n,t)})})},e.prototype.$omit=function(){var e={};return angular.forEach(this,function(t,n){"constructor"!=n&&"$"!=n[0]&&(e[n]=t)}),e}}(),function(){"use strict";function e(t){if("function"!=typeof t.then){if(this.init(t),this.pid&&!this.id){var n=e.$$resource.newguid(this.pid);this.$unwrap(n),this.isNew=!0}}else this.$unwrap(t)}e.$factory=["$q","$timeout","$log","$rootScope","sgSettings","sgComponent_STATUS","Preferences","User","Card","Gravatar","Resource",function(t,n,a,o,i,r,s,c,l,d,u){return angular.extend(e,{STATUS:r,$q:t,$timeout:n,$log:a,$rootScope:o,$settings:i,$User:c,$Preferences:s,$Card:l,$gravatar:d,$$resource:new u(i.activeUser("folderURL")+"Calendar",i.activeUser()),timeFormat:"%H:%M",$query:{value:"",search:"title_Category_Location"},$queryEvents:{sort:"start",asc:1,filterpopup:"view_next7"},$queryTasks:{sort:"status",asc:1,filterpopup:"view_incomplete"},$refreshTimeout:null,$ghost:{}}),s.settings.Calendar.EventsFilterState&&(e.$queryEvents.filterpopup=s.settings.Calendar.EventsFilterState),s.settings.Calendar.TasksFilterState&&(e.$queryTasks.filterpopup=s.settings.Calendar.TasksFilterState),s.settings.Calendar.EventsSortingState&&(e.$queryEvents.sort=s.settings.Calendar.EventsSortingState[0],e.$queryEvents.asc=parseInt(s.settings.Calendar.EventsSortingState[1])),s.settings.Calendar.TasksSortingState&&(e.$queryTasks.sort=s.settings.Calendar.TasksSortingState[0],e.$queryTasks.asc=parseInt(s.settings.Calendar.TasksSortingState[1])),e.$queryTasks.show_completed=parseInt(s.settings.ShowCompletedTasks),e.$categories=s.defaults.SOGoCalendarCategoriesColors,s.defaults.SOGoTimeFormat&&(e.timeFormat=s.defaults.SOGoTimeFormat),e}];try{angular.module("SOGo.SchedulerUI")}catch(e){angular.module("SOGo.SchedulerUI",["SOGo.Common"])}angular.module("SOGo.SchedulerUI").constant("sgComponent_STATUS",{NOT_LOADED:0,DELAYED_LOADING:1,LOADING:2,LOADED:3,DELAYED_MS:300}).factory("Component",e.$factory),e.$selectedCount=function(){var t;return t=0,e.$events&&(t+=_.filter(e.$events,function(e){return e.selected}).length),e.$tasks&&(t+=_.filter(e.$tasks,function(e){return e.selected}).length),t},e.$startRefreshTimeout=function(t){e.$refreshTimeout&&e.$timeout.cancel(e.$refreshTimeout);var n=e.$Preferences.defaults.SOGoRefreshViewCheck;if(n&&"manually"!=n){var a=angular.bind(e.$rootScope,e.$rootScope.$emit,"calendars:list");e.$refreshTimeout=e.$timeout(a,1e3*n.timeInterval())}},e.$isLoading=function(){return e.$loaded==e.STATUS.LOADING},e.$filter=function(t,n){var a,o,i=this,r=new Date,s=r.getDate(),c=r.getMonth()+1,l=r.getFullYear(),d="$query"+t.capitalize(),u={day:l+(c<10?"0":"")+c+(s<10?"0":"")+s},p=!1;return e.$startRefreshTimeout(t),angular.extend(this.$query,u),n&&_.forEach(_.keys(n),function(t){p|=i.$query[t]&&n[t]!=e.$query[t],"reload"==t&&n[t]?p=!0:angular.isDefined(i.$query[t])?i.$query[t]=n[t]:i[d][t]=n[t]}),a=this.$$resource.fetch(null,t+"list",angular.extend(this[d],this.$query)),p&&(delete e[o="tasks"==t?"$events":"$tasks"],e.$log.debug("force reload of "+o)),this.$unwrapCollection(t,a)},e.$find=function(t,n,a){var o=[t,encodeURIComponent(n)];return a&&o.push(a),new e(this.$$resource.fetch(o.join("/"),"view"))},e.filterCategories=function(t){var n=new RegExp(t,"i");return _.filter(_.keys(e.$categories),function(e){return-1!=e.search(n)})},e.saveSelectedList=function(e){return this.$$resource.post(null,"saveSelectedList",{list:e+"ListView"})},e.$eventsBlocksForView=function(t,n){var a,o,i,r;return a=e.$Preferences.defaults.SOGoFirstDayOfWeek,"day"==t?(o="dayView",i=r=n):"multicolumnday"==t?(o="multicolumndayView",i=r=n):"week"==t?(o="weekView",i=n.beginOfWeek(a),(r=new Date).setTime(i.getTime()),r.addDays(6)):"month"==t&&(o="monthView",(i=n).setDate(1),i=i.beginOfWeek(a),(r=new Date).setTime(n.getTime()),r.setMonth(r.getMonth()+1),r.addDays(-1),r=r.endOfWeek(a)),this.$eventsBlocks(o,i,r)},e.$eventsBlocks=function(t,n,a){var o,i,r,s=[],c=[],l=e.$q.defer();return o={view:t.toLowerCase(),sd:n.getDayString(),ed:a.getDayString()},this.$$resource.fetch(null,"eventsblocks",o).then(function(t){var n,a;n=function(t,n,a){var o,i=_.zipObject(this.eventsFields,n),r=new Date(1e3*i.c_startdate);return i.hour=r.getHourString(),i.blocks=[],o=new e(i),t.push(o),t},a=function(e){this[e.nbr].blocks.push(e),e.component=this[e.nbr],e.isFirst=1==this[e.nbr].blocks.length},e.$views=[],e.$timeout(function(){_.forEach(t,function(t,o){var l,d=[],u={},p={};for(t.eventsFields.splice(_.indexOf(t.eventsFields,"c_folder"),1,"pid"),t.eventsFields.splice(_.indexOf(t.eventsFields,"c_name"),1,"id"),t.eventsFields.splice(_.indexOf(t.eventsFields,"c_recurrence_id"),1,"occurrenceId"),t.eventsFields.splice(_.indexOf(t.eventsFields,"c_title"),1,"summary"),_.reduce(t.events,_.bind(n,t),d),_.forEach(_.flatten(t.blocks),_.bind(a,d)),_.forEach(_.flatten(t.allDayBlocks),_.bind(a,d)),0===s.length&&(s=_.flatMap(t.days,"date"),c=_.flatMap(t.days,"number")),i=0;i0&&(this.repeat.month={type:"bymonthday"}),angular.isUndefined(this.repeat.month)&&(this.repeat.month={}),angular.isUndefined(this.repeat.month.occurrence)&&angular.extend(this.repeat.month,{occurrence:"1",day:"SU"}),angular.isUndefined(this.repeat.months)&&(this.repeat.months=[]),angular.isUndefined(this.repeat.year)&&(this.repeat.year={}),this.repeat.count?this.repeat.end="count":this.repeat.until?(this.repeat.end="until",angular.isString(this.repeat.until)&&(this.repeat.until=e.$parseDate(this.repeat.until,{no_time:!0}))):this.repeat.end="never",this.$hasCustomRepeat=this.hasCustomRepeat(),this.isNew){var a="appointment"==this.type?"Events":"Tasks";this.classification=e.$Preferences.defaults["SOGoCalendar"+a+"DefaultClassification"].toLowerCase();var o=/-PT?([0-9]+)([MHDW])/.exec(e.$Preferences.defaults.SOGoCalendarDefaultReminder);o&&(this.$hasAlarm=!0,this.alarm.quantity=parseInt(o[1]),this.alarm.unit={M:"MINUTES",H:"HOURS",D:"DAYS",W:"WEEKS"}[o[2]]),this.sendAppointmentNotifications=e.$Preferences.defaults.SOGoAppointmentSendEMailNotifications}else angular.isUndefined(t.$hasAlarm)&&(this.$hasAlarm=angular.isDefined(t.alarm));this.destinationCalendar=this.pid,this.attendees&&_.forEach(this.attendees,function(t){t.image=e.$gravatar(t.email,32)}),this.updateFreeBusy(),this.selected=!1},e.prototype.initOrganizer=function(t){var n,a=this;t&&t.isSubscription?n=e.$User.$filter(t.owner).then(function(e){var t=e[0];a.organizer={uid:t.uid,name:t.cn,email:t.c_email}}):(this.organizer={uid:e.$settings.activeUser("login"),name:e.$settings.activeUser("identification"),email:e.$settings.activeUser("email")},n=e.$q.when()),n.then(function(){a.updateFreeBusyAttendee(a.organizer)})},e.prototype.hasCustomRepeat=function(){return angular.isUndefined(this.occurrenceId)&&angular.isDefined(this.repeat)&&(this.repeat.interval>1||angular.isDefined(this.repeat.days)&&this.repeat.days.length>0||angular.isDefined(this.repeat.monthdays)&&this.repeat.monthdays.length>0||angular.isDefined(this.repeat.months)&&this.repeat.months.length>0||angular.isDefined(this.repeat.month)&&angular.isDefined(this.repeat.month.type)||angular.isDefined(this.repeat.dates)&&this.repeat.dates.length>0)},e.prototype.isEditable=function(){return!this.occurrenceId&&!this.isReadOnly},e.prototype.isEditableOccurrence=function(){return this.occurrenceId&&!this.isReadOnly},e.prototype.isInvitation=function(){return!this.occurrenceId&&this.userHasRSVP},e.prototype.isInvitationOccurrence=function(){return this.occurrenceId&&this.userHasRSVP},e.prototype.showPercentComplete=function(){return"task"==this.type&&this.percentComplete>0&&"cancelled"!=this.status},e.prototype.enablePercentComplete=function(){return"task"==this.type&&"not-specified"!=this.status&&"cancelled"!=this.status},e.prototype.coversFreeBusy=function(e,t,n){return angular.isDefined(this.freebusy[e])&&angular.isDefined(this.freebusy[e][t])&&1==this.freebusy[e][t][n]},e.prototype.updateFreeBusyCoverage=function(){var e=this,t={};if(this.start&&this.end){var n=new Date(this.start.getTime()),a=new Date(this.end.getTime()),o=parseInt(n.getMinutes()/15+.5),i=parseInt(a.getMinutes()/15+.5);return n.setMinutes(15*o),a.setMinutes(15*i),_.forEach(n.daysUpTo(a),function(n,a){var i,r=n.getDate(),s=n.getDayString();if(s==e.start.getDayString())for(i=n.getHours().toString(),t[s]={},t[s][i]=[];o>0;)t[s][i].push(0),o--;else n=n.beginOfDay(),t[s]={};for(;n.getTime()0},e.prototype.addAttachUrl=function(e){if(angular.isUndefined(this.attachUrls))this.attachUrls=[{value:e}];else{for(var t=0;t-1&&this.attachUrls.length>e&&this.attachUrls.splice(e,1)},e.prototype.$addDueDate=function(){this.due=new Date,this.due.setMinutes(15*Math.round(this.due.getMinutes()/15)),this.dueDate=this.due.toISOString()},e.prototype.$deleteDueDate=function(){delete this.due,delete this.dueDate},e.prototype.$addStartDate=function(){this.start=new Date,this.start.setMinutes(15*Math.round(this.start.getMinutes()/15))},e.prototype.$deleteStartDate=function(){delete this.start,delete this.startDate},e.prototype.$addRecurrenceDate=function(){var e=new Date;e.setMinutes(15*Math.round(e.getMinutes()/15)),angular.isUndefined(this.repeat.dates)&&(this.repeat={frequency:"custom",dates:[]}),this.repeat.dates.push(e)},e.prototype.$deleteRecurrenceDate=function(e){e>-1&&this.repeat&&this.repeat.dates&&this.repeat.dates.length>e&&this.repeat.dates.splice(e,1)},e.prototype.$reset=function(){var e=this;angular.forEach(this,function(t,n){"constructor"!=n&&"$"!=n[0]&&delete e[n]}),this.init(this.$shadowData),this.$shadowData=this.$omit()},e.prototype.$reply=function(){var t,n=this,a=[this.pid,encodeURIComponent(this.id)];return this.occurrenceId&&a.push(this.occurrenceId),t={reply:this.reply,delegatedTo:this.delegatedTo,alarm:this.$hasAlarm?this.alarm:{}},e.$$resource.save(a.join("/"),t,{action:"rsvpAppointment"}).then(function(e){return n.$shadowData=n.$omit(),e})},e.prototype.$adjust=function(t){var n=[this.pid,encodeURIComponent(this.id)];return _.every(_.values(t),function(e){return 0===e})?e.$q.when():(this.occurrenceId&&n.push(this.occurrenceId),e.$log.debug("adjust "+n.join("/")+" "+JSON.stringify(t)),e.$$resource.save(n.join("/"),t,{action:"adjust"}))},e.prototype.$save=function(t){var n,a,o,i,r=this;return o=this.$omit(),i=e.$Preferences.$mdDateLocaleProvider,o.startDate=o.start?o.start.format(i,"%Y-%m-%d"):"",o.startTime=o.start?o.start.format(i,"%H:%M"):"",o.endDate=o.end?o.end.format(i,"%Y-%m-%d"):"",o.endTime=o.end?o.end.format(i,"%H:%M"):"",o.dueDate=o.due?o.due.format(i,"%Y-%m-%d"):"",o.dueTime=o.due?o.due.format(i,"%H:%M"):"",o.completedDate=o.completed?o.completed.format(i,"%Y-%m-%d"):"",this.hasCustomRepeat()?"monthly"==this.repeat.frequency&&this.repeat.month.type&&"byday"==this.repeat.month.type&&"relative"!=this.repeat.month.day||"yearly"==this.repeat.frequency&&this.repeat.year.byday?(delete o.repeat.monthdays,o.repeat.days=[{day:this.repeat.month.day,occurrence:this.repeat.month.occurrence.toString()}]):"monthly"!=this.repeat.frequency&&"yearly"!=this.repeat.frequency||!this.repeat.month.type?"custom"==this.repeat.frequency&&this.repeat.dates&&_.forEach(o.repeat.dates,function(e,t,n){n[t]={date:e.format(i,"%Y-%m-%d"),time:e.format(i,"%H:%M")}}):(delete o.repeat.days,"relative"==this.repeat.month.day&&(o.repeat.monthdays=[this.repeat.month.occurrence])):this.repeat.frequency&&"never"!=this.repeat.frequency&&(o.repeat={frequency:this.repeat.frequency}),o.startDate&&this.repeat.frequency&&"never"!=this.repeat.frequency?"until"==this.repeat.end&&this.repeat.until?o.repeat.until=this.repeat.until.stringWithSeparator("-"):"count"==this.repeat.end&&this.repeat.count?o.repeat.count=this.repeat.count:(delete o.repeat.until,delete o.repeat.count):delete o.repeat,"not-specified"==this.status?delete o.status:"completed"!=this.status&&delete o.completedDate,o.startDate&&this.$hasAlarm?!this.alarm.action||"email"!=this.alarm.action||this.attendees&&this.attendees.length>0||(o.alarm.attendees=0,o.alarm.organizer=1):o.alarm={},a=[this.pid,encodeURIComponent(this.id)],this.isNew&&(n={action:"saveAs"+this.type.capitalize()}),this.occurrenceId&&a.push(this.occurrenceId),angular.extend(o,t),e.$$resource.save(a.join("/"),o,n).then(function(e){return r.$shadowData=r.$omit(),e})},e.prototype.remove=function(t){var n=[this.pid,encodeURIComponent(this.id)];return t&&this.occurrenceId&&n.push(this.occurrenceId),e.$$resource.remove(n.join("/"))},e.prototype.$unwrap=function(t){var n=this;this.$futureComponentData=t,this.$futureComponentData.then(function(e){n.init(e),n.$shadowData=n.$omit()},function(t){angular.extend(n,t),n.isError=!0,e.$log.error(n.error)})},e.prototype.$omit=function(){var e={};return angular.forEach(this,function(t,n){"constructor"==n||"$hasAlarm"!=n&&"$"==n[0]||"blocks"==n||(e[n]=angular.copy(t))}),e},e.prototype.repeatDescription=function(){var e=null;return this.repeat&&(e=l("repeat_"+this.repeat.frequency.toUpperCase())),e},e.prototype.alarmDescription=function(){var e,t=null;return this.alarm&&(e=["reminder",this.alarm.quantity],this.alarm.quantity>0&&e.push(this.alarm.unit.toUpperCase(),this.alarm.reference.toUpperCase()),(e=e.join("_"))===(t=l(e))&&(t=[this.alarm.quantity,l("reminder_"+this.alarm.unit.toUpperCase()),l("reminder_"+this.alarm.reference.toUpperCase())].join(" "))),t},e.prototype.copyTo=function(t){return e.$$resource.post(this.pid+"/"+encodeURIComponent(this.id),"copy",{destination:t})},e.prototype.moveTo=function(t){return e.$$resource.post(this.pid+"/"+encodeURIComponent(this.id),"move",{destination:t})},e.prototype.toString=function(){return"[Component "+this.id+"]"}}(),function(){"use strict";e.$inject=["$scope","$rootScope","$state","$stateParams","sgHotkeys","Calendar","Component","Preferences","stateEventsBlocks"];function e(t,n,a,o,i,r,s,c,d){var u,p=this,h=[];angular.isUndefined(e.expandedAllDays)&&(e.expandedAllDays=!1),p.selectedDate=o.day.asDate(),p.expandedAllDays=e.expandedAllDays,p.toggleAllDays=function(){e.expandedAllDays=!e.expandedAllDays,p.expandedAllDays=e.expandedAllDays},p.views=d,p.changeDate=y,p.changeView=v,this.$onInit=function(){(e=h).push(i.createHotkey({key:l("hotkey_today"),description:l("Today"),callback:y,args:new Date})),e.push(i.createHotkey({key:l("hotkey_dayview"),description:l("Day"),callback:v,args:"day"})),e.push(i.createHotkey({key:l("hotkey_weekview"),description:l("Week"),callback:v,args:"week"})),e.push(i.createHotkey({key:l("hotkey_monthview"),description:l("Month"),callback:v,args:"month"})),e.push(i.createHotkey({key:l("hotkey_multicolumndayview"),description:l("Multicolumn Day View"),callback:v,args:"multicolumnday"})),e.push(i.createHotkey({key:"left",description:l("Move backward"),callback:m,args:-1})),e.push(i.createHotkey({key:"right",description:l("Move forward"),callback:m,args:1})),_.forEach(e,function(e){i.registerHotkey(e)});var e;f(p.selectedDate),u=n.$on("calendars:list",g),t.$on("$destroy",function(){u(),_.forEach(h,function(e){i.deregisterHotkey(e)})})};function m(e,t){var n;"week"==o.view?n=p.selectedDate.beginOfWeek(c.defaults.SOGoFirstDayOfWeek).addDays(7*t):"month"==o.view?((n=p.selectedDate).setDate(1),n.setMonth(n.getMonth()+t)):n=p.selectedDate.addDays(t),y(e,n)}function f(e){"month"==o.view?(e.setDate(1),e.setHours(12),e.$dateFormat="%B %Y"):"week"==o.view?(e.setTime(e.beginOfWeek(c.defaults.SOGoFirstDayOfWeek).getTime()),e.$dateFormat=l("Week %d").replace("%d","%U")):e.$dateFormat="%A"}function g(){s.$eventsBlocksForView(o.view,o.day.asDate()).then(function(e){var t,n,a;for(t=0;t=t;n--)p.views.splice(n,1)})}function y(e,t){var n=t?t.getDayString():angular.element(e.currentTarget).attr("date");t&&f(t),a.go("calendars.view",{day:n})}function v(e,t){a.go("calendars.view",{view:t})}}angular.module("SOGo.SchedulerUI").controller("CalendarController",e)}(),function(){"use strict";e.$inject=["$rootScope","$scope","$q","$timeout","$state","$mdDialog","sgHotkeys","sgFocus","Dialog","Preferences","CalendarSettings","Calendar","Component","Alarm"];function e(e,t,n,a,o,i,r,s,c,d,u,p,h,m){var f,g,y=this,v=[];g={title:"Title",location:"Location",calendarName:"Calendar",start:"Start",priority:"Priority",category:"Category",status:"Status",events:{end:"End"},tasks:{end:"Due Date"}},y.component=h,y.componentType="events",y.selectedList=0,y.selectComponentType=$,y.unselectComponents=function(){_.forEach(h["$"+y.componentType],function(e){e.selected=!1}),y.mode.multiple=0},y.selectAll=function(){_.forEach(h["$"+y.componentType],function(e){e.selected=!0}),y.mode.multiple=h["$"+y.componentType].length},y.searchMode=C,y.toggleComponentSelection=function(e,t){t.selected=!t.selected,y.mode.multiple+=t.selected?1:-1,e.preventDefault(),e.stopPropagation()},y.confirmDeleteSelectedComponents=function(){c.confirm(l("Warning"),l("Are you sure you want to delete the selected components?"),{ok:l("Delete")}).then(function(){var t=_.filter(h["$"+y.componentType],function(e){return e.selected});p.$deleteComponents(t).then(function(){y.mode.multiple=0,e.$emit("calendars:list")})})},y.openEvent=function(e,t){b(e,t,"appointment")},y.openTask=function(e,t){b(e,t,"task")},y.newComponent=D,y.filter=function(e){{if(!e)return h["$query"+y.componentType.capitalize()].filterpopup;h.$filter(y.componentType,{filterpopup:e})}},y.filteredBy=function(e){return h["$query"+y.componentType.capitalize()].filterpopup==e},y.sort=function(e){{if(!e){var t=h["$query"+y.componentType.capitalize()].sort;return g[t]||g[y.componentType][t]}h.$filter(y.componentType,{sort:e})}},y.sortedBy=function(e){return h["$query"+y.componentType.capitalize()].sort==e},y.reload=function(){p.reloadWebCalendars().finally(function(){e.$emit("calendars:list")})},y.cancelSearch=function(){y.mode.search=!1,h.$filter(y.componentType,{value:""})},y.mode={search:!1,multiple:0},this.$onInit=function(){(n=v).push(r.createHotkey({key:l("hotkey_search"),description:l("Search"),callback:C})),n.push(r.createHotkey({key:l("hotkey_create_event"),description:l("Create a new event"),callback:D,args:"appointment"})),n.push(r.createHotkey({key:l("hotkey_create_task"),description:l("Create a new task"),callback:D,args:"task"})),_.forEach(n,function(e){r.registerHotkey(e)});var n;f="events","tasksListView"==d.settings.Calendar.SelectedList&&(y.selectedList=1,f="tasks"),$(f,{reload:!0}),e.$on("calendars:list",function(){h.$filter(y.componentType,{reload:!0})}),e.$on("calendar:dragend",k),t.$on("$destroy",function(){_.forEach(v,function(e){r.deregisterHotkey(e)})})};function $(e,t){(t&&t.reload||y.componentType!=e)&&(angular.isUndefined(h["$"+e])&&h.$filter(e),y.unselectComponents(),y.componentType=e,h.saveSelectedList(e))}function C(){y.mode.search=!0,s("search")}function b(e,t,a){if(t.viewable){var o=n.when();angular.isUndefined(t.$futureComponentData)&&(o=(t=p.$get(t.pid).$getComponent(t.id,t.occurrenceId)).$futureComponentData),o.then(function(){var n="UIx"+a.capitalize()+"ViewTemplate";i.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:n,controller:"ComponentController",controllerAs:"editor",locals:{stateComponent:t}})})}}function D(e,t,n){var a;n?(a=n).updateFreeBusy():a=new h({pid:p.$defaultCalendar(),type:t});var o="UIx"+t.capitalize()+"EditorTemplate";return i.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:o,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:a}})}function k(t){var n,o,r,s,c,d,f;n=h.$ghost.component,o=h.$ghost.pointerHandler,n.isNew?(r=o.currentEventCoordinates,n.summary="",n.isAllDay&&(r.duration-=96),n.setDelta(15*r.duration),D(null,"appointment",n).catch().finally(function(){a(function(){h.$resetGhost()})})):(s=o.currentEventCoordinates.getDelta(o.originalEventCoordinates),c={days:s.dayNumber,start:15*s.start,duration:15*s.duration},o.originalCalendar&&0!==s.dayNumber&&(d=o.currentEventCoordinates.dayNumber,f=_.filter(p.$findAll(),{active:1}),c.destination=f[d].id,c.days=0),n.isException||!n.occurrenceId?n.$adjust(c).then(function(){e.$emit("calendars:list"),m.getAlarms()},function(e){y(e,n,c)}).finally(function(){a(function(){h.$resetGhost()})}):n.occurrenceId&&i.show({clickOutsideToClose:!0,escapeToClose:!0,locals:{component:n,params:c},template:['',' '," "+l("editRepeatingItem")+"
"," "," ",' '+l("button_thisOccurrenceOnly")+" ",' '+l("button_allOccurrences")+" "," "," "].join(""),controller:g}).then(function(){e.$emit("calendars:list")},function(){}).finally(function(){a(function(){h.$resetGhost()})})),g.$inject=["$scope","$mdDialog","component","params"];function g(e,t,n,a){e.updateThisOccurrence=function(){n.$adjust(a).then(t.hide,function(e){t.cancel().then(function(){y(e,n,a)},function(){})})},e.updateAllOccurrences=function(){delete n.occurrenceId,n.$adjust(a).then(t.hide,function(e){t.cancel().then(function(){y(e,n,a)},function(){})})}}function y(t,n,a){t.status==u.ConflictHTTPErrorCode&&t.data&&t.data.message&&angular.isObject(t.data.message)&&i.show({parent:angular.element(document.body),clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxAttendeeConflictDialog",controller:v,controllerAs:"$AttendeeConflictDialogController",locals:{component:n,params:a,conflictError:t.data.message}}).then(function(){e.$emit("calendars:list")},function(){})}v.$inject=["$scope","$mdDialog","component","params","conflictError"];function v(e,t,n,a,o){this.conflictError=o,this.cancel=t.cancel,this.save=function(){n.$adjust(angular.extend({ignoreConflicts:!0},a)).then(t.hide)}}}this.ascending=function(){return h["$query"+y.componentType.capitalize()].asc}}angular.module("SOGo.SchedulerUI").controller("CalendarListController",e)}(),function(){"use strict";e.$inject=["$rootScope","$scope","$window","$mdDialog","$log","$mdToast","Dialog","sgSettings","Preferences","Calendar"];function e(e,t,n,a,o,i,r,s,c,d){var u=this;u.activeUser=s.activeUser,u.service=d,u.newCalendar=function(e){r.prompt(l("New calendar"),l("Name of the Calendar")).then(function(e){var t=new d({name:e,isEditable:!0,isRemote:!1,owner:UserLogin});t.$id().then(function(){d.$add(t)})})},u.addWebCalendar=function(){r.prompt(l("Subscribe to a web calendar..."),l("URL of the Calendar"),{inputType:"url"}).then(function(t){d.$addWebCalendar(t).then(function(n){angular.isObject(n)&&a.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:"UIxWebCalendarAuthDialog",controller:e,controllerAs:"$WebCalendarAuthDialogController",locals:{url:t,calendar:n}})})}),e.$inject=["scope","$mdDialog","url","calendar"];function e(e,t,n,a){var o=this,i=n.split("/"),r=i[2];o.title=l("Please identify yourself to %{0}").formatted(r),o.url=n,o.authenticate=function(e){!e.$valid&&e.$error.required||a.setCredentials(o.username,o.password).then(function(e){t.hide()},function(t){e.password.$setValidity("credentials",!1)})},o.cancel=function(){t.cancel()}}},u.subscribeToFolder=function(e){o.debug("subscribeToFolder "+e.owner+e.name),d.$subscribe(e.owner,e.name).then(function(e){i.show(i.simple().content(l("Successfully subscribed to calendar")).position("top right").hideDelay(3e3))})},u.filter={name:""},u.sortableMode=!1,u.toggleSortableMode=function(){u.sortableMode=!u.sortableMode,u.filter.name=""},u.resetSort=function(){d.saveFoldersOrder()},u.sortableCalendars={scrollableContainer:"#sidenav-content",containment:"md-list",orderChanged:function(){d.saveFoldersOrder(_.flatMap(d.$findAll(),"id"))},accept:function(e,t,n){return e.sortableScope.element[0]==t.element[0]}},this.$onInit=function(){u.categories=_.map(c.defaults.SOGoCalendarCategories,function(e){return{id:e.asCSSIdentifier(),name:e,color:c.defaults.SOGoCalendarCategoriesColors[e]}}),t.$watch(function(){return _.union(_.map(d.$calendars,function(e){return _.pick(e,["id","active","color"])}),_.map(d.$subscriptions,function(e){return _.pick(e,["id","active","color"])}),_.map(d.$webcalendars,function(e){return _.pick(e,["id","active","color"])}))},function(t,n){var a,i,r;a=_.intersectionBy(t,n,"id"),i=_.map(_.filter(a,function(e){var t=_.find(n,{id:e.id});return!_.isEqual(e,t)}),"id"),r=d.$q.when(),i.length>0&&(o.debug(i.join(", ")+" changed"),r=d.saveFoldersActivation(i)),(i.length>0||a.length!=t.length||a.length!=n.length)&&r.then(function(){e.$emit("calendars:list")})},!0)}}angular.module("SOGo.SchedulerUI").controller("CalendarsController",e)}(),function(){"use strict";e.$inject=["$rootScope","$mdDialog","Calendar","Component","AddressBook","Alarm","Account","stateComponent"];function e(e,t,n,a,o,i,r,s){var c,d=this;d.calendarService=n,d.service=a,d.component=s,d.close=function(){t.hide()},d.highPriority=function(){return d.component&&d.component.priority&&d.component.priority<5},d.cardFilter=function(e){return o.$filterAll(e)},d.newMessageWithAllRecipients=function(e){var t=_.map(d.component.attendees,function(e){return e.name+" <"+e.email+">"});u(e,t)},d.newMessageWithRecipient=function(e,t,n){u(e,[t+" <"+n+">"])},d.edit=p,d.editAllOccurrences=function(){(c=n.$get(d.component.pid).$getComponent(d.component.id)).$futureComponentData.then(function(){d.component=c,p()})},d.reply=h,d.replyAllOccurrences=function(){(c=n.$get(d.component.pid).$getComponent(d.component.id)).$futureComponentData.then(function(){c.reply=d.component.reply,c.delegatedTo=d.component.delegatedTo,c.$hasAlarm=d.component.$hasAlarm,c.alarm=d.component.alarm,h(c)})},d.deleteOccurrence=function(){d.component.remove(!0).then(function(){e.$emit("calendars:list"),t.hide()})},d.deleteAllOccurrences=function(){d.component.remove().then(function(){e.$emit("calendars:list"),t.hide()})},d.toggleRawSource=function(e){n.$$resource.post(d.component.pid+"/"+d.component.id,"raw").then(function(n){t.hide(),t.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,template:['',' ',' '," "," ",' '+l("Close")+" "," "," "].join(""),controller:a,locals:{data:n}}),a.$inject=["scope","$mdDialog","data"];function a(e,t,n){e.data=n,e.close=function(){t.hide()}}})},d.copySelectedComponent=function(n){d.component.copyTo(n).then(function(){t.hide(),e.$emit("calendars:list")})},d.moveSelectedComponent=function(n){d.component.moveTo(n).then(function(){t.hide(),e.$emit("calendars:list")})},d.organizer=[s.organizer];function u(e,n){r.$findAll().then(function(a){var o=_.find(a,function(e){if(0===e.id)return e});o.$getMailboxes().then(function(a){o.$newMessage().then(function(a){angular.extend(a.editable,{to:n,subject:d.component.summary}),t.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"../Mail/UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:o,stateMessage:a}})})})}),e.preventDefault(),e.stopPropagation()}function p(){var e="vevent"==d.component.component?"Appointment":"Task";t.hide().then(function(){var n="UIx"+e+"EditorTemplate";t.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:n,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:d.component}})})}function h(n){(n||d.component).$reply().then(function(){e.$emit("calendars:list"),i.getAlarms(),t.hide()})}}t.$inject=["$rootScope","$scope","$log","$timeout","$mdDialog","sgFocus","User","CalendarSettings","Calendar","Component","AddressBook","Card","Alarm","stateComponent"];function t(e,t,n,a,o,i,r,s,c,d,u,p,h,m){var f,g,y=this;y.service=c,y.component=m,y.categories={},y.showRecurrenceEditor=y.component.$hasCustomRepeat,y.toggleRecurrenceEditor=function(){y.showRecurrenceEditor=!y.showRecurrenceEditor,y.component.$hasCustomRepeat=y.showRecurrenceEditor},y.recurrenceMonthDaysAreRequired=function(){return y.component&&"monthly"==y.component.repeat.frequency&&"bymonthday"==y.component.repeat.month.type},y.showAttendeesEditor=y.component.attendees&&y.component.attendees.length,y.toggleAttendeesEditor=function(){y.showAttendeesEditor=!y.showAttendeesEditor},y.changeFrequency=function(){"custom"==y.component.repeat.frequency&&(y.showRecurrenceEditor=!0)},y.changeCalendar=function(){y.component.attendees&&y.component.attendees.length>0&&y.component.initOrganizer(c.$get(y.component.destinationCalendar))},y.cardFilter=function(e){return u.$filterAll(e),u.$cards},y.addAttendee=function(e){var t,n,a=!y.component.attendees||0===y.component.attendees.length,o=c.$get(y.component.destinationCalendar),i=a?{organizerCalendar:o}:{},r=/([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)/i;function s(e){var t=e.match(r),n=t[0],o=e.replace(new RegExp(" *"+n+">? *"),"");return y.showAttendeesEditor|=a,y.searchText="",new p({c_cn:_.trim(o,' "'),emails:[{value:n}]})}if(angular.isString(e)){for(n="",t=0;t5?l("low"):y.component.priority>4?l("normal"):l("high")},y.changeAlarmRelation=v,y.onAlarmChange=function(e){if("task"!==y.component.type)return;y.component.start||"START"!=y.component.alarm.relation?y.component.due||"END"!=y.component.alarm.relation||(y.component.alarm.relation="START"):y.component.alarm.relation="END";v(e)},y.reset=$,y.cancel=function(e){$(e),y.component.isNew&&(y.component=null);o.hide()},y.edit=C,y.save=function(t,n){v(t),t.$valid&&y.component.$save(n).then(function(t){e.$emit("calendars:list"),h.getAlarms(),o.hide()},function(e){e.status==s.ConflictHTTPErrorCode&&_.isObject(e.data.message)?y.attendeeConflictError=e.data.message:C(t)})},y.attendeeConflictError=!1,y.attendeesEditor={days:b(),hours:function(){for(var e=[],t=0;t<=23;t++)e.push(t.toString());return e}()},y.addStartDate=function(e){y.component.$addStartDate(),f=new Date(y.component.start.getTime()),y.component.due||(y.component.alarm.relation="START");v(e)},y.removeStartDate=function(e){y.component.$deleteStartDate(),y.component.due&&(y.component.alarm.relation="END");v(e)},y.addDueDate=function(e){y.component.$addDueDate(),new Date(y.component.due.getTime()),y.component.start||(y.component.alarm.relation="END");v(e)},y.removeDueDate=function(e){y.component.$deleteDueDate(),y.component.start&&(y.component.alarm.relation="START");v(e)},y.adjustStartTime=function(){if(y.component.start){0!==f.valueOf()-y.component.start.valueOf()&&(f=new Date(y.component.start.getTime()),"appointment"===y.component.type&&(y.component.end=new Date(y.component.start.getTime()),y.component.end.addMinutes(y.component.delta),g=new Date(y.component.end.getTime())),D())}},y.adjustEndTime=function(){if(y.component.end){var e=g.valueOf()-y.component.end.valueOf();0!==e&&((e=y.component.start.minutesTo(y.component.end))<0?y.component.end=new Date(g.getTime()):(y.component.delta=e,g=new Date(y.component.end.getTime())),D())}},y.adjustDueTime=function(){new Date(y.component.due.getTime())},y.component.start&&(f=new Date(y.component.start.getTime())),y.component.end&&(g=new Date(y.component.end.getTime())),y.component.due&&new Date(y.component.due.getTime());function v(e){"task"==y.component.type&&y.component.$hasAlarm&&(!y.component.start&&"START"==y.component.alarm.relation||!y.component.due&&"END"==y.component.alarm.relation)?e.alarmRelation.$setValidity("alarm",!1):e.alarmRelation.$setValidity("alarm",!0)}function $(e){y.component.$reset(),e.$setPristine()}function C(e){y.attendeeConflictError=!1,e.$setPristine(),e.$setDirty()}function b(){var e=[];return y.component.start&&y.component.end&&(e=y.component.start.daysUpTo(y.component.end)),_.map(e,function(e){return{stringWithSeparator:e.stringWithSeparator(),getDayString:e.getDayString()}})}function D(){y.attendeesEditor.days=b(),y.component.updateFreeBusy()}}angular.module("SOGo.SchedulerUI").controller("ComponentController",e).controller("ComponentEditorController",t)}(),function(){"use strict";e.$inject=["$scope","Calendar"];function e(e,t){this.day=e.day,this.dayNumber=e.dayNumber,this.dayString=e.dayString,this.calendarData=function(){var n,a,o;return e.calendar?(n=e.calendar,o=_.filter(t.$findAll(),{active:1}),a=_.findIndex(o,function(e){return e.id==n}),{pid:n,index:a}):null}}angular.module("SOGo.SchedulerUI").directive("sgCalendarDay",function(){return{restrict:"E",scope:{day:"@sgDay",dayNumber:"@sgDayNumber",dayString:"@sgDayString",calendar:"@sgCalendar"},controller:e}})}(),function(){"use strict";e.$inject=["CalendarSettings"];function e(e){return{restrict:"E",scope:{block:"=sgBlock",clickBlock:"&sgClick"},replace:!0,template:function(e,t){var n=_.has(t,"sgCalendarGhost")?"":"::";return['",'
','
",'
','
{{'+n+"block.component.c_priority}} "," {{ "+n+"block.component.summary }}",'
',' ',' ',' ',' '," ",'
',' place ',"
","
","
",'
{{ block.startHour }}
','
{{ block.endHour }}
',"
"].join("")},link:function(e,t,n){var a,o,i;_.has(n,"sgCalendarGhost")||(a=100/e.block.siblings,o=e.block.position*a,0===(i=100-(e.block.position+1)*a)&&(i=10),t.css("left",o+"%"),t.css("right",i+"%"),e.block.component&&e.block.component.c_isallday||(t.addClass("starts"+e.block.start),t.addClass("lasts"+e.block.length)),e.block.userState&&t.addClass("sg-event--"+e.block.userState),e.block.component&&(t.addClass("bg-folder"+e.block.component.pid),t.addClass("contrast-bdr-folder"+e.block.component.pid),0===e.block.component.c_isopaque&&t.addClass("sg-event--transparent"),0===e.block.component.c_status&&t.addClass("sg-event--cancelled")))}}}angular.module("SOGo.SchedulerUI").directive("sgCalendarDayBlock",e)}(),function(){"use strict";angular.module("SOGo.SchedulerUI").directive("sgCalendarDayTable",function(){return{restrict:"E",scope:{blocks:"=sgBlocks",day:"@sgDay",clickBlock:"&sgClick"},template:[" '].join("")}})}(),function(){"use strict";e.$inject=["$rootScope","$timeout","CalendarSettings","Calendar","Component"];function e(e,t,n,a,o){return{restrict:"A",require:["^sgCalendarDay","^sgCalendarScrollView"],link:function(t,i,r,s){var c,l,d,u,p;c=i[0],l=s[0],d=s[1],u=-1,i.addClass("sg-event--ghost md-whiteframe-3dp ng-hide");var h=e.$on("calendar:dragstart",function(){var e,n,a;t.block=o.$ghost,(n=l.calendarData())&&(u=n.index,e=n.pid,p=t.block.pointerHandler.originalCalendar.index);e||(e=t.block.component.pid);(a=t.block.component.blocks[0].userState)&&i.addClass("sg-event--"+a);i.addClass("bg-folder"+e)}),m=e.$on("calendar:drag",function(){var e,o,r,s,c,h,m,f;if(e=!1,a.$view&&a.$view.type==d.type){if(o="multiday-allday"===d.type,r=t.block.component.c_isallday,s=t.block.pointerHandler.currentEventCoordinates.dayNumber,c=t.block.pointerHandler.currentEventCoordinates.start,m=t.block.pointerHandler.currentEventCoordinates.duration,f=n.EventDragDayLength-c,angular.isUndefined(m))return;for((h=m)>f&&(h=f),s>-1&&(u<0&&s==l.dayNumber||s==u&&(p==u||!t.block.component.isException))&&(e=!0,o||(r||(t.block.startHour=($=c,g($))),a.$view.quarterHeight?(i.css("top",c*a.$view.quarterHeight+"px"),i.css("height",h*a.$view.quarterHeight+"px")):i.css("top",a.$view.topOffset+"px")),i.removeClass("fg-folder"+t.block.component.pid),i.removeClass("sg-event--ghost--last"),i.addClass("sg-event--ghost--first"),t.block.isFirst=!0),m-=h,s++;!e&&m&&s<=l.dayNumber;)(h=m)>n.EventDragDayLength&&(h=n.EventDragDayLength),s>-1&&s==l.dayNumber&&(e=!0,o||(i.css("top",a.$view.topOffset+"px"),a.$view.quarterHeight&&i.css("height",h*a.$view.quarterHeight+"px")),i.removeClass("sg-event--ghost--first"),i.removeClass("sg-event--ghost--last"),i.addClass("fg-folder"+t.block.component.pid)),m-=h,s++,c=0;m||(o?i.addClass("sg-event--ghost--last"):r||(t.block.endHour=(y=c,v=h,g((y+v)%n.EventDragDayLength))))}var y,v;var $;e?i.removeClass("ng-hide"):i.addClass("ng-hide")}),f=e.$on("calendar:dragend",function(){_.forEachRight(c.classList,function(e){/^bg-folder/.test(e)&&i.removeClass(e)}),i.addClass("ng-hide")});t.$on("$destroy",function(){h(),m(),f()});function g(e){var t,n,a;return t=15*e,(n=Math.floor(t/60))<10&&(n="0"+n),(a=t%60)<10&&(a="0"+a),n+":"+a}}}}angular.module("SOGo.SchedulerUI").directive("sgCalendarGhost",e)}(),function(){"use strict";e.$inject=["CalendarSettings"];function e(e){return{restrict:"E",scope:{component:"=sgComponent",clickComponent:"&sgClick"},replace:!0,template:function(e,t){return['','
",'
'," {{ ::component.c_title }}",'
',' ',' ',' ',' '," ",'
',' access_time ',"
",'
',' place ',"
","
"].join("")},link:function(e,t,n){e.component.viewable&&t.addClass("md-clickable");e.component.userstate&&t.addClass("sg-event--"+e.component.userstate);t.addClass("bg-folder"+e.component.pid),t.addClass("contrast-bdr-folder"+e.component.pid),0===e.component.c_isopaque&&t.addClass("sg-event--transparent");0===e.component.c_status&&t.addClass("sg-event--cancelled")}}}angular.module("SOGo.SchedulerUI").directive("sgCalendarListEvent",e)}(),function(){e.$inject=["$rootScope","$scope","$element","$timeout","$mdToast","$mdPanel","$mdMedia","$mdSidenav","sgConstant","Dialog","Calendar"];function e(e,t,n,a,o,i,r,s,c,d,u){var p=this;this.$onInit=function(){this.editMode=!1},this.$postLink=function(){this.clickableElement=n.find("p")[0],this.nameElements=this.clickableElement.getElementsByClassName("sg-calendar-name"),this.inputContainer=n.find("md-input-container")[0],this.inputElement=n.find("input")[0],this.moreOptionsButton=_.last(n.find("md-icon")),this.updateCalendarName()},this.updateCalendarName=function(){_.forEach(this.nameElements,function(e){e.innerHTML=p.calendar.name})},this.editFolder=function(e){e.stopPropagation(),e.preventDefault(),this.editMode=!0,this.inputElement.value=this.calendar.name,this.clickableElement.classList.add("ng-hide"),this.inputContainer.classList.remove("ng-hide"),"touchend"==e.srcEvent.type?a(function(){p.inputElement.focus(),p.inputElement.select()},200):(this.inputElement.select(),this.inputElement.focus()),this.panel&&this.panel.close()},this.saveFolder=function(e){this.inputElement.disabled||(this.calendar.name=this.inputElement.value,this.inputElement.disabled=!0,this.calendar.$rename().then(function(e){p.editMode=!1,p.inputContainer.classList.add("ng-hide"),p.clickableElement.classList.remove("ng-hide"),p.updateCalendarName()}).finally(function(){p.inputElement.disabled=!1}))},this.revertEditing=function(){this.editMode=!1,this.clickableElement.classList.remove("ng-hide"),this.inputContainer.classList.add("ng-hide"),this.inputElement.value=this.calendar.name},this.confirmDelete=function(){this.calendar.isSubscription?this.calendar.$delete().catch(function(e,t){d.alert(l('An error occured while deleting the calendar "%{0}".',p.calendar.name),l(e.error))}):d.confirm(l("Warning"),l('Are you sure you want to delete the calendar "%{0}"?',this.calendar.name),{ok:l("Delete")}).then(function(){p.calendar.$delete().catch(function(e,t){d.alert(l('An error occured while deleting the calendar "%{0}".',p.calendar.name),l(e.error))})})},this.showMenu=function(t){var n=i.newPanelPosition().relativeTo(this.moreOptionsButton).addPanelPosition(i.xPosition.ALIGN_START,i.yPosition.ALIGN_TOPS),a=i.newPanelAnimation().openFrom(this.moreOptionsButton).duration(100).withAnimation(i.animation.FADE),r={attachTo:angular.element(document.body),locals:{itemCtrl:this,calendar:this.calendar,editFolder:angular.bind(this,this.editFolder),confirmDelete:angular.bind(this,this.confirmDelete)},bindToController:!0,controller:s,controllerAs:"$menuCtrl",position:n,animation:a,targetEvent:t,templateUrl:"UIxCalendarMenu",trapFocus:!0,clickOutsideToClose:!0,escapeToClose:!0,focusOnOpen:!0};i.open(r).then(function(e){p.panel=e,e.panelEl.one("click",function(){e.close()})}),s.$inject=["mdPanelRef","$mdDialog","FileUploader","User"];function s(n,a,i,r){var s=this;this.showOnly=function(){_.forEach(u.$findAll(),function(e){s.calendar.id==e.id?e.active=1:e.active=0})},this.showAll=function(){_.forEach(u.$findAll(),function(e){e.active=1})},this.showProperties=function(){var e=this.calendar.color;a.show({templateUrl:this.calendar.id+"/properties",controller:t,controllerAs:"properties",clickOutsideToClose:!0,escapeToClose:!0,locals:{srcCalendar:this.calendar}}).catch(function(){s.calendar.color=e}),t.$inject=["$scope","$mdDialog","srcCalendar"];function t(e,t,n){var a=this;a.calendar=new u(n.$omit()),a.saveProperties=function(e){e.$valid&&(a.calendar.$save(),n.init(a.calendar.$omit()),t.hide())},a.close=function(){t.cancel()},e.$watch(function(){return a.calendar.color},function(){n.color=a.calendar.color})}},this.showLinks=function(){a.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:this.calendar.id+"/links",controller:e,controllerAs:"links",locals:{calendar:this.calendar}}),e.$inject=["$mdDialog","calendar"];function e(e,t){this.calendar=t,this.close=function(){e.hide()}}},this.importCalendar=function(){a.show({parent:angular.element(document.body),targetEvent:t,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:"UIxCalendarImportDialog",controller:n,controllerAs:"$CalendarImportDialogController",locals:{folder:this.calendar}}),n.$inject=["scope","$mdDialog","folder"];function n(t,n,a){this.uploader=new i({url:ApplicationBaseURL+[a.id,"import"].join("/"),autoUpload:!0,queueLimit:1,filters:[{name:r,fn:r}],onSuccessItem:function(t,a,i,r){var s;n.hide(),0===a.imported?s=l("No event was imported."):(s=l("A total of %{0} events were imported in the calendar.",a.imported),e.$emit("calendars:list")),o.show(o.simple().content(s).position("top right").hideDelay(3e3))},onErrorItem:function(e,t,n,a){o.show({template:["",' ',' error_outline '," "+l("An error occurred while importing calendar.")+" ","
"," "].join(""),position:"top right",hideDelay:3e3})}}),this.close=function(){n.hide()};function r(e){var t=0===e.type.indexOf("text")||/\.(ics)$/.test(e.name);return t||o.show({template:["",' ',' error_outline '," "+l("Select an iCalendar file (.ics).")+" ","
"," "].join(""),position:"top right",hideDelay:3e3}),t}}},this.share=function(){this.calendar.$acl.$users().then(function(){a.show({templateUrl:s.calendar.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:s.calendar.$acl.users,User:r,folder:s.calendar}})})}}}}angular.module("SOGo.SchedulerUI").controller("sgCalendarListItemController",e).directive("sgCalendarListItem",function(){return{restrict:"C",scope:{},bindToController:{calendar:"=sgCalendar"},template:[' ','',' ',' error ',' ',' ',"
",'',' '," ",''," drag_handle "," ",''].join(""),controller:"sgCalendarListItemController",controllerAs:"$ctrl"}})}(),function(){"use strict";angular.module("SOGo.SchedulerUI").directive("sgCalendarMonthDay",function(){return{restrict:"E",scope:{blocks:"=sgBlocks",day:"@sgDay",clickBlock:"&sgClick"},template:[" '].join("")}})}(),function(){"use strict";angular.module("SOGo.SchedulerUI").directive("sgCalendarMonthEvent",function(){return{restrict:"E",scope:{block:"=sgBlock",clickBlock:"&sgClick"},replace:!0,template:function(e,t){var n=_.has(t,"sgCalendarGhost")?"":"::";return['','
",'
{{ '+n+"block.component.startHour }} ",'
{{'+n+"block.component.c_priority}} "," {{ "+n+"block.component.summary }}",'
',' ',' ',' ',' '," ","
"].join("")},link:function(e,t,n){_.has(n,"sgCalendarGhost")||(e.block.userState&&t.addClass("sg-event--"+e.block.userState),e.block.component&&(t.addClass("bg-folder"+e.block.component.pid),0===e.block.component.c_isopaque&&t.addClass("sg-event--transparent"),0===e.block.component.c_status&&t.addClass("sg-event--cancelled")))}}})}(),function(){"use strict";e.$inject=["$rootScope","$window","$document","$q","$timeout","$mdGesture","Calendar","Component","Preferences"];function e(e,n,a,o,i,r,s,c,l){return{restrict:"A",scope:{type:"@sgCalendarScrollView"},controller:t,link:function(t,a,o,r){var d,u,p=!1;d=null,u=t.type,p="multicolumndayview"==a.attr("sg-view"),r.isMultiColumn=p,i(function(){if(d=new h(a,u),"monthly"!=u){var e,t,n;l.defaults.SOGoDayStartTime&&(e=l.defaults.SOGoDayStartTime.split(":"),t=document.getElementById("hour"+parseInt(e[0])),n=parseInt(e[1])*d.quarterHeight,d.element.scrollTop=t.offsetTop+n)}r.quarterHeight=d.quarterHeight}),t.$on("$destroy",function(){d&&d.$destroy()});function h(t,a){this.$element=t,this.element=t[0],this.type=a,this.quarterHeight=this.getQuarterHeight(),this.scrollStep=6*this.quarterHeight,this.dayNumbers=this.getDayNumbers(),this.maxX=this.getMaxColumns(),this.deregisterDragStart=e.$on("calendar:dragstart",angular.bind(this,this.onDragStart)),this.deregisterDragStop=e.$on("calendar:dragend",angular.bind(this,this.onDragEnd)),this.bindedUpdateCoordinates=angular.bind(this,this.updateCoordinates),this.bindedUpdateFromPointerHandler=angular.bind(this,this.updateFromPointerHandler),this.updateCoordinates(),angular.element(n).on("resize",this.bindedUpdateCoordinates)}h.prototype={$destroy:function(){this.deregisterDragStart(),this.deregisterDragStop(),this.$element.off("mousemove",this.bindedUpdateFromPointerHandler),angular.element(n).off("resize",this.bindedUpdateCoordinates)},onDragStart:function(){this.$element.on("mousemove",this.bindedUpdateFromPointerHandler),this.updateCoordinates(),this.updateFromPointerHandler()},onDragEnd:function(){this.$element.off("mousemove",this.bindedUpdateFromPointerHandler),s.$view=null},getQuarterHeight:function(){var e,t,n=null;return e=document.getElementById("hour0"),t=document.getElementById("hour23"),e&&t&&(n=(t.offsetTop-e.offsetTop)/92),n},getDayDimensions:function(e){var t,n,a,o,i,r,s;return n=t=a=o=0,(i=this.element.getElementsByClassName("day")).length>0&&(n=(r=i[0].getBoundingClientRect()).height,t=r.width,a=r.left-e,(s=i[0].getElementsByClassName("sg-calendar-tile-header")).length>0&&(o=s[0].clientHeight)),{height:n,width:t,offset:{left:a,top:o}}},getDayNumbers:function(){var e;return e=this.element.getElementsByTagName("sg-calendar-day"),_.map(e,function(e,t){return p?t:parseInt(e.attributes["sg-day-number"].value)})},getMaxColumns:function(){var e,t=0;return"monthly"==this.type?(e=this.element.getElementsByTagName("md-grid-list")[0],t=parseInt(e.attributes["md-cols"].value)-1):t=this.element.getElementsByClassName("day").length-1,t},updateCoordinates:function(){var e,t;e=this.element.getBoundingClientRect(),t=this.getDayDimensions(e.left),angular.extend(this,{coordinates:{x:e.left,y:e.top},dayHeight:t.height,dayWidth:t.width,daysOffset:t.offset.left,topOffset:t.offset.top})},updateFromPointerHandler:function(){var e,t,n,a,o,i;e=c.$ghost.pointerHandler,this.coordinates&&e&&(t=e.getContainerBasedCoordinates(this))&&(s.$view=this,n=(new Date).getTime(),(!this.lastScroll||n>this.lastScroll+100)&&(this.lastScroll=n,(a=t.y-this.scrollStep)<0?(a<(o=-this.element.scrollTop)&&(a=o),this.element.scrollTop+=a):(i=(a=t.y+this.scrollStep)-this.element.clientHeight)>0&&(this.element.scrollTop+=i)))}}}}}t.$inject=["$scope"];function t(e){this.type=e.type}angular.module("SOGo.SchedulerUI").directive("sgCalendarScrollView",e)}(),function(){"use strict";angular.module("SOGo.SchedulerUI").directive("sgCategoryStylesheet",function(){return{restrict:"E",require:"ngModel",scope:{ngModel:"="},replace:!0,template:['"].join("")}})}(),function(){"use strict";e.$inject=["$rootScope","$timeout","$log","Preferences","Calendar","CalendarSettings","Component"];function e(e,t,n,a,o,i,r){return{restrict:"CA",require:"^sgCalendarDay",link:function(s,c,d,u){if(s.block){if(!s.block.component.editable||s.block.userState)return void c.removeClass("sg-draggable-calendar-block");!function(){var e,t,n,a,o,i,r,l,d,u;if(s.block.length<3)return;e=s.block.component,t=s.block.dayIndex,n=_.findIndex(e.blocks,["dayIndex",t]),a=0===n,o=n===e.blocks.length-1,(i=angular.element('
')).addClass("bdr-folder"+e.pid),e.c_isallday||"SG-CALENDAR-MONTH-DAY"===c[0].parentNode.tagName?(a&&(r=angular.element('
').append(i),c.append(r)),o&&(l=angular.element('
').append(i.clone()),c.append(l))):(a&&(d=angular.element('
').append(i),c.append(d)),o&&(u=angular.element('
').append(i.clone()),c.append(u)))}()}c.on("mousedown",p),s.$on("$destroy",function(){c.off("mousedown",p),c.off("mousemove",h)});function p(e){var t,n,a,o;e.stopPropagation(),e.target.scrollHeight>e.target.clientHeight+1&&(a=e.target.getBoundingClientRect(),o=a.left+a.width-18,e.pageX>o)||(t="move-event",s.block&&s.block.component?"dragGrip-top"==e.target.className||"dragGrip-left"==e.target.className?t="change-start":"dragGrip-bottom"!=e.target.className&&"dragGrip-right"!=e.target.className||(t="change-end"):t="change-end",(n=new y(t)).initFromEvent(e),r.$ghost.pointerHandler=n,angular.element(document).one("mouseup",m),angular.element(document).on("mousemove",h))}function h(e){var n=r.$ghost.pointerHandler;t(function(){n.updateFromEvent(e)})}function m(t){var n,a;n=s.block,a=r.$ghost.pointerHandler,angular.element(document).off("mousemove",h),a.dragHasStarted&&(e.$emit("calendar:dragend"),a.dragHasStarted=!1),n&&n.component&&_.forEach(n.component.blocks,function(e){e.dragging=!1})}function f(){}f.prototype={x:-1,y:-1,getDelta:function(e){var t=new f;return t.x=this.x-e.x,t.y=this.y-e.y,o.$view&&(t.days=o.$view.dayNumbers[this.x]-o.$view.dayNumbers[e.x]),t},getDistance:function(e){var t=this.getDelta(e);return Math.sqrt(t.x*t.x+t.y*t.y)},clone:function(){var e=new f;return e.x=this.x,e.y=this.y,e}};function g(e){this.setEventType(e)}g.prototype={dayNumber:-1,weekDay:-1,start:-1,duration:-1,eventType:null,setEventType:function(e){this.eventType=e},initFromBlock:function(e){var t=-1;"monthly"===this.eventType?(this.start=0,this.duration=e.component.blocks.length*i.EventDragDayLength):(this.start=e.component.blocks[0].start,this.duration=_.sumBy(e.component.blocks,function(e){var n,a;return a=e.dayNumber,n=t<0?0:a-t-1,t=a,e.length+n*i.EventDragDayLength}))},initFromCalendar:function(e){this.dayNumber=e},getDelta:function(e){var t=new g;return t.dayNumber=this.dayNumber-e.dayNumber,t.start=this.start-e.start,t.duration=this.duration-e.duration,t},_quartersToHM:function(e){var t=15*e,n=Math.floor(t/60);n<10&&(n="0"+n);var a=t%60;return a<10&&(a="0"+a),n+":"+a},getStartTime:function(){return this._quartersToHM(this.start)},getEndTime:function(){var e=(this.start+this.duration)%i.EventDragDayLength;return this._quartersToHM(e)},clone:function(){var e=new g;return e.dayNumber=this.dayNumber,e.start=this.start,e.duration=this.duration,e}};function y(e){this.dragMode=e}y.prototype={originalCoordinates:null,currentCoordinates:null,originalViewCoordinates:null,currentViewCoordinates:null,originalEventCoordinates:null,currentEventCoordinates:null,originalCalendar:null,dragHasStarted:!1,getEventViewCoordinates:null,initFromBlock:function(e){this.currentEventCoordinates=new g(this.eventType),this.originalEventCoordinates=new g(this.eventType),this.originalEventCoordinates.initFromBlock(e)},initFromEvent:function(e){this.currentCoordinates=new f,this.updateFromEvent(e),this.originalCoordinates=this.currentCoordinates.clone()},initFromCalendar:function(e){this.originalCalendar=e,this.currentEventCoordinates.initFromCalendar(e.index),this.originalEventCoordinates.initFromCalendar(e.index)},updateFromEvent:function(t){if(this.currentCoordinates.x=t.pageX,this.currentCoordinates.y=t.pageY,this.dragHasStarted&&o.$view){var i=this.getEventViewCoordinates(o.$view);this.originalViewCoordinates||(this.originalViewCoordinates=this.getEventViewCoordinates(o.$view,this.originalCoordinates),r.$ghost.component.isNew&&(this.setTimeFromQuarters(r.$ghost.component.start,this.originalViewCoordinates.y),n.debug("new event start date "+r.$ghost.component.start))),this.currentViewCoordinates&&i&&i.x==this.currentViewCoordinates.x&&i.y==this.currentViewCoordinates.y||(this.currentViewCoordinates=i,this.originalViewCoordinates&&(i||(this.currentViewCoordinates=this.originalViewCoordinates.clone()),this.updateEventCoordinates()))}else if(this.originalCoordinates&&this.currentCoordinates&&!this.dragHasStarted){var d=this.getDistance();d>3&&(this.dragHasStarted=!0,function(t){var i,d,p,h,m,f,g,y,v;p=c.hasClass("clickableHourCell"),h="SG-CALENDAR-MONTH-DAY"==c[0].parentNode.tagName||c.hasClass("clickableDayCell"),v=u.calendarData(),s.block&&s.block.component?i=s.block:(m=u.dayString.parseDate(a.$mdDateLocaleProvider,"%Y-%m-%e"),f={type:"appointment",pid:v?v.pid:o.$defaultCalendar(),summary:l("New Event"),startDate:m,isAllDay:p?0:1},g=new r(f),(i={component:g,dayNumber:u.dayNumber,length:0}).component.blocks=[i]);d="multiday",h?d="monthly":i.component.c_isallday&&(d="multiday-allday");_.forEach(i.component.blocks,function(e){e.dragging=!0}),(y=r.$ghost.pointerHandler).prepareWithEventType(d),y.initFromBlock(i),v&&y.initFromCalendar(v);r.$ghost.component=i.component,n.debug("emit calendar:dragstart "+d),e.$emit("calendar:dragstart")}())}},updateEventCoordinates:function(){var t,a=this.currentViewCoordinates.getDelta(this.originalViewCoordinates),r=a.days*i.EventDragDayLength+a.y;n.debug("quarters delta "+r),angular.isUndefined(this.originalEventCoordinates.start)?(this.originalEventCoordinates.dayNumber=o.$view.dayNumbers[this.originalViewCoordinates.x],this.originalEventCoordinates.start=this.originalViewCoordinates.y):this.originalEventCoordinates.dayNumber<0&&(this.originalEventCoordinates.dayNumber=o.$view.dayNumbers[s.block.component.blocks[0].dayIndex]),this.currentEventCoordinates.dayNumber=this.originalEventCoordinates.dayNumber,"move-event"==this.dragMode?(this.currentEventCoordinates.start=this.originalEventCoordinates.start+r,this.currentEventCoordinates.duration=this.originalEventCoordinates.duration):"change-start"==this.dragMode?(t=this.originalEventCoordinates.duration-r)>0?(this.currentEventCoordinates.start=this.originalEventCoordinates.start+r,this.currentEventCoordinates.duration=t):t<0&&(this.currentEventCoordinates.start=this.originalEventCoordinates.start+this.originalEventCoordinates.duration,this.currentEventCoordinates.duration=-t):"change-end"==this.dragMode&&((t=this.originalEventCoordinates.duration+r)>0?(this.currentEventCoordinates.start=this.originalEventCoordinates.start,this.currentEventCoordinates.duration=t):t<0&&(this.currentEventCoordinates.start=this.originalEventCoordinates.start+t,this.currentEventCoordinates.duration=-t));var c;this.currentEventCoordinates.start<0?(c=Math.ceil(-this.currentEventCoordinates.start/i.EventDragDayLength),this.currentEventCoordinates.start+=c*i.EventDragDayLength,this.currentEventCoordinates.dayNumber-=c):this.currentEventCoordinates.start>=i.EventDragDayLength&&(c=Math.floor(this.currentEventCoordinates.start/i.EventDragDayLength),this.currentEventCoordinates.start-=c*i.EventDragDayLength,this.currentEventCoordinates.dayNumber+=c),n.debug("event coordinates "+JSON.stringify(this.currentEventCoordinates)),e.$emit("calendar:drag")},getContainerBasedCoordinates:function(e,t){var n=t||this.currentCoordinates,a=n.getDelta(e.coordinates),o=e.element;return(a.xo.clientWidth||a.y<0||a.y>o.clientHeight)&&(a=null),a},prepareWithEventType:function(e){var t={multiday:this.getEventMultiDayViewCoordinates,"multiday-allday":this.getEventMultiDayAllDayViewCoordinates,monthly:this.getEventMonthlyViewCoordinates,unknown:null},n=t[e];this.eventType=e,this.getEventViewCoordinates=n},getEventMultiDayViewCoordinates:function(e,t){var n=this.getEventMultiDayAllDayViewCoordinates(e,t);if(n){var a=e.quarterHeight,o=this.getContainerBasedCoordinates(e,t);o.y+=e.element.scrollTop,n.y=Math.floor((o.y-i.EventDragHorizontalOffset)/a);var r=i.EventDragDayLength-1;n.y<0?n.y=0:n.y>r&&(n.y=r)}return n},getEventMultiDayAllDayViewCoordinates:function(e,t){var n,a=this.getContainerBasedCoordinates(e,t);if(a){n=new f;var i=e.dayWidth,r=e.daysOffset;n.x=Math.floor((a.x-r)/i);var s=0,c=o.$view.maxX;if("move-event"!=this.dragMode){var l=u.calendarData();l&&(s=c=l.index)}n.xc&&(n.x=c),n.y=0}else n=null;return n},getEventMonthlyViewCoordinates:function(e,t){var n,a=this.getContainerBasedCoordinates(e,t);if(a){n=new f;var o=e.maxX,i=e.dayWidth,r=e.daysOffset,s=e.dayHeight,c=Math.floor((a.y-0)/s);c<0&&(c=0),n.x=Math.floor((a.x-r)/i),n.x<0?n.x=0:n.x>o&&(n.x=o),n.x+=(o+1)*c,n.y=0}else n=null;return n},getDistance:function(){return this.currentCoordinates.getDistance(this.originalCoordinates)},setTimeFromQuarters:function(e,t){var n,a;n=Math.floor(t/4),a=t%4*15,e.setHours(n,a)}}}}}angular.module("SOGo.SchedulerUI").directive("sgDraggableCalendarBlock",e)}(),function(){"use strict";e.$inject=["$scope","$element","$timeout"];function e(e,t,n){var a,o=this,i=t.controller("sgCalendarScrollView");e.nowDay=null,e.lineElement=null,e.updateLine=function(r){var s=new Date,c=s.getDayString(),l=s.getHours(),d=4*e.quarterHeight,u=s.getMinutes(),p=e.quarterHeight/15,h=parseInt(l*d+u*p-1);(r||c!=e.nowDay)&&(e.lineElement&&e.lineElement.remove(),e.lineElement=function(e,n){var a=angular.element("");i.isMultiColumn?n&&n[0].attributes["sg-day"].value==e&&t.append(a):_.forEach(n,function(t){t.attributes["sg-day"].value==e&&angular.element(t).find("div").eq(0).append(a)});return a}(c,e.days),e.nowDay=c);e.lineElement&&(e.lineElement.css("top",h+"px"),a=n(angular.bind(o,e.updateLine),6e4))},e.$on("$destroy",function(){a&&n.cancel(a)})}angular.module("SOGo.SchedulerUI").directive("sgNowLine",function(){return{restrict:"C",require:"^^sgCalendarScrollView",link:function(e,t,n,a){function o(){return t.find("sg-calendar-day")}var i=e.$watch(function(){return a.quarterHeight},function(t){if(t){i(),e.quarterHeight=t;var n=e.$watch(o,function(t){t.length&&(n(),e.days=t,e.updateLine())})}})},controller:e}})}();
//# sourceMappingURL=Scheduler.services.js.map
\ No newline at end of file
diff --git a/UI/WebServerResources/js/Scheduler.services.js.map b/UI/WebServerResources/js/Scheduler.services.js.map
index 9a4d3e844..d9920f403 100644
--- a/UI/WebServerResources/js/Scheduler.services.js.map
+++ b/UI/WebServerResources/js/Scheduler.services.js.map
@@ -1 +1 @@
-{"version":3,"sources":["Scheduler/Calendar.service.js","Scheduler/Component.service.js","Scheduler/CalendarController.js","Scheduler/CalendarListController.js","Scheduler/CalendarsController.js","Scheduler/ComponentController.js","Scheduler/sgCalendarDay.directive.js","Scheduler/sgCalendarDayBlock.directive.js","Scheduler/sgCalendarDayTable.directive.js","Scheduler/sgCalendarGhost.directive.js","Scheduler/sgCalendarListEvent.directive.js","Scheduler/sgCalendarListItem.directive.js","Scheduler/sgCalendarMonthDay.directive.js","Scheduler/sgCalendarMonthEvent.directive.js","Scheduler/sgCalendarScrollView.directive.js","Scheduler/sgCategoryStylesheet.directive.js","Scheduler/sgDraggableCalendarBlock.directive.js","Scheduler/sgNowLine.directive.js"],"names":["Calendar","futureCalendarData","this","init","name","id","newCalendarData","$$resource","create","$unwrap","$factory","$q","$timeout","$log","Settings","Resource","Preferences","Component","Acl","angular","extend","activeUser","$Preferences","$Component","$$Acl","$view","module","e","value","EventDragDayLength","EventDragHorizontalOffset","ConflictHTTPErrorCode","factory","$defaultCalendar","calendar","defaults","SOGoDefaultCalendar","_","find","$findAll","active","$add","list","sibling","isWebCalendar","$webcalendars","isSubscription","$subscriptions","$calendars","findIndex","o","i","localeCompare","push","splice","settings","FoldersOrder","saveFoldersOrder","flatMap","$reloadAll","data","writable","_this","forEach","isUndefined","fetch","then","calendars","union","filter","isOwned","acls","objectCreator","calendarData","group","owner","login","$get","$getIndex","indexOf","map","$subscribe","uid","path","userResource","$addWebCalendar","url","d","defer","urls","webCalendarURL","reject","post","isEditable","isRemote","debug","JSON","stringify","undefined","resolve","response","status","promise","reloadWebCalendars","promises","$error","l","statusText","all","$deleteComponents","components","component","isDefined","pid","uids","saveFoldersActivation","ids","request","folders","prototype","color","$acl","isSuperUser","$shadowData","$omit","$id","when","$futureCalendarData","getClassName","base","$rename","$save","$delete","remove","$reset","key","save","error","setCredentials","username","password","export","options","type","filename","download","$setActivation","$getComponent","componentId","recurrenceId","$find","isError","isObject","futureComponentData","newComponentData","newguid","isNew","$rootScope","Component_STATUS","User","Card","Gravatar","STATUS","$settings","$User","$Card","$gravatar","timeFormat","$query","search","$queryEvents","sort","asc","filterpopup","$queryTasks","$refreshTimeout","$ghost","EventsFilterState","TasksFilterState","EventsSortingState","parseInt","TasksSortingState","show_completed","ShowCompletedTasks","$categories","SOGoCalendarCategoriesColors","SOGoTimeFormat","constant","NOT_LOADED","DELAYED_LOADING","LOADING","LOADED","DELAYED_MS","$selectedCount","count","$events","event","selected","length","$tasks","task","$startRefreshTimeout","cancel","refreshViewCheck","SOGoRefreshViewCheck","f","bind","$emit","timeInterval","$isLoading","$loaded","$filter","otherType","now","Date","day","getDate","month","getMonth","year","getFullYear","queryKey","capitalize","params","dirty","keys","$unwrapCollection","calendarId","occurrenceId","encodeURIComponent","join","filterCategories","query","re","RegExp","category","saveSelectedList","componentType","$eventsBlocksForView","view","date","firstDayOfWeek","viewAction","startDate","endDate","SOGoFirstDayOfWeek","beginOfWeek","setTime","getTime","addDays","setDate","setMonth","endOfWeek","$eventsBlocks","j","dayDates","dayNumbers","deferred","toLowerCase","sd","getDayString","ed","views","reduceComponent","associateComponent","objects","eventData","componentData","zipObject","eventsFields","start","c_startdate","hour","getHourString","blocks","block","nbr","isFirst","$views","viewIndex","viewData","allDayBlocks","reduce","events","flatten","days","dayIndex","dayNumber","calendarName","fields","invokeMap","monthData","dayData","$resetGhost","pointerHandler","startHour","endHour","$parseDate","dateString","time","substring","split","no_time","categories","repeat","alarm","action","quantity","unit","reference","relation","delta","isString","setMinutes","Math","round","getMinutes","end","minutesTo","setDelta","dueDate","due","completedDate","completed","c_category","$isRecurrent","byDayMask","occurrence","frequency","byday","toString","dates","rdate","rdates","interval","monthdays","months","until","$hasCustomRepeat","hasCustomRepeat","classification","match","exec","SOGoCalendarDefaultReminder","$hasAlarm","M","H","D","W","sendAppointmentNotifications","SOGoAppointmentSendEMailNotifications","destinationCalendar","attendees","attendee","image","email","updateFreeBusy","initOrganizer","results","organizer","cn","c_email","updateFreeBusyAttendee","isReadOnly","isEditableOccurrence","isInvitation","userHasRSVP","isInvitationOccurrence","showPercentComplete","percentComplete","enablePercentComplete","coversFreeBusy","quarter","freebusy","updateFreeBusyCoverage","roundedStart","roundedEnd","startQuarter","endQuarter","daysUpTo","index","hourKey","currentDay","dayKey","getHours","beginOfDay","addMinutes","resource","domain","sday","eday","isMSExchange","c_folder","addAttendee","card","organizerCalendar","$isList","expandable","container","c_name","listId","refs","ref","c_cn","$preferredEmail","role","partstat","c_uid","$avatarIcon","c_domain","ismsexchange","hasAttendee","emails","deleteAttendee","currentAttendee","canRemindAttendeesByEmail","addAttachUrl","attachUrl","attachUrls","deleteAttachUrl","$addDueDate","toISOString","$deleteDueDate","$addStartDate","$deleteStartDate","$addRecurrenceDate","$deleteRecurrenceDate","$reply","reply","delegatedTo","$adjust","every","values","v","extraAttributes","dlp","$mdDateLocaleProvider","format","startTime","endTime","dueTime","stringWithSeparator","occurrenceOnly","$futureComponentData","copy","repeatDescription","localizedString","toUpperCase","alarmDescription","copyTo","destination","moveTo","CalendarController","$inject","$scope","$state","$stateParams","sgHotkeys","stateEventsBlocks","deregisterCalendarsList","vm","hotkeys","expandedAllDays","selectedDate","asDate","toggleAllDays","changeDate","changeView","$onInit","createHotkey","description","callback","args","_goToPeriod","registerHotkey","_formatDate","$on","updateView","deregisterHotkey","$event","direction","setHours","$dateFormat","replace","newDate","element","currentTarget","attr","go","controller","CalendarListController","$mdDialog","focus","Dialog","CalendarSettings","Alarm","sortLabels","title","location","priority","tasks","selectedList","selectComponentType","unselectComponents","mode","multiple","selectAll","searchMode","toggleComponentSelection","preventDefault","stopPropagation","confirmDeleteSelectedComponents","confirm","ok","openEvent","openComponent","openTask","newComponent","filteredBy","field","sortedBy","reload","finally","cancelSearch","SelectedList","updateComponentFromGhost","viewable","templateUrl","show","parent","document","body","targetEvent","clickOutsideToClose","escapeToClose","controllerAs","locals","stateComponent","baseComponent","coordinates","calendarNumber","activeCalendars","currentEventCoordinates","summary","isAllDay","duration","catch","getDelta","originalEventCoordinates","originalCalendar","isException","getAlarms","onComponentAdjustError","template","RecurrentComponentDialogController","updateThisOccurrence","hide","updateAllOccurrences","message","AttendeeConflictDialogController","conflictError","ignoreConflicts","ascending","CalendarsController","$window","$mdToast","service","newCalendar","ev","prompt","UserLogin","addWebCalendar","inputType","WebCalendarAuthDialogController","scope","parts","hostname","formatted","authenticate","form","$valid","required","reason","$setValidity","subscribeToFolder","simple","content","position","hideDelay","sortableMode","toggleSortableMode","resetSort","sortableCalendars","scrollableContainer","containment","orderChanged","accept","sourceItemHandleScope","destSortableScope","destItemScope","sortableScope","SOGoCalendarCategories","asCSSIdentifier","$watch","pick","newList","oldList","commonList","intersectionBy","oldObject","isEqual","ComponentController","AddressBook","Account","calendarService","close","highPriority","cardFilter","$filterAll","newMessageWithAllRecipients","recipients","_newMessage","newMessageWithRecipient","edit","editAllOccurrences","replyAllOccurrences","deleteOccurrence","deleteAllOccurrences","toggleRawSource","ComponentRawSourceDialogController","copySelectedComponent","moveSelectedComponent","accounts","account","$getMailboxes","mailboxes","$newMessage","editable","to","subject","stateAccount","stateMessage","ComponentEditorController","oldStartDate","oldEndDate","showRecurrenceEditor","toggleRecurrenceEditor","recurrenceMonthDaysAreRequired","showAttendeesEditor","toggleAttendeesEditor","changeFrequency","changeCalendar","$cards","address","emailRE","createCard","str","searchText","trim","charCodeAt","test","charAt","removeAttendee","$setDirty","priorityLevel","changeAlarmRelation","onAlarmChange","reset","attendeeConflictError","attendeesEditor","getDays","hours","addStartDate","removeStartDate","addDueDate","removeDueDate","adjustStartTime","valueOf","adjustEndTime","adjustDueTime","alarmRelation","$setPristine","sgCalendarDayController","dayString","directive","restrict","sgCalendarDayBlock","clickBlock","tElem","tAttrs","p","has","link","iElement","attrs","pc","left","right","siblings","css","c_isallday","addClass","userState","c_isopaque","c_status","sgCalendarGhost","require","ctrls","domElement","calendarDayCtrl","scrollViewCtrl","originalCalendarNumber","deregisterDragStart","deregisterDrag","showGhost","isRelative","durationLeft","maxDuration","quartersToHM","quarterHeight","topOffset","removeClass","deregisterDragEnd","forEachRight","classList","c","quarters","minutes","mins","floor","sgCalendarListEvent","clickComponent","userstate","sgCalendarListItemController","$element","$mdPanel","$mdMedia","$mdSidenav","sgConstant","$ctrl","editMode","$postLink","clickableElement","nameElements","getElementsByClassName","inputContainer","inputElement","moreOptionsButton","last","updateCalendarName","innerHTML","editFolder","add","srcEvent","select","panel","saveFolder","disabled","revertEditing","confirmDelete","alert","showMenu","panelPosition","newPanelPosition","relativeTo","addPanelPosition","xPosition","ALIGN_START","yPosition","ALIGN_TOPS","panelAnimation","newPanelAnimation","openFrom","withAnimation","animation","FADE","config","attachTo","itemCtrl","bindToController","MenuController","trapFocus","focusOnOpen","open","panelRef","panelEl","one","mdPanelRef","FileUploader","$menuCtrl","showOnly","showAll","showProperties","PropertiesDialogController","srcCalendar","saveProperties","showLinks","LinksDialogController","importCalendar","CalendarImportDialogController","folder","uploader","ApplicationBaseURL","autoUpload","queueLimit","filters","filterByExtension","fn","onSuccessItem","item","headers","msg","imported","onErrorItem","isTextFile","share","$users","usersWithACL","users","sgCalendarScrollView","$document","$mdGesture","sgCalendarScrollViewController","isMultiColumn","sgScrollView","hourCell","quartersOffset","SOGoDayStartTime","getElementById","scrollTop","offsetTop","$destroy","getQuarterHeight","scrollStep","getDayNumbers","maxX","getMaxColumns","onDragStart","deregisterDragStop","onDragEnd","bindedUpdateCoordinates","updateCoordinates","bindedUpdateFromPointerHandler","updateFromPointerHandler","on","off","hour0","hour23","height","getDayDimensions","viewLeft","width","leftOffset","nodes","domRect","tileHeader","getBoundingClientRect","clientHeight","offset","top","getElementsByTagName","el","attributes","mdGridList","max","dayDimensions","x","y","dayHeight","dayWidth","daysOffset","pointerCoordinates","scrollY","minY","getContainerBasedCoordinates","lastScroll","ngModel","sgDraggableCalendarBlock","blockIndex","isFirstBlock","isLastBlock","dragGrip","leftGrip","rightGrip","topGrip","bottomGrip","parentNode","tagName","append","clone","initGrips","onDragDetect","onDrag","dragMode","rect","scrollableZone","target","scrollHeight","pageX","className","SOGoEventDragPointerHandler","initFromEvent","updateFromEvent","pointer","dragHasStarted","b","dragging","SOGoCoordinates","otherCoordinates","getDistance","sqrt","SOGoEventDragEventCoordinates","eventType","setEventType","weekDay","initFromBlock","prevDayNumber","sumBy","currentDayNumber","initFromCalendar","_quartersToHM","getStartTime","getEndTime","originalCoordinates","currentCoordinates","originalViewCoordinates","currentViewCoordinates","getEventViewCoordinates","pageY","newEventCoordinates","setTimeFromQuarters","updateEventCoordinates","distance","isHourCell","isMonthly","newData","hasClass","parseDate","prepareWithEventType","dragStart","newDuration","deltaQuarters","deltaDays","ceil","clientWidth","methods","multiday","getEventMultiDayViewCoordinates","multiday-allday","getEventMultiDayAllDayViewCoordinates","monthly","getEventMonthlyViewCoordinates","unknown","method","pxCoordinates","maxY","minX","daysY","sgNowLineController","updater","nowDay","lineElement","updateLine","force","hourHeight","minuteHeight","$lineElement","dayElement","eq","_addLine","iAttr","sgCalendarScrollViewCtrl","_getDays","_unwatchView","_unwatchDays"],"mappings":"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","file":"Scheduler.services.js"}
\ No newline at end of file
+{"version":3,"sources":["Scheduler/Calendar.service.js","Scheduler/Component.service.js","Scheduler/CalendarController.js","Scheduler/CalendarListController.js","Scheduler/CalendarsController.js","Scheduler/ComponentController.js","Scheduler/sgCalendarDay.directive.js","Scheduler/sgCalendarDayBlock.directive.js","Scheduler/sgCalendarDayTable.directive.js","Scheduler/sgCalendarGhost.directive.js","Scheduler/sgCalendarListEvent.directive.js","Scheduler/sgCalendarListItem.directive.js","Scheduler/sgCalendarMonthDay.directive.js","Scheduler/sgCalendarMonthEvent.directive.js","Scheduler/sgCalendarScrollView.directive.js","Scheduler/sgCategoryStylesheet.directive.js","Scheduler/sgDraggableCalendarBlock.directive.js","Scheduler/sgNowLine.directive.js"],"names":["Calendar","futureCalendarData","this","init","name","id","newCalendarData","$$resource","create","$unwrap","$factory","$q","$timeout","$log","Settings","Resource","Preferences","Component","Acl","angular","extend","activeUser","$Preferences","$Component","$$Acl","$view","module","e","value","EventDragDayLength","EventDragHorizontalOffset","ConflictHTTPErrorCode","factory","$defaultCalendar","calendar","defaults","SOGoDefaultCalendar","_","find","$findAll","active","$add","list","sibling","isWebCalendar","$webcalendars","isSubscription","$subscriptions","$calendars","findIndex","o","i","localeCompare","push","splice","settings","FoldersOrder","saveFoldersOrder","flatMap","$reloadAll","data","writable","_this","forEach","isUndefined","fetch","then","calendars","union","filter","isOwned","acls","objectCreator","calendarData","group","owner","login","$get","$getIndex","indexOf","map","$subscribe","uid","path","userResource","$addWebCalendar","url","d","defer","urls","webCalendarURL","reject","post","isEditable","isRemote","debug","JSON","stringify","undefined","resolve","response","status","promise","reloadWebCalendars","promises","$error","l","statusText","all","$deleteComponents","components","component","isDefined","pid","uids","saveFoldersActivation","ids","request","folders","prototype","color","$acl","isSuperUser","$shadowData","$omit","$id","when","$futureCalendarData","getClassName","base","$rename","$save","$delete","remove","$reset","key","save","error","setCredentials","username","password","export","options","type","filename","open","$setActivation","$getComponent","componentId","recurrenceId","$find","isError","isObject","futureComponentData","newComponentData","newguid","isNew","$rootScope","Component_STATUS","User","Card","Gravatar","STATUS","$settings","$User","$Card","$gravatar","timeFormat","$query","search","$queryEvents","sort","asc","filterpopup","$queryTasks","$refreshTimeout","$ghost","EventsFilterState","TasksFilterState","EventsSortingState","parseInt","TasksSortingState","show_completed","ShowCompletedTasks","$categories","SOGoCalendarCategoriesColors","SOGoTimeFormat","constant","NOT_LOADED","DELAYED_LOADING","LOADING","LOADED","DELAYED_MS","$selectedCount","count","$events","event","selected","length","$tasks","task","$startRefreshTimeout","cancel","refreshViewCheck","SOGoRefreshViewCheck","f","bind","$emit","timeInterval","$isLoading","$loaded","$filter","otherType","now","Date","day","getDate","month","getMonth","year","getFullYear","queryKey","capitalize","params","dirty","keys","$unwrapCollection","calendarId","occurrenceId","encodeURIComponent","join","filterCategories","query","re","RegExp","category","saveSelectedList","componentType","$eventsBlocksForView","view","date","firstDayOfWeek","viewAction","startDate","endDate","SOGoFirstDayOfWeek","beginOfWeek","setTime","getTime","addDays","setDate","setMonth","endOfWeek","$eventsBlocks","j","dayDates","dayNumbers","deferred","toLowerCase","sd","getDayString","ed","views","reduceComponent","associateComponent","objects","eventData","componentData","zipObject","eventsFields","start","c_startdate","hour","getHourString","blocks","block","nbr","isFirst","$views","viewIndex","viewData","allDayBlocks","reduce","events","flatten","days","dayIndex","dayNumber","calendarName","fields","invokeMap","monthData","dayData","$resetGhost","pointerHandler","startHour","endHour","$parseDate","dateString","time","substring","split","no_time","categories","repeat","alarm","action","quantity","unit","reference","relation","delta","isString","setMinutes","Math","round","getMinutes","end","minutesTo","setDelta","dueDate","due","completedDate","completed","c_category","$isRecurrent","byDayMask","occurrence","frequency","byday","toString","dates","rdate","rdates","interval","monthdays","months","until","$hasCustomRepeat","hasCustomRepeat","classification","match","exec","SOGoCalendarDefaultReminder","$hasAlarm","M","H","D","W","sendAppointmentNotifications","SOGoAppointmentSendEMailNotifications","destinationCalendar","attendees","attendee","image","email","updateFreeBusy","initOrganizer","results","organizer","cn","c_email","updateFreeBusyAttendee","isReadOnly","isEditableOccurrence","isInvitation","userHasRSVP","isInvitationOccurrence","showPercentComplete","percentComplete","enablePercentComplete","coversFreeBusy","quarter","freebusy","updateFreeBusyCoverage","roundedStart","roundedEnd","startQuarter","endQuarter","daysUpTo","index","hourKey","currentDay","dayKey","getHours","beginOfDay","addMinutes","resource","domain","sday","eday","isMSExchange","c_folder","addAttendee","card","organizerCalendar","$isList","expandable","container","c_name","listId","refs","ref","c_cn","$preferredEmail","role","partstat","c_uid","$avatarIcon","c_domain","ismsexchange","hasAttendee","emails","deleteAttendee","currentAttendee","canRemindAttendeesByEmail","addAttachUrl","attachUrl","attachUrls","deleteAttachUrl","$addDueDate","toISOString","$deleteDueDate","$addStartDate","$deleteStartDate","$addRecurrenceDate","$deleteRecurrenceDate","$reply","reply","delegatedTo","$adjust","every","values","v","extraAttributes","dlp","$mdDateLocaleProvider","format","startTime","endTime","dueTime","stringWithSeparator","occurrenceOnly","$futureComponentData","copy","repeatDescription","localizedString","toUpperCase","alarmDescription","copyTo","destination","moveTo","CalendarController","$inject","$scope","$state","$stateParams","sgHotkeys","stateEventsBlocks","deregisterCalendarsList","vm","hotkeys","expandedAllDays","selectedDate","asDate","toggleAllDays","changeDate","changeView","$onInit","createHotkey","description","callback","args","_goToPeriod","registerHotkey","_formatDate","$on","updateView","deregisterHotkey","$event","direction","setHours","$dateFormat","replace","newDate","element","currentTarget","attr","go","controller","CalendarListController","$mdDialog","focus","Dialog","CalendarSettings","Alarm","sortLabels","title","location","priority","tasks","selectedList","selectComponentType","unselectComponents","mode","multiple","selectAll","searchMode","toggleComponentSelection","preventDefault","stopPropagation","confirmDeleteSelectedComponents","confirm","ok","openEvent","openComponent","openTask","newComponent","filteredBy","field","sortedBy","reload","finally","cancelSearch","SelectedList","updateComponentFromGhost","viewable","templateUrl","show","parent","document","body","targetEvent","clickOutsideToClose","escapeToClose","controllerAs","locals","stateComponent","baseComponent","coordinates","calendarNumber","activeCalendars","currentEventCoordinates","summary","isAllDay","duration","catch","getDelta","originalEventCoordinates","originalCalendar","isException","getAlarms","onComponentAdjustError","template","RecurrentComponentDialogController","updateThisOccurrence","hide","updateAllOccurrences","message","AttendeeConflictDialogController","conflictError","ignoreConflicts","ascending","CalendarsController","$window","$mdToast","service","newCalendar","ev","prompt","UserLogin","addWebCalendar","inputType","WebCalendarAuthDialogController","scope","parts","hostname","formatted","authenticate","form","$valid","required","reason","$setValidity","subscribeToFolder","simple","content","position","hideDelay","sortableMode","toggleSortableMode","resetSort","sortableCalendars","scrollableContainer","containment","orderChanged","accept","sourceItemHandleScope","destSortableScope","destItemScope","sortableScope","SOGoCalendarCategories","asCSSIdentifier","$watch","pick","newList","oldList","commonList","intersectionBy","oldObject","isEqual","ComponentController","AddressBook","Account","calendarService","close","highPriority","cardFilter","$filterAll","newMessageWithAllRecipients","recipients","_newMessage","newMessageWithRecipient","edit","editAllOccurrences","replyAllOccurrences","deleteOccurrence","deleteAllOccurrences","toggleRawSource","ComponentRawSourceDialogController","copySelectedComponent","moveSelectedComponent","accounts","account","$getMailboxes","mailboxes","$newMessage","editable","to","subject","stateAccount","stateMessage","ComponentEditorController","oldStartDate","oldEndDate","showRecurrenceEditor","toggleRecurrenceEditor","recurrenceMonthDaysAreRequired","showAttendeesEditor","toggleAttendeesEditor","changeFrequency","changeCalendar","$cards","address","emailRE","createCard","str","searchText","trim","charCodeAt","test","charAt","removeAttendee","$setDirty","priorityLevel","changeAlarmRelation","onAlarmChange","reset","attendeeConflictError","attendeesEditor","getDays","hours","addStartDate","removeStartDate","addDueDate","removeDueDate","adjustStartTime","valueOf","adjustEndTime","adjustDueTime","alarmRelation","$setPristine","sgCalendarDayController","dayString","directive","restrict","sgCalendarDayBlock","clickBlock","tElem","tAttrs","p","has","link","iElement","attrs","pc","left","right","siblings","css","c_isallday","addClass","userState","c_isopaque","c_status","sgCalendarGhost","require","ctrls","domElement","calendarDayCtrl","scrollViewCtrl","originalCalendarNumber","deregisterDragStart","deregisterDrag","showGhost","isRelative","durationLeft","maxDuration","quartersToHM","quarterHeight","topOffset","removeClass","deregisterDragEnd","forEachRight","classList","c","quarters","minutes","mins","floor","sgCalendarListEvent","clickComponent","userstate","sgCalendarListItemController","$element","$mdPanel","$mdMedia","$mdSidenav","sgConstant","$ctrl","editMode","$postLink","clickableElement","nameElements","getElementsByClassName","inputContainer","inputElement","moreOptionsButton","last","updateCalendarName","innerHTML","editFolder","add","srcEvent","select","panel","saveFolder","disabled","revertEditing","confirmDelete","alert","showMenu","panelPosition","newPanelPosition","relativeTo","addPanelPosition","xPosition","ALIGN_START","yPosition","ALIGN_TOPS","panelAnimation","newPanelAnimation","openFrom","withAnimation","animation","FADE","config","attachTo","itemCtrl","bindToController","MenuController","trapFocus","focusOnOpen","panelRef","panelEl","one","mdPanelRef","FileUploader","$menuCtrl","showOnly","showAll","showProperties","PropertiesDialogController","srcCalendar","saveProperties","showLinks","LinksDialogController","importCalendar","CalendarImportDialogController","folder","uploader","ApplicationBaseURL","autoUpload","queueLimit","filters","filterByExtension","fn","onSuccessItem","item","headers","msg","imported","onErrorItem","isTextFile","share","$users","usersWithACL","users","sgCalendarScrollView","$document","$mdGesture","sgCalendarScrollViewController","isMultiColumn","sgScrollView","hourCell","quartersOffset","SOGoDayStartTime","getElementById","scrollTop","offsetTop","$destroy","getQuarterHeight","scrollStep","getDayNumbers","maxX","getMaxColumns","onDragStart","deregisterDragStop","onDragEnd","bindedUpdateCoordinates","updateCoordinates","bindedUpdateFromPointerHandler","updateFromPointerHandler","on","off","hour0","hour23","height","getDayDimensions","viewLeft","width","leftOffset","nodes","domRect","tileHeader","getBoundingClientRect","clientHeight","offset","top","getElementsByTagName","el","attributes","mdGridList","max","dayDimensions","x","y","dayHeight","dayWidth","daysOffset","pointerCoordinates","scrollY","minY","getContainerBasedCoordinates","lastScroll","ngModel","sgDraggableCalendarBlock","blockIndex","isFirstBlock","isLastBlock","dragGrip","leftGrip","rightGrip","topGrip","bottomGrip","parentNode","tagName","append","clone","initGrips","onDragDetect","onDrag","dragMode","rect","scrollableZone","target","scrollHeight","pageX","className","SOGoEventDragPointerHandler","initFromEvent","updateFromEvent","pointer","dragHasStarted","b","dragging","SOGoCoordinates","otherCoordinates","getDistance","sqrt","SOGoEventDragEventCoordinates","eventType","setEventType","weekDay","initFromBlock","prevDayNumber","sumBy","currentDayNumber","initFromCalendar","_quartersToHM","getStartTime","getEndTime","originalCoordinates","currentCoordinates","originalViewCoordinates","currentViewCoordinates","getEventViewCoordinates","pageY","newEventCoordinates","setTimeFromQuarters","updateEventCoordinates","distance","isHourCell","isMonthly","newData","hasClass","parseDate","prepareWithEventType","dragStart","newDuration","deltaQuarters","deltaDays","ceil","clientWidth","methods","multiday","getEventMultiDayViewCoordinates","multiday-allday","getEventMultiDayAllDayViewCoordinates","monthly","getEventMonthlyViewCoordinates","unknown","method","pxCoordinates","maxY","minX","daysY","sgNowLineController","updater","nowDay","lineElement","updateLine","force","hourHeight","minuteHeight","$lineElement","dayElement","eq","_addLine","iAttr","sgCalendarScrollViewCtrl","_getDays","_unwatchView","_unwatchDays"],"mappings":"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","file":"Scheduler.services.js"}
\ No newline at end of file
diff --git a/UI/WebServerResources/js/vendor/ng-sortable.min.js b/UI/WebServerResources/js/vendor/ng-sortable.min.js
index 7adc8af1c..7e9da626a 100644
--- a/UI/WebServerResources/js/vendor/ng-sortable.min.js
+++ b/UI/WebServerResources/js/vendor/ng-sortable.min.js
@@ -1 +1 @@
-!function(){"use strict";angular.module("as.sortable",[]).constant("sortableConfig",{itemClass:"as-sortable-item",handleClass:"as-sortable-item-handle",placeHolderClass:"as-sortable-placeholder",dragClass:"as-sortable-drag",hiddenClass:"as-sortable-hidden",dragging:"as-sortable-dragging"})}(),function(){"use strict";var mainModule=angular.module("as.sortable");mainModule.factory("$helper",["$document","$window",function($document,$window){return{height:function(element){return element[0].getBoundingClientRect().height},width:function(element){return element[0].getBoundingClientRect().width},offset:function(element,scrollableContainer){var boundingClientRect=element[0].getBoundingClientRect();return scrollableContainer||(scrollableContainer=$document[0].documentElement),{width:boundingClientRect.width||element.prop("offsetWidth"),height:boundingClientRect.height||element.prop("offsetHeight"),top:boundingClientRect.top+($window.pageYOffset||scrollableContainer.scrollTop-scrollableContainer.offsetTop),left:boundingClientRect.left+($window.pageXOffset||scrollableContainer.scrollLeft-scrollableContainer.offsetLeft)}},eventObj:function(event){var obj=event;return void 0!==event.targetTouches?obj=event.targetTouches.item(0):void 0!==event.originalEvent&&void 0!==event.originalEvent.targetTouches&&(obj=event.originalEvent.targetTouches.item(0)),obj},isTouchInvalid:function(event){var touchInvalid=!1;return void 0!==event.touches&&event.touches.length>1?touchInvalid=!0:void 0!==event.originalEvent&&void 0!==event.originalEvent.touches&&event.originalEvent.touches.length>1&&(touchInvalid=!0),touchInvalid},positionStarted:function(event,target,scrollableContainer){var pos={};return pos.offsetX=event.pageX-this.offset(target,scrollableContainer).left,pos.offsetY=event.pageY-this.offset(target,scrollableContainer).top,pos.startX=pos.lastX=event.pageX,pos.startY=pos.lastY=event.pageY,pos.nowX=pos.nowY=pos.distX=pos.distY=pos.dirAx=0,pos.dirX=pos.dirY=pos.lastDirX=pos.lastDirY=pos.distAxX=pos.distAxY=0,pos},calculatePosition:function(pos,event){pos.lastX=pos.nowX,pos.lastY=pos.nowY,pos.nowX=event.pageX,pos.nowY=event.pageY,pos.distX=pos.nowX-pos.lastX,pos.distY=pos.nowY-pos.lastY,pos.lastDirX=pos.dirX,pos.lastDirY=pos.dirY,pos.dirX=0===pos.distX?0:pos.distX>0?1:-1,pos.dirY=0===pos.distY?0:pos.distY>0?1:-1;var newAx=Math.abs(pos.distX)>Math.abs(pos.distY)?1:0;pos.dirAx!==newAx?(pos.distAxX=0,pos.distAxY=0):(pos.distAxX+=Math.abs(pos.distX),0!==pos.dirX&&pos.dirX!==pos.lastDirX&&(pos.distAxX=0),pos.distAxY+=Math.abs(pos.distY),0!==pos.dirY&&pos.dirY!==pos.lastDirY&&(pos.distAxY=0)),pos.dirAx=newAx},movePosition:function(event,element,pos,container,containerPositioning,scrollableContainer){var bounds,useRelative="relative"===containerPositioning;element.x=event.pageX-pos.offsetX,element.y=event.pageY-pos.offsetY,container&&(bounds=this.offset(container,scrollableContainer),useRelative&&(element.x-=bounds.left,element.y-=bounds.top,bounds.left=0,bounds.top=0),element.x=bounds.width+bounds.left-this.offset(element).width&&(element.x=bounds.width+bounds.left-this.offset(element).width),element.y=bounds.height+bounds.top-this.offset(element).height&&(element.y=bounds.height+bounds.top-this.offset(element).height)),element.css({left:element.x+"px",top:element.y+"px"}),this.calculatePosition(pos,event)},dragItem:function(item){return{index:item.index(),parent:item.sortableScope,source:item,targetElement:null,targetElementOffset:null,sourceInfo:{index:item.index(),itemScope:item.itemScope,sortableScope:item.sortableScope},canMove:function(itemPosition,targetElement,targetElementOffset){return this.targetElement!==targetElement?(this.targetElement=targetElement,this.targetElementOffset=targetElementOffset,!0):itemPosition.dirX*(targetElementOffset.left-this.targetElementOffset.left)>0||itemPosition.dirY*(targetElementOffset.top-this.targetElementOffset.top)>0?(this.targetElementOffset=targetElementOffset,!0):!1},moveTo:function(parent,index){this.parent=parent,this.isSameParent()&&this.source.index()-1&&(removedItem=$scope.modelValue.splice(index,1)[0]),removedItem},$scope.isEmpty=function(){return $scope.modelValue&&0===$scope.modelValue.length},$scope.accept=function(sourceItemHandleScope,destScope,destItemScope){return $scope.callbacks.accept(sourceItemHandleScope,destScope,destItemScope)}}]),mainModule.directive("asSortable",function(){return{require:"ngModel",restrict:"A",scope:!0,controller:"as.sortable.sortableController",link:function(scope,element,attrs,ngModelController){var ngModel,callbacks;ngModel=ngModelController,ngModel&&(ngModel.$render=function(){scope.modelValue=ngModel.$modelValue},scope.element=element,element.data("_scope",scope),callbacks={accept:null,orderChanged:null,itemMoved:null,dragStart:null,dragMove:null,dragCancel:null,dragEnd:null},callbacks.accept=function(sourceItemHandleScope,destSortableScope,destItemScope){return!0},callbacks.orderChanged=function(event){},callbacks.itemMoved=function(event){},callbacks.dragStart=function(event){},callbacks.dragMove=angular.noop,callbacks.dragCancel=function(event){},callbacks.dragEnd=function(event){},scope.$watch(attrs.asSortable,function(newVal,oldVal){angular.forEach(newVal,function(value,key){callbacks[key]?"function"==typeof value&&(callbacks[key]=value):scope.options[key]=value}),scope.callbacks=callbacks},!0),angular.isDefined(attrs.isDisabled)&&scope.$watch(attrs.isDisabled,function(newVal,oldVal){angular.isUndefined(newVal)||(scope.isDisabled=newVal)},!0))}}})}(),function(){"use strict";function isParent(possibleParent,elem){return elem&&"HTML"!==elem.nodeName?elem.parentNode===possibleParent?!0:isParent(possibleParent,elem.parentNode):!1}var mainModule=angular.module("as.sortable");mainModule.controller("as.sortable.sortableItemHandleController",["$scope",function($scope){this.scope=$scope,$scope.itemScope=null,$scope.type="handle"}]),mainModule.directive("asSortableItemHandle",["sortableConfig","$helper","$window","$document","$timeout",function(sortableConfig,$helper,$window,$document,$timeout){return{require:"^asSortableItem",scope:!0,restrict:"A",controller:"as.sortable.sortableItemHandleController",link:function(scope,element,attrs,itemController){function insertBefore(targetElement,targetScope){"table-row"!==placeHolder.css("display")&&placeHolder.css("display","block"),targetScope.sortableScope.options.clone||(targetElement[0].parentNode.insertBefore(placeHolder[0],targetElement[0]),dragItemInfo.moveTo(targetScope.sortableScope,targetScope.index()))}function insertAfter(targetElement,targetScope){"table-row"!==placeHolder.css("display")&&placeHolder.css("display","block"),targetScope.sortableScope.options.clone||(targetElement.after(placeHolder),dragItemInfo.moveTo(targetScope.sortableScope,targetScope.index()+1))}function fetchScope(element){for(var scope;!scope&&element.length;)scope=element.data("_scope"),scope||(element=element.parent());return scope}function rollbackDragChanges(){scope.itemScope.sortableScope.cloning||placeElement.replaceWith(scope.itemScope.element),placeHolder.remove(),dragElement.remove(),dragElement=null,dragHandled=!1,containment.css("cursor",""),containment.removeClass("as-sortable-un-selectable")}var dragElement,placeHolder,placeElement,itemPosition,dragItemInfo,containment,containerPositioning,dragListen,scrollableContainer,dragStart,dragMove,dragEnd,dragCancel,isDraggable,placeHolderIndex,bindDrag,unbindDrag,bindEvents,unBindEvents,hasTouch,isIOS,longTouchStart,longTouchCancel,longTouchTimer,dragHandled,createPlaceholder,isPlaceHolderPresent,escapeListen,isDisabled=!1,isLongTouch=!1;hasTouch="ontouchstart"in $window,isIOS=/iPad|iPhone|iPod/.test($window.navigator.userAgent)&&!$window.MSStream,sortableConfig.handleClass&&element.addClass(sortableConfig.handleClass),scope.itemScope=itemController.scope,element.data("_scope",scope),scope.$watchGroup(["sortableScope.isDisabled","sortableScope.options.longTouch"],function(newValues){isDisabled!==newValues[0]?(isDisabled=newValues[0],isDisabled?unbindDrag():bindDrag()):isLongTouch!==newValues[1]?(isLongTouch=newValues[1],unbindDrag(),bindDrag()):bindDrag()}),scope.$on("$destroy",function(){angular.element($document[0].body).unbind("keydown",escapeListen)}),createPlaceholder=function(itemScope){return"function"==typeof scope.sortableScope.options.placeholder?angular.element(scope.sortableScope.options.placeholder(itemScope)):"string"==typeof scope.sortableScope.options.placeholder?angular.element(scope.sortableScope.options.placeholder):angular.element($document[0].createElement(itemScope.element.prop("tagName")))},dragListen=function(event){var startPosition,unbindMoveListen=function(){angular.element($document).unbind("mousemove",moveListen),angular.element($document).unbind("touchmove",moveListen),element.unbind("mouseup",unbindMoveListen),element.unbind("touchend",unbindMoveListen),element.unbind("touchcancel",unbindMoveListen)},moveListen=function(e){e.preventDefault();var eventObj=$helper.eventObj(e);startPosition||(startPosition={clientX:eventObj.clientX,clientY:eventObj.clientY}),Math.abs(eventObj.clientX-startPosition.clientX)+Math.abs(eventObj.clientY-startPosition.clientY)>10&&(unbindMoveListen(),dragStart(event))};angular.element($document).bind("mousemove",moveListen),angular.element($document).bind("touchmove",moveListen),element.bind("mouseup",unbindMoveListen),element.bind("touchend",unbindMoveListen),element.bind("touchcancel",unbindMoveListen),event.stopPropagation()},dragStart=function(event){var eventObj,tagName;(hasTouch||2!==event.button&&3!==event.which)&&(hasTouch&&$helper.isTouchInvalid(event)||!dragHandled&&isDraggable(event)&&(dragHandled=!0,event.preventDefault(),eventObj=$helper.eventObj(event),scope.sortableScope=scope.sortableScope||scope.itemScope.sortableScope,scope.callbacks=scope.callbacks||scope.itemScope.callbacks,scope.itemScope.sortableScope.options.clone||scope.itemScope.sortableScope.options.ctrlClone&&event.ctrlKey?scope.itemScope.sortableScope.cloning=!0:scope.itemScope.sortableScope.cloning=!1,scrollableContainer=angular.element($document[0].querySelector(scope.sortableScope.options.scrollableContainer)).length>0?$document[0].querySelector(scope.sortableScope.options.scrollableContainer):$document[0].documentElement,containment=scope.sortableScope.options.containment?$helper.findAncestor(element,scope.sortableScope.options.containment):angular.element($document[0].body),containment.css("cursor","move"),containment.css("cursor","-webkit-grabbing"),containment.css("cursor","-moz-grabbing"),containment.addClass("as-sortable-un-selectable"),containerPositioning=scope.sortableScope.options.containerPositioning||"absolute",dragItemInfo=$helper.dragItem(scope),tagName=scope.itemScope.element.prop("tagName"),dragElement=angular.element($document[0].createElement(scope.sortableScope.element.prop("tagName"))).addClass(scope.sortableScope.element.attr("class")).addClass(sortableConfig.dragClass),dragElement.css("width",$helper.width(scope.itemScope.element)+"px"),dragElement.css("height",$helper.height(scope.itemScope.element)+"px"),placeHolder=createPlaceholder(scope.itemScope).addClass(sortableConfig.placeHolderClass).addClass(scope.sortableScope.options.additionalPlaceholderClass),placeHolder.css("width",$helper.width(scope.itemScope.element)+"px"),placeHolder.css("height",$helper.height(scope.itemScope.element)+"px"),placeElement=angular.element($document[0].createElement(tagName)),sortableConfig.hiddenClass&&placeElement.addClass(sortableConfig.hiddenClass),itemPosition=$helper.positionStarted(eventObj,scope.itemScope.element,scrollableContainer),scope.itemScope.sortableScope.options.clone||scope.itemScope.element.after(placeHolder),scope.itemScope.sortableScope.cloning?dragElement.append(scope.itemScope.element.clone()):(scope.itemScope.element.after(placeElement),dragElement.append(scope.itemScope.element)),containment.append(dragElement),$helper.movePosition(eventObj,dragElement,itemPosition,containment,containerPositioning,scrollableContainer),scope.sortableScope.$apply(function(){scope.callbacks.dragStart(dragItemInfo.eventArgs())}),bindEvents()))},isDraggable=function(event){var elementClicked,sourceScope,isDraggable;for(elementClicked=angular.element(event.target),sourceScope=fetchScope(elementClicked),isDraggable=sourceScope&&"handle"===sourceScope.type;isDraggable&&elementClicked[0]!==element[0];)$helper.noDrag(elementClicked)&&(isDraggable=!1),elementClicked=elementClicked.parent();return isDraggable},dragMove=function(event){var eventObj,targetX,targetY,targetScope,targetElement;if((!hasTouch||!$helper.isTouchInvalid(event))&&dragHandled&&dragElement){if(event.preventDefault(),eventObj=$helper.eventObj(event),scope.callbacks.dragMove!==angular.noop&&scope.sortableScope.$apply(function(){scope.callbacks.dragMove(itemPosition,containment,eventObj)}),targetX=eventObj.pageX-$document[0].documentElement.scrollLeft,targetY=eventObj.pageY-($window.pageYOffset||$document[0].documentElement.scrollTop),dragElement.addClass(sortableConfig.hiddenClass),targetElement=angular.element($document[0].elementFromPoint(targetX,targetY)),dragElement.removeClass(sortableConfig.hiddenClass),$helper.movePosition(eventObj,dragElement,itemPosition,containment,containerPositioning,scrollableContainer),dragElement.addClass(sortableConfig.dragging),targetScope=fetchScope(targetElement),!targetScope||!targetScope.type)return;if("handle"===targetScope.type&&(targetScope=targetScope.itemScope),"item"!==targetScope.type&&"sortable"!==targetScope.type)return;if("item"===targetScope.type&&targetScope.accept(scope,targetScope.sortableScope,targetScope)){targetElement=targetScope.element;var targetElementOffset=$helper.offset(targetElement,scrollableContainer);if(!dragItemInfo.canMove(itemPosition,targetElement,targetElementOffset))return;var placeholderIndex=placeHolderIndex(targetScope.sortableScope.element);0>placeholderIndex?insertBefore(targetElement,targetScope):placeholderIndex<=targetScope.index()?insertAfter(targetElement,targetScope):insertBefore(targetElement,targetScope)}"sortable"===targetScope.type&&targetScope.accept(scope,targetScope)&&!isParent(targetScope.element[0],targetElement[0])&&(isPlaceHolderPresent(targetElement)||targetScope.options.clone||(targetElement[0].appendChild(placeHolder[0]),dragItemInfo.moveTo(targetScope,targetScope.modelValue.length)))}},placeHolderIndex=function(targetElement){var itemElements,i;if(targetElement.hasClass(sortableConfig.placeHolderClass))return 0;for(itemElements=targetElement.children(),i=0;i=0},dragEnd=function(event){dragHandled&&(event.preventDefault(),dragElement&&(rollbackDragChanges(),dragItemInfo.apply(),scope.sortableScope.$apply(function(){dragItemInfo.isSameParent()?dragItemInfo.isOrderChanged()&&scope.callbacks.orderChanged(dragItemInfo.eventArgs()):scope.callbacks.itemMoved(dragItemInfo.eventArgs())}),scope.sortableScope.$apply(function(){scope.callbacks.dragEnd(dragItemInfo.eventArgs())}),dragItemInfo=null),unBindEvents())},dragCancel=function(event){dragHandled&&(event.preventDefault(),dragElement&&(rollbackDragChanges(),scope.sortableScope.$apply(function(){scope.callbacks.dragCancel(dragItemInfo.eventArgs())}),dragItemInfo=null),unBindEvents())},bindDrag=function(){hasTouch&&(isLongTouch?isIOS?(element.bind("touchstart",longTouchStart),element.bind("touchend",longTouchCancel),element.bind("touchmove",longTouchCancel)):element.bind("contextmenu",dragListen):element.bind("touchstart",dragListen)),element.bind("mousedown",dragListen)},unbindDrag=function(){element.unbind("touchstart",longTouchStart),element.unbind("touchend",longTouchCancel),element.unbind("touchmove",longTouchCancel),element.unbind("contextmenu",dragListen),element.unbind("touchstart",dragListen),element.unbind("mousedown",dragListen)},longTouchStart=function(event){longTouchTimer=$timeout(function(){dragListen(event)},500)},longTouchCancel=function(){$timeout.cancel(longTouchTimer)},escapeListen=function(event){27===event.keyCode&&dragCancel(event)},angular.element($document[0].body).bind("keydown",escapeListen),bindEvents=function(){angular.element($document).bind("touchmove",dragMove),angular.element($document).bind("touchend",dragEnd),angular.element($document).bind("touchcancel",dragCancel),angular.element($document).bind("mousemove",dragMove),angular.element($document).bind("mouseup",dragEnd)},unBindEvents=function(){angular.element($document).unbind("touchend",dragEnd),angular.element($document).unbind("touchcancel",dragCancel),angular.element($document).unbind("touchmove",dragMove),angular.element($document).unbind("mouseup",dragEnd),angular.element($document).unbind("mousemove",dragMove)}}}}])}(),function(){"use strict";var mainModule=angular.module("as.sortable");mainModule.controller("as.sortable.sortableItemController",["$scope",function($scope){this.scope=$scope,$scope.sortableScope=null,$scope.modelValue=null,$scope.type="item",$scope.index=function(){return $scope.$index},$scope.itemData=function(){return $scope.sortableScope.modelValue[$scope.$index]}}]),mainModule.directive("asSortableItem",["sortableConfig",function(sortableConfig){return{require:["^asSortable","?ngModel"],restrict:"A",controller:"as.sortable.sortableItemController",link:function(scope,element,attrs,ctrl){var sortableController=ctrl[0],ngModelController=ctrl[1];sortableConfig.itemClass&&element.addClass(sortableConfig.itemClass),scope.sortableScope=sortableController.scope,ngModelController?ngModelController.$render=function(){scope.modelValue=ngModelController.$modelValue}:scope.modelValue=sortableController.scope.modelValue[scope.$index],scope.element=element,element.data("_scope",scope)}}}])}();
\ No newline at end of file
+!function(){"use strict";angular.module("as.sortable",[]).constant("sortableConfig",{itemClass:"as-sortable-item",handleClass:"as-sortable-item-handle",placeHolderClass:"as-sortable-placeholder",dragClass:"as-sortable-drag",hiddenClass:"as-sortable-hidden",dragging:"as-sortable-dragging"})}(),function(){"use strict";var mainModule=angular.module("as.sortable");mainModule.factory("$helper",["$document","$window",function($document,$window){return{height:function(element){return element[0].getBoundingClientRect().height},width:function(element){return element[0].getBoundingClientRect().width},offset:function(element,scrollableContainer){var boundingClientRect=element[0].getBoundingClientRect();return scrollableContainer||(scrollableContainer=$document[0].documentElement),{width:boundingClientRect.width||element.prop("offsetWidth"),height:boundingClientRect.height||element.prop("offsetHeight"),top:boundingClientRect.top+($window.pageYOffset||scrollableContainer.scrollTop-scrollableContainer.offsetTop),left:boundingClientRect.left+($window.pageXOffset||scrollableContainer.scrollLeft-scrollableContainer.offsetLeft)}},eventObj:function(event){var obj=event;return void 0!==event.targetTouches?obj=event.targetTouches.item(0):void 0!==event.originalEvent&&void 0!==event.originalEvent.targetTouches&&(obj=event.originalEvent.targetTouches.item(0)),obj},isTouchInvalid:function(event){var touchInvalid=!1;return void 0!==event.touches&&event.touches.length>1?touchInvalid=!0:void 0!==event.originalEvent&&void 0!==event.originalEvent.touches&&event.originalEvent.touches.length>1&&(touchInvalid=!0),touchInvalid},positionStarted:function(event,target,scrollableContainer){var pos={};return pos.offsetX=event.pageX-this.offset(target,scrollableContainer).left,pos.offsetY=event.pageY-this.offset(target,scrollableContainer).top,pos.startX=pos.lastX=event.pageX,pos.startY=pos.lastY=event.pageY,pos.nowX=pos.nowY=pos.distX=pos.distY=pos.dirAx=0,pos.dirX=pos.dirY=pos.lastDirX=pos.lastDirY=pos.distAxX=pos.distAxY=0,pos},calculatePosition:function(pos,event){pos.lastX=pos.nowX,pos.lastY=pos.nowY,pos.nowX=event.pageX,pos.nowY=event.pageY,pos.distX=pos.nowX-pos.lastX,pos.distY=pos.nowY-pos.lastY,pos.lastDirX=pos.dirX,pos.lastDirY=pos.dirY,pos.dirX=0===pos.distX?0:pos.distX>0?1:-1,pos.dirY=0===pos.distY?0:pos.distY>0?1:-1;var newAx=Math.abs(pos.distX)>Math.abs(pos.distY)?1:0;pos.dirAx!==newAx?(pos.distAxX=0,pos.distAxY=0):(pos.distAxX+=Math.abs(pos.distX),0!==pos.dirX&&pos.dirX!==pos.lastDirX&&(pos.distAxX=0),pos.distAxY+=Math.abs(pos.distY),0!==pos.dirY&&pos.dirY!==pos.lastDirY&&(pos.distAxY=0)),pos.dirAx=newAx},movePosition:function(event,element,pos,container,containerPositioning,scrollableContainer){var bounds,useRelative="relative"===containerPositioning;element.x=event.pageX-pos.offsetX,element.y=event.pageY-pos.offsetY,container&&(bounds=this.offset(container,scrollableContainer),useRelative&&(element.x-=bounds.left,element.y-=bounds.top,bounds.left=0,bounds.top=0),element.x=bounds.width+bounds.left-this.offset(element).width&&(element.x=bounds.width+bounds.left-this.offset(element).width),element.y=bounds.height+bounds.top-this.offset(element).height&&(element.y=bounds.height+bounds.top-this.offset(element).height)),element.css({left:element.x+"px",top:element.y+"px"}),this.calculatePosition(pos,event)},dragItem:function(item){return{index:item.index(),parent:item.sortableScope,source:item,targetElement:null,targetElementOffset:null,sourceInfo:{index:item.index(),itemScope:item.itemScope,sortableScope:item.sortableScope},canMove:function(itemPosition,targetElement,targetElementOffset){return this.targetElement!==targetElement?(this.targetElement=targetElement,this.targetElementOffset=targetElementOffset,!0):itemPosition.dirX*(targetElementOffset.left-this.targetElementOffset.left)>0||itemPosition.dirY*(targetElementOffset.top-this.targetElementOffset.top)>0?(this.targetElementOffset=targetElementOffset,!0):!1},moveTo:function(parent,index){this.parent=parent,this.isSameParent()&&this.source.index()-1&&(removedItem=$scope.modelValue.splice(index,1)[0]),removedItem},$scope.isEmpty=function(){return $scope.modelValue&&0===$scope.modelValue.length},$scope.accept=function(sourceItemHandleScope,destScope,destItemScope){return $scope.callbacks.accept(sourceItemHandleScope,destScope,destItemScope)}}]),mainModule.directive("asSortable",function(){return{require:"ngModel",restrict:"A",scope:!0,controller:"as.sortable.sortableController",link:function(scope,element,attrs,ngModelController){var ngModel,callbacks;ngModel=ngModelController,ngModel&&(ngModel.$render=function(){scope.modelValue=ngModel.$modelValue},scope.element=element,element.data("_scope",scope),callbacks={accept:null,orderChanged:null,itemMoved:null,dragStart:null,dragMove:null,dragCancel:null,dragEnd:null},callbacks.accept=function(sourceItemHandleScope,destSortableScope,destItemScope){return!0},callbacks.orderChanged=function(event){},callbacks.itemMoved=function(event){},callbacks.dragStart=function(event){},callbacks.dragMove=angular.noop,callbacks.dragCancel=function(event){},callbacks.dragEnd=function(event){},scope.$watch(attrs.asSortable,function(newVal,oldVal){angular.forEach(newVal,function(value,key){callbacks[key]?"function"==typeof value&&(callbacks[key]=value):scope.options[key]=value}),scope.callbacks=callbacks},!0),angular.isDefined(attrs.isDisabled)&&scope.$watch(attrs.isDisabled,function(newVal,oldVal){angular.isUndefined(newVal)||(scope.isDisabled=newVal)},!0))}}})}(),function(){"use strict";function isParent(possibleParent,elem){return elem&&"HTML"!==elem.nodeName?elem.parentNode===possibleParent?!0:isParent(possibleParent,elem.parentNode):!1}var mainModule=angular.module("as.sortable");mainModule.controller("as.sortable.sortableItemHandleController",["$scope",function($scope){this.scope=$scope,$scope.itemScope=null,$scope.type="handle"}]),mainModule.directive("asSortableItemHandle",["sortableConfig","$helper","$window","$document","$timeout",function(sortableConfig,$helper,$window,$document,$timeout){return{require:"^asSortableItem",scope:!0,restrict:"A",controller:"as.sortable.sortableItemHandleController",link:function(scope,element,attrs,itemController){function insertBefore(targetElement,targetScope){"table-row"!==placeHolder.css("display")&&placeHolder.css("display","block"),targetScope.sortableScope.options.clone||(targetElement[0].parentNode.insertBefore(placeHolder[0],targetElement[0]),dragItemInfo.moveTo(targetScope.sortableScope,targetScope.index()))}function insertAfter(targetElement,targetScope){"table-row"!==placeHolder.css("display")&&placeHolder.css("display","block"),targetScope.sortableScope.options.clone||(targetElement.after(placeHolder),dragItemInfo.moveTo(targetScope.sortableScope,targetScope.index()+1))}function fetchScope(element){for(var scope;!scope&&element.length;)scope=element.data("_scope"),scope||(element=element.parent());return scope}function rollbackDragChanges(){scope.itemScope.sortableScope.cloning||placeElement.replaceWith(scope.itemScope.element),placeHolder.remove(),dragElement.remove(),dragElement=null,dragHandled=!1,containment.css("cursor",""),containment.removeClass("as-sortable-un-selectable")}var dragElement,placeHolder,placeElement,itemPosition,dragItemInfo,containment,containerPositioning,dragListen,scrollableContainer,dragStart,dragMove,dragEnd,dragCancel,isDraggable,placeHolderIndex,bindDrag,unbindDrag,bindEvents,unBindEvents,hasTouch,isIOS,longTouchStart,longTouchCancel,longTouchTimer,dragHandled,createPlaceholder,isPlaceHolderPresent,escapeListen,isDisabled=!1,isLongTouch=!1;hasTouch="ontouchstart"in $window,isIOS=/iPad|iPhone|iPod/.test($window.navigator.userAgent)&&!$window.MSStream,sortableConfig.handleClass&&element.addClass(sortableConfig.handleClass),scope.itemScope=itemController.scope,element.data("_scope",scope),scope.$watchGroup(["sortableScope.isDisabled","sortableScope.options.longTouch"],function(newValues){isDisabled!==newValues[0]?(isDisabled=newValues[0],isDisabled?unbindDrag():bindDrag()):isLongTouch!==newValues[1]?(isLongTouch=newValues[1],unbindDrag(),bindDrag()):bindDrag()}),scope.$on("$destroy",function(){angular.element($document[0].body).unbind("keydown",escapeListen)}),createPlaceholder=function(itemScope){return"function"==typeof scope.sortableScope.options.placeholder?angular.element(scope.sortableScope.options.placeholder(itemScope)):"string"==typeof scope.sortableScope.options.placeholder?angular.element(scope.sortableScope.options.placeholder):angular.element($document[0].createElement(itemScope.element.prop("tagName")))},dragListen=function(event){var startPosition,unbindMoveListen=function(){angular.element($document).unbind("mousemove",moveListen),angular.element($document).unbind("touchmove",moveListen),element.unbind("mouseup",unbindMoveListen),element.unbind("touchend",unbindMoveListen),element.unbind("touchcancel",unbindMoveListen)},moveListen=function(e){e.preventDefault();var eventObj=$helper.eventObj(e);startPosition||(startPosition={clientX:eventObj.clientX,clientY:eventObj.clientY}),Math.abs(eventObj.clientX-startPosition.clientX)+Math.abs(eventObj.clientY-startPosition.clientY)>10&&(unbindMoveListen(),dragStart(event))};angular.element($document).bind("mousemove",moveListen),angular.element($document).bind("touchmove",moveListen),element.bind("mouseup",unbindMoveListen),element.bind("touchend",unbindMoveListen),element.bind("touchcancel",unbindMoveListen),event.stopPropagation()},dragStart=function(event){var eventObj,tagName;(hasTouch||2!==event.button&&3!==event.which)&&(hasTouch&&$helper.isTouchInvalid(event)||!dragHandled&&isDraggable(event)&&(dragHandled=!0,event.preventDefault(),eventObj=$helper.eventObj(event),scope.sortableScope=scope.sortableScope||scope.itemScope.sortableScope,scope.callbacks=scope.callbacks||scope.itemScope.callbacks,scope.itemScope.sortableScope.options.clone||scope.itemScope.sortableScope.options.ctrlClone&&event.ctrlKey?scope.itemScope.sortableScope.cloning=!0:scope.itemScope.sortableScope.cloning=!1,scrollableContainer=angular.element($document[0].querySelector(scope.sortableScope.options.scrollableContainer)).length>0?$document[0].querySelector(scope.sortableScope.options.scrollableContainer):$document[0].documentElement,containment=scope.sortableScope.options.containment?$helper.findAncestor(element,scope.sortableScope.options.containment):angular.element($document[0].body),containment.css("cursor","move"),containment.css("cursor","-webkit-grabbing"),containment.css("cursor","-moz-grabbing"),containment.addClass("as-sortable-un-selectable"),containerPositioning=scope.sortableScope.options.containerPositioning||"absolute",dragItemInfo=$helper.dragItem(scope.itemScope),tagName=scope.itemScope.element.prop("tagName"),dragElement=angular.element($document[0].createElement(scope.sortableScope.element.prop("tagName"))).addClass(scope.sortableScope.element.attr("class")).addClass(sortableConfig.dragClass),dragElement.css("width",$helper.width(scope.itemScope.element)+"px"),dragElement.css("height",$helper.height(scope.itemScope.element)+"px"),placeHolder=createPlaceholder(scope.itemScope).addClass(sortableConfig.placeHolderClass).addClass(scope.sortableScope.options.additionalPlaceholderClass),placeHolder.css("width",$helper.width(scope.itemScope.element)+"px"),placeHolder.css("height",$helper.height(scope.itemScope.element)+"px"),placeElement=angular.element($document[0].createElement(tagName)),sortableConfig.hiddenClass&&placeElement.addClass(sortableConfig.hiddenClass),itemPosition=$helper.positionStarted(eventObj,scope.itemScope.element,scrollableContainer),scope.itemScope.sortableScope.options.clone||scope.itemScope.element.after(placeHolder),scope.itemScope.sortableScope.cloning?dragElement.append(scope.itemScope.element.clone()):(scope.itemScope.element.after(placeElement),dragElement.append(scope.itemScope.element)),containment.append(dragElement),$helper.movePosition(eventObj,dragElement,itemPosition,containment,containerPositioning,scrollableContainer),scope.sortableScope.$apply(function(){scope.callbacks.dragStart(dragItemInfo.eventArgs())}),bindEvents()))},isDraggable=function(event){var elementClicked,sourceScope,isDraggable;for(elementClicked=angular.element(event.target),sourceScope=fetchScope(elementClicked),isDraggable=sourceScope&&"handle"===sourceScope.type;isDraggable&&elementClicked[0]!==element[0];)$helper.noDrag(elementClicked)&&(isDraggable=!1),elementClicked=elementClicked.parent();return isDraggable},dragMove=function(event){var eventObj,targetX,targetY,targetScope,targetElement;if((!hasTouch||!$helper.isTouchInvalid(event))&&dragHandled&&dragElement){if(event.preventDefault(),eventObj=$helper.eventObj(event),scope.callbacks.dragMove!==angular.noop&&scope.sortableScope.$apply(function(){scope.callbacks.dragMove(itemPosition,containment,eventObj)}),targetX=eventObj.pageX-$document[0].documentElement.scrollLeft,targetY=eventObj.pageY-($window.pageYOffset||$document[0].documentElement.scrollTop),dragElement.addClass(sortableConfig.hiddenClass),targetElement=angular.element($document[0].elementFromPoint(targetX,targetY)),dragElement.removeClass(sortableConfig.hiddenClass),$helper.movePosition(eventObj,dragElement,itemPosition,containment,containerPositioning,scrollableContainer),dragElement.addClass(sortableConfig.dragging),targetScope=fetchScope(targetElement),!targetScope||!targetScope.type)return;if("handle"===targetScope.type&&(targetScope=targetScope.itemScope),"item"!==targetScope.type&&"sortable"!==targetScope.type)return;if("item"===targetScope.type&&targetScope.accept(scope,targetScope.sortableScope,targetScope)){targetElement=targetScope.element;var targetElementOffset=$helper.offset(targetElement,scrollableContainer);if(!dragItemInfo.canMove(itemPosition,targetElement,targetElementOffset))return;var placeholderIndex=placeHolderIndex(targetScope.sortableScope.element);0>placeholderIndex?insertBefore(targetElement,targetScope):placeholderIndex<=targetScope.index()?insertAfter(targetElement,targetScope):insertBefore(targetElement,targetScope)}"sortable"===targetScope.type&&targetScope.accept(scope,targetScope)&&!isParent(targetScope.element[0],targetElement[0])&&(isPlaceHolderPresent(targetElement)||targetScope.options.clone||(targetElement[0].appendChild(placeHolder[0]),dragItemInfo.moveTo(targetScope,targetScope.modelValue.length)))}},placeHolderIndex=function(targetElement){var itemElements,i;if(targetElement.hasClass(sortableConfig.placeHolderClass))return 0;for(itemElements=targetElement.children(),i=0;i=0},dragEnd=function(event){dragHandled&&(event.preventDefault(),dragElement&&(rollbackDragChanges(),dragItemInfo.apply(),scope.sortableScope.$apply(function(){dragItemInfo.isSameParent()?dragItemInfo.isOrderChanged()&&scope.callbacks.orderChanged(dragItemInfo.eventArgs()):scope.callbacks.itemMoved(dragItemInfo.eventArgs())}),scope.sortableScope.$apply(function(){scope.callbacks.dragEnd(dragItemInfo.eventArgs())}),dragItemInfo=null),unBindEvents())},dragCancel=function(event){dragHandled&&(event.preventDefault(),dragElement&&(rollbackDragChanges(),scope.sortableScope.$apply(function(){scope.callbacks.dragCancel(dragItemInfo.eventArgs())}),dragItemInfo=null),unBindEvents())},bindDrag=function(){hasTouch&&(isLongTouch?isIOS?(element.bind("touchstart",longTouchStart),element.bind("touchend",longTouchCancel),element.bind("touchmove",longTouchCancel)):element.bind("contextmenu",dragListen):element.bind("touchstart",dragListen)),element.bind("mousedown",dragListen)},unbindDrag=function(){element.unbind("touchstart",longTouchStart),element.unbind("touchend",longTouchCancel),element.unbind("touchmove",longTouchCancel),element.unbind("contextmenu",dragListen),element.unbind("touchstart",dragListen),element.unbind("mousedown",dragListen)},longTouchStart=function(event){longTouchTimer=$timeout(function(){dragListen(event)},500)},longTouchCancel=function(){$timeout.cancel(longTouchTimer)},escapeListen=function(event){27===event.keyCode&&dragCancel(event)},angular.element($document[0].body).bind("keydown",escapeListen),bindEvents=function(){angular.element($document).bind("touchmove",dragMove),angular.element($document).bind("touchend",dragEnd),angular.element($document).bind("touchcancel",dragCancel),angular.element($document).bind("mousemove",dragMove),angular.element($document).bind("mouseup",dragEnd)},unBindEvents=function(){angular.element($document).unbind("touchend",dragEnd),angular.element($document).unbind("touchcancel",dragCancel),angular.element($document).unbind("touchmove",dragMove),angular.element($document).unbind("mouseup",dragEnd),angular.element($document).unbind("mousemove",dragMove)}}}}])}(),function(){"use strict";var mainModule=angular.module("as.sortable");mainModule.controller("as.sortable.sortableItemController",["$scope",function($scope){this.scope=$scope,$scope.sortableScope=null,$scope.modelValue=null,$scope.type="item",$scope.index=function(){return $scope.$index},$scope.itemData=function(){return $scope.sortableScope.modelValue[$scope.$index]}}]),mainModule.directive("asSortableItem",["sortableConfig",function(sortableConfig){return{require:["^asSortable","?ngModel"],restrict:"A",controller:"as.sortable.sortableItemController",link:function(scope,element,attrs,ctrl){var sortableController=ctrl[0],ngModelController=ctrl[1];sortableConfig.itemClass&&element.addClass(sortableConfig.itemClass),scope.sortableScope=sortableController.scope,ngModelController?ngModelController.$render=function(){scope.modelValue=ngModelController.$modelValue}:scope.modelValue=sortableController.scope.modelValue[scope.$index],scope.element=element,element.data("_scope",scope)}}}])}();
\ No newline at end of file