diff --git a/UI/WebServerResources/js/Mailer.services.js b/UI/WebServerResources/js/Mailer.services.js index d30ac32d7..bbf692af3 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,o,i,a,r,l){return angular.extend(e,{$q:t,$timeout:n,$log:s,$$resource:new i(o.activeUser("folderURL")+"Mail",o.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&&o(e.children)})};return e.$Preferences.settings.Mail.ExpandedFolders&&(s=angular.isString(e.$Preferences.settings.Mail.ExpandedFolders)?angular.fromJson(e.$Preferences.settings.Mail.ExpandedFolders):e.$Preferences.settings.Mail.ExpandedFolders,n.$expanded=s.indexOf("/"+n.id)>=0,s.length>0&&o(n.$mailboxes)),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=this,s=[],o=[],i=function(e){_.forEach(e,function(e){s.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||(n.$$flattenMailboxes=s,t&&t.saveState&&(_.forEach(e.$accounts,function(e){e.$expanded&&o.push("/"+e.id),_.reduce(e.$$flattenMailboxes,function(e,t){return t.$expanded&&e.push("/"+t.id),e},o)}),e.$$resource.post(null,"saveFoldersState",o)))):s=this.$$flattenMailboxes,s},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.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){return e.$log.debug("New message (compose): "+JSON.stringify(t,void 0,2)),new e.$Message(t.accountId,n.$getMailboxByPath(t.mailboxPath),t)}).then(function(n){return e.$$resource.fetch(n.$absolutePath({asDraft:!0}),"edit").then(function(s){return e.$log.debug("New message (edit): "+JSON.stringify(s,void 0,2)),angular.extend(n.editable,s),n.isNew=!0,t&&t.mailto&&n.$parseMailto(t.mailto),n})})},e.prototype.$addDelegate=function(t){var n=this,s=e.$q.defer(),o={uid:t.uid};return!t.uid||_.indexOf(_.map(this.delegates,"uid"),t.uid)>-1?s.resolve():e.$$resource.fetch(this.id.toString(),"addDelegate",o).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,o,i,a,r,l,c){return angular.extend(e,{$q:t,$timeout:n,$log:s,$$resource:new i(o.activeUser("folderURL")+"Mail",o.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=[],o=function(n,s){for(var i=0;i=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,o,i=this;return this.name==this.$shadowData.name?e.$q.when():(t=function(e,n){var s=null;return _.find(n,function(e){return e.path==i.path})?s=e:angular.forEach(n,function(e){!s&&e.children&&e.children.length>0&&(s=t(e,e.children))}),s},n=t(null,this.$account.$mailboxes),s=null===n?this.$account.$mailboxes:n.children,o=_.indexOf(_.map(s,"id"),this.id),this.$save().then(function(t){var n,a=i.path;i.init(t),s.splice(o,1),n=_.find(s,function(t){return e.$log.debug(t.name+" ? "+i.name),"folder"==t.type&&t.name.localeCompare(i.name)>0}),o=n?_.indexOf(_.map(s,"id"),n.id):s.length,s.splice(o,0,i);var r=new RegExp("^"+a),l=function(e){_.forEach(e.children,function(e){e.path=e.path.replace(r,i.path),e.id=e.$id(),l(e)})};l(i)}))},e.prototype.$compact=function(){var t=this;return e.$$resource.post(this.id,"expunge").then(function(e){e.quotas&&t.$account.updateQuota(e.quotas)})},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 o={msgUIDs:_.map(t,"uid"),flags:n,operation:s};return e.$$resource.post(this.id,"addOrRemoveLabel",o).then(function(){return t})},e.prototype.saveSelectedMessages=function(){var t,n;return t=_.filter(this.$messages,function(e){return e.selected}),n=_.map(t,"uid"),{uids:n},{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,o=this.$messages.length;return n=_.filter(t,function(e,t){return!e.isread}),this.unseenCount-=n.length,_.forEachRight(this.$messages,function(t,n){var i=_.findIndex(e,function(e){return t.uid==e});i>-1?(e.splice(i,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"),i=_.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,i){var a;return a=n.threaded?_.zipObject(o,s):{uid:s.toString()},n.uidsMap[a.uid]=i,t.push(new e.$Message(n.$account.id,n,a,!0)),t},n.$messages),_.forEach(n.headers,function(e){var t=_.zipObject(i,e),s=n.uidsMap[t.uid.toString()];_.extend(n.$messages[s],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)&&_.extend(n.$messages[s],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||(angular.extend(this,n),this.$formatFullAddresses()),this.uid=parseInt(n.uid)):this.$unwrap(n)}e.$factory=["$q","$timeout","$log","sgSettings","sgMessage_STATUS","Resource","Preferences",function(t,n,s,o,i,a,r){return angular.extend(e,{STATUS:i,$q:t,$timeout:n,$log:s,$$resource:new a(o.activeUser("folderURL")+"Mail",o.activeUser()),$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"),o=[];return _.forEach(_.keys(e.$tags),function(t){var i=e.$tags[t];-1!=i[0].search(s)&&(_.includes(n,t)||o.push({name:t,description:i[0],color:i[1]}))}),o},e.prototype.$absolutePath=function(t){function n(){var e;return(e=_.map(s.$mailbox.path.split("/"),function(e){return"folder"+e.asCSSIdentifier()})).splice(0,0,s.accountId),e.join("/")}var s=this,o=this.id;return(angular.isUndefined(this.id)||t&&t.nocache)&&(this.id=n()+"/"+this.uid,o=this.id),t&&t.asDraft&&this.draftId&&(o=n()+"/"+this.draftId),t&&t.withResourcePath&&(o=e.$$resource.path(o)),o},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,o=0;return _.forEach(["to","cc","bcc"],function(i){o+=t[i]?t[i].length:0,_.forEach(t[i],function(t,o){se&&n.push(l("and %{0} more...",o-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},e.prototype.$content=function(){var t=this,n=[],s=function(o){if(o.msgclass="msg-attachment-other","UIxMailPartAlternativeViewer"==o.type)s(_.find(o.content,function(e){return o.preferredPart==e.contentType}));else if(angular.isArray(o.content)){if("UIxMailPartSignedViewer"==o.type&&1===o["supports-smime"]){var i="

"+o.error.replace(/\n/,'

');i=i.replace(/\n/g,'

')+"

",t.$smime={validSignature:o.valid,message:i}}_.forEach(o.content,function(e){s(e)})}else angular.isUndefined(o.safeContent)&&(o.safeContent=o.content,t.$hasUnsafeContent|=o.safeContent.indexOf(" unsafe-")>-1),"UIxMailPartHTMLViewer"==o.type?(o.html=!0,t.$loadUnsafeContent||e.$displayRemoteInlineImages?(angular.isUndefined(o.unsafeContent)&&(o.unsafeContent=document.createElement("div"),o.unsafeContent.innerHTML=o.safeContent,angular.forEach(["src","data","classid","background","style"],function(e){var t,n,s,i=o.unsafeContent.querySelectorAll("[unsafe-"+e+"]");for(s=0;s"}),n={to:t},_.forEach(["subject","body"],function(t){var o=new RegExp(t+"=([^&]+)");t="body"==t?"text":t,(s=o.exec(e))&&(n[t]=decodeURIComponent(s[1]))}),_.forEach(["cc","bcc"],function(t){var o=new RegExp(t+"=([^&]+)");(s=o.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 o,i;return e.$log.debug("New "+t+": "+JSON.stringify(s,void 0,2)),o=n.$mailbox.$account.$getMailboxByPath(s.mailboxPath),i=new e(s.accountId,o,s),e.$$resource.fetch(i.$absolutePath({asDraft:!0}),"edit").then(function(s){return e.$log.debug("New "+t+": "+JSON.stringify(s,void 0,2)+" original UID: "+n.uid),angular.extend(i.editable,s),i.origin={message:n,action:t},i})})},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 angular.extend(n,t),n.$formatFullAddresses(),n.$loadUnsafeContent=!1,n.$loaded=e.STATUS.LOADED,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,o){return angular.extend(e,{$document:t,$timeout:n,$mdPanel:s,sgHotkeys:o}),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){function s(e){e.$ctrl=this,this.close=function(){e.close()},this.selectImage=function(e){this.selectedIndex=e,this.selectedImage=this.images[e]},this.nextImage=function(){this.selectedIndex!=this.lastIndex&&this.selectImage(this.selectedIndex+1)},this.previousImage=function(){this.selectedIndex>0&&this.selectImage(this.selectedIndex-1)}}var o=this,i=e.$mdPanel,a=angular.element(this.message.parts.content[n].content).find("img")[0].src,r=_.filter(this.message.attachmentAttrs,function(e){return 0===e.mimetype.indexOf("image/")}),c=_.findIndex(r,function(e){return e.url.indexOf(a)>=0});angular.element(e.$document[0].body).addClass("sg-image-gallery-backdrop");var u=i.newPanelPosition().absolute(),d=i.newPanelAnimation().openFrom(t.target).duration(100).withAnimation(i.animation.FADE),h={attachTo:angular.element(document.body),locals:{lastIndex:r.length-1,images:r,selectedIndex:c,selectedImage:r[c]},bindToController:!0,controller:s,controllerAs:"$panelCtrl",position:u,animation:d,targetEvent:t,fullscreen:!0,hasBackdrop:!0,template:['','
',' '," arrow_back"," ",' image','
',' '," file_download"," ","
",'
',' '," navigate_before"," ",' ',' '," navigate_next"," ","
",'
','
',' ',"
","
","
"].join(""),trapFocus:!0,clickOutsideToClose:!0,escapeToClose:!0,focusOnOpen:!0,onOpenComplete:function(){o.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.naturalWidth=0)for(t=0,n=0;n0){var s=_.map(t,"uid");i.push(t);var r=e.$$resource.post(n,"addOrRemoveLabel",_.assign(o,{msgUIDs:s}));a.push(r)}}),e.$q.all(a).then(function(){return _.flatten(i)})},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 o=e[0].$mailbox.$copyMessages(e,n);s.push(o)}}),e.$q.all(s)},e.prototype.$moveMessages=function(t,n){var s=[];return _.forEach(t,function(e,t){if(e.length>0){var o=e[0].$mailbox.$moveMessages(e,n);s.push(o)}}),e.$q.all(s)}}(),function(){"use strict";function e(e,t,n,s,o,i,a,r,c,u,d,h,g,f,m,p,$){function b(e){e.push(d.createHotkey({key:l("hotkey_search"),description:l("Search"),callback:S.searchMode})),e.push(d.createHotkey({key:l("hotkey_compose"),description:l("Write a new message"),callback:function(e){null===S.messageDialog&&S.newMessage(e)}})),e.push(d.createHotkey({key:l("hotkey_junk"),description:l("Mark the selected messages as junk"),callback:S.markOrUnMarkMessagesAsJunk})),e.push(d.createHotkey({key:"space",description:l("Toggle item"),callback:S.toggleMessageSelection})),e.push(d.createHotkey({key:"shift+space",description:l("Toggle range of items"),callback:S.toggleMessageSelection})),e.push(d.createHotkey({key:"up",description:l("View next item"),callback:M,preventInClass:["sg-mail-part"]})),e.push(d.createHotkey({key:"down",description:l("View previous item"),callback:x,preventInClass:["sg-mail-part"]})),e.push(d.createHotkey({key:"shift+up",description:l("Add next item to selection"),callback:C,preventInClass:["sg-mail-part"]})),e.push(d.createHotkey({key:"shift+down",description:l("Add previous item to selection"),callback:w,preventInClass:["sg-mail-part"]})),_.forEach(["backspace","delete"],function(t){e.push(d.createHotkey({key:t,description:l("Delete selected message or folder"),callback:S.confirmDeleteSelectedMessages}))}),_.forEach(e,function(e){d.registerHotkey(e)})}function v(e){return S.selectedFolder.$compact()}function y(){var t=[g.baseURL(),"UIxMailPopupView#!/Mail",S.account.id,h(h(S.selectedFolder.path)),"new"].join("/"),n=S.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(","))}function M(e){var t=S.selectedFolder.$selectedMessageIndex();return angular.isDefined(t)?(t--,S.selectedFolder.$topIndex>0&&S.selectedFolder.$topIndex--):(t=S.selectedFolder.getLength()-1,S.selectedFolder.$topIndex=S.selectedFolder.getLength()),t>-1&&S.selectMessage(S.selectedFolder.$messages[t]),e.preventDefault(),t}function x(e){var t=S.selectedFolder.$selectedMessageIndex();return angular.isDefined(t)?(t++,S.selectedFolder.$topIndex=0&&S.toggleMessageSelection(e,S.selectedFolder.$messages[t])}function w(e){var t;S.selectedFolder.hasSelectedMessage()&&(t=x(e))>=0&&S.toggleMessageSelection(e,S.selectedFolder.$messages[t])}function I(){return $.$virtualMode?S.selectedFolder.$mailboxes:[S.selectedFolder]}function E(e,t){var s,i,a=t;S.mode.multiple=S.selectedFolder.$selectedCount(),e?(t>0&&(a-=1,s=S.selectedFolder.$messages[a]),t1){for(s=(n=i.uidsMap[t.uid])-2;s>=0&&!i.$messages[s].selected;)s--;if(s<0)for(s=n+2;s=0&&s0&&(S.messageDialog=m.confirm(l("Confirmation"),l("Are you sure you want to delete the selected messages?"),{ok:l("Delete")}).then(function(){var e=S.selectedFolder.hasSelectedMessage();S.selectedFolder.$deleteMessages(t).then(function(t){$.$virtualMode?e&&o.go("mail.account.virtualMailbox"):E(e,t)},function(n){S.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(){S.selectedFolder.$deleteMessages(t,{withoutTrash:!0}).then(function(t){$.$virtualMode?e&&o.go("mail.account.virtualMailbox"):E(e,t)})})})}).finally(function(){S.messageDialog=null})),e.preventDefault()},this.markOrUnMarkMessagesAsJunk=function(){var e=S.selectedFolder.hasSelectedMessage(),t=S.selectedFolder.$selectedMessages();0===_.size(t)&&e&&(t=[S.selectedFolder.$selectedMessage()]),_.size(t)>0&&S.selectedFolder.$markOrUnMarkMessagesAsJunk(t).then(function(){var n="/"+S.account.id+"/folderINBOX";"junk"!=S.selectedFolder.type&&(n="/"+S.account.$getMailboxByType("junk").id),S.selectedFolder.$moveMessages(t,n).then(function(t){$.$virtualMode?e&&o.go("mail.account.virtualMailbox"):E(e,t)})})},this.copySelectedMessages=function(e){var t=S.selectedFolder.$selectedMessages();_.size(t)>0&&S.selectedFolder.$copyMessages(t,"/"+e).then(function(){a.show(a.simple().content(l("%{0} message(s) copied",S.selectedFolder.$selectedCount())).position("top right").hideDelay(2e3))})},this.moveSelectedMessages=function(e){var t=S.selectedFolder.hasSelectedMessage(),n=S.selectedFolder.$selectedMessages(),s=S.selectedFolder.$selectedCount();_.size(n)>0&&S.selectedFolder.$moveMessages(n,"/"+e).then(function(e){a.show(a.simple().content(l("%{0} message(s) moved",s)).position("top right").hideDelay(2e3)),$.$virtualMode?t&&o.go("mail.account.virtualMailbox"):E(t,e)})},this.selectAll=function(){var e=0;_.forEach(I(),function(t){for(var n=0,s=t.$messages.length;n0&&S.selectedFolder.$flagMessages(e,"\\Flagged","add").then(function(e){_.forEach(e,function(e){e.isflagged=!0})})},this.markSelectedMessagesAsUnread=function(){var e=S.selectedFolder.$selectedMessages();_.size(e)>0&&S.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=S.selectedFolder.$selectedMessages();_.size(e)>0&&S.selectedFolder.$flagMessages(e,"seen","add").then(function(e){_.forEach(e,function(e){e.isread||e.$mailbox.unseenCount--,e.isread=!0})})}}function t(e){return e[0].controller.prototype.resetScroll=function(){"messagesList"==this.$element.parent().attr("id")?this.updateSize():this.scrollTo(0)},e}e.$inject=["$window","$scope","$timeout","$q","$state","$mdDialog","$mdToast","stateAccounts","stateAccount","stateMailbox","sgHotkeys","encodeUriFilter","sgSettings","sgFocus","Dialog","Account","Mailbox"],angular.module("SOGo.MailerUI").controller("MailboxController",e),t.$inject=["$delegate"],angular.module("material.components.virtualRepeat").decorator("mdVirtualRepeatContainerDirective",t)}(),function(){"use strict";function e(e,t,n,s,o,i,a,r,c,u,d,h,g,f,m,p,$,b){function v(e){_.forEach(["backspace","delete"],function(t){e.push(h.createHotkey({key:t,description:l("Delete selected message or folder"),callback:function(){f.selectedFolderController&&f.selectedFolder&&!f.selectedFolder.hasSelectedMessage()&&f.selectedFolderController.confirmDelete(f.selectedFolder)}}))}),_.forEach(e,function(e){h.registerHotkey(e)})}var y,M,x=this,C=[];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(),v(C),e.$on("$destroy",function(){_.forEach(C,function(e){h.deregisterHotkey(e)})})},this.hideAdvancedSearch=function(){x.service.$virtualPath=!1,x.service.$virtualMode=!1,y=x.accounts[0],M=x.searchPreviousMailbox,t.go("mail.account.mailbox",{accountId:y.id,mailboxId:c(M.path)})},this.toggleAdvancedSearch=function(){if(f.selectedFolder.$isLoading)x.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)})};x.virtualMailbox=new m(x.accounts[0]),f.$virtualMode||(x.searchPreviousMailbox=f.selectedFolder),f.selectedFolder=x.virtualMailbox,f.$virtualMode=!0,angular.isDefined(f.$virtualPath)?(e=x.accounts[0].$getMailboxByPath(f.$virtualPath),n.push(e),x.search.subfolders&&e.children.length&&s(e.children)):n=x.accounts[0].$flattenMailboxes(),x.virtualMailbox.setMailboxes(n),x.virtualMailbox.startSearch(x.search.match,x.search.params),"mail.account.virtualMailbox"!=t.$current.name&&t.go("mail.account.virtualMailbox",{accountId:x.accounts[0].id})}},this.addSearchParam=function(e){return x.currentSearchParam=e,r("advancedSearch"),!1},this.newSearchParam=function(e){if(e.length&&x.currentSearchParam.length){var t=0,n=x.currentSearchParam;return e.startsWith("!")&&(t=1,e=e.substring(1).trim()),x.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(o).triggerHandler("resize")},150)},this.subscribe=function(e){function t(e,t,n){function s(){t.hide()}var o=this;o.loading=!0,o.filter={name:""},o.account=new g({id:n.id,name:n.name}),o.close=s,o.account.$getMailboxes({reload:!0,all:!0}).then(function(){o.loading=!1})}i.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"]},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){function t(e,t,n,s){function o(e){return n.$filter(e,s.delegates)}function i(){t.hide()}function a(e){s.$removeDelegate(e.uid).catch(function(e,t){u.alert(l("Warning"),l("An error occured please try again."))})}function r(e){e&&s.$addDelegate(e).then(function(){c.userToAdd="",c.searchText=""},function(e){u.alert(l("Warning"),e)})}var c=this;c.users=s.delegates,c.account=s,c.userToAdd="",c.searchText="",c.userFilter=o,c.closeModal=i,c.removeUser=a,c.addUser=r}i.show({templateUrl:e.id+"/delegation",controller:t,controllerAs:"delegate",clickOutsideToClose:!0,escapeToClose:!0,locals:{User:p,account:e}}),t.$inject=["$scope","$mdDialog","User","account"]},this.refreshUnseenCount=function(){var e,t=o.unseenCountFolders;_.forEach(x.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(x.accounts,function(t){_.forEach(t.$$flattenMailboxes,function(t){e[t.id]&&(t.unseenCount=e[t.id])})})}),(e=$.defaults.SOGoRefreshViewCheck)&&"manually"!=e&&s(x.refreshUnseenCount,1e3*e.timeInterval())},this.isDroppableFolder=function(e,t){return t.id!=e.id&&!t.isNoSelect()},this.dragSelectedMessages=function(e,n,s){var o,i,r,c,u,d;o="/"+n.id,0===(i=e.$selectedMessages()).length&&(i=[e.$selectedMessage()]),r=_.map(i,"uid"),c=e.selectedMessage&&r.indexOf(e.selectedMessage)>=0,"copy"==s?(u=e.$copyMessages(i,o),d=l("%{0} message(s) copied",i.length)):(u=e.$moveMessages(i,o),d=l("%{0} message(s) moved",i.length)),u.then(function(){c&&t.go("mail.account.mailbox"),a.show(a.simple().content(d).position("top right").hideDelay(2e3))})}}e.$inject=["$scope","$state","$transitions","$timeout","$window","$mdDialog","$mdToast","sgFocus","encodeUriFilter","Dialog","sgSettings","sgHotkeys","Account","Mailbox","VirtualMailbox","User","Preferences","stateAccounts"],angular.module("SOGo.MailerUI").controller("MailboxesController",e)}(),function(){"use strict";function e(e,t,n,s,o,i,a,r,c,u,d,h,g,f,m,p,$,b,v,y,M){function x(){return t.mailbox?(arguments.length>0&&(t.mailbox.messageDialog=arguments[0]),t.mailbox.messageDialog):null}function C(e){return function(){if(null===x())return e.apply(F,arguments)}}function w(e){e.push(d.createHotkey({key:l("hotkey_reply"),description:l("Reply to the message"),callback:C(angular.bind(F,F.reply))})),e.push(d.createHotkey({key:l("hotkey_replyall"),description:l("Reply to sender and all recipients"),callback:C(angular.bind(F,F.replyAll))})),e.push(d.createHotkey({key:l("hotkey_forward"),description:l("Forward selected message"),callback:C(angular.bind(F,F.forward))})),e.push(d.createHotkey({key:l("hotkey_flag"),description:l("Flagged"),callback:C(angular.bind(u,u.toggleFlag))})),_.forEach(["backspace","delete"],function(t){e.push(d.createHotkey({key:t,callback:C(function(e){0===F.mailbox.$selectedCount()&&F.deleteMessage(),e.preventDefault()})}))}),_.forEach(e,function(e){d.registerHotkey(e)})}function I(){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}function E(e,t){null===x()&&x(o.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:F.account,stateMessage:t}}).finally(function(){x(null),F.closePopup()}))}function S(e,t){F.message.$plainContent().then(function(n){var s={pid:$.$defaultCalendar(),type:t,summary:n.subject,comment:n.content},i=new b(s),a=[g.activeUser("folderURL"),"Calendar","UIx"+t.capitalize()+"EditorTemplate"].join("/");return o.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:a,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:i}})})}var F=this,k=null,D=[];this.$onInit=function(){e.$messageController=F,f.setMessage(u),this.$state=n,this.accounts=a,this.account=r,this.mailbox=c,this.message=u,this.service=M,this.tags={searchText:"",selected:""},this.showFlags=u.flags&&u.flags.length>0,this.$showDetailedRecipients=!1,F.showRawSource=!1,w(D),e.opener?(t.$watchCollection(function(){return F.message.flags},function(e,t){var n;(e||t)&&(n=I()).messageCtrl&&n.messageCtrl.service.$timeout(function(){n.messageCtrl.showFlags=!0,n.messageCtrl.message.flags=e})}),t.$watch(function(){return F.message.isflagged},function(e,t){var n=I();n.mailboxCtrl&&n.mailboxCtrl.service.$timeout(function(){_.find(n.mailboxCtrl.selectedFolder.$messages,{uid:F.message.uid}).isflagged=e})})):t.$watchCollection(function(){return F.message.flags},function(e,t){var n,s,o;(e||t)&&(n=e||[],s=t||[],_.forEach(n,function(e,t){angular.isObject(e)&&(n[t]=e.name)}),n.length>s.length?(o=_.difference(n,s),_.forEach(o,function(e){F.message.addTag(e)})):n.length0&&(l-=1,a=e.$messages[l]),ne.$lastVisibleIndex&&(e.$topIndex=l-(e.$lastVisibleIndex-e.$topIndex))):o.go("mail.account.mailbox").then(function(){t=null,delete e.selectedMessage})}catch(e){}}F.closePopup()})},this.close=function(){n.go("mail.account.mailbox").then(function(){F.message=null,delete c.selectedMessage})},this.reply=function(e){E(e,this.message.$reply())},this.replyAll=function(e){E(e,this.message.$replyAll())},this.forward=function(e){E(e,this.message.$forward())},this.edit=function(e){this.message.$editableContent().then(function(){E(e,F.message)})},this.openPopup=function(){var t=[g.baseURL(),"UIxMailPopupView#!/Mail",this.message.accountId,h(h(this.message.$mailbox.path)),this.message.uid].join("/"),n=this.message.$absolutePath();k=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(","))},this.closePopup=function(){e.opener&&e.close()},this.newMessage=function(e,t){e.stopPropagation(),e.preventDefault(),this.account.$newMessage({mailto:t}).then(function(t){E(e,t)})},this.toggleRawSource=function(e){this.showRawSource||this.message.$rawSource?this.showRawSource=!this.showRawSource:M.$$resource.post(this.message.id,"viewsource").then(function(e){F.message.$rawSource=e,F.showRawSource=!0})},this.print=function(t){e.print()},this.convertToEvent=function(e){return S(e,"appointment")},this.convertToTask=function(e){return S(e,"task")}}e.$inject=["$window","$scope","$state","$mdMedia","$mdDialog","sgConstant","stateAccounts","stateAccount","stateMailbox","stateMessage","sgHotkeys","encodeUriFilter","sgSettings","ImageGallery","sgFocus","Dialog","Calendar","Component","Account","Mailbox","Message"],angular.module("SOGo.MailerUI").controller("MessageController",e)}(),function(){"use strict";function e(e,t,n,s,o,i,a,r,c,u,d,h,g,f,m){function p(){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==c.uid&&(n.draftMessageCtrl=t.opener.$messageController)):c.origin&&(e=c.origin.message,t.opener.$mailboxController.selectedFolder.$id()==e.$mailbox.$id()&&(n.originMailboxCtrl=t.opener.$mailboxController)))}catch(e){}return n}function $(){var e,t,n,s=E.message.editable.attachmentAttrs;if(s)for(e=0;e',' '," {{$ctrl.mailbox.$icon}}"," ",'

',' ',' ',"

",' ',' '," ",' more_vert'].join(""),controller:"sgMailboxListItemController",controllerAs:"$ctrl"}}function t(e,t,n,s,o,i,a,r,c,u,d){var h=this;this.$onInit=function(){this.$element=t,this.service=u,this.editMode=!1,this.accountController.addMailboxController(this)},this.$postLink=function(){this.selectableElement=t.find("div")[0],this.clickableElement=t.find("p")[0],this.inputContainer=t.find("md-input-container")[0],this.inputElement=t.find("input")[0],this.moreOptionsButton=_.last(t.find("md-icon")),null!==u.selectedFolder&&u.selectedFolder.id==this.mailbox.id&&this.accountController.selectFolder(this)},this.childLevel=function(){return"sg-child-level-"+this.mailbox.level},this.selectFolder=function(e){this.editMode||this.mailbox==u.selectedFolder||(u.$virtualPath=!1,u.$virtualMode=!1,this.accountController.selectFolder(this),e&&(n.go("mail.account.mailbox",{accountId:this.mailbox.$account.id,mailboxId:d(this.mailbox.path)}),e.stopPropagation(),e.preventDefault()))},this.unselectFolder=function(){t[0].classList.remove("md-bg")},this.editFolder=function(e){this.editMode=!0,this.inputElement.value=this.mailbox.name,this.clickableElement.classList.add("ng-hide"),this.inputContainer.classList.remove("ng-hide"),this.inputElement.focus(),this.inputElement.select(),e&&(e.stopPropagation(),e.preventDefault())},this.saveFolder=function(e){this.inputElement.disabled||(this.mailbox.name=this.inputElement.value,this.inputElement.disabled=!0,this.mailbox.$rename().then(function(e){h.editMode=!1,h.inputContainer.classList.add("ng-hide"),h.clickableElement.classList.remove("ng-hide")}).finally(function(){h.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.mailbox.name},this.confirmDelete=function(){c.confirm(l("Warning"),l("Do you really want to move this folder into the trash ?"),{ok:l("Delete")}).then(function(){h.mailbox.$delete().then(function(){n.go("mail.account.inbox")},function(e){c.confirm(l("Warning"),l("The mailbox could not be moved to the trash folder. Would you like to delete it immediately?"),{ok:l("Delete")}).then(function(){h.mailbox.$delete({withoutTrash:!0}).then(function(){n.go("mail.account.inbox")},function(e){c.alert(l('An error occured while deleting the mailbox "%{0}".',h.mailbox.name),l(e.error))})})})})},this.showMenu=function(e){function t(e,t,n,o){var d=this;this.markFolderRead=function(){this.folder.$markAsRead()},this.newFolder=function(){c.prompt(l("New Folder..."),l("Enter the new name of your folder")).then(function(e){d.folder.$newMailbox(d.folder.id,e).then(function(){},function(t,n){c.alert(l('An error occured while creating the mailbox "%{0}".',e),l(t.error))})})},this.editFolder=function(){this.itemCtrl.editFolder()},this.compactFolder=function(){this.folder.$compact().then(function(){s.show(s.simple().content(l("Folder compacted")).position("top right").hideDelay(3e3))})},this.emptyTrashFolder=function(){this.folder.$emptyTrash().then(function(){s.show(s.simple().content(l("Trash emptied")).position("top right").hideDelay(3e3))})},this.showAdvancedSearch=function(){u.$virtualPath=this.folder.path,i(r["gt-md"])||a("left").close()},this.share=function(){this.folder.$acl.$users().then(function(){n.show({templateUrl:d.folder.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:d.folder.$acl.users,User:o,folder:d.folder}})})},this.setFolderAs=function(e){this.folder.$setFolderAs(e).then(function(){d.folder.$account.$getMailboxes({reload:!0})})}}var n=o.newPanelPosition().relativeTo(this.moreOptionsButton).addPanelPosition(o.xPosition.ALIGN_START,o.yPosition.ALIGN_TOPS),d=o.newPanelAnimation().openFrom(this.moreOptionsButton).duration(100).withAnimation(o.animation.FADE),h={attachTo:angular.element(document.body),locals:{itemCtrl:this,folder:this.mailbox,confirmDelete:this.confirmDelete},bindToController:!0,controller:t,controllerAs:"$menuCtrl",position:n,animation:d,targetEvent:e,templateUrl:"UIxMailFolderMenu",trapFocus:!0,clickOutsideToClose:!0,escapeToClose:!0,focusOnOpen:!0};o.open(h).then(function(e){e.panelEl.one("click",function(){e.close()})}),t.$inject=["mdPanelRef","$state","$mdDialog","User"]}}t.$inject=["$scope","$element","$state","$mdToast","$mdPanel","$mdMedia","$mdSidenav","sgConstant","Dialog","Mailbox","encodeUriFilter"],angular.module("SOGo.MailerUI").controller("sgMailboxListItemController",t).directive("sgMailboxListItem",e)}(),function(){function e(){return{restrict:"C",scope:{},bindToController:{message:"=sgMessage"},controller:"sgMessageListItemController"}}function t(e,t,n){var s=this;this.$onInit=function(){this.MailboxService=n,e.$watch(function(){return s.message?[_.pick(s.message,["uid","isread","isflagged"])]: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")}}t.$inject=["$scope","$element","Mailbox"],angular.module("SOGo.MailerUI").controller("sgMessageListItemController",t).directive("sgMessageListItem",e)}(),function(){function e(){function e(e,t,n,s){e.parentController=s}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:e,controller:"sgMessageListItemMainController",controllerAs:"$ctrl"}}function t(e,t,n,s,o,i,a,r,l){var c=this;this.$postLink=function(){var n,s,i,l;this.parentController=e.parentController,i=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=o.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,i)()},this.service=r,this.MailboxService=a}}t.$inject=["$scope","$element","$parse","$state","$mdUtil","$mdToast","Mailbox","Message","encodeUriFilter"],angular.module("SOGo.MailerUI").controller("sgMessageListItemMainController",t).directive("sgMessageListItemMain",e)}(),function(){"use strict";function e(){return{restrict:"A",bindToController:{partIndex:"=sgZoomableImage"},controller:t}}function t(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)}}t.$inject=["$element","ImageGallery"],angular.module("SOGo.MailerUI").directive("sgZoomableImage",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,o,i,a,r,l){return angular.extend(e,{$q:t,$timeout:n,$log:s,$$resource:new i(o.activeUser("folderURL")+"Mail",o.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&&o(e.children)})};return e.$Preferences.settings.Mail.ExpandedFolders&&(s=angular.isString(e.$Preferences.settings.Mail.ExpandedFolders)?angular.fromJson(e.$Preferences.settings.Mail.ExpandedFolders):e.$Preferences.settings.Mail.ExpandedFolders,n.$expanded=s.indexOf("/"+n.id)>=0,s.length>0&&o(n.$mailboxes)),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=this,s=[],o=[],i=function(e){_.forEach(e,function(e){s.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||(n.$$flattenMailboxes=s,t&&t.saveState&&(_.forEach(e.$accounts,function(e){e.$expanded&&o.push("/"+e.id),_.reduce(e.$$flattenMailboxes,function(e,t){return t.$expanded&&e.push("/"+t.id),e},o)}),e.$$resource.post(null,"saveFoldersState",o)))):s=this.$$flattenMailboxes,s},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.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){return e.$log.debug("New message (compose): "+JSON.stringify(t,void 0,2)),new e.$Message(t.accountId,n.$getMailboxByPath(t.mailboxPath),t)}).then(function(n){return e.$$resource.fetch(n.$absolutePath({asDraft:!0}),"edit").then(function(s){return e.$log.debug("New message (edit): "+JSON.stringify(s,void 0,2)),angular.extend(n.editable,s),n.isNew=!0,t&&t.mailto&&n.$parseMailto(t.mailto),n})})},e.prototype.$addDelegate=function(t){var n=this,s=e.$q.defer(),o={uid:t.uid};return!t.uid||_.indexOf(_.map(this.delegates,"uid"),t.uid)>-1?s.resolve():e.$$resource.fetch(this.id.toString(),"addDelegate",o).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,o,i,a,r,l,c){return angular.extend(e,{$q:t,$timeout:n,$log:s,$$resource:new i(o.activeUser("folderURL")+"Mail",o.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=[],o=function(n,s){for(var i=0;i=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,o,i=this;return this.name==this.$shadowData.name?e.$q.when():(t=function(e,n){var s=null;return _.find(n,function(e){return e.path==i.path})?s=e:angular.forEach(n,function(e){!s&&e.children&&e.children.length>0&&(s=t(e,e.children))}),s},n=t(null,this.$account.$mailboxes),s=null===n?this.$account.$mailboxes:n.children,o=_.indexOf(_.map(s,"id"),this.id),this.$save().then(function(t){var n,a=i.path;i.init(t),s.splice(o,1),n=_.find(s,function(t){return e.$log.debug(t.name+" ? "+i.name),"folder"==t.type&&t.name.localeCompare(i.name)>0}),o=n?_.indexOf(_.map(s,"id"),n.id):s.length,s.splice(o,0,i);var r=new RegExp("^"+a),l=function(e){_.forEach(e.children,function(e){e.path=e.path.replace(r,i.path),e.id=e.$id(),l(e)})};l(i)}))},e.prototype.$compact=function(){var t=this;return e.$$resource.post(this.id,"expunge").then(function(e){e.quotas&&t.$account.updateQuota(e.quotas)})},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 o={msgUIDs:_.map(t,"uid"),flags:n,operation:s};return e.$$resource.post(this.id,"addOrRemoveLabel",o).then(function(){return t})},e.prototype.saveSelectedMessages=function(){var t,n;return t=_.filter(this.$messages,function(e){return e.selected}),n=_.map(t,"uid"),{uids:n},{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,o=this.$messages.length;return n=_.filter(t,function(e,t){return!e.isread}),this.unseenCount-=n.length,_.forEachRight(this.$messages,function(t,n){var i=_.findIndex(e,function(e){return t.uid==e});i>-1?(e.splice(i,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"),i=_.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,i){var a;return a=n.threaded?_.zipObject(o,s):{uid:s.toString()},n.uidsMap[a.uid]=i,t.push(new e.$Message(n.$account.id,n,a,!0)),t},n.$messages),_.forEach(n.headers,function(e){var t=_.zipObject(i,e),s=n.uidsMap[t.uid.toString()];_.extend(n.$messages[s],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)&&_.extend(n.$messages[s],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||(angular.extend(this,n),this.$formatFullAddresses()),this.uid=parseInt(n.uid)):this.$unwrap(n)}e.$factory=["$q","$timeout","$log","sgSettings","sgMessage_STATUS","Resource","Preferences",function(t,n,s,o,i,a,r){return angular.extend(e,{STATUS:i,$q:t,$timeout:n,$log:s,$$resource:new a(o.activeUser("folderURL")+"Mail",o.activeUser()),$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"),o=[];return _.forEach(_.keys(e.$tags),function(t){var i=e.$tags[t];-1!=i[0].search(s)&&(_.includes(n,t)||o.push({name:t,description:i[0],color:i[1]}))}),o},e.prototype.$absolutePath=function(t){function n(){var e;return(e=_.map(s.$mailbox.path.split("/"),function(e){return"folder"+e.asCSSIdentifier()})).splice(0,0,s.accountId),e.join("/")}var s=this,o=this.id;return(angular.isUndefined(this.id)||t&&t.nocache)&&(this.id=n()+"/"+this.uid,o=this.id),t&&t.asDraft&&this.draftId&&(o=n()+"/"+this.draftId),t&&t.withResourcePath&&(o=e.$$resource.path(o)),o},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,o=0;return _.forEach(["to","cc","bcc"],function(i){o+=t[i]?t[i].length:0,_.forEach(t[i],function(t,o){se&&n.push(l("and %{0} more...",o-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},e.prototype.$content=function(){var t=this,n=[],s=function(o){if(o.msgclass="msg-attachment-other","UIxMailPartAlternativeViewer"==o.type)s(_.find(o.content,function(e){return o.preferredPart==e.contentType}));else if(angular.isArray(o.content)){if("UIxMailPartSignedViewer"==o.type&&1===o["supports-smime"]){var i="

"+o.error.replace(/\n/,'

');i=i.replace(/\n/g,'

')+"

",t.$smime={validSignature:o.valid,message:i}}_.forEach(o.content,function(e){s(e)})}else angular.isUndefined(o.safeContent)&&(o.safeContent=o.content,t.$hasUnsafeContent|=o.safeContent.indexOf(" unsafe-")>-1),"UIxMailPartHTMLViewer"==o.type?(o.html=!0,t.$loadUnsafeContent||e.$displayRemoteInlineImages?(angular.isUndefined(o.unsafeContent)&&(o.unsafeContent=document.createElement("div"),o.unsafeContent.innerHTML=o.safeContent,angular.forEach(["src","data","classid","background","style"],function(e){var t,n,s,i=o.unsafeContent.querySelectorAll("[unsafe-"+e+"]");for(s=0;s"}),n={to:t},_.forEach(["subject","body"],function(t){var o=new RegExp(t+"=([^&]+)");t="body"==t?"text":t,(s=o.exec(e))&&(n[t]=decodeURIComponent(s[1]))}),_.forEach(["cc","bcc"],function(t){var o=new RegExp(t+"=([^&]+)");(s=o.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 o,i;return e.$log.debug("New "+t+": "+JSON.stringify(s,void 0,2)),o=n.$mailbox.$account.$getMailboxByPath(s.mailboxPath),i=new e(s.accountId,o,s),e.$$resource.fetch(i.$absolutePath({asDraft:!0}),"edit").then(function(s){return e.$log.debug("New "+t+": "+JSON.stringify(s,void 0,2)+" original UID: "+n.uid),angular.extend(i.editable,s),i.origin={message:n,action:t},i})})},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 angular.extend(n,t),n.$formatFullAddresses(),n.$loadUnsafeContent=!1,n.$loaded=e.STATUS.LOADED,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,o){return angular.extend(e,{$document:t,$timeout:n,$mdPanel:s,sgHotkeys:o}),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){function s(e){e.$ctrl=this,this.close=function(){e.close()},this.selectImage=function(e){this.selectedIndex=e,this.selectedImage=this.images[e]},this.nextImage=function(){this.selectedIndex!=this.lastIndex&&this.selectImage(this.selectedIndex+1)},this.previousImage=function(){this.selectedIndex>0&&this.selectImage(this.selectedIndex-1)}}var o=this,i=e.$mdPanel,a=angular.element(this.message.parts.content[n].content).find("img")[0].src,r=_.filter(this.message.attachmentAttrs,function(e){return 0===e.mimetype.indexOf("image/")}),c=_.findIndex(r,function(e){return e.url.indexOf(a)>=0});angular.element(e.$document[0].body).addClass("sg-image-gallery-backdrop");var u=i.newPanelPosition().absolute(),d=i.newPanelAnimation().openFrom(t.target).duration(100).withAnimation(i.animation.FADE),h={attachTo:angular.element(document.body),locals:{lastIndex:r.length-1,images:r,selectedIndex:c,selectedImage:r[c]},bindToController:!0,controller:s,controllerAs:"$panelCtrl",position:u,animation:d,targetEvent:t,fullscreen:!0,hasBackdrop:!0,template:['','
',' '," arrow_back"," ",' image','
',' '," file_download"," ","
",'
',' '," navigate_before"," ",' ',' '," navigate_next"," ","
",'
','
',' ',"
","
","
"].join(""),trapFocus:!0,clickOutsideToClose:!0,escapeToClose:!0,focusOnOpen:!0,onOpenComplete:function(){o.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.naturalWidth=0)for(t=0,n=0;n0){var s=_.map(t,"uid");i.push(t);var r=e.$$resource.post(n,"addOrRemoveLabel",_.assign(o,{msgUIDs:s}));a.push(r)}}),e.$q.all(a).then(function(){return _.flatten(i)})},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 o=e[0].$mailbox.$copyMessages(e,n);s.push(o)}}),e.$q.all(s)},e.prototype.$moveMessages=function(t,n){var s=[];return _.forEach(t,function(e,t){if(e.length>0){var o=e[0].$mailbox.$moveMessages(e,n);s.push(o)}}),e.$q.all(s)}}(),function(){"use strict";function e(e,t,n,s,o,i,a,r,c,u,d,h,g,f,m,p,$){function b(e){e.push(d.createHotkey({key:l("hotkey_search"),description:l("Search"),callback:S.searchMode})),e.push(d.createHotkey({key:l("hotkey_compose"),description:l("Write a new message"),callback:function(e){null===S.messageDialog&&S.newMessage(e)}})),e.push(d.createHotkey({key:l("hotkey_junk"),description:l("Mark the selected messages as junk"),callback:S.markOrUnMarkMessagesAsJunk})),e.push(d.createHotkey({key:"space",description:l("Toggle item"),callback:S.toggleMessageSelection})),e.push(d.createHotkey({key:"shift+space",description:l("Toggle range of items"),callback:S.toggleMessageSelection})),e.push(d.createHotkey({key:"up",description:l("View next item"),callback:M,preventInClass:["sg-mail-part"]})),e.push(d.createHotkey({key:"down",description:l("View previous item"),callback:x,preventInClass:["sg-mail-part"]})),e.push(d.createHotkey({key:"shift+up",description:l("Add next item to selection"),callback:C,preventInClass:["sg-mail-part"]})),e.push(d.createHotkey({key:"shift+down",description:l("Add previous item to selection"),callback:w,preventInClass:["sg-mail-part"]})),_.forEach(["backspace","delete"],function(t){e.push(d.createHotkey({key:t,description:l("Delete selected message or folder"),callback:S.confirmDeleteSelectedMessages}))}),_.forEach(e,function(e){d.registerHotkey(e)})}function v(e){return S.selectedFolder.$compact()}function y(){var t=[g.baseURL(),"UIxMailPopupView#!/Mail",S.account.id,h(h(S.selectedFolder.path)),"new"].join("/"),n=S.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(","))}function M(e){var t=S.selectedFolder.$selectedMessageIndex();return angular.isDefined(t)?(t--,S.selectedFolder.$topIndex>0&&S.selectedFolder.$topIndex--):(t=S.selectedFolder.getLength()-1,S.selectedFolder.$topIndex=S.selectedFolder.getLength()),t>-1&&S.selectMessage(S.selectedFolder.$messages[t]),e.preventDefault(),t}function x(e){var t=S.selectedFolder.$selectedMessageIndex();return angular.isDefined(t)?(t++,S.selectedFolder.$topIndex=0&&S.toggleMessageSelection(e,S.selectedFolder.$messages[t])}function w(e){var t;S.selectedFolder.hasSelectedMessage()&&(t=x(e))>=0&&S.toggleMessageSelection(e,S.selectedFolder.$messages[t])}function I(){return $.$virtualMode?S.selectedFolder.$mailboxes:[S.selectedFolder]}function E(e,t){var s,i,a=t;S.mode.multiple=S.selectedFolder.$selectedCount(),e?(t>0&&(a-=1,s=S.selectedFolder.$messages[a]),t1){for(s=(n=i.uidsMap[t.uid])-2;s>=0&&!i.$messages[s].selected;)s--;if(s<0)for(s=n+2;s=0&&s0&&(S.messageDialog=m.confirm(l("Confirmation"),l("Are you sure you want to delete the selected messages?"),{ok:l("Delete")}).then(function(){var e=S.selectedFolder.hasSelectedMessage();S.selectedFolder.$deleteMessages(t).then(function(t){$.$virtualMode?e&&o.go("mail.account.virtualMailbox"):E(e,t)},function(n){S.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(){S.selectedFolder.$deleteMessages(t,{withoutTrash:!0}).then(function(t){$.$virtualMode?e&&o.go("mail.account.virtualMailbox"):E(e,t)})})})}).finally(function(){S.messageDialog=null})),e.preventDefault()},this.markOrUnMarkMessagesAsJunk=function(){var e=S.selectedFolder.hasSelectedMessage(),t=S.selectedFolder.$selectedMessages();0===_.size(t)&&e&&(t=[S.selectedFolder.$selectedMessage()]),_.size(t)>0&&S.selectedFolder.$markOrUnMarkMessagesAsJunk(t).then(function(){var n="/"+S.account.id+"/folderINBOX";"junk"!=S.selectedFolder.type&&(n="/"+S.account.$getMailboxByType("junk").id),S.selectedFolder.$moveMessages(t,n).then(function(t){$.$virtualMode?e&&o.go("mail.account.virtualMailbox"):E(e,t)})})},this.copySelectedMessages=function(e){var t=S.selectedFolder.$selectedMessages();_.size(t)>0&&S.selectedFolder.$copyMessages(t,"/"+e).then(function(){a.show(a.simple().content(l("%{0} message(s) copied",S.selectedFolder.$selectedCount())).position("top right").hideDelay(2e3))})},this.moveSelectedMessages=function(e){var t=S.selectedFolder.hasSelectedMessage(),n=S.selectedFolder.$selectedMessages(),s=S.selectedFolder.$selectedCount();_.size(n)>0&&S.selectedFolder.$moveMessages(n,"/"+e).then(function(e){a.show(a.simple().content(l("%{0} message(s) moved",s)).position("top right").hideDelay(2e3)),$.$virtualMode?t&&o.go("mail.account.virtualMailbox"):E(t,e)})},this.selectAll=function(){var e=0;_.forEach(I(),function(t){for(var n=0,s=t.$messages.length;n0&&S.selectedFolder.$flagMessages(e,"\\Flagged","add").then(function(e){_.forEach(e,function(e){e.isflagged=!0})})},this.markSelectedMessagesAsUnread=function(){var e=S.selectedFolder.$selectedMessages();_.size(e)>0&&S.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=S.selectedFolder.$selectedMessages();_.size(e)>0&&S.selectedFolder.$flagMessages(e,"seen","add").then(function(e){_.forEach(e,function(e){e.isread||e.$mailbox.unseenCount--,e.isread=!0})})}}function t(e){return e[0].controller.prototype.resetScroll=function(){"messagesList"==this.$element.parent().attr("id")?this.updateSize():this.scrollTo(0)},e}e.$inject=["$window","$scope","$timeout","$q","$state","$mdDialog","$mdToast","stateAccounts","stateAccount","stateMailbox","sgHotkeys","encodeUriFilter","sgSettings","sgFocus","Dialog","Account","Mailbox"],angular.module("SOGo.MailerUI").controller("MailboxController",e),t.$inject=["$delegate"],angular.module("material.components.virtualRepeat").decorator("mdVirtualRepeatContainerDirective",t)}(),function(){"use strict";function e(e,t,n,s,o,i,a,r,c,u,d,h,g,f,m,p,$,b){function v(e){_.forEach(["backspace","delete"],function(t){e.push(h.createHotkey({key:t,description:l("Delete selected message or folder"),callback:function(){f.selectedFolderController&&f.selectedFolder&&!f.selectedFolder.hasSelectedMessage()&&f.selectedFolderController.confirmDelete(f.selectedFolder)}}))}),_.forEach(e,function(e){h.registerHotkey(e)})}var y,M,x=this,C=[];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(),v(C),e.$on("$destroy",function(){_.forEach(C,function(e){h.deregisterHotkey(e)})})},this.hideAdvancedSearch=function(){x.service.$virtualPath=!1,x.service.$virtualMode=!1,y=x.accounts[0],M=x.searchPreviousMailbox,t.go("mail.account.mailbox",{accountId:y.id,mailboxId:c(M.path)})},this.toggleAdvancedSearch=function(){if(f.selectedFolder.$isLoading)x.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)})};x.virtualMailbox=new m(x.accounts[0]),f.$virtualMode||(x.searchPreviousMailbox=f.selectedFolder),f.selectedFolder=x.virtualMailbox,f.$virtualMode=!0,angular.isDefined(f.$virtualPath)?(e=x.accounts[0].$getMailboxByPath(f.$virtualPath),n.push(e),x.search.subfolders&&e.children.length&&s(e.children)):n=x.accounts[0].$flattenMailboxes(),x.virtualMailbox.setMailboxes(n),x.virtualMailbox.startSearch(x.search.match,x.search.params),"mail.account.virtualMailbox"!=t.$current.name&&t.go("mail.account.virtualMailbox",{accountId:x.accounts[0].id})}},this.addSearchParam=function(e){return x.currentSearchParam=e,r("advancedSearch"),!1},this.newSearchParam=function(e){if(e.length&&x.currentSearchParam.length){var t=0,n=x.currentSearchParam;return e.startsWith("!")&&(t=1,e=e.substring(1).trim()),x.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(o).triggerHandler("resize")},150)},this.subscribe=function(e){function t(e,t,n){function s(){t.hide()}var o=this;o.loading=!0,o.filter={name:""},o.account=new g({id:n.id,name:n.name}),o.close=s,o.account.$getMailboxes({reload:!0,all:!0}).then(function(){o.loading=!1})}i.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"]},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){function t(e,t,n,s){function o(e){return n.$filter(e,s.delegates)}function i(){t.hide()}function a(e){s.$removeDelegate(e.uid).catch(function(e,t){u.alert(l("Warning"),l("An error occured please try again."))})}function r(e){e&&s.$addDelegate(e).then(function(){c.userToAdd="",c.searchText=""},function(e){u.alert(l("Warning"),e)})}var c=this;c.users=s.delegates,c.account=s,c.userToAdd="",c.searchText="",c.userFilter=o,c.closeModal=i,c.removeUser=a,c.addUser=r}i.show({templateUrl:e.id+"/delegation",controller:t,controllerAs:"delegate",clickOutsideToClose:!0,escapeToClose:!0,locals:{User:p,account:e}}),t.$inject=["$scope","$mdDialog","User","account"]},this.refreshUnseenCount=function(){var e,t=o.unseenCountFolders;_.forEach(x.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(x.accounts,function(t){_.forEach(t.$$flattenMailboxes,function(t){e[t.id]&&(t.unseenCount=e[t.id])})})}),(e=$.defaults.SOGoRefreshViewCheck)&&"manually"!=e&&s(x.refreshUnseenCount,1e3*e.timeInterval())},this.isDroppableFolder=function(e,t){return t.id!=e.id&&!t.isNoSelect()},this.dragSelectedMessages=function(e,n,s){var o,i,r,c,u,d;o="/"+n.id,0===(i=e.$selectedMessages()).length&&(i=[e.$selectedMessage()]),r=_.map(i,"uid"),c=e.selectedMessage&&r.indexOf(e.selectedMessage)>=0,"copy"==s?(u=e.$copyMessages(i,o),d=l("%{0} message(s) copied",i.length)):(u=e.$moveMessages(i,o),d=l("%{0} message(s) moved",i.length)),u.then(function(){c&&t.go("mail.account.mailbox"),a.show(a.simple().content(d).position("top right").hideDelay(2e3))})}}e.$inject=["$scope","$state","$transitions","$timeout","$window","$mdDialog","$mdToast","sgFocus","encodeUriFilter","Dialog","sgSettings","sgHotkeys","Account","Mailbox","VirtualMailbox","User","Preferences","stateAccounts"],angular.module("SOGo.MailerUI").controller("MailboxesController",e)}(),function(){"use strict";function e(e,t,n,s,o,i,a,r,c,u,d,h,g,f,m,p,$,b,v,y,M){function x(){return t.mailbox?(arguments.length>0&&(t.mailbox.messageDialog=arguments[0]),t.mailbox.messageDialog):null}function C(e){return function(){if(null===x())return e.apply(A,arguments)}}function w(e){e.push(d.createHotkey({key:l("hotkey_reply"),description:l("Reply to the message"),callback:C(angular.bind(A,A.reply))})),e.push(d.createHotkey({key:l("hotkey_replyall"),description:l("Reply to sender and all recipients"),callback:C(angular.bind(A,A.replyAll))})),e.push(d.createHotkey({key:l("hotkey_forward"),description:l("Forward selected message"),callback:C(angular.bind(A,A.forward))})),e.push(d.createHotkey({key:l("hotkey_flag"),description:l("Flagged"),callback:C(angular.bind(u,u.toggleFlag))})),_.forEach(["backspace","delete"],function(t){e.push(d.createHotkey({key:t,callback:C(function(e){0===A.mailbox.$selectedCount()&&A.deleteMessage(),e.preventDefault()})}))}),_.forEach(e,function(e){d.registerHotkey(e)})}function I(){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}function E(e,t){null===x()&&x(o.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:A.account,stateMessage:t}}).finally(function(){x(null),A.closePopup()}))}function S(e,t){A.message.$plainContent().then(function(n){var s={pid:$.$defaultCalendar(),type:t,summary:n.subject,comment:n.content},i=new b(s),a=[g.activeUser("folderURL"),"Calendar","UIx"+t.capitalize()+"EditorTemplate"].join("/");return o.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:a,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:i}})})}var A=this,F=null,k=[];this.$onInit=function(){e.$messageController=A,f.setMessage(u),this.$state=n,this.accounts=a,this.account=r,this.mailbox=c,this.message=u,this.service=M,this.tags={searchText:"",selected:""},this.showFlags=u.flags&&u.flags.length>0,this.$showDetailedRecipients=!1,A.showRawSource=!1,w(k),e.opener?(t.$watchCollection(function(){return A.message.flags},function(e,t){var n;(e||t)&&(n=I()).messageCtrl&&n.messageCtrl.service.$timeout(function(){n.messageCtrl.showFlags=!0,n.messageCtrl.message.flags=e})}),t.$watch(function(){return A.message.isflagged},function(e,t){var n=I();n.mailboxCtrl&&n.mailboxCtrl.service.$timeout(function(){_.find(n.mailboxCtrl.selectedFolder.$messages,{uid:A.message.uid}).isflagged=e})})):t.$watchCollection(function(){return A.message.flags},function(e,t){var n,s,o;(e||t)&&(n=e||[],s=t||[],_.forEach(n,function(e,t){angular.isObject(e)&&(n[t]=e.name)}),n.length>s.length?(o=_.difference(n,s),_.forEach(o,function(e){A.message.addTag(e)})):n.length0&&(l-=1,a=e.$messages[l]),ne.$lastVisibleIndex&&(e.$topIndex=l-(e.$lastVisibleIndex-e.$topIndex))):o.go("mail.account.mailbox").then(function(){t=null,delete e.selectedMessage})}catch(e){}}A.closePopup()})},this.close=function(){n.go("mail.account.mailbox").then(function(){A.message=null,delete c.selectedMessage})},this.reply=function(e){E(e,this.message.$reply())},this.replyAll=function(e){E(e,this.message.$replyAll())},this.forward=function(e){E(e,this.message.$forward())},this.edit=function(e){this.message.$editableContent().then(function(){E(e,A.message)})},this.openPopup=function(){var t=[g.baseURL(),"UIxMailPopupView#!/Mail",this.message.accountId,h(h(this.message.$mailbox.path)),this.message.uid].join("/"),n=this.message.$absolutePath();F=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(","))},this.closePopup=function(){e.opener&&e.close()},this.newMessage=function(e,t){e.stopPropagation(),e.preventDefault(),this.account.$newMessage({mailto:t}).then(function(t){E(e,t)})},this.toggleRawSource=function(e){this.showRawSource||this.message.$rawSource?this.showRawSource=!this.showRawSource:M.$$resource.post(this.message.id,"viewsource").then(function(e){A.message.$rawSource=e,A.showRawSource=!0})},this.print=function(t){e.print()},this.convertToEvent=function(e){return S(e,"appointment")},this.convertToTask=function(e){return S(e,"task")}}e.$inject=["$window","$scope","$state","$mdMedia","$mdDialog","sgConstant","stateAccounts","stateAccount","stateMailbox","stateMessage","sgHotkeys","encodeUriFilter","sgSettings","ImageGallery","sgFocus","Dialog","Calendar","Component","Account","Mailbox","Message"],angular.module("SOGo.MailerUI").controller("MessageController",e)}(),function(){"use strict";function e(e,t,n,s,o,i,a,r,c,u,d,h,g,f,m){function p(){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==c.uid&&(n.draftMessageCtrl=t.opener.$messageController)):c.origin&&(e=c.origin.message,t.opener.$mailboxController.selectedFolder.$id()==e.$mailbox.$id()&&(n.originMailboxCtrl=t.opener.$mailboxController)))}catch(e){}return n}function $(){var e,t,n,s=E.message.editable.attachmentAttrs;if(s)for(e=0;e',' '," {{$ctrl.mailbox.$icon}}"," ",'

',' ',' ',"

",' ',' '," ",' more_vert'].join(""),controller:"sgMailboxListItemController",controllerAs:"$ctrl"}}function t(e,t,n,s,o,i,a,r,c,u,d){var h=this;this.$onInit=function(){this.$element=t,this.service=u,this.editMode=!1,this.accountController.addMailboxController(this)},this.$postLink=function(){this.selectableElement=t.find("div")[0],this.clickableElement=t.find("p")[0],this.inputContainer=t.find("md-input-container")[0],this.inputElement=t.find("input")[0],this.moreOptionsButton=_.last(t.find("md-icon")),null!==u.selectedFolder&&u.selectedFolder.id==this.mailbox.id&&this.accountController.selectFolder(this)},this.childLevel=function(){return"sg-child-level-"+this.mailbox.level},this.selectFolder=function(e){this.editMode||this.mailbox==u.selectedFolder||(u.$virtualPath=!1,u.$virtualMode=!1,this.accountController.selectFolder(this),e&&(n.go("mail.account.mailbox",{accountId:this.mailbox.$account.id,mailboxId:d(this.mailbox.path)}),e.stopPropagation(),e.preventDefault()))},this.unselectFolder=function(){t[0].classList.remove("md-bg")},this.editFolder=function(e){this.editMode=!0,this.inputElement.value=this.mailbox.name,this.clickableElement.classList.add("ng-hide"),this.inputContainer.classList.remove("ng-hide"),this.inputElement.focus(),this.inputElement.select(),e&&(e.stopPropagation(),e.preventDefault())},this.saveFolder=function(e){this.inputElement.disabled||(this.mailbox.name=this.inputElement.value,this.inputElement.disabled=!0,this.mailbox.$rename().then(function(e){h.editMode=!1,h.inputContainer.classList.add("ng-hide"),h.clickableElement.classList.remove("ng-hide")}).finally(function(){h.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.mailbox.name},this.confirmDelete=function(){c.confirm(l("Warning"),l("Do you really want to move this folder into the trash ?"),{ok:l("Delete")}).then(function(){h.mailbox.$delete().then(function(){n.go("mail.account.inbox")},function(e){c.confirm(l("Warning"),l("The mailbox could not be moved to the trash folder. Would you like to delete it immediately?"),{ok:l("Delete")}).then(function(){h.mailbox.$delete({withoutTrash:!0}).then(function(){n.go("mail.account.inbox")},function(e){c.alert(l('An error occured while deleting the mailbox "%{0}".',h.mailbox.name),l(e.error))})})})})},this.showMenu=function(e){function t(e,t,n,o){var d=this;this.markFolderRead=function(){this.folder.$markAsRead()},this.newFolder=function(){c.prompt(l("New Folder..."),l("Enter the new name of your folder")).then(function(e){d.folder.$newMailbox(d.folder.id,e).then(function(){},function(t,n){c.alert(l('An error occured while creating the mailbox "%{0}".',e),l(t.error))})})},this.editFolder=function(){this.itemCtrl.editFolder()},this.compactFolder=function(){this.folder.$compact().then(function(){s.show(s.simple().content(l("Folder compacted")).position("top right").hideDelay(3e3))})},this.emptyTrashFolder=function(){this.folder.$emptyTrash().then(function(){s.show(s.simple().content(l("Trash emptied")).position("top right").hideDelay(3e3))})},this.showAdvancedSearch=function(){u.$virtualPath=this.folder.path,i(r["gt-md"])||a("left").close()},this.share=function(){this.folder.$acl.$users().then(function(){n.show({templateUrl:d.folder.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:d.folder.$acl.users,User:o,folder:d.folder}})})},this.setFolderAs=function(e){this.folder.$setFolderAs(e).then(function(){d.folder.$account.$getMailboxes({reload:!0})})}}var n=o.newPanelPosition().relativeTo(this.moreOptionsButton).addPanelPosition(o.xPosition.ALIGN_START,o.yPosition.ALIGN_TOPS),d=o.newPanelAnimation().openFrom(this.moreOptionsButton).duration(100).withAnimation(o.animation.FADE),h={attachTo:angular.element(document.body),locals:{itemCtrl:this,folder:this.mailbox,confirmDelete:this.confirmDelete},bindToController:!0,controller:t,controllerAs:"$menuCtrl",position:n,animation:d,targetEvent:e,templateUrl:"UIxMailFolderMenu",trapFocus:!0,clickOutsideToClose:!0,escapeToClose:!0,focusOnOpen:!0};o.open(h).then(function(e){e.panelEl.one("click",function(){e.close()})}),t.$inject=["mdPanelRef","$state","$mdDialog","User"]}}t.$inject=["$scope","$element","$state","$mdToast","$mdPanel","$mdMedia","$mdSidenav","sgConstant","Dialog","Mailbox","encodeUriFilter"],angular.module("SOGo.MailerUI").controller("sgMailboxListItemController",t).directive("sgMailboxListItem",e)}(),function(){function e(){return{restrict:"C",scope:{},bindToController:{message:"=sgMessage"},controller:"sgMessageListItemController"}}function t(e,t,n){var s=this;this.$onInit=function(){this.MailboxService=n,e.$watch(function(){return s.message?[_.pick(s.message,["uid","isread","isflagged"])]: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")}}t.$inject=["$scope","$element","Mailbox"],angular.module("SOGo.MailerUI").controller("sgMessageListItemController",t).directive("sgMessageListItem",e)}(),function(){function e(){function e(e,t,n,s){e.parentController=s}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:e,controller:"sgMessageListItemMainController",controllerAs:"$ctrl"}}function t(e,t,n,s,o,i,a,r,l){var c=this;this.$postLink=function(){var n,s,i,l;this.parentController=e.parentController,i=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=o.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,i)()},this.service=r,this.MailboxService=a}}t.$inject=["$scope","$element","$parse","$state","$mdUtil","$mdToast","Mailbox","Message","encodeUriFilter"],angular.module("SOGo.MailerUI").controller("sgMessageListItemMainController",t).directive("sgMessageListItemMain",e)}(),function(){"use strict";function e(){return{restrict:"A",bindToController:{partIndex:"=sgZoomableImage"},controller:t}}function t(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)}}t.$inject=["$element","ImageGallery"],angular.module("SOGo.MailerUI").directive("sgZoomableImage",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 021f1ffac..eebbe5c43 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","when","allMailboxes","push","all","$$flattenMailboxes","saveState","account","reduce","mailbox","post","$getMailboxByType","type","_find","find","$getMailboxByPath","path","$newMailbox","name","toString","updateQuota","percent","description","Math","round","usedSpace","maxQuota","l","formatted","$quota","$newMessage","accountId","mailboxPath","message","$absolutePath","asDraft","editable","isNew","mailto","$parseMailto","$addDelegate","user","deferred","defer","param","uid","map","delegates","resolve","users","status","reject","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","defaults","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","zipObject","isError","j","messageHeaders","$updateSubscribe","action","subscribed","futureMessageData","lazy","$mailbox","$hasUnsafeContent","$loadUnsafeContent","to","cc","bcc","$formatFullAddresses","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","buildPath","nocache","draftId","withResourcePath","$setUID","oldUID","attr","constructor","shortname","first","last","image","$shortRecipients","result","count","total","$shortAddress","address","allowReplyAll","recipientsCount","isDraft","loadUnsafeContent","$content","parts","part","msgclass","content","alternatePart","preferredPart","contentType","isArray","formattedMessage","$smime","validSignature","valid","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","PanelController","mdPanelRef","close","selectImage","selectedImage","images","lastIndex","partSrc","src","attrs","mimetype","url","body","addClass","panelPosition","newPanelPosition","absolute","panelAnimation","newPanelAnimation","openFrom","target","duration","withAnimation","animation","FADE","config","attachTo","locals","bindToController","controller","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","$inject","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","_registerHotkeys","vm","searchMode","messageDialog","newMessage","markOrUnMarkMessagesAsJunk","toggleMessageSelection","_nextMessage","preventInClass","_previousMessage","_addNextMessageToSelection","_addPreviousMessageToSelection","hotkey","confirmDeleteSelectedMessages","_compactBeforeUnload","event","_newMessageInPopup","baseURL","wId","random","console","selectMessage","preventDefault","_currentMailboxes","_unselectMessage","nextMessage","previousMessage","nextIndex","mode","multiple","go","warn","defaultWindowTitle","$onInit","$mailboxController","service","accounts","on","$on","off","$watch","title","field","sortedBy","cancelSearch","inPopup","templateUrl","stateMessage","mailboxId","nextSelectedIndex","shiftKey","stopPropagation","size","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","selectedFolderController","confirmDelete","currentSearchParam","","subfolders","showSubscribedOnly","SOGoMailShowSubscribedFoldersOnly","refreshUnseenCount","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","userFilter","closeModal","removeUser","catch","addUser","userToAdd","searchText","unseenCountFolders","isDroppableFolder","srcFolder","dragSelectedMessages","dstId","clearMessageView","success","MessageController","$mdMedia","sgConstant","Calendar","Component","_messageDialog","arguments","_unlessInDialog","apply","reply","replyAll","forward","deleteMessage","$parentControllers","ctrls","opener","mailboxCtrl","$messageController","messageCtrl","_showMailEditor","closePopup","_convertToComponent","componentData","pid","$defaultCalendar","summary","comment","capitalize","stateComponent","popupWindow","tags","showFlags","$showDetailedRecipients","showRawSource","$watchCollection","newTags","oldTags","wasflagged","_newTags","_oldTags","isObject","difference","addFlags","toggleDetailedRecipients","filterMailtoLinks","href","tagName","attributes","state","parentCtrls","edit","openPopup","toggleRawSource","$rawSource","print","convertToEvent","convertToTask","MessageEditorController","$stateParams","$mdConstant","FileUploader","AddressBook","Card","originMessage","draftMailboxCtrl","draftMessageCtrl","originMailboxCtrl","addAttachments","fileItem","FileItem","uploader","progress","isUploaded","isSuccess","inlineUrl","queue","removeAttachment","item","isUploading","cancelItem","file","getElementById","prop","autosave","send","sendState","errorMessage","statusText","toggleFullscreen","isFullscreen","contactFilter","$filterAll","cards","explodedCards","manyCards","card","uniqBy","$$fullname","$$email","addRecipient","contact","recipients","recipient","list","$isList","expandable","refs","ref","$shortFormat","container","c_name","listId","autosaveDrafts","SOGoMailAutoSave","autocomplete","hideBcc","hideCc","recipientSeparatorKeys","KEY_CODE","ENTER","TAB","COMMA","SEMICOLON","autoUpload","alias","removeAfterUpload","onSuccessItem","lastAttachmentAttrs","onCancelItem","removeFromQueue","onErrorItem","localeCode","LocaleCode","destroy","actionName","msgObject","SendMessageToastController","closeToast","sgAccountSection","restrict","scope","sgAccountController","$mdSidenav","$postLink","quotaElement","div","contains","addMailboxController","mailboxController","selectedMailboxCtrl","ctrl","unselectFolder","directive","sgImip","link","iElement","pathToAttachment","sgImipPath","sgImipController","delegateInvitation","delegatedTo","iCalendarAction","receiveUpdates","c_email","viewer","sgMailboxListItem","require","accountController","sgMailboxListItemController","editMode","selectableElement","clickableElement","inputContainer","inputElement","moreOptionsButton","childLevel","editFolder","select","saveFolder","disabled","revertEditing","showMenu","MenuController","$menuCtrl","markFolderRead","itemCtrl","compactFolder","emptyTrashFolder","showAdvancedSearch","share","$users","usersWithACL","setFolderAs","relativeTo","addPanelPosition","xPosition","ALIGN_START","yPosition","ALIGN_TOPS","panelRef","panelEl","sgMessageListItem","sgMessageListItemController","MailboxService","pick","newId","oldId","onUpdate","setVisibility","visible","sgMessageListItemMain","postLink","parentController","sgMessageListItemMainController","$parse","$mdUtil","contentDivElement","iconsDivElement","parentControllerOnUpdate","priorityIconElement","mailboxNameElement","senderElement","subjectElement","sizeElement","dateElement","textContent","flagIconElement","answerIconElement","forwardIconElement","attachmentIconElement","flagElements","nodesToArray","flagElement","removeChild","css","prepend","encodeEntities","priority","relativedate","hasattachment","sgZoomableImage","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","when","allMailboxes","push","all","$$flattenMailboxes","saveState","account","reduce","mailbox","post","$getMailboxByType","type","_find","find","$getMailboxByPath","path","$newMailbox","name","toString","updateQuota","percent","description","Math","round","usedSpace","maxQuota","l","formatted","$quota","$newMessage","accountId","mailboxPath","message","$absolutePath","asDraft","editable","isNew","mailto","$parseMailto","$addDelegate","user","deferred","defer","param","uid","map","delegates","resolve","users","status","reject","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","defaults","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","zipObject","isError","j","messageHeaders","$updateSubscribe","action","subscribed","futureMessageData","lazy","$mailbox","$hasUnsafeContent","$loadUnsafeContent","to","cc","bcc","$formatFullAddresses","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","buildPath","nocache","draftId","withResourcePath","$setUID","oldUID","attr","constructor","shortname","first","last","image","$shortRecipients","result","count","total","$shortAddress","address","allowReplyAll","recipientsCount","isDraft","loadUnsafeContent","$content","parts","part","msgclass","content","alternatePart","preferredPart","contentType","isArray","formattedMessage","$smime","validSignature","valid","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","PanelController","mdPanelRef","close","selectImage","selectedImage","images","lastIndex","partSrc","src","attrs","mimetype","url","body","addClass","panelPosition","newPanelPosition","absolute","panelAnimation","newPanelAnimation","openFrom","target","duration","withAnimation","animation","FADE","config","attachTo","locals","bindToController","controller","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","$inject","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","_registerHotkeys","vm","searchMode","messageDialog","newMessage","markOrUnMarkMessagesAsJunk","toggleMessageSelection","_nextMessage","preventInClass","_previousMessage","_addNextMessageToSelection","_addPreviousMessageToSelection","hotkey","confirmDeleteSelectedMessages","_compactBeforeUnload","event","_newMessageInPopup","baseURL","wId","random","console","selectMessage","preventDefault","_currentMailboxes","_unselectMessage","nextMessage","previousMessage","nextIndex","mode","multiple","go","warn","defaultWindowTitle","$onInit","$mailboxController","service","accounts","on","$on","off","$watch","title","field","sortedBy","cancelSearch","inPopup","templateUrl","stateMessage","mailboxId","nextSelectedIndex","shiftKey","stopPropagation","size","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","selectedFolderController","confirmDelete","currentSearchParam","","subfolders","showSubscribedOnly","SOGoMailShowSubscribedFoldersOnly","refreshUnseenCount","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","userFilter","closeModal","removeUser","catch","addUser","userToAdd","searchText","unseenCountFolders","isDroppableFolder","srcFolder","dragSelectedMessages","dstId","clearMessageView","success","MessageController","$mdMedia","sgConstant","Calendar","Component","_messageDialog","arguments","_unlessInDialog","apply","reply","replyAll","forward","deleteMessage","$parentControllers","ctrls","opener","mailboxCtrl","$messageController","messageCtrl","_showMailEditor","closePopup","_convertToComponent","componentData","pid","$defaultCalendar","summary","comment","capitalize","stateComponent","popupWindow","tags","showFlags","$showDetailedRecipients","showRawSource","$watchCollection","newTags","oldTags","wasflagged","_newTags","_oldTags","isObject","difference","addFlags","toggleDetailedRecipients","filterMailtoLinks","href","tagName","attributes","state","parentCtrls","edit","openPopup","toggleRawSource","$rawSource","print","convertToEvent","convertToTask","MessageEditorController","$stateParams","$mdConstant","FileUploader","AddressBook","Card","originMessage","draftMailboxCtrl","draftMessageCtrl","originMailboxCtrl","addAttachments","fileItem","FileItem","uploader","progress","isUploaded","isSuccess","inlineUrl","queue","removeAttachment","item","isUploading","cancelItem","file","getElementById","prop","autosave","send","sendState","errorMessage","statusText","toggleFullscreen","isFullscreen","contactFilter","$filterAll","cards","explodedCards","manyCards","card","uniqBy","$$fullname","$$email","addRecipient","contact","recipients","recipient","list","emailRE","charCodeAt","test","charAt","$isList","expandable","refs","ref","$shortFormat","container","c_name","listId","autosaveDrafts","SOGoMailAutoSave","autocomplete","hideBcc","hideCc","recipientSeparatorKeys","KEY_CODE","ENTER","TAB","COMMA","SEMICOLON","autoUpload","alias","removeAfterUpload","onSuccessItem","lastAttachmentAttrs","onCancelItem","removeFromQueue","onErrorItem","localeCode","LocaleCode","destroy","actionName","msgObject","SendMessageToastController","closeToast","sgAccountSection","restrict","scope","sgAccountController","$mdSidenav","$postLink","quotaElement","div","contains","addMailboxController","mailboxController","selectedMailboxCtrl","ctrl","unselectFolder","directive","sgImip","link","iElement","pathToAttachment","sgImipPath","sgImipController","delegateInvitation","delegatedTo","iCalendarAction","receiveUpdates","c_email","viewer","sgMailboxListItem","require","accountController","sgMailboxListItemController","editMode","selectableElement","clickableElement","inputContainer","inputElement","moreOptionsButton","childLevel","editFolder","select","saveFolder","disabled","revertEditing","showMenu","MenuController","$menuCtrl","markFolderRead","itemCtrl","compactFolder","emptyTrashFolder","showAdvancedSearch","share","$users","usersWithACL","setFolderAs","relativeTo","addPanelPosition","xPosition","ALIGN_START","yPosition","ALIGN_TOPS","panelRef","panelEl","sgMessageListItem","sgMessageListItemController","MailboxService","pick","newId","oldId","onUpdate","setVisibility","visible","sgMessageListItemMain","postLink","parentController","sgMessageListItemMainController","$parse","$mdUtil","contentDivElement","iconsDivElement","parentControllerOnUpdate","priorityIconElement","mailboxNameElement","senderElement","subjectElement","sizeElement","dateElement","textContent","flagIconElement","answerIconElement","forwardIconElement","attachmentIconElement","flagElements","nodesToArray","flagElement","removeChild","css","prepend","encodeEntities","priority","relativedate","hasattachment","sgZoomableImage","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 49c86358d..723b42c4a 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,r,o,i,s,c){return angular.extend(e,{$q:t,$timeout:n,$log:a,$$resource:new o(r.activeUser("folderURL")+"Calendar",r.activeUser()),$Preferences:i,$Component:s,$$Acl:c,activeUser:r.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 r=new e(t);r.isWebCalendar?a.$webcalendars.push(r):r.isSubscription?a.$subscriptions.push(r):a.$calendars.push(r)});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,r;a=n.isWebCalendar?t.$webcalendars:n.owner!=e.activeUser.login?t.$subscriptions:t.$calendars,(r=_.find(a,function(e){return e.id==n.id}))&&r.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=this,a=e.$q.defer();return _.find(n.$webcalendars,function(e){return e.urls.webCalendarURL==t})?a.reject():e.$$resource.post(null,"addWebCalendar",{url:t}).then(function(n){angular.extend(n,{isWebCalendar:!0,isEditable:!0,isRemote:!1,owner:e.activeUser.login,urls:{webCalendarURL:t}});var r=new e(n);e.$$resource.fetch(r.id,"reload").then(function(t){e.$log.debug(JSON.stringify(t,void 0,2)),e.$add(r),a.resolve()},function(e){401==e.status?a.resolve(r):a.reject()})},a.reject),a.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),t>-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,r=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),r.resolve()},function(e){401==e.status?r.reject(l("Wrong username or password")):r.reject(e.statusText)})},r.reject),r.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,r,o,i,s,c,l,d,u){return angular.extend(e,{STATUS:i,$q:t,$timeout:n,$log:a,$rootScope:r,$settings:o,$User:c,$Preferences:s,$Card:l,$gravatar:d,$$resource:new u(o.activeUser("folderURL")+"Calendar",o.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,r,o=this,i=new Date,s=i.getDate(),c=i.getMonth()+1,l=i.getFullYear(),d="$query"+t.capitalize(),u={day:l+(c<10?"0":"")+c+(s<10?"0":"")+s},h=!1;return e.$startRefreshTimeout(t),angular.extend(this.$query,u),n&&_.forEach(_.keys(n),function(t){h|=o.$query[t]&&n[t]!=e.$query[t],"reload"==t&&n[t]?h=!0:angular.isDefined(o.$query[t])?o.$query[t]=n[t]:o[d][t]=n[t]}),a=this.$$resource.fetch(null,t+"list",angular.extend(this[d],this.$query)),h&&(delete e[r="tasks"==t?"$events":"$tasks"],e.$log.debug("force reload of "+r)),this.$unwrapCollection(t,a)},e.$find=function(t,n,a){var r,o=[t,n];return a&&o.push(a),r=this.$$resource.fetch(o.join("/"),"view"),new e(r)},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,r,o,i;return a=e.$Preferences.defaults.SOGoFirstDayOfWeek,"day"==t?(r="dayView",o=i=n):"multicolumnday"==t?(r="multicolumndayView",o=i=n):"week"==t?(r="weekView",o=n.beginOfWeek(a),(i=new Date).setTime(o.getTime()),i.addDays(6)):"month"==t&&(r="monthView",(o=n).setDate(1),o=o.beginOfWeek(a),(i=new Date).setTime(n.getTime()),i.setMonth(i.getMonth()+1),i.addDays(-1),i=i.endOfWeek(a)),this.$eventsBlocks(r,o,i)},e.$eventsBlocks=function(t,n,a){var r,o,i,s=[],c=[],l=e.$q.defer();return r={view:t.toLowerCase(),sd:n.getDayString(),ed:a.getDayString()},this.$$resource.fetch(null,"eventsblocks",r).then(function(t){var n,a;n=function(t,n,a){var r,o=_.zipObject(this.eventsFields,n),i=new Date(1e3*o.c_startdate);return o.hour=i.getHourString(),o.blocks=[],r=new e(o),t.push(r),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,r){var l,d=[],u={},h={};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")),o=0;o0&&(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 r={M:"MINUTES",H:"HOURS",D:"DAYS",W:"WEEKS"},o=/-PT?([0-9]+)([MHDW])/.exec(e.$Preferences.defaults.SOGoCalendarDefaultReminder);o&&(this.$hasAlarm=!0,this.alarm.quantity=parseInt(o[1]),this.alarm.unit=r[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.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))},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()),r=parseInt(n.getMinutes()/15+.5),o=parseInt(a.getMinutes()/15+.5);return n.setMinutes(15*r),a.setMinutes(15*o),_.forEach(n.daysUpTo(a),function(n,a){var o,i=n.getDate(),s=n.getDayString();if(s==e.start.getDayString())for(o=n.getHours().toString(),t[s]={},t[s][o]=[];r>0;)t[s][o].push(0),r--;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.$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,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,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,r,o,i=this;return r=this.$omit(),o=e.$Preferences.$mdDateLocaleProvider,r.startDate=r.start?r.start.format(o,"%Y-%m-%d"):"",r.startTime=r.start?r.start.format(o,"%H:%M"):"",r.endDate=r.end?r.end.format(o,"%Y-%m-%d"):"",r.endTime=r.end?r.end.format(o,"%H:%M"):"",r.dueDate=r.due?r.due.format(o,"%Y-%m-%d"):"",r.dueTime=r.due?r.due.format(o,"%H:%M"):"",r.completedDate=r.completed?r.completed.format(o,"%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 r.repeat.monthdays,r.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||(delete r.repeat.days,"relative"==this.repeat.month.day&&(r.repeat.monthdays=[this.repeat.month.occurrence])):this.repeat.frequency&&"never"!=this.repeat.frequency&&(r.repeat={frequency:this.repeat.frequency}),r.startDate&&this.repeat.frequency&&"never"!=this.repeat.frequency?"until"==this.repeat.end&&this.repeat.until?r.repeat.until=this.repeat.until.stringWithSeparator("-"):"count"==this.repeat.end&&this.repeat.count?r.repeat.count=this.repeat.count:(delete r.repeat.until,delete r.repeat.count):delete r.repeat,"not-specified"==this.status?delete r.status:"completed"!=this.status&&delete r.completedDate,r.startDate&&this.$hasAlarm?!this.alarm.action||"email"!=this.alarm.action||this.attendees&&this.attendees.length>0||(r.alarm.attendees=0,r.alarm.organizer=1):r.alarm={},a=[this.pid,this.id],this.isNew&&(n={action:"saveAs"+this.type.capitalize()}),this.occurrenceId&&a.push(this.occurrenceId),angular.extend(r,t),e.$$resource.save(a.join("/"),r,n).then(function(e){return i.$shadowData=i.$omit(),e})},e.prototype.remove=function(t){var n=[this.pid,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.unit,this.alarm.reference].join("_"))===(t=l(e))&&(t=[this.alarm.quantity,l("reminder_"+this.alarm.unit),l("reminder_"+this.alarm.reference)].join(" ")),t},e.prototype.copyTo=function(t){return e.$$resource.post(this.pid+"/"+this.id,"copy",{destination:t})},e.prototype.moveTo=function(t){return e.$$resource.post(this.pid+"/"+this.id,"move",{destination:t})},e.prototype.toString=function(){return"[Component "+this.id+"]"}}(),function(){"use strict";function e(t,n,a,r,o,i,s,c,d){function u(e){e.push(o.createHotkey({key:l("hotkey_today"),description:l("Today"),callback:g,args:new Date})),e.push(o.createHotkey({key:l("hotkey_dayview"),description:l("Day"),callback:y,args:"day"})),e.push(o.createHotkey({key:l("hotkey_weekview"),description:l("Week"),callback:y,args:"week"})),e.push(o.createHotkey({key:l("hotkey_monthview"),description:l("Month"),callback:y,args:"month"})),e.push(o.createHotkey({key:l("hotkey_multicolumndayview"),description:l("Multicolumn Day View"),callback:y,args:"multicolumnday"})),e.push(o.createHotkey({key:"left",description:l("Move backward"),callback:h,args:-1})),e.push(o.createHotkey({key:"right",description:l("Move forward"),callback:h,args:1})),_.forEach(e,function(e){o.registerHotkey(e)})}function h(e,t){var n;"week"==r.view?n=v.selectedDate.beginOfWeek(c.defaults.SOGoFirstDayOfWeek).addDays(7*t):"month"==r.view?((n=v.selectedDate).setDate(1),n.setMonth(n.getMonth()+t)):n=v.selectedDate.addDays(t),g(e,n)}function p(e){"month"==r.view?(e.setDate(1),e.setHours(12),e.$dateFormat="%B %Y"):"week"==r.view?(e.setTime(e.beginOfWeek(c.defaults.SOGoFirstDayOfWeek).getTime()),e.$dateFormat=l("Week %d").replace("%d","%U")):e.$dateFormat="%A"}function m(){e.expandedAllDays=!e.expandedAllDays,v.expandedAllDays=e.expandedAllDays}function f(){s.$eventsBlocksForView(r.view,r.day.asDate()).then(function(e){var t,n,a;for(t=0;t=t;n--)v.views.splice(n,1)})}function g(e,t){var n=t?t.getDayString():angular.element(e.currentTarget).attr("date");t&&p(t),a.go("calendars.view",{day:n})}function y(e,t){a.go("calendars.view",{view:t})}var $,v=this,C=[];angular.isUndefined(e.expandedAllDays)&&(e.expandedAllDays=!1),v.selectedDate=r.day.asDate(),v.expandedAllDays=e.expandedAllDays,v.toggleAllDays=m,v.views=d,v.changeDate=g,v.changeView=y,this.$onInit=function(){u(C),p(v.selectedDate),$=n.$on("calendars:list",f),t.$on("$destroy",function(){$(),_.forEach(C,function(e){o.deregisterHotkey(e)})})}}e.$inject=["$scope","$rootScope","$state","$stateParams","sgHotkeys","Calendar","Component","Preferences","stateEventsBlocks"],angular.module("SOGo.SchedulerUI").controller("CalendarController",e)}(),function(){"use strict";function e(e,t,n,a,r,o,i,s,c,d,u,h,p,m){function f(e){e.push(i.createHotkey({key:l("hotkey_search"),description:l("Search"),callback:C})),e.push(i.createHotkey({key:l("hotkey_create_event"),description:l("Create a new event"),callback:E,args:"appointment"})),e.push(i.createHotkey({key:l("hotkey_create_task"),description:l("Create a new task"),callback:E,args:"task"})),_.forEach(e,function(e){i.registerHotkey(e)})}function g(e,t){(t&&t.reload||q.componentType!=e)&&(angular.isUndefined(p["$"+e])&&p.$filter(e),q.unselectComponents(),q.componentType=e,p.saveSelectedList(e))}function y(){_.forEach(p["$"+q.componentType],function(e){e.selected=!1}),q.mode.multiple=0}function $(){_.forEach(p["$"+q.componentType],function(e){e.selected=!0}),q.mode.multiple=p["$"+q.componentType].length}function v(e,t){t.selected=!t.selected,q.mode.multiple+=t.selected?1:-1,e.preventDefault(),e.stopPropagation()}function C(){q.mode.search=!0,s("search")}function b(){c.confirm(l("Warning"),l("Are you sure you want to delete the selected components?"),{ok:l("Delete")}).then(function(){var t=_.filter(p["$"+q.componentType],function(e){return e.selected});h.$deleteComponents(t).then(function(){q.mode.multiple=0,e.$emit("calendars:list")})})}function D(e,t){w(e,t,"appointment")}function k(e,t){w(e,t,"task")}function w(e,t,a){if(t.viewable){var r=n.when();angular.isUndefined(t.$futureComponentData)&&(r=(t=h.$get(t.pid).$getComponent(t.id,t.occurrenceId)).$futureComponentData),r.then(function(){var n="UIx"+a.capitalize()+"ViewTemplate";o.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:n,controller:"ComponentController",controllerAs:"editor",locals:{stateComponent:t}})})}}function E(e,t,n){var a;n?(a=n).updateFreeBusy():a=new p({pid:h.$defaultCalendar(),type:t});var r="UIx"+t.capitalize()+"EditorTemplate";return o.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:r,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:a}})}function S(t){function n(e,t,n,a){e.updateThisOccurrence=function(){n.$adjust(a).then(t.hide,function(e){t.cancel().then(function(){r(e,n,a)})})},e.updateAllOccurrences=function(){delete n.occurrenceId,n.$adjust(a).then(t.hide,function(e){t.cancel().then(function(){r(e,n,a)})})}}function r(t,n,a){t.status==u.ConflictHTTPErrorCode&&t.data&&t.data.message&&angular.isObject(t.data.message)&&o.show({parent:angular.element(document.body),clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxAttendeeConflictDialog",controller:i,controllerAs:"$AttendeeConflictDialogController",locals:{component:n,params:a,conflictError:t.data.message}}).then(function(){e.$emit("calendars:list")})}function i(e,t,n,a,r){function o(){n.$adjust(angular.extend({ignoreConflicts:!0},a)).then(t.hide)}var i=this;i.conflictError=r,i.cancel=t.cancel,i.save=o}var s,c,d,f,g,y,$;s=p.$ghost.component,c=p.$ghost.pointerHandler,s.isNew?(d=c.currentEventCoordinates,s.summary="",s.isAllDay&&(d.duration-=96),s.setDelta(15*d.duration),E(null,"appointment",s).finally(function(){a(function(){p.$resetGhost()})})):(f=c.currentEventCoordinates.getDelta(c.originalEventCoordinates),g={days:f.dayNumber,start:15*f.start,duration:15*f.duration},c.originalCalendar&&0!==f.dayNumber&&(y=c.currentEventCoordinates.dayNumber,$=_.filter(h.$findAll(),{active:1}),g.destination=$[y].id,g.days=0),s.isException||!s.occurrenceId?s.$adjust(g).then(function(){e.$emit("calendars:list"),m.getAlarms()},function(e){r(e,s,g)}).finally(function(){a(function(){p.$resetGhost()})}):s.occurrenceId&&o.show({clickOutsideToClose:!0,escapeToClose:!0,locals:{component:s,params:g},template:['',' ',"

"+l("editRepeatingItem")+"

","
"," ",' '+l("button_thisOccurrenceOnly")+"",' '+l("button_allOccurrences")+""," ","
"].join(""),controller:n}).then(function(){e.$emit("calendars:list")}).finally(function(){a(function(){p.$resetGhost()})})),n.$inject=["$scope","$mdDialog","component","params"],i.$inject=["$scope","$mdDialog","component","params","conflictError"]}function T(){return p["$query"+q.componentType.capitalize()].filterpopup}function A(e){p.$filter(q.componentType,{filterpopup:e})}function O(e){return p["$query"+q.componentType.capitalize()].filterpopup==e}function x(e){p.$filter(q.componentType,{sort:e})}function U(e){return p["$query"+q.componentType.capitalize()].sort==e}function I(){h.reloadWebCalendars().finally(function(){e.$emit("calendars:list")})}function M(){q.mode.search=!1,p.$filter(q.componentType,{value:""})}var H,q=this,F=[];q.component=p,q.componentType="events",q.selectedList=0,q.selectComponentType=g,q.unselectComponents=y,q.selectAll=$,q.searchMode=C,q.toggleComponentSelection=v,q.confirmDeleteSelectedComponents=b,q.openEvent=D,q.openTask=k,q.newComponent=E,q.filterpopup=T,q.filter=A,q.filteredBy=O,q.sort=x,q.sortedBy=U,q.reload=I,q.cancelSearch=M,q.mode={search:!1,multiple:0},this.$onInit=function(){f(F),H="events","tasksListView"==d.settings.Calendar.SelectedList&&(q.selectedList=1,H="tasks"),g(H,{reload:!0}),e.$on("calendars:list",function(){p.$filter(q.componentType,{reload:!0})}),e.$on("calendar:dragend",S),t.$on("$destroy",function(){_.forEach(F,function(e){i.deregisterHotkey(e)})})}}e.$inject=["$rootScope","$scope","$q","$timeout","$state","$mdDialog","sgHotkeys","sgFocus","Dialog","Preferences","CalendarSettings","Calendar","Component","Alarm"],angular.module("SOGo.SchedulerUI").controller("CalendarListController",e)}(),function(){"use strict";function e(e,t,n,a,r,o,i,s,c,d,u,h,p,m){function f(e,t,n){return e.sortableScope.element[0]==t.element[0]}function g(){h.saveFoldersOrder(_.flatMap(h.$findAll(),"id"))}function y(){I.sortableMode=!I.sortableMode,I.filter.name=""}function $(){h.saveFoldersOrder()}function v(e){c.prompt(l("New calendar"),l("Name of the Calendar")).then(function(e){var t=new h({name:e,isEditable:!0,isRemote:!1,owner:UserLogin});t.$id().then(function(){h.$add(t)})})}function C(){function e(e,t,n,a){var r=this,o=n.split("/")[2];r.title=l("Please identify yourself to %{0}").formatted(o),r.authenticate=function(e){!e.$valid&&e.$error.required||a.setCredentials(r.username,r.password).then(function(e){t.hide()},function(t){e.password.$setValidity("credentials",!1)})},r.cancel=function(){t.cancel()}}c.prompt(l("Subscribe to a web calendar..."),l("URL of the Calendar"),{inputType:"url"}).then(function(t){h.$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 b(e){e.isSubscription?e.$delete().catch(function(t,n){c.alert(l('An error occured while deleting the calendar "%{0}".',e.name),l(t.error))}):c.confirm(l("Warning"),l('Are you sure you want to delete the calendar "%{0}"?',e.name),{ok:l("Delete")}).then(function(){e.$delete().catch(function(t,n){c.alert(l('An error occured while deleting the calendar "%{0}".',e.name),l(t.error))})})}function D(t,n){function r(t,n,a){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}var s=this;s.uploader=new i({url:ApplicationBaseURL+[a.id,"import"].join("/"),autoUpload:!0,queueLimit:1,filters:[{name:r,fn:r}],onSuccessItem:function(t,a,r,i){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})}}),s.close=function(){n.hide()}}a.show({parent:angular.element(document.body),targetEvent:t,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:"UIxCalendarImportDialog",controller:r,controllerAs:"$CalendarImportDialogController",locals:{folder:n}}),r.$inject=["scope","$mdDialog","folder"]}function k(e){_.forEach(h.$findAll(),function(t){e.id==t.id?t.active=1:t.active=0})}function w(){_.forEach(h.$findAll(),function(e){e.active=1})}function E(e){function t(e,t){function n(){e.hide()}var a=this;a.calendar=t,a.close=n}a.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:e.id+"/links",controller:t,controllerAs:"links",locals:{calendar:e}}),t.$inject=["$mdDialog","calendar"]}function S(e){function t(e,t,n){function a(){o.calendar.$save(),n.init(o.calendar.$omit()),t.hide()}function r(){t.cancel()}var o=this;o.calendar=new h(n.$omit()),o.saveProperties=a,o.close=r,e.$watch(function(){return o.calendar.color},function(){n.color=o.calendar.color})}var n=e.color;a.show({templateUrl:e.id+"/properties",controller:t,controllerAs:"properties",clickOutsideToClose:!0,escapeToClose:!0,locals:{srcCalendar:e}}).catch(function(){e.color=n}),t.$inject=["$scope","$mdDialog","srcCalendar"]}function T(e){I.calendarName=e.name,I.editMode=e.id,s("calendarName_"+e.id)}function A(e){e.$reset(),I.editMode=!1}function O(e){e.$rename().then(function(e){I.editMode=!1})}function x(e){e.$acl.$users().then(function(){a.show({templateUrl:e.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:e.$acl.users,User:p,folder:e}})})}function U(e){r.debug("subscribeToFolder "+e.owner+e.name),h.$subscribe(e.owner,e.name).then(function(e){o.show(o.simple().content(l("Successfully subscribed to calendar")).position("top right").hideDelay(3e3))})}var I=this;I.activeUser=d.activeUser,I.service=h,I.newCalendar=v,I.addWebCalendar=C,I.confirmDelete=b,I.editFolder=T,I.revertEditing=A,I.renameFolder=O,I.share=x,I.importCalendar=D,I.showOnly=k,I.showAll=w,I.showLinks=E,I.showProperties=S,I.subscribeToFolder=U,I.filter={name:""},I.sortableMode=!1,I.toggleSortableMode=y,I.resetSort=$,I.sortableCalendars={scrollableContainer:"#sidenav-content",containment:"md-list",orderChanged:g,accept:f},this.$onInit=function(){I.categories=_.map(u.defaults.SOGoCalendarCategories,function(e){return{id:e.asCSSIdentifier(),name:e,color:u.defaults.SOGoCalendarCategoriesColors[e]}}),t.$watch(function(){return _.union(_.map(h.$calendars,function(e){return _.pick(e,["id","active","color"])}),_.map(h.$subscriptions,function(e){return _.pick(e,["id","active","color"])}),_.map(h.$webcalendars,function(e){return _.pick(e,["id","active","color"])}))},function(t,n){var a,o,i;a=_.intersectionBy(t,n,"id"),o=_.map(_.filter(a,function(e){var t=_.find(n,{id:e.id});return!_.isEqual(e,t)}),"id"),i=h.$q.when(),o.length>0&&(r.debug(o.join(", ")+" changed"),i=h.saveFoldersActivation(o)),(o.length>0||a.length!=t.length||a.length!=n.length)&&i.then(function(){e.$emit("calendars:list")})},!0)}}e.$inject=["$rootScope","$scope","$window","$mdDialog","$log","$mdToast","FileUploader","sgFocus","Dialog","sgSettings","Preferences","Calendar","User","stateCalendars"],angular.module("SOGo.SchedulerUI").controller("CalendarsController",e)}(),function(){"use strict";function e(e,t,n,a,r,o,i,s){function c(){t.hide()}function d(){return E.component&&E.component.priority&&E.component.priority<5}function u(e){return r.$filterAll(e)}function h(e){m(e,_.map(E.component.attendees,function(e){return e.name+" <"+e.email+">"}))}function p(e,t,n){m(e,[t+" <"+n+">"])}function m(e,n){i.$findAll().then(function(a){var r=_.find(a,function(e){if(0===e.id)return e});r.$getMailboxes().then(function(a){r.$newMessage().then(function(a){angular.extend(a.editable,{to:n,subject:E.component.summary}),t.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"../Mail/UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:r,stateMessage:a}})})})}),e.preventDefault(),e.stopPropagation()}function f(){var e="vevent"==E.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:E.component}})})}function g(){(w=n.$get(E.component.pid).$getComponent(E.component.id)).$futureComponentData.then(function(){E.component=w,f()})}function y(n){(n||E.component).$reply().then(function(){e.$emit("calendars:list"),o.getAlarms(),t.hide()})}function $(){(w=n.$get(E.component.pid).$getComponent(E.component.id)).$futureComponentData.then(function(){w.reply=E.component.reply,w.delegatedTo=E.component.delegatedTo,w.$hasAlarm=E.component.$hasAlarm,w.alarm=E.component.alarm,y(w)})}function v(){E.component.remove(!0).then(function(){e.$emit("calendars:list"),t.hide()})}function C(){E.component.remove().then(function(){e.$emit("calendars:list"),t.hide()})}function b(e){n.$$resource.post(E.component.pid+"/"+E.component.id,"raw").then(function(n){function a(e,t,n){e.data=n,e.close=function(){t.hide()}}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 D(n){E.component.copyTo(n).then(function(){t.hide(),e.$emit("calendars:list")})}function k(n){E.component.moveTo(n).then(function(){t.hide(),e.$emit("calendars:list")})}var w,E=this;E.calendarService=n,E.service=a,E.component=s,E.close=c,E.highPriority=d,E.cardFilter=u,E.newMessageWithAllRecipients=h,E.newMessageWithRecipient=p,E.edit=f,E.editAllOccurrences=g,E.reply=y,E.replyAllOccurrences=$,E.deleteOccurrence=v,E.deleteAllOccurrences=C,E.toggleRawSource=b,E.copySelectedComponent=D,E.moveSelectedComponent=k,E.organizer=[s.organizer]}function t(e,t,n,a,r,o,i,s,c,d,u,h,p,m){function f(){var e=B.component.addAttachUrl("");o("attachUrl_"+e)}function g(){B.showRecurrenceEditor=!B.showRecurrenceEditor,B.component.$hasCustomRepeat=B.showRecurrenceEditor}function y(){B.showAttendeesEditor=!B.showAttendeesEditor}function $(){return B.component&&"monthly"==B.component.repeat.frequency&&"bymonthday"==B.component.repeat.month.type}function v(){B.component.attendees&&B.component.attendees.length>0&&B.component.initOrganizer(c.$get(B.component.destinationCalendar))}function C(e){return u.$filterAll(e),u.$cards}function b(e){var t=!B.component.attendees||0===B.component.attendees.length,n=c.$get(B.component.destinationCalendar),a=t?{organizerCalendar:n}:{};angular.isString(e)?e.isValidEmail()&&(B.component.addAttendee(new h({emails:[{value:e}]}),a),B.showAttendeesEditor|=t,B.searchText=""):(B.component.addAttendee(e,a),B.showAttendeesEditor|=t)}function D(e,t){B.component.deleteAttendee(e),0===B.component.attendees.length&&(B.showAttendeesEditor=!1),t.$setDirty()}function k(){if(B.component&&B.component.priority)return B.component.priority>5?l("low"):B.component.priority>4?l("normal"):l("high")}function w(t,n){t.$valid&&B.component.$save(n).then(function(t){e.$emit("calendars:list"),p.getAlarms(),r.hide()},function(e){e.status==s.ConflictHTTPErrorCode&&_.isObject(e.data.message)?B.attendeeConflictError=e.data.message:T(t)})}function E(e){B.component.$reset(),e.$setPristine()}function S(e){E(e),B.component.isNew&&(B.component=null),r.cancel()}function T(e){B.attendeeConflictError=!1,e.$setPristine(),e.$setDirty()}function A(){var e=[];return B.component.start&&B.component.end&&(e=B.component.start.daysUpTo(B.component.end)),_.map(e,function(e){return{stringWithSeparator:e.stringWithSeparator(),getDayString:e.getDayString()}})}function O(){B.component.$addStartDate(),q=new Date(B.component.start.getTime())}function x(){B.component.$addDueDate(),N=new Date(B.component.due.getTime())}function U(){if(B.component.start){0!==q.valueOf()-B.component.start.valueOf()&&(q=new Date(B.component.start.getTime()),"appointment"===B.component.type&&(B.component.end=new Date(B.component.start.getTime()),B.component.end.addMinutes(B.component.delta),F=new Date(B.component.end.getTime())),H())}}function I(){if(B.component.end){var e=F.valueOf()-B.component.end.valueOf();0!==e&&((e=B.component.start.minutesTo(B.component.end))<0?B.component.end=new Date(F.getTime()):(B.component.delta=e,F=new Date(B.component.end.getTime())),H())}}function M(){N=new Date(B.component.due.getTime())}function H(){B.attendeesEditor.days=A(),B.component.updateFreeBusy()}var q,F,N,B=this;B.service=c,B.component=m,B.categories={},B.showRecurrenceEditor=B.component.$hasCustomRepeat,B.toggleRecurrenceEditor=g,B.recurrenceMonthDaysAreRequired=$,B.showAttendeesEditor=B.component.attendees&&B.component.attendees.length,B.toggleAttendeesEditor=y,B.changeCalendar=v,B.cardFilter=C,B.addAttendee=b,B.removeAttendee=D,B.addAttachUrl=f,B.priorityLevel=k,B.reset=E,B.cancel=S,B.edit=T,B.save=w,B.attendeeConflictError=!1,B.attendeesEditor={days:A(),hours:function(){for(var e=[],t=0;t<=23;t++)e.push(t.toString());return e}()},B.addStartDate=O,B.addDueDate=x,B.adjustStartTime=U,B.adjustEndTime=I,B.adjustDueTime=M,B.component.start&&(q=new Date(B.component.start.getTime())),B.component.end&&(F=new Date(B.component.end.getTime())),B.component.due&&(N=new Date(B.component.due.getTime()))}e.$inject=["$rootScope","$mdDialog","Calendar","Component","AddressBook","Alarm","Account","stateComponent"],t.$inject=["$rootScope","$scope","$log","$timeout","$mdDialog","sgFocus","User","CalendarSettings","Calendar","Component","AddressBook","Card","Alarm","stateComponent"],angular.module("SOGo.SchedulerUI").controller("ComponentController",e).controller("ComponentEditorController",t)}(),function(){"use strict";function e(){return{restrict:"E",scope:{day:"@sgDay",dayNumber:"@sgDayNumber",dayString:"@sgDayString",calendar:"@sgCalendar"},controller:t}}function t(e,t){this.day=e.day,this.dayNumber=e.dayNumber,this.dayString=e.dayString,this.calendarData=function(){var n,a,r;return e.calendar?(n=e.calendar,r=_.filter(t.$findAll(),{active:1}),a=_.findIndex(r,function(e){return e.id==n}),{pid:n,index:a}):null}}t.$inject=["$scope","Calendar"],angular.module("SOGo.SchedulerUI").directive("sgCalendarDay",e)}(),function(){"use strict";function e(e){function t(e,t){var n=_.has(t,"sgCalendarGhost")?"":"::";return['
",'
','
",'
',' {{'+n+"block.component.c_priority}}"," {{ "+n+"block.component.summary }}",' ',' ',' ',' ',' '," ",'
'," place {{"+n+"block.component.c_location}}","
","
","
",'
{{ block.startHour }}
','
{{ block.endHour }}
',"
"].join("")}function n(e,t,n){var a,r,o;_.has(n,"sgCalendarGhost")||(a=100/e.block.siblings,r=e.block.position*a,o=100-(e.block.position+1)*a,a<100&&(r>0&&(r-=2),o>0&&(o-=2)),0===r&&(r=2),0===o&&(o=2),t.css("left",r+"%"),t.css("right",o+"%"),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")))}return{restrict:"E",scope:{block:"=sgBlock",clickBlock:"&sgClick"},replace:!0,template:t,link:n}}e.$inject=["CalendarSettings"],angular.module("SOGo.SchedulerUI").directive("sgCalendarDayBlock",e)}(),function(){"use strict";function e(){return{restrict:"E",scope:{blocks:"=sgBlocks",day:"@sgDay",clickBlock:"&sgClick"},template:["'].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCalendarDayTable",e)}(),function(){"use strict";function e(e,t,n,a,r){function o(t,o,i,s){function c(){var e,n,a;t.block=r.$ghost,(n=f.calendarData())&&(y=n.index,e=n.pid,$=t.block.pointerHandler.originalCalendar.index),e||(e=t.block.component.pid),(a=t.block.component.blocks[0].userState)&&o.addClass("sg-event--"+a),o.addClass("bg-folder"+e)}function l(){_.forEachRight(m.classList,function(e){/^bg-folder/.test(e)&&o.removeClass(e)}),o.addClass("ng-hide")}function d(){var e,r,i,s,c,l,d,u;if(e=!1,a.$view&&a.$view.type==g.type){if(r="multiday-allday"===g.type,i=t.block.component.c_isallday,s=t.block.pointerHandler.currentEventCoordinates.dayNumber,c=t.block.pointerHandler.currentEventCoordinates.start,d=t.block.pointerHandler.currentEventCoordinates.duration,u=n.EventDragDayLength-c,angular.isUndefined(d))return;for((l=d)>u&&(l=u),s>-1&&(y<0&&s==f.dayNumber||s==y&&($==y||!t.block.component.isException))&&(e=!0,r||(i||(t.block.startHour=h(c)),a.$view.quarterHeight?(o.css("top",c*a.$view.quarterHeight+"px"),o.css("height",l*a.$view.quarterHeight+"px")):o.css("top",a.$view.topOffset+"px")),o.removeClass("fg-folder"+t.block.component.pid),o.removeClass("sg-event--ghost--last"),o.addClass("sg-event--ghost--first"),t.block.isFirst=!0),d-=l,s++;!e&&d&&s<=f.dayNumber;)(l=d)>n.EventDragDayLength&&(l=n.EventDragDayLength),s>-1&&s==f.dayNumber&&(e=!0,r||(o.css("top",a.$view.topOffset+"px"),a.$view.quarterHeight&&o.css("height",l*a.$view.quarterHeight+"px")),o.removeClass("sg-event--ghost--first"),o.removeClass("sg-event--ghost--last"),o.addClass("fg-folder"+t.block.component.pid)),d-=l,s++,c=0;d||(r?o.addClass("sg-event--ghost--last"):i||(t.block.endHour=p(c,l)))}e?o.removeClass("ng-hide"):o.addClass("ng-hide")}function u(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}function h(e){return u(e)}function p(e,t){return u((e+t)%n.EventDragDayLength)}var m,f,g,y,$;m=o[0],f=s[0],g=s[1],y=-1,o.addClass("sg-event--ghost md-whiteframe-3dp ng-hide");var v=e.$on("calendar:dragstart",c),C=e.$on("calendar:drag",d),b=e.$on("calendar:dragend",l);t.$on("$destroy",function(){v(),C(),b()})}return{restrict:"A",require:["^sgCalendarDay","^sgCalendarScrollView"],link:o}}e.$inject=["$rootScope","$timeout","CalendarSettings","Calendar","Component"],angular.module("SOGo.SchedulerUI").directive("sgCalendarGhost",e)}(),function(){"use strict";function e(){return{restrict:"E",scope:{blocks:"=sgBlocks",day:"@sgDay",clickBlock:"&sgClick"},template:["'].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCalendarMonthDay",e)}(),function(){"use strict";function e(){function e(e,t){var n=_.has(t,"sgCalendarGhost")?"":"::";return['
','
",' {{ '+n+"block.component.startHour }}",' {{'+n+"block.component.c_priority}}"," {{ "+n+"block.component.summary }}",' ',' ',' ',' ',' '," ","
"].join("")}function t(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")))}return{restrict:"E",scope:{block:"=sgBlock",clickBlock:"&sgClick"},replace:!0,template:e,link:t}}angular.module("SOGo.SchedulerUI").directive("sgCalendarMonthEvent",e)}(),function(){"use strict";function e(e,n,a,r,o,i,s,c,l){return{restrict:"A",scope:{type:"@sgCalendarScrollView"},controller:t,link:function(t,a,r,i){function d(){if(h=new u(a,p),"monthly"!=p){var e,t,n;l.defaults.SOGoDayStartTime&&(e=l.defaults.SOGoDayStartTime.split(":"),t=document.getElementById("hour"+parseInt(e[0])),n=parseInt(e[1])*h.quarterHeight,h.element.scrollTop=t.offsetTop+n)}i.quarterHeight=h.quarterHeight}function u(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)}var h,p,m=!1;h=null,p=t.type,m="multicolumndayview"==a.attr("sg-view"),i.isMultiColumn=m,o(d),t.$on("$destroy",function(){h&&h.$destroy()}),u.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,r,o,i,s;return n=t=a=r=0,(o=this.element.getElementsByClassName("day")).length>0&&(n=(i=o[0].getBoundingClientRect()).height,t=i.width,a=i.left-e,(s=o[0].getElementsByClassName("sg-calendar-tile-header")).length>0&&(r=s[0].clientHeight)),{height:n,width:t,offset:{left:a,top:r}}},getDayNumbers:function(){var e;return e=this.element.getElementsByTagName("sg-calendar-day"),_.map(e,function(e,t){return m?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,r,o;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<(r=-this.element.scrollTop)&&(a=r),this.element.scrollTop+=a):(o=(a=t.y+this.scrollStep)-this.element.clientHeight)>0&&(this.element.scrollTop+=o)))}}}}}function t(e){this.type=e.type}e.$inject=["$rootScope","$window","$document","$q","$timeout","$mdGesture","Calendar","Component","Preferences"],t.$inject=["$scope"],angular.module("SOGo.SchedulerUI").directive("sgCalendarScrollView",e)}(),function(){"use strict";function e(){return{restrict:"E",require:"ngModel",scope:{ngModel:"="},replace:!0,template:['"].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCategoryStylesheet",e)}(),function(){"use strict";function e(e,t,n,a,r,o,i){function s(s,c,d,u){function h(e){var t,n,a,r;e.stopPropagation(),e.target.scrollHeight>e.target.clientHeight+1&&(a=e.target.getBoundingClientRect(),r=a.left+a.width-18,e.pageX>r)||(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 $(t)).initFromEvent(e),i.$ghost.pointerHandler=n,angular.element(document).one("mouseup",f),angular.element(document).on("mousemove",m))}function p(t){var o,d,h,p,m,f,g,y;h=c.hasClass("clickableHourCell"),p="SG-CALENDAR-MONTH-DAY"==c[0].parentNode.tagName||c.hasClass("clickableDayCell"),y=u.calendarData(),s.block&&s.block.component?o=s.block:(m=u.dayString.parseDate(a.$mdDateLocaleProvider,"%Y-%m-%e"),f={type:"appointment",pid:y?y.pid:r.$defaultCalendar(),summary:l("New Event"),startDate:m,isAllDay:h?0:1},(o={component:new i(f),dayNumber:u.dayNumber,length:0}).component.blocks=[o]),d="multiday",p?d="monthly":o.component.c_isallday&&(d="multiday-allday"),_.forEach(o.component.blocks,function(e){e.dragging=!0}),(g=i.$ghost.pointerHandler).prepareWithEventType(d),g.initFromBlock(o),y&&g.initFromCalendar(y),i.$ghost.component=o.component,n.debug("emit calendar:dragstart "+d),e.$emit("calendar:dragstart")}function m(e){var n=i.$ghost.pointerHandler;t(function(){n.updateFromEvent(e)})}function f(t){var n,a;n=s.block,a=i.$ghost.pointerHandler,angular.element(document).off("mousemove",m),a.dragHasStarted&&(e.$emit("calendar:dragend"),a.dragHasStarted=!1),n&&n.component&&_.forEach(n.component.blocks,function(e){e.dragging=!1})}function g(){}function y(e){this.setEventType(e)}function $(e){this.dragMode=e}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,r,o,i,l,d,u;s.block.length<3||(e=s.block.component,t=s.block.dayIndex,a=0===(n=_.findIndex(e.blocks,["dayIndex",t])),r=n===e.blocks.length-1,(o=angular.element('
')).addClass("bdr-folder"+e.pid),e.c_isallday||"SG-CALENDAR-MONTH-DAY"===c[0].parentNode.tagName?(a&&(i=angular.element('
').append(o),c.append(i)),r&&(l=angular.element('
').append(o.clone()),c.append(l))):(a&&(d=angular.element('
').append(o),c.append(d)),r&&(u=angular.element('
').append(o.clone()),c.append(u))))}()}c.on("mousedown",h),s.$on("$destroy",function(){c.off("mousedown",h),c.off("mousemove",m)}),g.prototype={x:-1,y:-1,getDelta:function(e){var t=new g;return t.x=this.x-e.x,t.y=this.y-e.y,r.$view&&(t.days=r.$view.dayNumbers[this.x]-r.$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 g;return e.x=this.x,e.y=this.y,e}},y.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*o.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*o.EventDragDayLength}))},initFromCalendar:function(e){this.dayNumber=e},getDelta:function(e){var t=new y;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)%o.EventDragDayLength;return this._quartersToHM(e)},clone:function(){var e=new y;return e.dayNumber=this.dayNumber,e.start=this.start,e.duration=this.duration,e}},$.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 y(this.eventType),this.originalEventCoordinates=new y(this.eventType),this.originalEventCoordinates.initFromBlock(e)},initFromEvent:function(e){this.currentCoordinates=new g,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(e){if(this.currentCoordinates.x=e.pageX,this.currentCoordinates.y=e.pageY,this.dragHasStarted&&r.$view){var t=this.getEventViewCoordinates(r.$view);this.originalViewCoordinates||(this.originalViewCoordinates=this.getEventViewCoordinates(r.$view,this.originalCoordinates),i.$ghost.component.isNew&&(this.setTimeFromQuarters(i.$ghost.component.start,this.originalViewCoordinates.y),n.debug("new event start date "+i.$ghost.component.start))),this.currentViewCoordinates&&t&&t.x==this.currentViewCoordinates.x&&t.y==this.currentViewCoordinates.y||(this.currentViewCoordinates=t,this.originalViewCoordinates&&(t||(this.currentViewCoordinates=this.originalViewCoordinates.clone()),this.updateEventCoordinates()))}else this.originalCoordinates&&this.currentCoordinates&&!this.dragHasStarted&&this.getDistance()>3&&(this.dragHasStarted=!0,p(e))},updateEventCoordinates:function(){var t,a=this.currentViewCoordinates.getDelta(this.originalViewCoordinates),i=a.days*o.EventDragDayLength+a.y;n.debug("quarters delta "+i),angular.isUndefined(this.originalEventCoordinates.start)?(this.originalEventCoordinates.dayNumber=r.$view.dayNumbers[this.originalViewCoordinates.x],this.originalEventCoordinates.start=this.originalViewCoordinates.y):this.originalEventCoordinates.dayNumber<0&&(this.originalEventCoordinates.dayNumber=r.$view.dayNumbers[s.block.component.blocks[0].dayIndex]),this.currentEventCoordinates.dayNumber=this.originalEventCoordinates.dayNumber,"move-event"==this.dragMode?(this.currentEventCoordinates.start=this.originalEventCoordinates.start+i,this.currentEventCoordinates.duration=this.originalEventCoordinates.duration):"change-start"==this.dragMode?(t=this.originalEventCoordinates.duration-i)>0?(this.currentEventCoordinates.start=this.originalEventCoordinates.start+i,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+i)>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/o.EventDragDayLength),this.currentEventCoordinates.start+=c*o.EventDragDayLength,this.currentEventCoordinates.dayNumber-=c):this.currentEventCoordinates.start>=o.EventDragDayLength&&(c=Math.floor(this.currentEventCoordinates.start/o.EventDragDayLength),this.currentEventCoordinates.start-=c*o.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).getDelta(e.coordinates),a=e.element;return(n.xa.clientWidth||n.y<0||n.y>a.clientHeight)&&(n=null),n},prepareWithEventType:function(e){var t={multiday:this.getEventMultiDayViewCoordinates,"multiday-allday":this.getEventMultiDayAllDayViewCoordinates,monthly:this.getEventMonthlyViewCoordinates,unknown:null}[e];this.eventType=e,this.getEventViewCoordinates=t},getEventMultiDayViewCoordinates:function(e,t){var n=this.getEventMultiDayAllDayViewCoordinates(e,t);if(n){var a=e.quarterHeight,r=this.getContainerBasedCoordinates(e,t);r.y+=e.element.scrollTop,n.y=Math.floor((r.y-o.EventDragHorizontalOffset)/a);var i=o.EventDragDayLength-1;n.y<0?n.y=0:n.y>i&&(n.y=i)}return n},getEventMultiDayAllDayViewCoordinates:function(e,t){var n,a=this.getContainerBasedCoordinates(e,t);if(a){n=new g;var o=e.dayWidth,i=e.daysOffset;n.x=Math.floor((a.x-i)/o);var s=0,c=r.$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 g;var r=e.maxX,o=e.dayWidth,i=e.daysOffset,s=e.dayHeight,c=Math.floor((a.y-0)/s);c<0&&(c=0),n.x=Math.floor((a.x-i)/o),n.x<0?n.x=0:n.x>r&&(n.x=r),n.x+=(r+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)}}}return{restrict:"CA",require:"^sgCalendarDay",link:s}}e.$inject=["$rootScope","$timeout","$log","Preferences","Calendar","CalendarSettings","Component"],angular.module("SOGo.SchedulerUI").directive("sgDraggableCalendarBlock",e)}(),function(){"use strict";function e(){function e(e,t,n,a){function r(){return t.find("sg-calendar-day")}function o(){return a.quarterHeight}var i=e.$watch(o,function(t){if(t){i(),e.quarterHeight=t;var n=e.$watch(r,function(t){t.length&&(n(),e.days=t,e.updateLine())})}})}return{restrict:"C",require:"^^sgCalendarScrollView",link:e,controller:t}}function t(e,t,n){function a(t){var a=new Date,s=a.getDayString(),c=a.getHours(),l=4*e.quarterHeight,d=a.getMinutes(),u=e.quarterHeight/15,h=parseInt(c*l+d*u-1);(t||s!=e.nowDay)&&(e.lineElement&&e.lineElement.remove(),e.lineElement=r(s,e.days),e.nowDay=s),e.lineElement&&(e.lineElement.css("top",h+"px"),o=n(angular.bind(i,e.updateLine),6e4))}function r(e,n){var a=angular.element("");return s.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)}),a}var o,i=this,s=t.controller("sgCalendarScrollView");e.nowDay=null,e.lineElement=null,e.updateLine=a,e.$on("$destroy",function(){o&&n.cancel(o)})}t.$inject=["$scope","$element","$timeout"],angular.module("SOGo.SchedulerUI").directive("sgNowLine",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,i,r,o,s,l){return angular.extend(e,{$q:t,$timeout:n,$log:a,$$resource:new r(i.activeUser("folderURL")+"Calendar",i.activeUser()),$Preferences:o,$Component:s,$$Acl:l,activeUser:i.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 i=new e(t);i.isWebCalendar?a.$webcalendars.push(i):i.isSubscription?a.$subscriptions.push(i):a.$calendars.push(i)});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,i;a=n.isWebCalendar?t.$webcalendars:n.owner!=e.activeUser.login?t.$subscriptions:t.$calendars,(i=_.find(a,function(e){return e.id==n.id}))&&i.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=this,a=e.$q.defer();return _.find(n.$webcalendars,function(e){return e.urls.webCalendarURL==t})?a.reject():e.$$resource.post(null,"addWebCalendar",{url:t}).then(function(n){angular.extend(n,{isWebCalendar:!0,isEditable:!0,isRemote:!1,owner:e.activeUser.login,urls:{webCalendarURL:t}});var i=new e(n);e.$$resource.fetch(i.id,"reload").then(function(t){e.$log.debug(JSON.stringify(t,void 0,2)),e.$add(i),a.resolve()},function(e){401==e.status?a.resolve(i):a.reject()})},a.reject),a.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),t>-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,i=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),i.resolve()},function(e){401==e.status?i.reject(l("Wrong username or password")):i.reject(e.statusText)})},i.reject),i.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,i,r,o,s,l,c,d,u){return angular.extend(e,{STATUS:o,$q:t,$timeout:n,$log:a,$rootScope:i,$settings:r,$User:l,$Preferences:s,$Card:c,$gravatar:d,$$resource:new u(r.activeUser("folderURL")+"Calendar",r.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,i,r=this,o=new Date,s=o.getDate(),l=o.getMonth()+1,c=o.getFullYear(),d="$query"+t.capitalize(),u={day:c+(l<10?"0":"")+l+(s<10?"0":"")+s},h=!1;return e.$startRefreshTimeout(t),angular.extend(this.$query,u),n&&_.forEach(_.keys(n),function(t){h|=r.$query[t]&&n[t]!=e.$query[t],"reload"==t&&n[t]?h=!0:angular.isDefined(r.$query[t])?r.$query[t]=n[t]:r[d][t]=n[t]}),a=this.$$resource.fetch(null,t+"list",angular.extend(this[d],this.$query)),h&&(delete e[i="tasks"==t?"$events":"$tasks"],e.$log.debug("force reload of "+i)),this.$unwrapCollection(t,a)},e.$find=function(t,n,a){var i,r=[t,n];return a&&r.push(a),i=this.$$resource.fetch(r.join("/"),"view"),new e(i)},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,i,r,o;return a=e.$Preferences.defaults.SOGoFirstDayOfWeek,"day"==t?(i="dayView",r=o=n):"multicolumnday"==t?(i="multicolumndayView",r=o=n):"week"==t?(i="weekView",r=n.beginOfWeek(a),(o=new Date).setTime(r.getTime()),o.addDays(6)):"month"==t&&(i="monthView",(r=n).setDate(1),r=r.beginOfWeek(a),(o=new Date).setTime(n.getTime()),o.setMonth(o.getMonth()+1),o.addDays(-1),o=o.endOfWeek(a)),this.$eventsBlocks(i,r,o)},e.$eventsBlocks=function(t,n,a){var i,r,o,s=[],l=[],c=e.$q.defer();return i={view:t.toLowerCase(),sd:n.getDayString(),ed:a.getDayString()},this.$$resource.fetch(null,"eventsblocks",i).then(function(t){var n,a;n=function(t,n,a){var i,r=_.zipObject(this.eventsFields,n),o=new Date(1e3*r.c_startdate);return r.hour=o.getHourString(),r.blocks=[],i=new e(r),t.push(i),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,i){var c,d=[],u={},h={};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"),l=_.flatMap(t.days,"number")),r=0;r0&&(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 i={M:"MINUTES",H:"HOURS",D:"DAYS",W:"WEEKS"},r=/-PT?([0-9]+)([MHDW])/.exec(e.$Preferences.defaults.SOGoCalendarDefaultReminder);r&&(this.$hasAlarm=!0,this.alarm.quantity=parseInt(r[1]),this.alarm.unit=i[r[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.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))},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()),i=parseInt(n.getMinutes()/15+.5),r=parseInt(a.getMinutes()/15+.5);return n.setMinutes(15*i),a.setMinutes(15*r),_.forEach(n.daysUpTo(a),function(n,a){var r,o=n.getDate(),s=n.getDayString();if(s==e.start.getDayString())for(r=n.getHours().toString(),t[s]={},t[s][r]=[];i>0;)t[s][r].push(0),i--;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.$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,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,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,i,r,o=this;return i=this.$omit(),r=e.$Preferences.$mdDateLocaleProvider,i.startDate=i.start?i.start.format(r,"%Y-%m-%d"):"",i.startTime=i.start?i.start.format(r,"%H:%M"):"",i.endDate=i.end?i.end.format(r,"%Y-%m-%d"):"",i.endTime=i.end?i.end.format(r,"%H:%M"):"",i.dueDate=i.due?i.due.format(r,"%Y-%m-%d"):"",i.dueTime=i.due?i.due.format(r,"%H:%M"):"",i.completedDate=i.completed?i.completed.format(r,"%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 i.repeat.monthdays,i.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||(delete i.repeat.days,"relative"==this.repeat.month.day&&(i.repeat.monthdays=[this.repeat.month.occurrence])):this.repeat.frequency&&"never"!=this.repeat.frequency&&(i.repeat={frequency:this.repeat.frequency}),i.startDate&&this.repeat.frequency&&"never"!=this.repeat.frequency?"until"==this.repeat.end&&this.repeat.until?i.repeat.until=this.repeat.until.stringWithSeparator("-"):"count"==this.repeat.end&&this.repeat.count?i.repeat.count=this.repeat.count:(delete i.repeat.until,delete i.repeat.count):delete i.repeat,"not-specified"==this.status?delete i.status:"completed"!=this.status&&delete i.completedDate,i.startDate&&this.$hasAlarm?!this.alarm.action||"email"!=this.alarm.action||this.attendees&&this.attendees.length>0||(i.alarm.attendees=0,i.alarm.organizer=1):i.alarm={},a=[this.pid,this.id],this.isNew&&(n={action:"saveAs"+this.type.capitalize()}),this.occurrenceId&&a.push(this.occurrenceId),angular.extend(i,t),e.$$resource.save(a.join("/"),i,n).then(function(e){return o.$shadowData=o.$omit(),e})},e.prototype.remove=function(t){var n=[this.pid,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.unit,this.alarm.reference].join("_"))===(t=l(e))&&(t=[this.alarm.quantity,l("reminder_"+this.alarm.unit),l("reminder_"+this.alarm.reference)].join(" ")),t},e.prototype.copyTo=function(t){return e.$$resource.post(this.pid+"/"+this.id,"copy",{destination:t})},e.prototype.moveTo=function(t){return e.$$resource.post(this.pid+"/"+this.id,"move",{destination:t})},e.prototype.toString=function(){return"[Component "+this.id+"]"}}(),function(){"use strict";function e(t,n,a,i,r,o,s,c,d){function u(e){e.push(r.createHotkey({key:l("hotkey_today"),description:l("Today"),callback:g,args:new Date})),e.push(r.createHotkey({key:l("hotkey_dayview"),description:l("Day"),callback:y,args:"day"})),e.push(r.createHotkey({key:l("hotkey_weekview"),description:l("Week"),callback:y,args:"week"})),e.push(r.createHotkey({key:l("hotkey_monthview"),description:l("Month"),callback:y,args:"month"})),e.push(r.createHotkey({key:l("hotkey_multicolumndayview"),description:l("Multicolumn Day View"),callback:y,args:"multicolumnday"})),e.push(r.createHotkey({key:"left",description:l("Move backward"),callback:h,args:-1})),e.push(r.createHotkey({key:"right",description:l("Move forward"),callback:h,args:1})),_.forEach(e,function(e){r.registerHotkey(e)})}function h(e,t){var n;"week"==i.view?n=$.selectedDate.beginOfWeek(c.defaults.SOGoFirstDayOfWeek).addDays(7*t):"month"==i.view?((n=$.selectedDate).setDate(1),n.setMonth(n.getMonth()+t)):n=$.selectedDate.addDays(t),g(e,n)}function p(e){"month"==i.view?(e.setDate(1),e.setHours(12),e.$dateFormat="%B %Y"):"week"==i.view?(e.setTime(e.beginOfWeek(c.defaults.SOGoFirstDayOfWeek).getTime()),e.$dateFormat=l("Week %d").replace("%d","%U")):e.$dateFormat="%A"}function m(){e.expandedAllDays=!e.expandedAllDays,$.expandedAllDays=e.expandedAllDays}function f(){s.$eventsBlocksForView(i.view,i.day.asDate()).then(function(e){var t,n,a;for(t=0;t=t;n--)$.views.splice(n,1)})}function g(e,t){var n=t?t.getDayString():angular.element(e.currentTarget).attr("date");t&&p(t),a.go("calendars.view",{day:n})}function y(e,t){a.go("calendars.view",{view:t})}var v,$=this,C=[];angular.isUndefined(e.expandedAllDays)&&(e.expandedAllDays=!1),$.selectedDate=i.day.asDate(),$.expandedAllDays=e.expandedAllDays,$.toggleAllDays=m,$.views=d,$.changeDate=g,$.changeView=y,this.$onInit=function(){u(C),p($.selectedDate),v=n.$on("calendars:list",f),t.$on("$destroy",function(){v(),_.forEach(C,function(e){r.deregisterHotkey(e)})})}}e.$inject=["$scope","$rootScope","$state","$stateParams","sgHotkeys","Calendar","Component","Preferences","stateEventsBlocks"],angular.module("SOGo.SchedulerUI").controller("CalendarController",e)}(),function(){"use strict";function e(e,t,n,a,i,r,o,s,c,d,u,h,p,m){function f(e){e.push(o.createHotkey({key:l("hotkey_search"),description:l("Search"),callback:C})),e.push(o.createHotkey({key:l("hotkey_create_event"),description:l("Create a new event"),callback:E,args:"appointment"})),e.push(o.createHotkey({key:l("hotkey_create_task"),description:l("Create a new task"),callback:E,args:"task"})),_.forEach(e,function(e){o.registerHotkey(e)})}function g(e,t){(t&&t.reload||F.componentType!=e)&&(angular.isUndefined(p["$"+e])&&p.$filter(e),F.unselectComponents(),F.componentType=e,p.saveSelectedList(e))}function y(){_.forEach(p["$"+F.componentType],function(e){e.selected=!1}),F.mode.multiple=0}function v(){_.forEach(p["$"+F.componentType],function(e){e.selected=!0}),F.mode.multiple=p["$"+F.componentType].length}function $(e,t){t.selected=!t.selected,F.mode.multiple+=t.selected?1:-1,e.preventDefault(),e.stopPropagation()}function C(){F.mode.search=!0,s("search")}function b(){c.confirm(l("Warning"),l("Are you sure you want to delete the selected components?"),{ok:l("Delete")}).then(function(){var t=_.filter(p["$"+F.componentType],function(e){return e.selected});h.$deleteComponents(t).then(function(){F.mode.multiple=0,e.$emit("calendars:list")})})}function k(e,t){w(e,t,"appointment")}function D(e,t){w(e,t,"task")}function w(e,t,a){if(t.viewable){var i=n.when();angular.isUndefined(t.$futureComponentData)&&(i=(t=h.$get(t.pid).$getComponent(t.id,t.occurrenceId)).$futureComponentData),i.then(function(){var n="UIx"+a.capitalize()+"ViewTemplate";r.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:n,controller:"ComponentController",controllerAs:"editor",locals:{stateComponent:t}})})}}function E(e,t,n){var a;n?(a=n).updateFreeBusy():a=new p({pid:h.$defaultCalendar(),type:t});var i="UIx"+t.capitalize()+"EditorTemplate";return r.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:i,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:a}})}function S(t){function n(e,t,n,a){e.updateThisOccurrence=function(){n.$adjust(a).then(t.hide,function(e){t.cancel().then(function(){i(e,n,a)})})},e.updateAllOccurrences=function(){delete n.occurrenceId,n.$adjust(a).then(t.hide,function(e){t.cancel().then(function(){i(e,n,a)})})}}function i(t,n,a){t.status==u.ConflictHTTPErrorCode&&t.data&&t.data.message&&angular.isObject(t.data.message)&&r.show({parent:angular.element(document.body),clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxAttendeeConflictDialog",controller:o,controllerAs:"$AttendeeConflictDialogController",locals:{component:n,params:a,conflictError:t.data.message}}).then(function(){e.$emit("calendars:list")})}function o(e,t,n,a,i){function r(){n.$adjust(angular.extend({ignoreConflicts:!0},a)).then(t.hide)}var o=this;o.conflictError=i,o.cancel=t.cancel,o.save=r}var s,c,d,f,g,y,v;s=p.$ghost.component,c=p.$ghost.pointerHandler,s.isNew?(d=c.currentEventCoordinates,s.summary="",s.isAllDay&&(d.duration-=96),s.setDelta(15*d.duration),E(null,"appointment",s).finally(function(){a(function(){p.$resetGhost()})})):(f=c.currentEventCoordinates.getDelta(c.originalEventCoordinates),g={days:f.dayNumber,start:15*f.start,duration:15*f.duration},c.originalCalendar&&0!==f.dayNumber&&(y=c.currentEventCoordinates.dayNumber,v=_.filter(h.$findAll(),{active:1}),g.destination=v[y].id,g.days=0),s.isException||!s.occurrenceId?s.$adjust(g).then(function(){e.$emit("calendars:list"),m.getAlarms()},function(e){i(e,s,g)}).finally(function(){a(function(){p.$resetGhost()})}):s.occurrenceId&&r.show({clickOutsideToClose:!0,escapeToClose:!0,locals:{component:s,params:g},template:['',' ',"

"+l("editRepeatingItem")+"

","
"," ",' '+l("button_thisOccurrenceOnly")+"",' '+l("button_allOccurrences")+""," ","
"].join(""),controller:n}).then(function(){e.$emit("calendars:list")}).finally(function(){a(function(){p.$resetGhost()})})),n.$inject=["$scope","$mdDialog","component","params"],o.$inject=["$scope","$mdDialog","component","params","conflictError"]}function T(){return p["$query"+F.componentType.capitalize()].filterpopup}function A(e){p.$filter(F.componentType,{filterpopup:e})}function O(e){return p["$query"+F.componentType.capitalize()].filterpopup==e}function x(e){p.$filter(F.componentType,{sort:e})}function U(e){return p["$query"+F.componentType.capitalize()].sort==e}function I(){h.reloadWebCalendars().finally(function(){e.$emit("calendars:list")})}function M(){F.mode.search=!1,p.$filter(F.componentType,{value:""})}var H,F=this,N=[];F.component=p,F.componentType="events",F.selectedList=0,F.selectComponentType=g,F.unselectComponents=y,F.selectAll=v,F.searchMode=C,F.toggleComponentSelection=$,F.confirmDeleteSelectedComponents=b,F.openEvent=k,F.openTask=D,F.newComponent=E,F.filterpopup=T,F.filter=A,F.filteredBy=O,F.sort=x,F.sortedBy=U,F.reload=I,F.cancelSearch=M,F.mode={search:!1,multiple:0},this.$onInit=function(){f(N),H="events","tasksListView"==d.settings.Calendar.SelectedList&&(F.selectedList=1,H="tasks"),g(H,{reload:!0}),e.$on("calendars:list",function(){p.$filter(F.componentType,{reload:!0})}),e.$on("calendar:dragend",S),t.$on("$destroy",function(){_.forEach(N,function(e){o.deregisterHotkey(e)})})}}e.$inject=["$rootScope","$scope","$q","$timeout","$state","$mdDialog","sgHotkeys","sgFocus","Dialog","Preferences","CalendarSettings","Calendar","Component","Alarm"],angular.module("SOGo.SchedulerUI").controller("CalendarListController",e)}(),function(){"use strict";function e(e,t,n,a,i,r,o,s,c,d){function u(e,t,n){return e.sortableScope.element[0]==t.element[0]}function h(){d.saveFoldersOrder(_.flatMap(d.$findAll(),"id"))}function p(){v.sortableMode=!v.sortableMode,v.filter.name=""}function m(){d.saveFoldersOrder()}function f(e){o.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)})})}function g(){function e(e,t,n,a){var i=this,r=n.split("/")[2];i.title=l("Please identify yourself to %{0}").formatted(r),i.authenticate=function(e){!e.$valid&&e.$error.required||a.setCredentials(i.username,i.password).then(function(e){t.hide()},function(t){e.password.$setValidity("credentials",!1)})},i.cancel=function(){t.cancel()}}o.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 y(e){i.debug("subscribeToFolder "+e.owner+e.name),d.$subscribe(e.owner,e.name).then(function(e){r.show(r.simple().content(l("Successfully subscribed to calendar")).position("top right").hideDelay(3e3))})}var v=this;v.activeUser=s.activeUser,v.service=d,v.newCalendar=f,v.addWebCalendar=g,v.subscribeToFolder=y,v.filter={name:""},v.sortableMode=!1,v.toggleSortableMode=p,v.resetSort=m,v.sortableCalendars={scrollableContainer:"#sidenav-content",containment:"md-list",orderChanged:h,accept:u},this.$onInit=function(){v.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,r,o;a=_.intersectionBy(t,n,"id"),r=_.map(_.filter(a,function(e){var t=_.find(n,{id:e.id});return!_.isEqual(e,t)}),"id"),o=d.$q.when(),r.length>0&&(i.debug(r.join(", ")+" changed"),o=d.saveFoldersActivation(r)),(r.length>0||a.length!=t.length||a.length!=n.length)&&o.then(function(){e.$emit("calendars:list")})},!0)}}e.$inject=["$rootScope","$scope","$window","$mdDialog","$log","$mdToast","Dialog","sgSettings","Preferences","Calendar"],angular.module("SOGo.SchedulerUI").controller("CalendarsController",e)}(),function(){"use strict";function e(e,t,n,a,i,r,o,s){function c(){t.hide()}function d(){return E.component&&E.component.priority&&E.component.priority<5}function u(e){return i.$filterAll(e)}function h(e){m(e,_.map(E.component.attendees,function(e){return e.name+" <"+e.email+">"}))}function p(e,t,n){m(e,[t+" <"+n+">"])}function m(e,n){o.$findAll().then(function(a){var i=_.find(a,function(e){if(0===e.id)return e});i.$getMailboxes().then(function(a){i.$newMessage().then(function(a){angular.extend(a.editable,{to:n,subject:E.component.summary}),t.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"../Mail/UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:i,stateMessage:a}})})})}),e.preventDefault(),e.stopPropagation()}function f(){var e="vevent"==E.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:E.component}})})}function g(){(w=n.$get(E.component.pid).$getComponent(E.component.id)).$futureComponentData.then(function(){E.component=w,f()})}function y(n){(n||E.component).$reply().then(function(){e.$emit("calendars:list"),r.getAlarms(),t.hide()})}function v(){(w=n.$get(E.component.pid).$getComponent(E.component.id)).$futureComponentData.then(function(){w.reply=E.component.reply,w.delegatedTo=E.component.delegatedTo,w.$hasAlarm=E.component.$hasAlarm,w.alarm=E.component.alarm,y(w)})}function $(){E.component.remove(!0).then(function(){e.$emit("calendars:list"),t.hide()})}function C(){E.component.remove().then(function(){e.$emit("calendars:list"),t.hide()})}function b(e){n.$$resource.post(E.component.pid+"/"+E.component.id,"raw").then(function(n){function a(e,t,n){e.data=n,e.close=function(){t.hide()}}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 k(n){E.component.copyTo(n).then(function(){t.hide(),e.$emit("calendars:list")})}function D(n){E.component.moveTo(n).then(function(){t.hide(),e.$emit("calendars:list")})}var w,E=this;E.calendarService=n,E.service=a,E.component=s,E.close=c,E.highPriority=d,E.cardFilter=u,E.newMessageWithAllRecipients=h,E.newMessageWithRecipient=p,E.edit=f,E.editAllOccurrences=g,E.reply=y,E.replyAllOccurrences=v,E.deleteOccurrence=$,E.deleteAllOccurrences=C,E.toggleRawSource=b,E.copySelectedComponent=k,E.moveSelectedComponent=D,E.organizer=[s.organizer]}function t(e,t,n,a,i,r,o,s,c,d,u,h,p,m){function f(){var e=B.component.addAttachUrl("");r("attachUrl_"+e)}function g(){B.showRecurrenceEditor=!B.showRecurrenceEditor,B.component.$hasCustomRepeat=B.showRecurrenceEditor}function y(){B.showAttendeesEditor=!B.showAttendeesEditor}function v(){return B.component&&"monthly"==B.component.repeat.frequency&&"bymonthday"==B.component.repeat.month.type}function $(){B.component.attendees&&B.component.attendees.length>0&&B.component.initOrganizer(c.$get(B.component.destinationCalendar))}function C(e){return u.$filterAll(e),u.$cards}function b(e){var t=!B.component.attendees||0===B.component.attendees.length,n=c.$get(B.component.destinationCalendar),a=t?{organizerCalendar:n}:{};angular.isString(e)?e.isValidEmail()&&(B.component.addAttendee(new h({emails:[{value:e}]}),a),B.showAttendeesEditor|=t,B.searchText=""):(B.component.addAttendee(e,a),B.showAttendeesEditor|=t)}function k(e,t){B.component.deleteAttendee(e),0===B.component.attendees.length&&(B.showAttendeesEditor=!1),t.$setDirty()}function D(){if(B.component&&B.component.priority)return B.component.priority>5?l("low"):B.component.priority>4?l("normal"):l("high")}function w(t,n){t.$valid&&B.component.$save(n).then(function(t){e.$emit("calendars:list"),p.getAlarms(),i.hide()},function(e){e.status==s.ConflictHTTPErrorCode&&_.isObject(e.data.message)?B.attendeeConflictError=e.data.message:T(t)})}function E(e){B.component.$reset(),e.$setPristine()}function S(e){E(e),B.component.isNew&&(B.component=null),i.cancel()}function T(e){B.attendeeConflictError=!1,e.$setPristine(),e.$setDirty()}function A(){var e=[];return B.component.start&&B.component.end&&(e=B.component.start.daysUpTo(B.component.end)),_.map(e,function(e){return{stringWithSeparator:e.stringWithSeparator(),getDayString:e.getDayString()}})}function O(){B.component.$addStartDate(),F=new Date(B.component.start.getTime())}function x(){B.component.$addDueDate(),q=new Date(B.component.due.getTime())}function U(){if(B.component.start){0!==F.valueOf()-B.component.start.valueOf()&&(F=new Date(B.component.start.getTime()),"appointment"===B.component.type&&(B.component.end=new Date(B.component.start.getTime()),B.component.end.addMinutes(B.component.delta),N=new Date(B.component.end.getTime())),H())}}function I(){if(B.component.end){var e=N.valueOf()-B.component.end.valueOf();0!==e&&((e=B.component.start.minutesTo(B.component.end))<0?B.component.end=new Date(N.getTime()):(B.component.delta=e,N=new Date(B.component.end.getTime())),H())}}function M(){q=new Date(B.component.due.getTime())}function H(){B.attendeesEditor.days=A(),B.component.updateFreeBusy()}var F,N,q,B=this;B.service=c,B.component=m,B.categories={},B.showRecurrenceEditor=B.component.$hasCustomRepeat,B.toggleRecurrenceEditor=g,B.recurrenceMonthDaysAreRequired=v,B.showAttendeesEditor=B.component.attendees&&B.component.attendees.length,B.toggleAttendeesEditor=y,B.changeCalendar=$,B.cardFilter=C,B.addAttendee=b,B.removeAttendee=k,B.addAttachUrl=f,B.priorityLevel=D,B.reset=E,B.cancel=S,B.edit=T,B.save=w,B.attendeeConflictError=!1,B.attendeesEditor={days:A(),hours:function(){for(var e=[],t=0;t<=23;t++)e.push(t.toString());return e}()},B.addStartDate=O,B.addDueDate=x,B.adjustStartTime=U,B.adjustEndTime=I,B.adjustDueTime=M,B.component.start&&(F=new Date(B.component.start.getTime())),B.component.end&&(N=new Date(B.component.end.getTime())),B.component.due&&(q=new Date(B.component.due.getTime()))}e.$inject=["$rootScope","$mdDialog","Calendar","Component","AddressBook","Alarm","Account","stateComponent"],t.$inject=["$rootScope","$scope","$log","$timeout","$mdDialog","sgFocus","User","CalendarSettings","Calendar","Component","AddressBook","Card","Alarm","stateComponent"],angular.module("SOGo.SchedulerUI").controller("ComponentController",e).controller("ComponentEditorController",t)}(),function(){"use strict";function e(){return{restrict:"E",scope:{day:"@sgDay",dayNumber:"@sgDayNumber",dayString:"@sgDayString",calendar:"@sgCalendar"},controller:t}}function t(e,t){this.day=e.day,this.dayNumber=e.dayNumber,this.dayString=e.dayString,this.calendarData=function(){var n,a,i;return e.calendar?(n=e.calendar,i=_.filter(t.$findAll(),{active:1}),a=_.findIndex(i,function(e){return e.id==n}),{pid:n,index:a}):null}}t.$inject=["$scope","Calendar"],angular.module("SOGo.SchedulerUI").directive("sgCalendarDay",e)}(),function(){"use strict";function e(e){function t(e,t){var n=_.has(t,"sgCalendarGhost")?"":"::";return['
",'
','
",'
',' {{'+n+"block.component.c_priority}}"," {{ "+n+"block.component.summary }}",' ',' ',' ',' ',' '," ",'
'," place {{"+n+"block.component.c_location}}","
","
","
",'
{{ block.startHour }}
','
{{ block.endHour }}
',"
"].join("")}function n(e,t,n){var a,i,r;_.has(n,"sgCalendarGhost")||(a=100/e.block.siblings,i=e.block.position*a,r=100-(e.block.position+1)*a,a<100&&(i>0&&(i-=2),r>0&&(r-=2)),0===i&&(i=2),0===r&&(r=2),t.css("left",i+"%"),t.css("right",r+"%"),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")))}return{restrict:"E",scope:{block:"=sgBlock",clickBlock:"&sgClick"},replace:!0,template:t,link:n}}e.$inject=["CalendarSettings"],angular.module("SOGo.SchedulerUI").directive("sgCalendarDayBlock",e)}(),function(){"use strict";function e(){return{restrict:"E",scope:{blocks:"=sgBlocks",day:"@sgDay",clickBlock:"&sgClick"},template:["'].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCalendarDayTable",e)}(),function(){"use strict";function e(e,t,n,a,i){function r(t,r,o,s){function l(){var e,n,a;t.block=i.$ghost,(n=f.calendarData())&&(y=n.index,e=n.pid,v=t.block.pointerHandler.originalCalendar.index),e||(e=t.block.component.pid),(a=t.block.component.blocks[0].userState)&&r.addClass("sg-event--"+a),r.addClass("bg-folder"+e)}function c(){_.forEachRight(m.classList,function(e){/^bg-folder/.test(e)&&r.removeClass(e)}),r.addClass("ng-hide")}function d(){var e,i,o,s,l,c,d,u;if(e=!1,a.$view&&a.$view.type==g.type){if(i="multiday-allday"===g.type,o=t.block.component.c_isallday,s=t.block.pointerHandler.currentEventCoordinates.dayNumber,l=t.block.pointerHandler.currentEventCoordinates.start,d=t.block.pointerHandler.currentEventCoordinates.duration,u=n.EventDragDayLength-l,angular.isUndefined(d))return;for((c=d)>u&&(c=u),s>-1&&(y<0&&s==f.dayNumber||s==y&&(v==y||!t.block.component.isException))&&(e=!0,i||(o||(t.block.startHour=h(l)),a.$view.quarterHeight?(r.css("top",l*a.$view.quarterHeight+"px"),r.css("height",c*a.$view.quarterHeight+"px")):r.css("top",a.$view.topOffset+"px")),r.removeClass("fg-folder"+t.block.component.pid),r.removeClass("sg-event--ghost--last"),r.addClass("sg-event--ghost--first"),t.block.isFirst=!0),d-=c,s++;!e&&d&&s<=f.dayNumber;)(c=d)>n.EventDragDayLength&&(c=n.EventDragDayLength),s>-1&&s==f.dayNumber&&(e=!0,i||(r.css("top",a.$view.topOffset+"px"),a.$view.quarterHeight&&r.css("height",c*a.$view.quarterHeight+"px")),r.removeClass("sg-event--ghost--first"),r.removeClass("sg-event--ghost--last"),r.addClass("fg-folder"+t.block.component.pid)),d-=c,s++,l=0;d||(i?r.addClass("sg-event--ghost--last"):o||(t.block.endHour=p(l,c)))}e?r.removeClass("ng-hide"):r.addClass("ng-hide")}function u(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}function h(e){return u(e)}function p(e,t){return u((e+t)%n.EventDragDayLength)}var m,f,g,y,v;m=r[0],f=s[0],g=s[1],y=-1,r.addClass("sg-event--ghost md-whiteframe-3dp ng-hide");var $=e.$on("calendar:dragstart",l),C=e.$on("calendar:drag",d),b=e.$on("calendar:dragend",c);t.$on("$destroy",function(){$(),C(),b()})}return{restrict:"A",require:["^sgCalendarDay","^sgCalendarScrollView"],link:r}}e.$inject=["$rootScope","$timeout","CalendarSettings","Calendar","Component"],angular.module("SOGo.SchedulerUI").directive("sgCalendarGhost",e)}(),function(){function e(){return{restrict:"C",scope:{},bindToController:{calendar:"=sgCalendar"},template:['','

',' ',' ',' ',"

",'',' ',"",''," drag_handle","",'more_vert'].join(""),controller:"sgCalendarListItemController",controllerAs:"$ctrl"}}function t(e,t,n,a,i,r,o,s,c){var d=this;this.$onInit=function(){this.editMode=!1},this.$postLink=function(){this.clickableElement=t.find("p")[0],this.nameElements=this.clickableElement.getElementsByClassName("sg-calendar-name"),this.inputContainer=t.find("md-input-container")[0],this.inputElement=t.find("input")[0],this.moreOptionsButton=_.last(t.find("md-icon")),this.updateCalendarName()},this.updateCalendarName=function(){_.forEach(this.nameElements,function(e){e.innerHTML=d.calendar.name})},this.editFolder=function(e){this.editMode=!0,this.inputElement.value=this.calendar.name,this.clickableElement.classList.add("ng-hide"),this.inputContainer.classList.remove("ng-hide"),this.inputElement.focus(),this.inputElement.select(),e&&(e.stopPropagation(),e.preventDefault())},this.saveFolder=function(e){this.inputElement.disabled||(this.calendar.name=this.inputElement.value,this.inputElement.disabled=!0,this.calendar.$rename().then(function(e){d.editMode=!1,d.inputContainer.classList.add("ng-hide"),d.clickableElement.classList.remove("ng-hide"),d.updateCalendarName()}).finally(function(){d.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){s.alert(l('An error occured while deleting the calendar "%{0}".',d.calendar.name),l(e.error))}):s.confirm(l("Warning"),l('Are you sure you want to delete the calendar "%{0}"?',this.calendar.name),{ok:l("Delete")}).then(function(){d.calendar.$delete().catch(function(e,t){s.alert(l('An error occured while deleting the calendar "%{0}".',d.calendar.name),l(e.error))})})},this.showMenu=function(e){function t(t,a,i,r){var o=this;this.showOnly=function(){_.forEach(c.$findAll(),function(e){o.calendar.id==e.id?e.active=1:e.active=0})},this.showAll=function(){_.forEach(c.$findAll(),function(e){e.active=1})},this.showProperties=function(){function e(e,t,n){function a(){r.calendar.$save(),n.init(r.calendar.$omit()),t.hide()}function i(){t.cancel()}var r=this;r.calendar=new c(n.$omit()),r.saveProperties=a,r.close=i,e.$watch(function(){return r.calendar.color},function(){n.color=r.calendar.color})}var t=this.calendar.color;a.show({templateUrl:this.calendar.id+"/properties",controller:e,controllerAs:"properties",clickOutsideToClose:!0,escapeToClose:!0,locals:{srcCalendar:this.calendar}}).catch(function(){o.calendar.color=t}),e.$inject=["$scope","$mdDialog","srcCalendar"]},this.showLinks=function(){function e(e,t){function n(){e.hide()}var a=this;a.calendar=t,a.close=n}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"]},this.importCalendar=function(){function t(e,t,a){function r(e){var t=0===e.type.indexOf("text")||/\.(ics)$/.test(e.name);return t||n.show({template:["",'
',' error_outline'," "+l("Select an iCalendar file (.ics).")+"","
","
"].join(""),position:"top right",hideDelay:3e3}),t}var o=this;o.uploader=new i({url:ApplicationBaseURL+[a.id,"import"].join("/"),autoUpload:!0,queueLimit:1,filters:[{name:r,fn:r}],onSuccessItem:function(e,a,i,r){var o;t.hide(),0===a.imported?o=l("No event was imported."):(o=l("A total of %{0} events were imported in the calendar.",a.imported),$rootScope.$emit("calendars:list")),n.show(n.simple().content(o).position("top right").hideDelay(3e3))},onErrorItem:function(e,t,a,i){n.show({template:["",'
',' error_outline'," "+l("An error occurred while importing calendar.")+"","
","
"].join(""),position:"top right",hideDelay:3e3})}}),o.close=function(){t.hide()}}a.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:"UIxCalendarImportDialog",controller:t,controllerAs:"$CalendarImportDialogController",locals:{folder:this.calendar}}),t.$inject=["scope","$mdDialog","folder"]},this.share=function(){this.calendar.$acl.$users().then(function(){a.show({templateUrl:o.calendar.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:o.calendar.$acl.users,User:r,folder:o.calendar}})})}}var i=a.newPanelPosition().relativeTo(this.moreOptionsButton).addPanelPosition(a.xPosition.ALIGN_START,a.yPosition.ALIGN_TOPS),r=a.newPanelAnimation().openFrom(this.moreOptionsButton).duration(100).withAnimation(a.animation.FADE),o={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:t,controllerAs:"$menuCtrl",position:i,animation:r,targetEvent:e,templateUrl:"UIxCalendarMenu",trapFocus:!0,clickOutsideToClose:!0,escapeToClose:!0,focusOnOpen:!0};a.open(o).then(function(e){e.panelEl.one("click",function(){e.close()})}),t.$inject=["mdPanelRef","$mdDialog","FileUploader","User"]}}t.$inject=["$scope","$element","$mdToast","$mdPanel","$mdMedia","$mdSidenav","sgConstant","Dialog","Calendar"],angular.module("SOGo.SchedulerUI").controller("sgCalendarListItemController",t).directive("sgCalendarListItem",e)}(),function(){"use strict";function e(){return{restrict:"E",scope:{blocks:"=sgBlocks",day:"@sgDay",clickBlock:"&sgClick"},template:["'].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCalendarMonthDay",e)}(),function(){"use strict";function e(){function e(e,t){var n=_.has(t,"sgCalendarGhost")?"":"::";return['
','
",' {{ '+n+"block.component.startHour }}",' {{'+n+"block.component.c_priority}}"," {{ "+n+"block.component.summary }}",' ',' ',' ',' ',' '," ","
"].join("")}function t(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")))}return{restrict:"E",scope:{block:"=sgBlock",clickBlock:"&sgClick"},replace:!0,template:e,link:t}}angular.module("SOGo.SchedulerUI").directive("sgCalendarMonthEvent",e)}(),function(){"use strict";function e(e,n,a,i,r,o,s,l,c){return{restrict:"A",scope:{type:"@sgCalendarScrollView"},controller:t,link:function(t,a,i,o){function d(){if(h=new u(a,p),"monthly"!=p){var e,t,n;c.defaults.SOGoDayStartTime&&(e=c.defaults.SOGoDayStartTime.split(":"),t=document.getElementById("hour"+parseInt(e[0])),n=parseInt(e[1])*h.quarterHeight,h.element.scrollTop=t.offsetTop+n)}o.quarterHeight=h.quarterHeight}function u(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)}var h,p,m=!1;h=null,p=t.type,m="multicolumndayview"==a.attr("sg-view"),o.isMultiColumn=m,r(d),t.$on("$destroy",function(){h&&h.$destroy()}),u.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,i,r,o,s;return n=t=a=i=0,(r=this.element.getElementsByClassName("day")).length>0&&(n=(o=r[0].getBoundingClientRect()).height,t=o.width,a=o.left-e,(s=r[0].getElementsByClassName("sg-calendar-tile-header")).length>0&&(i=s[0].clientHeight)),{height:n,width:t,offset:{left:a,top:i}}},getDayNumbers:function(){var e;return e=this.element.getElementsByTagName("sg-calendar-day"),_.map(e,function(e,t){return m?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,i,r;e=l.$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<(i=-this.element.scrollTop)&&(a=i),this.element.scrollTop+=a):(r=(a=t.y+this.scrollStep)-this.element.clientHeight)>0&&(this.element.scrollTop+=r)))}}}}}function t(e){this.type=e.type}e.$inject=["$rootScope","$window","$document","$q","$timeout","$mdGesture","Calendar","Component","Preferences"],t.$inject=["$scope"],angular.module("SOGo.SchedulerUI").directive("sgCalendarScrollView",e)}(),function(){"use strict";function e(){return{restrict:"E",require:"ngModel",scope:{ngModel:"="},replace:!0,template:['"].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCategoryStylesheet",e)}(),function(){"use strict";function e(e,t,n,a,i,r,o){function s(s,c,d,u){function h(e){var t,n,a,i;e.stopPropagation(),e.target.scrollHeight>e.target.clientHeight+1&&(a=e.target.getBoundingClientRect(),i=a.left+a.width-18,e.pageX>i)||(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 v(t)).initFromEvent(e),o.$ghost.pointerHandler=n,angular.element(document).one("mouseup",f),angular.element(document).on("mousemove",m))}function p(t){var r,d,h,p,m,f,g,y;h=c.hasClass("clickableHourCell"),p="SG-CALENDAR-MONTH-DAY"==c[0].parentNode.tagName||c.hasClass("clickableDayCell"),y=u.calendarData(),s.block&&s.block.component?r=s.block:(m=u.dayString.parseDate(a.$mdDateLocaleProvider,"%Y-%m-%e"),f={type:"appointment",pid:y?y.pid:i.$defaultCalendar(),summary:l("New Event"),startDate:m,isAllDay:h?0:1},(r={component:new o(f),dayNumber:u.dayNumber,length:0}).component.blocks=[r]),d="multiday",p?d="monthly":r.component.c_isallday&&(d="multiday-allday"),_.forEach(r.component.blocks,function(e){e.dragging=!0}),(g=o.$ghost.pointerHandler).prepareWithEventType(d),g.initFromBlock(r),y&&g.initFromCalendar(y),o.$ghost.component=r.component,n.debug("emit calendar:dragstart "+d),e.$emit("calendar:dragstart")}function m(e){var n=o.$ghost.pointerHandler;t(function(){n.updateFromEvent(e)})}function f(t){var n,a;n=s.block,a=o.$ghost.pointerHandler,angular.element(document).off("mousemove",m),a.dragHasStarted&&(e.$emit("calendar:dragend"),a.dragHasStarted=!1),n&&n.component&&_.forEach(n.component.blocks,function(e){e.dragging=!1})}function g(){}function y(e){this.setEventType(e)}function v(e){this.dragMode=e}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,i,r,o,l,d,u;s.block.length<3||(e=s.block.component,t=s.block.dayIndex,a=0===(n=_.findIndex(e.blocks,["dayIndex",t])),i=n===e.blocks.length-1,(r=angular.element('
')).addClass("bdr-folder"+e.pid),e.c_isallday||"SG-CALENDAR-MONTH-DAY"===c[0].parentNode.tagName?(a&&(o=angular.element('
').append(r),c.append(o)),i&&(l=angular.element('
').append(r.clone()),c.append(l))):(a&&(d=angular.element('
').append(r),c.append(d)),i&&(u=angular.element('
').append(r.clone()),c.append(u))))}()}c.on("mousedown",h),s.$on("$destroy",function(){c.off("mousedown",h),c.off("mousemove",m)}),g.prototype={x:-1,y:-1,getDelta:function(e){var t=new g;return t.x=this.x-e.x,t.y=this.y-e.y,i.$view&&(t.days=i.$view.dayNumbers[this.x]-i.$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 g;return e.x=this.x,e.y=this.y,e}},y.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*r.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*r.EventDragDayLength}))},initFromCalendar:function(e){this.dayNumber=e},getDelta:function(e){var t=new y;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)%r.EventDragDayLength;return this._quartersToHM(e)},clone:function(){var e=new y;return e.dayNumber=this.dayNumber,e.start=this.start,e.duration=this.duration,e}},v.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 y(this.eventType),this.originalEventCoordinates=new y(this.eventType),this.originalEventCoordinates.initFromBlock(e)},initFromEvent:function(e){this.currentCoordinates=new g,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(e){if(this.currentCoordinates.x=e.pageX,this.currentCoordinates.y=e.pageY,this.dragHasStarted&&i.$view){var t=this.getEventViewCoordinates(i.$view);this.originalViewCoordinates||(this.originalViewCoordinates=this.getEventViewCoordinates(i.$view,this.originalCoordinates),o.$ghost.component.isNew&&(this.setTimeFromQuarters(o.$ghost.component.start,this.originalViewCoordinates.y),n.debug("new event start date "+o.$ghost.component.start))),this.currentViewCoordinates&&t&&t.x==this.currentViewCoordinates.x&&t.y==this.currentViewCoordinates.y||(this.currentViewCoordinates=t,this.originalViewCoordinates&&(t||(this.currentViewCoordinates=this.originalViewCoordinates.clone()),this.updateEventCoordinates()))}else this.originalCoordinates&&this.currentCoordinates&&!this.dragHasStarted&&this.getDistance()>3&&(this.dragHasStarted=!0,p(e))},updateEventCoordinates:function(){var t,a=this.currentViewCoordinates.getDelta(this.originalViewCoordinates),o=a.days*r.EventDragDayLength+a.y;n.debug("quarters delta "+o),angular.isUndefined(this.originalEventCoordinates.start)?(this.originalEventCoordinates.dayNumber=i.$view.dayNumbers[this.originalViewCoordinates.x],this.originalEventCoordinates.start=this.originalViewCoordinates.y):this.originalEventCoordinates.dayNumber<0&&(this.originalEventCoordinates.dayNumber=i.$view.dayNumbers[s.block.component.blocks[0].dayIndex]),this.currentEventCoordinates.dayNumber=this.originalEventCoordinates.dayNumber,"move-event"==this.dragMode?(this.currentEventCoordinates.start=this.originalEventCoordinates.start+o,this.currentEventCoordinates.duration=this.originalEventCoordinates.duration):"change-start"==this.dragMode?(t=this.originalEventCoordinates.duration-o)>0?(this.currentEventCoordinates.start=this.originalEventCoordinates.start+o,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+o)>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 l;this.currentEventCoordinates.start<0?(l=Math.ceil(-this.currentEventCoordinates.start/r.EventDragDayLength),this.currentEventCoordinates.start+=l*r.EventDragDayLength,this.currentEventCoordinates.dayNumber-=l):this.currentEventCoordinates.start>=r.EventDragDayLength&&(l=Math.floor(this.currentEventCoordinates.start/r.EventDragDayLength),this.currentEventCoordinates.start-=l*r.EventDragDayLength,this.currentEventCoordinates.dayNumber+=l),n.debug("event coordinates "+JSON.stringify(this.currentEventCoordinates)),e.$emit("calendar:drag")},getContainerBasedCoordinates:function(e,t){var n=(t||this.currentCoordinates).getDelta(e.coordinates),a=e.element;return(n.xa.clientWidth||n.y<0||n.y>a.clientHeight)&&(n=null),n},prepareWithEventType:function(e){var t={multiday:this.getEventMultiDayViewCoordinates,"multiday-allday":this.getEventMultiDayAllDayViewCoordinates,monthly:this.getEventMonthlyViewCoordinates,unknown:null}[e];this.eventType=e,this.getEventViewCoordinates=t},getEventMultiDayViewCoordinates:function(e,t){var n=this.getEventMultiDayAllDayViewCoordinates(e,t);if(n){var a=e.quarterHeight,i=this.getContainerBasedCoordinates(e,t);i.y+=e.element.scrollTop,n.y=Math.floor((i.y-r.EventDragHorizontalOffset)/a);var o=r.EventDragDayLength-1;n.y<0?n.y=0:n.y>o&&(n.y=o)}return n},getEventMultiDayAllDayViewCoordinates:function(e,t){var n,a=this.getContainerBasedCoordinates(e,t);if(a){n=new g;var r=e.dayWidth,o=e.daysOffset;n.x=Math.floor((a.x-o)/r);var s=0,l=i.$view.maxX;if("move-event"!=this.dragMode){var c=u.calendarData();c&&(s=l=c.index)}n.xl&&(n.x=l),n.y=0}else n=null;return n},getEventMonthlyViewCoordinates:function(e,t){var n,a=this.getContainerBasedCoordinates(e,t);if(a){n=new g;var i=e.maxX,r=e.dayWidth,o=e.daysOffset,s=e.dayHeight,l=Math.floor((a.y-0)/s);l<0&&(l=0),n.x=Math.floor((a.x-o)/r),n.x<0?n.x=0:n.x>i&&(n.x=i),n.x+=(i+1)*l,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)}}}return{restrict:"CA",require:"^sgCalendarDay",link:s}}e.$inject=["$rootScope","$timeout","$log","Preferences","Calendar","CalendarSettings","Component"],angular.module("SOGo.SchedulerUI").directive("sgDraggableCalendarBlock",e)}(),function(){"use strict";function e(){function e(e,t,n,a){function i(){return t.find("sg-calendar-day")}function r(){return a.quarterHeight}var o=e.$watch(r,function(t){if(t){o(),e.quarterHeight=t;var n=e.$watch(i,function(t){t.length&&(n(),e.days=t,e.updateLine())})}})}return{restrict:"C",require:"^^sgCalendarScrollView",link:e,controller:t}}function t(e,t,n){function a(t){var a=new Date,s=a.getDayString(),l=a.getHours(),c=4*e.quarterHeight,d=a.getMinutes(),u=e.quarterHeight/15,h=parseInt(l*c+d*u-1);(t||s!=e.nowDay)&&(e.lineElement&&e.lineElement.remove(),e.lineElement=i(s,e.days),e.nowDay=s),e.lineElement&&(e.lineElement.css("top",h+"px"),r=n(angular.bind(o,e.updateLine),6e4))}function i(e,n){var a=angular.element("");return s.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)}),a}var r,o=this,s=t.controller("sgCalendarScrollView");e.nowDay=null,e.lineElement=null,e.updateLine=a,e.$on("$destroy",function(){r&&n.cancel(r)})}t.$inject=["$scope","$element","$timeout"],angular.module("SOGo.SchedulerUI").directive("sgNowLine",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 cf8b5c852..483886e01 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/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","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","$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","interval","monthdays","months","until","$hasCustomRepeat","hasCustomRepeat","classification","units","M","H","D","W","match","exec","SOGoCalendarDefaultReminder","$hasAlarm","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","$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","$scope","$state","$stateParams","sgHotkeys","stateEventsBlocks","_registerHotkeys","createHotkey","description","callback","changeDate","args","changeView","_goToPeriod","registerHotkey","$event","direction","vm","selectedDate","_formatDate","setHours","$dateFormat","replace","toggleAllDays","expandedAllDays","updateView","asDate","newDate","element","currentTarget","attr","go","deregisterCalendarsList","hotkeys","$onInit","$on","deregisterHotkey","$inject","controller","CalendarListController","$mdDialog","focus","Dialog","CalendarSettings","Alarm","searchMode","newComponent","selectComponentType","reload","unselectComponents","mode","multiple","selectAll","toggleComponentSelection","preventDefault","stopPropagation","confirmDeleteSelectedComponents","confirm","ok","openEvent","openComponent","openTask","viewable","templateUrl","show","parent","document","body","targetEvent","clickOutsideToClose","escapeToClose","controllerAs","locals","stateComponent","baseComponent","updateComponentFromGhost","RecurrentComponentDialogController","updateThisOccurrence","hide","onComponentAdjustError","updateAllOccurrences","message","AttendeeConflictDialogController","conflictError","ignoreConflicts","coordinates","calendarNumber","activeCalendars","currentEventCoordinates","summary","isAllDay","duration","finally","getDelta","originalEventCoordinates","originalCalendar","isException","getAlarms","template","filteredBy","field","sortedBy","cancelSearch","selectedList","SelectedList","CalendarsController","$window","$mdToast","FileUploader","stateCalendars","_sortableAccept","sourceItemHandleScope","destSortableScope","destItemScope","sortableScope","_sortableEnd","toggleSortableMode","sortableMode","resetSort","newCalendar","ev","prompt","UserLogin","addWebCalendar","WebCalendarAuthDialogController","scope","hostname","title","formatted","authenticate","form","$valid","required","reason","$setValidity","inputType","confirmDelete","folder","catch","alert","importCalendar","CalendarImportDialogController","filterByExtension","item","isTextFile","test","position","hideDelay","uploader","ApplicationBaseURL","autoUpload","queueLimit","filters","fn","onSuccessItem","headers","msg","imported","simple","content","onErrorItem","close","showOnly","showAll","showLinks","LinksDialogController","showProperties","PropertiesDialogController","srcCalendar","saveProperties","$watch","editFolder","editMode","revertEditing","renameFolder","share","$users","usersWithACL","users","subscribeToFolder","service","sortableCalendars","scrollableContainer","containment","orderChanged","accept","SOGoCalendarCategories","asCSSIdentifier","pick","newList","oldList","commonList","intersectionBy","oldObject","isEqual","ComponentController","AddressBook","Account","highPriority","priority","cardFilter","$filterAll","newMessageWithAllRecipients","_newMessage","newMessageWithRecipient","recipients","accounts","account","$getMailboxes","mailboxes","$newMessage","editable","to","subject","stateAccount","stateMessage","edit","editAllOccurrences","replyAllOccurrences","deleteOccurrence","deleteAllOccurrences","toggleRawSource","ComponentRawSourceDialogController","copySelectedComponent","moveSelectedComponent","calendarService","ComponentEditorController","toggleRecurrenceEditor","showRecurrenceEditor","toggleAttendeesEditor","showAttendeesEditor","recurrenceMonthDaysAreRequired","changeCalendar","$cards","isValidEmail","searchText","removeAttendee","$setDirty","priorityLevel","attendeeConflictError","reset","$setPristine","getDays","addStartDate","oldStartDate","addDueDate","oldDueDate","adjustStartTime","valueOf","oldEndDate","adjustEndTime","adjustDueTime","attendeesEditor","hours","sgCalendarDay","restrict","dayString","sgCalendarDayController","directive","sgCalendarDayBlock","tElem","tAttrs","p","has","link","iElement","attrs","pc","left","right","siblings","css","c_isallday","addClass","userState","c_isopaque","c_status","clickBlock","sgCalendarDayTable","sgCalendarGhost","ctrls","initGhost","calendarDayCtrl","originalCalendarNumber","hideGhost","forEachRight","domElement","classList","c","removeClass","updateGhost","showGhost","isRelative","durationLeft","maxDuration","scrollViewCtrl","getStartTime","quarterHeight","topOffset","getEndTime","quartersToHM","quarters","minutes","mins","floor","deregisterDragStart","deregisterDrag","deregisterDragEnd","require","sgCalendarMonthDay","sgCalendarMonthEvent","sgCalendarScrollView","$document","$mdGesture","sgCalendarScrollViewController","initView","sgScrollView","hourCell","quartersOffset","SOGoDayStartTime","getElementById","scrollTop","offsetTop","$element","getQuarterHeight","scrollStep","getDayNumbers","maxX","getMaxColumns","onDragStart","deregisterDragStop","onDragEnd","bindedUpdateCoordinates","updateCoordinates","bindedUpdateFromPointerHandler","updateFromPointerHandler","on","isMultiColumn","$destroy","off","hour0","hour23","height","getDayDimensions","viewLeft","width","leftOffset","nodes","domRect","tileHeader","getElementsByClassName","getBoundingClientRect","clientHeight","offset","top","getElementsByTagName","el","attributes","mdGridList","max","dayDimensions","x","y","dayHeight","dayWidth","daysOffset","pointerCoordinates","scrollY","minY","getContainerBasedCoordinates","lastScroll","sgCategoryStylesheet","ngModel","sgDraggableCalendarBlock","onDragDetect","dragMode","rect","scrollableZone","target","scrollHeight","pageX","className","SOGoEventDragPointerHandler","initFromEvent","one","onDrag","dragStart","eventType","isHourCell","isMonthly","newData","hasClass","parentNode","tagName","parseDate","b","dragging","prepareWithEventType","initFromBlock","initFromCalendar","updateFromEvent","pointer","dragHasStarted","SOGoCoordinates","SOGoEventDragEventCoordinates","setEventType","blockIndex","isFirstBlock","isLastBlock","dragGrip","leftGrip","rightGrip","topGrip","bottomGrip","append","clone","otherCoordinates","getDistance","sqrt","weekDay","prevDayNumber","sumBy","currentDayNumber","_quartersToHM","originalCoordinates","currentCoordinates","originalViewCoordinates","currentViewCoordinates","getEventViewCoordinates","pageY","newEventCoordinates","setTimeFromQuarters","updateEventCoordinates","newDuration","deltaQuarters","deltaDays","ceil","clientWidth","method","multiday","getEventMultiDayViewCoordinates","multiday-allday","getEventMultiDayAllDayViewCoordinates","monthly","getEventMonthlyViewCoordinates","unknown","pxCoordinates","maxY","minX","daysY","sgNowLine","iAttr","sgCalendarScrollViewCtrl","_getDays","_getView","_unwatchView","_unwatchDays","updateLine","sgNowLineController","_updateLine","force","nowDay","hourHeight","minuteHeight","lineElement","_addLine","updater","$lineElement","dayElement","eq"],"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/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","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","$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","interval","monthdays","months","until","$hasCustomRepeat","hasCustomRepeat","classification","units","M","H","D","W","match","exec","SOGoCalendarDefaultReminder","$hasAlarm","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","$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","$scope","$state","$stateParams","sgHotkeys","stateEventsBlocks","_registerHotkeys","createHotkey","description","callback","changeDate","args","changeView","_goToPeriod","registerHotkey","$event","direction","vm","selectedDate","_formatDate","setHours","$dateFormat","replace","toggleAllDays","expandedAllDays","updateView","asDate","newDate","element","currentTarget","attr","go","deregisterCalendarsList","hotkeys","$onInit","$on","deregisterHotkey","$inject","controller","CalendarListController","$mdDialog","focus","Dialog","CalendarSettings","Alarm","searchMode","newComponent","selectComponentType","reload","unselectComponents","mode","multiple","selectAll","toggleComponentSelection","preventDefault","stopPropagation","confirmDeleteSelectedComponents","confirm","ok","openEvent","openComponent","openTask","viewable","templateUrl","show","parent","document","body","targetEvent","clickOutsideToClose","escapeToClose","controllerAs","locals","stateComponent","baseComponent","updateComponentFromGhost","RecurrentComponentDialogController","updateThisOccurrence","hide","onComponentAdjustError","updateAllOccurrences","message","AttendeeConflictDialogController","conflictError","ignoreConflicts","coordinates","calendarNumber","activeCalendars","currentEventCoordinates","summary","isAllDay","duration","finally","getDelta","originalEventCoordinates","originalCalendar","isException","getAlarms","template","filteredBy","field","sortedBy","cancelSearch","selectedList","SelectedList","CalendarsController","$window","$mdToast","_sortableAccept","sourceItemHandleScope","destSortableScope","destItemScope","sortableScope","_sortableEnd","toggleSortableMode","sortableMode","resetSort","newCalendar","ev","prompt","UserLogin","addWebCalendar","WebCalendarAuthDialogController","scope","hostname","title","formatted","authenticate","form","$valid","required","reason","$setValidity","inputType","subscribeToFolder","simple","content","position","hideDelay","service","sortableCalendars","scrollableContainer","containment","orderChanged","accept","SOGoCalendarCategories","asCSSIdentifier","$watch","pick","newList","oldList","commonList","intersectionBy","oldObject","isEqual","ComponentController","AddressBook","Account","close","highPriority","priority","cardFilter","$filterAll","newMessageWithAllRecipients","_newMessage","newMessageWithRecipient","recipients","accounts","account","$getMailboxes","mailboxes","$newMessage","editable","to","subject","stateAccount","stateMessage","edit","editAllOccurrences","replyAllOccurrences","deleteOccurrence","deleteAllOccurrences","toggleRawSource","ComponentRawSourceDialogController","copySelectedComponent","moveSelectedComponent","calendarService","ComponentEditorController","toggleRecurrenceEditor","showRecurrenceEditor","toggleAttendeesEditor","showAttendeesEditor","recurrenceMonthDaysAreRequired","changeCalendar","$cards","isValidEmail","searchText","removeAttendee","$setDirty","priorityLevel","attendeeConflictError","reset","$setPristine","getDays","addStartDate","oldStartDate","addDueDate","oldDueDate","adjustStartTime","valueOf","oldEndDate","adjustEndTime","adjustDueTime","attendeesEditor","hours","sgCalendarDay","restrict","dayString","sgCalendarDayController","directive","sgCalendarDayBlock","tElem","tAttrs","p","has","link","iElement","attrs","pc","left","right","siblings","css","c_isallday","addClass","userState","c_isopaque","c_status","clickBlock","sgCalendarDayTable","sgCalendarGhost","ctrls","initGhost","calendarDayCtrl","originalCalendarNumber","hideGhost","forEachRight","domElement","classList","c","test","removeClass","updateGhost","showGhost","isRelative","durationLeft","maxDuration","scrollViewCtrl","getStartTime","quarterHeight","topOffset","getEndTime","quartersToHM","quarters","minutes","mins","floor","deregisterDragStart","deregisterDrag","deregisterDragEnd","require","sgCalendarListItem","bindToController","sgCalendarListItemController","$element","$mdPanel","$mdMedia","$mdSidenav","sgConstant","$ctrl","editMode","$postLink","clickableElement","nameElements","getElementsByClassName","inputContainer","inputElement","moreOptionsButton","last","updateCalendarName","innerHTML","editFolder","add","select","saveFolder","disabled","revertEditing","confirmDelete","catch","alert","showMenu","MenuController","mdPanelRef","FileUploader","$menuCtrl","showOnly","showAll","showProperties","PropertiesDialogController","srcCalendar","saveProperties","showLinks","LinksDialogController","importCalendar","CalendarImportDialogController","folder","filterByExtension","item","isTextFile","uploader","ApplicationBaseURL","autoUpload","queueLimit","filters","fn","onSuccessItem","headers","msg","imported","onErrorItem","share","$users","usersWithACL","users","panelPosition","newPanelPosition","relativeTo","addPanelPosition","xPosition","ALIGN_START","yPosition","ALIGN_TOPS","panelAnimation","newPanelAnimation","openFrom","withAnimation","animation","FADE","config","attachTo","itemCtrl","trapFocus","focusOnOpen","open","panelRef","panelEl","one","sgCalendarMonthDay","sgCalendarMonthEvent","sgCalendarScrollView","$document","$mdGesture","sgCalendarScrollViewController","initView","sgScrollView","hourCell","quartersOffset","SOGoDayStartTime","getElementById","scrollTop","offsetTop","getQuarterHeight","scrollStep","getDayNumbers","maxX","getMaxColumns","onDragStart","deregisterDragStop","onDragEnd","bindedUpdateCoordinates","updateCoordinates","bindedUpdateFromPointerHandler","updateFromPointerHandler","on","isMultiColumn","$destroy","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","sgCategoryStylesheet","ngModel","sgDraggableCalendarBlock","onDragDetect","dragMode","rect","scrollableZone","target","scrollHeight","pageX","className","SOGoEventDragPointerHandler","initFromEvent","onDrag","dragStart","eventType","isHourCell","isMonthly","newData","hasClass","parentNode","tagName","parseDate","b","dragging","prepareWithEventType","initFromBlock","initFromCalendar","updateFromEvent","pointer","dragHasStarted","SOGoCoordinates","SOGoEventDragEventCoordinates","setEventType","blockIndex","isFirstBlock","isLastBlock","dragGrip","leftGrip","rightGrip","topGrip","bottomGrip","append","clone","otherCoordinates","getDistance","sqrt","weekDay","prevDayNumber","sumBy","currentDayNumber","_quartersToHM","originalCoordinates","currentCoordinates","originalViewCoordinates","currentViewCoordinates","getEventViewCoordinates","pageY","newEventCoordinates","setTimeFromQuarters","updateEventCoordinates","newDuration","deltaQuarters","deltaDays","ceil","clientWidth","method","multiday","getEventMultiDayViewCoordinates","multiday-allday","getEventMultiDayAllDayViewCoordinates","monthly","getEventMonthlyViewCoordinates","unknown","pxCoordinates","maxY","minX","daysY","sgNowLine","iAttr","sgCalendarScrollViewCtrl","_getDays","_getView","_unwatchView","_unwatchDays","updateLine","sgNowLineController","_updateLine","force","nowDay","hourHeight","minuteHeight","lineElement","_addLine","updater","$lineElement","dayElement","eq"],"mappings":"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","file":"Scheduler.services.js"} \ No newline at end of file