diff --git a/UI/WebServerResources/js/Administration.js b/UI/WebServerResources/js/Administration.js index 261e5232b..b8e4f45c9 100644 --- a/UI/WebServerResources/js/Administration.js +++ b/UI/WebServerResources/js/Administration.js @@ -1,2 +1,2 @@ -!function(){"use strict";function e(e,t){e.state("administration",{abstract:!0,views:{administration:{templateUrl:"administration.html",controller:"AdministrationController",controllerAs:"app"}}}).state("administration.rights",{url:"/rights",views:{module:{templateUrl:"rights.html"}}}).state("administration.rights.edit",{url:"/:userId/:folderId/edit",views:{acl:{templateUrl:"UIxAdministrationAclEditor",controller:"AdministrationAclController",controllerAs:"acl"}},resolve:{stateUser:r,stateFolder:n}}).state("administration.theme",{url:"/theme",views:{module:{templateUrl:"UIxThemePreview",controller:"ThemePreviewController",controllerAs:"ctrl"}}}),t.rules.otherwise("/rights")}function r(t,r,n){var o=_.find(n.$users,function(e){return e.uid==r.userId});return angular.isUndefined(o)?n.$filter(r.userId).then(function(e){return o=_.find(n.$users,function(e){return e.uid==r.userId}),angular.isUndefined(o)?t.reject("User with ID "+r.userId+" not found"):o.$folders().then(function(){return o})}):o}function n(e,t,r,n,o,i){var s=r(t.folderId),r=_.find(n.$$folders,function(e){return e.name==s}),t=new("Appointment"==r.type?i:o)({id:r.name.split("/").pop(),owner:r.owner,name:r.displayName});return n.selectedFolder=t.id,t}function t(e,t,r,n){e.DebugEnabled||n.defaultErrorHandler(function(){}),r.onError({to:"administration.**"},function(e){"administration"==e.to().name||e.ignored()||(t.error("transition error to "+e.to().name+": "+e.error().detail),n.go({state:"administration.rights"}))})}angular.module("SOGo.AdministrationUI",["ui.router","SOGo.Common","SOGo.Authentication","SOGo.PreferencesUI","SOGo.ContactsUI","SOGo.SchedulerUI"]).config(e).run(t),e.$inject=["$stateProvider","$urlServiceProvider"],r.$inject=["$q","$stateParams","User"],n.$inject=["$state","$stateParams","decodeUriFilter","stateUser","AddressBook","Calendar"],t.$inject=["$window","$log","$transitions","$state"]}(),function(){"use strict";function e(t,e,r,n,o,i,s,d){var a=this;function u(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,a.selectedUser.$rights())}function c(){e.go("administration.rights").then(function(){delete a.user.selectedFolder,a.user=null})}a.user=o,a.folder=i,a.folderType=angular.isDefined(i.$cards)?"AddressBook":"Calendar",a.selectedUser=null,a.selectedUid=null,a.selectUser=u,a.selectAllRights=function(e){i.$acl.$selectAllRights(e)},a.showRights=function(e){return a.selectedUid==e.uid&&e.rights},a.removeUser=function(e){t(function(){i.$acl.$removeUser(e.uid,i.owner)},500)},a.getTemplate=function(){return angular.isDefined(i.$cards)?"../"+i.owner+"/Contacts/"+i.id+"/UIxContactsUserRightsEditor":"../"+i.owner+"/Calendar/"+i.id+"/UIxCalUserRightsEditor"},a.close=c,a.save=function(){i.$acl.$saveUsersRights(i.owner).then(function(){n.show(n.simple().textContent(l("ACLs saved")).position(s.toastPosition).hideDelay(2e3)),r("xs")&&c()})},a.userToAdd="",a.searchText="",a.userFilter=function(e){return d.$filter(e,i.$acl.users,{dry:!0,uid:a.user.uid})},a.addUser=function(e){e&&i.$acl.$addUser(e,i.owner).then(function(e){a.userToAdd="",a.searchText="",a.selectedUid=null,e&&u(e)})},i.$acl.$users(i.owner).then(function(e){a.users=e})}e.$inject=["$timeout","$state","$mdMedia","$mdToast","stateUser","stateFolder","sgConstant","User"],angular.module("SOGo.AdministrationUI").controller("AdministrationAclController",e)}(),function(){"use strict";function e(t,e,r,n,o,i,s,d){var l=this;l.service=d,l.selectedUser=null,l.users=d.$users,l.go=function(e){t.go("administration."+e),r(o["gt-md"])||n("left").close()},l.filter=function(e){d.$filter(e)},l.selectUser=function(e){l.selectedUser==l.users[e]?l.selectedUser=null:l.users[e].$folders().then(function(){l.selectedUser=l.users[e]})},l.selectFolder=function(e){t.go("administration.rights.edit",{userId:l.selectedUser.uid,folderId:s(e.name)})}}e.$inject=["$state","$mdToast","$mdMedia","$mdSidenav","sgConstant","Dialog","encodeUriFilter","User"],angular.module("SOGo.AdministrationUI").controller("AdministrationController",e)}(),function(){"use strict";function e(e){e.registerStyles(['.foreground-1 { color: "{{foreground-1}}" }','.foreground-2 { color: "{{foreground-2}}" }','.foreground-3 { color: "{{foreground-3}}" }','.foreground-4 { color: "{{foreground-4}}" }','.background-contrast { color: "{{background-contrast}}" }','.background-contrast-secondary { color: "{{background-contrast-secondary}}" }','.background-default { background-color: "{{background-default}}" }'].join("")),e.generateThemesOnDemand(!1)}function t(e){this.defaultTheme=e.THEMES[e.defaultTheme()],this.jsonDefaultTheme=JSON.stringify(this.defaultTheme,void 0,2)}e.$inject=["$mdThemingProvider"],t.$inject=["$mdTheming"],angular.module("SOGo.AdministrationUI").config(e).controller("ThemePreviewController",t)}(); +!function(){"use strict";function e(e,t){e.state("administration",{abstract:!0,views:{administration:{templateUrl:"administration.html",controller:"AdministrationController",controllerAs:"app"}}}).state("administration.rights",{url:"/rights",views:{module:{templateUrl:"rights.html"}}}).state("administration.rights.edit",{url:"/:userId/:folderId/edit",views:{acl:{templateUrl:"UIxAdministrationAclEditor",controller:"AdministrationAclController",controllerAs:"acl"}},resolve:{stateUser:r,stateFolder:n,stateAcls:i}}).state("administration.theme",{url:"/theme",views:{module:{templateUrl:"UIxThemePreview",controller:"ThemePreviewController",controllerAs:"ctrl"}}}),t.rules.otherwise("/rights")}function r(t,r,n){var i=_.find(n.$users,function(e){return e.uid==r.userId});return angular.isUndefined(i)?n.$filter(r.userId).then(function(e){return i=_.find(n.$users,function(e){return e.uid==r.userId}),angular.isUndefined(i)?t.reject("User with ID "+r.userId+" not found"):i.$folders().then(function(){return i})}):i}function n(e,t,r,n,i,o){var s=r(t.folderId),r=_.find(n.$$folders,function(e){return e.name==s}),t=new("Appointment"==r.type?o:i)({id:r.name.split("/").pop(),owner:r.owner,name:r.displayName});return n.selectedFolder=t.id,t}function i(e){return e.$acl.$users(e.owner)}function t(e,t,r,n){e.DebugEnabled||n.defaultErrorHandler(function(){}),r.onError({to:"administration.**"},function(e){"administration"==e.to().name||e.ignored()||(t.error("transition error to "+e.to().name+": "+e.error().detail),n.go({state:"administration.rights"}))})}angular.module("SOGo.AdministrationUI",["ui.router","SOGo.Common","SOGo.Authentication","SOGo.PreferencesUI","SOGo.ContactsUI","SOGo.SchedulerUI"]).config(e).run(t),e.$inject=["$stateProvider","$urlServiceProvider"],r.$inject=["$q","$stateParams","User"],n.$inject=["$state","$stateParams","decodeUriFilter","stateUser","AddressBook","Calendar"],i.$inject=["stateFolder"],t.$inject=["$window","$log","$transitions","$state"]}(),function(){"use strict";function e(t,e,r,n,i,o,s,d,a){var u=this;function c(e,t){if(t&&t.target.parentNode.classList.contains("md-secondary"))return!1;u.selectedUid==e.uid?u.selectedUid=null:(u.selectedUid=e.uid,u.selectedUser=e,u.selectedUser.$rights())}function f(){e.go("administration.rights").then(function(){delete u.user.selectedFolder,u.user=null})}u.user=i,u.folder=o,u.users=s,u.folderType=angular.isDefined(o.$cards)?"AddressBook":"Calendar",u.selectedUser=null,u.selectedUid=null,u.selectUser=c,u.selectAllRights=function(e){o.$acl.$selectAllRights(e)},u.showRights=function(e){return u.selectedUid==e.uid&&e.rights},u.removeUser=function(e){t(function(){o.$acl.$removeUser(e.uid,o.owner)},500)},u.getTemplate=function(){return angular.isDefined(o.$cards)?"../"+o.owner+"/Contacts/"+o.id+"/UIxContactsUserRightsEditor":"../"+o.owner+"/Calendar/"+o.id+"/UIxCalUserRightsEditor"},u.close=f,u.save=function(){o.$acl.$saveUsersRights(o.owner).then(function(){n.show(n.simple().textContent(l("ACLs saved")).position(d.toastPosition).hideDelay(2e3)),r("xs")&&f()})},u.userToAdd="",u.searchText="",u.userFilter=function(e){return a.$filter(e,o.$acl.users,{dry:!0,uid:u.user.uid})},u.addUser=function(e){e&&o.$acl.$addUser(e,o.owner).then(function(e){u.userToAdd="",u.searchText="",u.selectedUid=null,e&&c(e)})}}e.$inject=["$timeout","$state","$mdMedia","$mdToast","stateUser","stateFolder","stateAcls","sgConstant","User"],angular.module("SOGo.AdministrationUI").controller("AdministrationAclController",e)}(),function(){"use strict";function e(t,e,r,n,i,o,s,d,l){var a=this;angular.element(e.document).find("title").attr("sg-default");this.$onInit=function(){this.service=l,this.selectedUser=null,this.users=l.$users},this.go=function(e){t.go("administration."+e),n(o["gt-md"])||i("left").close()},this.filter=function(e){l.$filter(e)},this.selectUser=function(e){this.selectedUser==this.users[e]?this.selectedUser=null:this.users[e].$folders().then(function(){a.selectedUser=a.users[e]})},this.selectFolder=function(e){t.go("administration.rights.edit",{userId:this.selectedUser.uid,folderId:d(e.name)})}}e.$inject=["$state","$window","$mdToast","$mdMedia","$mdSidenav","sgConstant","Dialog","encodeUriFilter","User"],angular.module("SOGo.AdministrationUI").controller("AdministrationController",e)}(),function(){"use strict";function e(e){e.registerStyles(['.foreground-1 { color: "{{foreground-1}}" }','.foreground-2 { color: "{{foreground-2}}" }','.foreground-3 { color: "{{foreground-3}}" }','.foreground-4 { color: "{{foreground-4}}" }','.background-contrast { color: "{{background-contrast}}" }','.background-contrast-secondary { color: "{{background-contrast-secondary}}" }','.background-default { background-color: "{{background-default}}" }'].join("")),e.generateThemesOnDemand(!1)}function t(e){this.defaultTheme=e.THEMES[e.defaultTheme()],this.jsonDefaultTheme=JSON.stringify(this.defaultTheme,void 0,2)}e.$inject=["$mdThemingProvider"],t.$inject=["$mdTheming"],angular.module("SOGo.AdministrationUI").config(e).controller("ThemePreviewController",t)}(); //# sourceMappingURL=Administration.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Administration.js.map b/UI/WebServerResources/js/Administration.js.map index f3d4f3e1b..c9ca39ad2 100644 --- a/UI/WebServerResources/js/Administration.js.map +++ b/UI/WebServerResources/js/Administration.js.map @@ -1 +1 @@ -{"version":3,"file":"Administration.js","sources":["Administration/Administration.app.js","Administration/AdministrationAclController.js","Administration/AdministrationController.js","Administration/ThemePreviewController.js"],"names":["configure","$stateProvider","$urlServiceProvider","state","abstract","views","administration","templateUrl","controller","controllerAs","url","module","acl","resolve","stateUser","stateFolder","rules","otherwise","$q","$stateParams","User","user","_","find","$users","uid","userId","angular","isUndefined","$filter","then","users","reject","$folders","$state","decodeUriFilter","AddressBook","Calendar","folderId","folder","$$folders","name","o","type","id","split","pop","owner","displayName","selectedFolder","runBlock","$window","$log","$transitions","DebugEnabled","defaultErrorHandler","onError","to","transition","ignored","error","detail","go","config","run","$inject","AdministrationAclController","$timeout","$mdMedia","$mdToast","sgConstant","vm","this","selectUser","$event","target","parentNode","classList","contains","selectedUid","selectedUser","$rights","close","folderType","isDefined","$cards","selectAllRights","$acl","$selectAllRights","showRights","rights","removeUser","$removeUser","getTemplate","save","$saveUsersRights","show","simple","textContent","l","position","toastPosition","hideDelay","userToAdd","searchText","userFilter","$query","dry","addUser","data","$addUser","AdministrationController","$mdSidenav","Dialog","encodeUriFilter","service","filter","i","selectFolder","$mdThemingProvider","registerStyles","join","generateThemesOnDemand","ThemePreviewController","$mdTheming","defaultTheme","THEMES","jsonDefaultTheme","JSON","stringify","undefined"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Administration.js","sources":["Administration/Administration.app.js","Administration/AdministrationAclController.js","Administration/AdministrationController.js","Administration/ThemePreviewController.js"],"names":["configure","$stateProvider","$urlServiceProvider","state","abstract","views","administration","templateUrl","controller","controllerAs","url","module","acl","resolve","stateUser","stateFolder","stateAcls","rules","otherwise","$q","$stateParams","User","user","_","find","$users","uid","userId","angular","isUndefined","$filter","then","users","reject","$folders","$state","decodeUriFilter","AddressBook","Calendar","folderId","folder","$$folders","name","o","type","id","split","pop","owner","displayName","selectedFolder","$acl","runBlock","$window","$log","$transitions","DebugEnabled","defaultErrorHandler","onError","to","transition","ignored","error","detail","go","config","run","$inject","AdministrationAclController","$timeout","$mdMedia","$mdToast","sgConstant","vm","this","selectUser","$event","target","parentNode","classList","contains","selectedUid","selectedUser","$rights","close","folderType","isDefined","$cards","selectAllRights","$selectAllRights","showRights","rights","removeUser","$removeUser","getTemplate","save","$saveUsersRights","show","simple","textContent","l","position","toastPosition","hideDelay","userToAdd","searchText","userFilter","$query","dry","addUser","data","$addUser","AdministrationController","$mdSidenav","Dialog","encodeUriFilter","element","document","attr","$onInit","service","filter","i","selectFolder","$mdThemingProvider","registerStyles","join","generateThemesOnDemand","ThemePreviewController","$mdTheming","defaultTheme","THEMES","jsonDefaultTheme","JSON","stringify","undefined"],"mappings":"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"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Common.js b/UI/WebServerResources/js/Common.js index 75bceab57..9634aa063 100644 --- a/UI/WebServerResources/js/Common.js +++ b/UI/WebServerResources/js/Common.js @@ -1,2 +1,2 @@ -function l(){var n,e,t=arguments[0],i=t,r=arguments;for(labels[t]?i=labels[t]:clabels[t]&&(i=clabels[t]),n=1,e=0;n');return s.on("load",function(){var e=i.get("$state");2"+e+"");return e.find("a").attr("target","_blank"),t.trustAs("html",e.html())}}e.$inject=["$sce"],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}}e.$inject=["linkyFilter"],angular.module("SOGo.Common").filter("txt2html",e)}(),function(){"use strict";function e(t,n,e,i,r,o,s){var a=this;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).inactive||a.selectedUser.$rights())}a.users=r,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(e){return"UIx"+(t[0].getElementById("UIxAnonymousUserRightsEditor")&&e.$isAnonymous()?"Anonymous":"")+"UserRightsEditor"},a.userFilter=function(e){return o.$filter(e,s.$acl.users,{dry:!0})},a.closeModal=function(){s.$acl.$resetUsersRights(),e.hide()},a.saveModal=function(){s.$acl.$saveUsersRights().then(function(){e.hide()},function(e,t){i.alert(l("Warning"),l("An error occured, please try again."))})},a.confirmChange=function(e){e=e.$confirmRights(a.folder);e&&(a.confirmation.showing=!0,a.confirmation.message=e)},a.removeUser=function(e){n(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.toggleAllRights=function(e){s.$acl.$toggleAllRights(e)},a.selectUser=c,a.hasNoRight=function(e){return s.$acl.$hasNoRight(e)},a.showRights=function(e){return a.selectedUid==e.uid&&!e.inactive},a.confirmation={showing:!1,message:""}}e.$inject=["$document","$timeout","$mdDialog","Dialog","usersWithACL","User","folder"],angular.module("SOGo.Common").controller("AclController",e)}(),function(){"use strict";function e(e,t,n,i,r,o,s,a,c,u,d,h,m,g){var p=new m(h.baseURL(),h.activeUser());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:d.toastPosition}):u.debug("untrap error")}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(){i(function(){r.get("../date").then(function(e){t.currentDay=e})},864e5)},1e3*window.currentDay.secondsBeforeTomorrow),t.$watch(function(){return c(d["gt-xs"])},function(e){t.isGtExtraSmall=e}),t.$watch(function(){return c(d["gt-md"])},function(e){(t.isGtMedium=e)&&(t.leftIsClose=!1)}),e.$on("http:Error",f),t.isPopup||(h.activeUser("path").calendar&&g.getAlarms(),h.activeUser("path").mail&&g.pollInbox())},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"})}}e.$inject=["$rootScope","$scope","$timeout","$interval","$http","$window","$mdSidenav","$mdToast","$mdMedia","$log","sgConstant","sgSettings","Resource","Preferences"],angular.module("SOGo.Common").controller("navController",e)}(),function(){"use strict";function s(e){this.folderId=e}s.factory=["$q","$timeout","sgSettings","Resource","User",function(e,t,n,i,r){return angular.extend(s,{$q:e,$timeout:t,$$resource:new i(n.activeUser("folderURL"),n.activeUser()),$User:r}),s}],angular.module("SOGo.Common").factory("Acl",s.factory),s.prototype.$users=function(t){var n,i=this,r=s.$q.defer();return this.users?(r.resolve(this.users),r.promise):(angular.isDefined(t)?s.$$resource.userResource(t):s.$$resource).fetch(this.folderId,"acls").then(function(e){return i.users=[],angular.forEach(e.users,function(e){(n=new s.$User(e)).canSubscribeUser=n.isSubscribed,n.wasSubscribed=n.isSubscribed,n.$rights=angular.bind(n,n.$acl,i.folderId,t),i.users.push(n)}),r.resolve(i.users),i.users},function(e){throw r.reject(l(e.statusText)),Error("No access to object")})},s.prototype.$addUser=function(e,t){var n=this,i=s.$q.defer(),r={uid:e.uid};return!e.uid||-1<_.indexOf(_.map(this.users,"uid"),e.uid)?i.resolve():(angular.isDefined(t)?s.$$resource.userResource(t):s.$$resource).fetch(this.folderId,"addUserInAcls",r).then(function(){e.wasSubscribed=!1,e.userClass=e.isGroup?"normal-group":"normal-user",e.$rights=angular.bind(e,e.$acl,n.folderId,t),n.users.push(e),i.resolve(e)},function(e,t){i.reject(l("An error occured, please try again."))}),i.promise},s.prototype.$removeUser=function(t,e){var n=this,i={uid:t},e=(angular.isDefined(e)?s.$$resource.userResource(e):s.$$resource).fetch(this.folderId,"removeUserFromAcls",i);return e.then(function(){var e=_.indexOf(_.map(n.users,"uid"),t);0<=e&&(n.users[e].$shadowRights=null,n.users.splice(e,1))})},s.prototype.$toggleAllRights=function(n){var i=!angular.isUndefined(_.find(_.values(n.rights),function(e){return 1!==e&&"Modifier"!==e}));_.forEach(n.rights,function(e,t){angular.isNumber(n.rights[t])?n.rights[t]=i?1:0:n.rights[t]=i?"Modifier":"None"})},s.prototype.$hasNoRight=function(e){e=_.find(e.rights,function(e,t){return angular.isNumber(e)?1===e:"None"!==e});return _.isUndefined(e)},s.prototype.$resetUsersRights=function(){angular.forEach(this.users,function(e){e.$resetRights()})},s.prototype.$saveUsersRights=function(e){var t=this,n=s.$q.defer(),i=s.$q.defer(),r={action:"saveUserRights"},o=[];return angular.forEach(this.users,function(e){e.$rightsAreDirty()&&o.push(e.$omit())}),o.length?(angular.isDefined(e)?s.$$resource.userResource(e):s.$$resource).save(this.folderId,o,r).then(function(){angular.forEach(t.users,function(e){e.$rightsAreDirty()&&(e.$shadowRights=angular.copy(e.rights))}),n.resolve()},n.reject):n.resolve(),o=[],angular.forEach(this.users,function(e){!e.wasSubscribed&&e.isSubscribed&&o.push(e.uid)}),o.length?(r={uids:o.join(",")},s.$$resource.fetch(this.folderId,"subscribeUsers",r).then(function(){angular.forEach(t.users,function(e){e.wasSubscribed=e.isSubscribed}),i.resolve()},i.reject)):i.resolve(),s.$q.all([n.promise,i.promise])}}(),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 h(e,t){var n,i;return t&&(e+="@"+t),t=""+window.location.href,"/"==(e=ApplicationBaseURL+encodeURIComponent(e))[0]&&(i=(n=t.split("/"))[2],e=n[0]+"//"+i+e),t.startsWith(e)&&!t.endsWith("/logoff")?t:e}function e(c,u,s,d){return{login:function(e){var t,n=c.defer(),i=e.username,r=e.password,o=e.verificationCode,s=e.domain,a=e.rememberLogin?1:0;return e.loginSuffix&&!i.endsWith(e.loginSuffix)&&(i+=loginSuffix,s=!1),e.language&&"WONoSelectionString"!=e.language&&(t=e.language),u({method:"POST",url:"/SOGo/connect",data:{userName:i,password:r,verificationCode:o,domain:s,language:t,rememberLogin:a}}).then(function(e){var t=e.data;navigator&&!navigator.cookieEnabled?n.reject({error:l("cookiesNotEnabled")}):void 0!==t.totpMissingKey&&202==e.status?n.resolve({totpmissingkey:1}):void 0!==t.totpDisabled?n.resolve({cn:t.cn,url:h(i,s),totpdisabled:1}):void 0!==t.expire&&void 0!==t.grace?t.expire<0&&0','
',' ','

'," "," ",' '," ","
"," ",' '," "+l("Cancel")," ",' '," "+l("OK")," "," ","
",""].join(""),controller:o}),o.$inject=["scope","$mdDialog"],r.promise},e.$inject=["$q","$mdDialog"],angular.module("SOGo.Common").factory("Dialog",e)}(),function(){"use strict";angular.module("SOGo.Common").factory("Gravatar",function(){return function(e,t,n,i){var r,o=t,s=n;return e?(t||(o=48),"https://www.gravatar.com/avatar/"+(e=0<=(t=e.indexOf("<"))&&t<(r=e.indexOf(">",t))?e.substring(t+1,r):e).md5()+"?s="+o+"&d="+(n=s&&"none"!=s?n:i&&i.no_404?"mm":"404")):""}})}(),function(){"use strict";function a(e,t,n,i,r,o,s){angular.extend(this,{_http:e,_q:t,_window:n,_cookies:i,_path:r,_activeUser:o}),angular.extend(this,s),this._path=this._path.replace(/\/$/,"")}a.$factory=["$http","$q","$window","$cookies",function(i,r,o,s){return function(e,t,n){return new a(i,r,o,s,e,t,n)}}],angular.module("SOGo.Common").factory("Resource",a.$factory),a.prototype.encodeURL=function(e){var t=this,n=e;return angular.isArray(n)||(n=e.split("/")),_.map(n,function(e){return t._window.encodeURIComponent(e.toString())})},a.prototype.userResource=function(e){var t=_.compact(this._activeUser.folderURL.split("/"));return e&&t.splice(t.length-1,1,escape(e)),new a(this._http,this._q,this._window,this._cookies,"/"+t.join("/"),this._activeUser)},a.prototype.path=function(){var e=[this._path];return 0",' ','
',"
","
","
"," "," ",' '," {{keys[0].description}}",'
'," {{keys[0].lkey || hotkey}}","
","
","
","
",""].join(""),controller:t,locals:{hotkeys:e._hotkeys}}).finally(function(){e._cheatSheet=null}),t.$inject=["$scope","hotkeys"]},n}(this.$get=e).$inject=["$rootScope","$window"]})}(),function(){"use strict";function c(e){e&&this.init(e)}c.factory=["$q","$log","sgSettings","Resource",function(e,t,n,i){return angular.extend(c,{$q:e,$log:t,$$resource:new i(n.activeUser("folderURL"),n.activeUser()),$query:"",$users:[]}),c}],angular.module("SOGo.Common").factory("User",c.factory),c.$filter=function(e,s,a){var t=c.$$resource,n={search:e};if(a&&a.dry)a&&a.uid&&(t=c.$$resource.userResource(a.uid));else{if(!e)return c.$users.splice(0,c.$users.length),c.$q.when(c.$users);if(c.$query==e)return c.$q.when(c.$users);c.$query=e}return t.fetch(null,"usersSearch",n).then(function(e){function n(e){return this.uid==e.uid}var t,i,r,o;for(a?a.dry?o=[]:a.results&&(o=a.results):o=c.$users,t=s?_.filter(e.users,function(e){return!_.find(s,_.bind(n,e))}):e.users,i=o.length-1;0<=i;i--)r=o[i],_.find(t,_.bind(n,r))||o.splice(i,1);return _.forEach(t,function(e,t){_.isUndefined(_.find(o,_.bind(n,e)))&&(e=new c(e),o.splice(t,0,e))}),c.$log.debug(o),o})},c.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=" "},c.prototype.$fullname=function(){var e=this.cn||this.uid;return this.c_info&&(e+=" ("+this.c_info.split("\n").join("; ")+")"),e},c.prototype.$shortFormat=function(e){var t=this.$fullname(),n=this.c_email;return!(e&&!1===e.email)&&n&&t!=n&&(t+=" <"+n+">"),t},c.prototype.$acl=function(e,t){var n=this,i=c.$q.defer(),r={uid:this.uid};return this.$shadowRights?i.resolve(this.rights):(angular.isDefined(t)?c.$$resource.userResource(t):c.$$resource).fetch(e,"userRights",r).then(function(e){return n.rights=e,n.$shadowRights=angular.copy(e),i.resolve(e),e}),i.promise},c.prototype.$isGroup=function(){return this.isGroup||this.userClass&&"normal-group"==this.userClass},c.prototype.$isAnonymous=function(){return"anonymous"==this.uid},c.prototype.$isSpecial=function(){return this.userClass&&"public-user"==this.userClass},c.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)},c.prototype.$rightsAreDirty=function(){return this.rights&&!_.isEqual(this.rights,this.$shadowRights)},c.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))},c.prototype.$folders=function(e){var t=this,n=c.$q.defer(),e={type:e};return this.$$folders?n.resolve(this.$$folders):c.$$resource.userResource(this.uid).fetch(null,"foldersSearch",e).then(function(e){t.$$folders=e.folders,n.resolve(e.folders)}),n.promise},c.prototype.$omit=function(){var n={};return angular.forEach(this,function(e,t){"constructor"!=t&&"$"!=t[0]&&(n[t]=e)}),n},c.prototype.toString=function(){return"[User "+this.c_email+"]"}}(),function(){"use strict";function e(c,e,u){return{restrict:"A",scope:{autogrow:"=sgAutogrow"},link:function(e,t,n){var i,r,o,s,a;function l(){s=(s=i.value.encodeEntities()).replace(/\n/g,"
"),o.innerHTML=s+'
',o.style.visibility="hidden",o.style.display="block",i.style.height=Math.max(r,o.offsetHeight)+"px",o.style.visibility="visible",o.style.display="none"}e.autogrow&&(i=t[0],r=i.clientHeight,o=c[0].createElement("div"),s=null,o.classList.add("md-input"),o.classList.add("plain-text"),o.style.display="none",o.style.whiteSpace="pre-wrap",o.style.wordWrap="break-word",i.parentNode.appendChild(o),i.style.resize="none",i.style.overflow="hidden",t.on("keyup",u.debounce(l,200)),t.on("paste",l),a=e.$watch(function(){return t[0].value},function(e){e&&(l(),a())}))}}}e.$inject=["$document","$timeout","$mdUtil"],angular.module("SOGo.Common").directive("sgAutogrow",e)}(),function(){"use strict";function e(e,t,r,n,o,s){var a,i;function l(){a.url=null,a.urlEmail=null,a.img.addClass("ng-hide"),a.genericImg.removeClass("ng-hide")}function c(){a.genericImg.addClass("ng-hide"),a.img.removeClass("ng-hide")}a=this,e.$on("$destroy",function(){i&&t.off("click",i)}),e.$watch(function(){return a.email},function(e,t){var n,i;e&&a.urlEmail!=e?(l(),o.defaults.SOGoGravatarEnabled&&(i=s(n=e,a.size,o.defaults.SOGoAlternateAvatar),r({method:"GET",url:i,cache:!0,headers:{Accept:"image/*"}}).then(function(){a.url||(a.url=i,a.urlEmail=n,c())},function(){l()}))):e||l()}),"sg-src"in t[0].attributes&&e.$watch(function(){return a.src},function(e){e&&(a.url=e,a.urlEmail=""+a.email,t.addClass("sg-avatar-image--zoomable"),i=function(){t.toggleClass("sg-avatar-image--zoom")},t.on("click",i),c())})}e.$inject=["$scope","$element","$http","$q","Preferences","Gravatar"],angular.module("SOGo.Common").directive("sgAvatarImage",function(){return{restrict:"AE",scope:{},bindToController:{size:"@",email:"=sgEmail",src:"=sgSrc"},transclude:!0,template:['
'," ",' ',' ',"
"].join(""),link:function(e,t,n,i){var r,o=t.find("img"),t=t.find("md-icon"),s=angular.element(t[0]),a=angular.element(t[1]);n.size&&(o.attr("width",n.size),o.attr("height",n.size),s.css("font-size",n.size+"px"),a.css("font-size",parseInt(.4*n.size)+"px"));angular.isDefined(n.ngDisabled)&&(r=e.$watch(n.ngDisabled,function(e){n.disabled&&a.css({display:"block"}),r()}));i.img=o,i.genericImg=s},controller:"sgAvatarImageController",controllerAs:"vm"}}).controller("sgAvatarImageController",e)}(),function(){"use strict";function e(e,l,c){return{link:function(e,t){var n=t[0].querySelector(".sg-button-toggle"),i=n.querySelector(".sg-icon-toggle"),r="md-rotate-180-ccw",o=t[0].querySelector(".sg-block-toggle"),s=!1;function a(){o.setAttribute("aria-hidden",!s),o.setAttribute("aria-expanded",s),s||(o.style.visibility="hidden")}n.classList.add("md-clickable"),angular.element(n).on("click",function(){(s=!s)?i.classList.add(r):i.classList.remove(r),s&&(o.style.visibility="visible"),c(function(){var e=s?o.scrollHeight:0;l(angular.element(o),{easing:"cubic-bezier(0.35, 0, 0.25, 1)",to:{height:e+"px"},duration:.75}).start().then(function(){a()})})}),a()}}}e.$inject=["$mdUtil","$animateCss","$$rAF"],angular.module("SOGo.Common").directive("sgBlockToggle",e)}(),function(){"use strict";function e(a,l,c,u){var d="sg-checked";return{restrict:"E",replace:!0,transclude:!0,require:"?ngModel",template:['