sogo/UI/WebServerResources/js/Mailer.services.js
2015-09-22 11:56:33 -04:00

3 lines
44 KiB
JavaScript

!function(){"use strict";function Account(futureAccountData){"function"!=typeof futureAccountData.then&&(angular.extend(this,futureAccountData),_.each(this.identities,function(identity){identity.fullName?identity.full=identity.fullName+" <"+identity.email+">":identity.full="<"+identity.email+">"}),Account.$log.debug("Account: "+JSON.stringify(futureAccountData,void 0,2)))}Account.$factory=["$q","$timeout","$log","sgSettings","Resource","Mailbox","Message",function($q,$timeout,$log,Settings,Resource,Mailbox,Message){return angular.extend(Account,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL")+"Mail",Settings.activeUser()),$Mailbox:Mailbox,$Message:Message}),Account}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Account",Account.$factory),Account.$findAll=function(data){return data?Account.$unwrapCollection(data):Account.$$resource.fetch("","mailAccounts").then(function(o){return Account.$unwrapCollection(o)})},Account.$unwrapCollection=function(data){var collection=[];return angular.forEach(data,function(o,i){o.id=i,collection[i]=new Account(o)}),collection},Account.prototype.$getMailboxes=function(options){var _this=this;return!this.$mailboxes||options&&options.reload?Account.$Mailbox.$find(this).then(function(data){return _this.$mailboxes=data,_this.$flattenMailboxes({reload:!0}),_this.$mailboxes}):Account.$q.when(this.$mailboxes)},Account.prototype.$flattenMailboxes=function(options){var _this=this,allMailboxes=[],_visit=function(mailboxes){_.each(mailboxes,function(o){allMailboxes.push(o),o.children&&o.children.length>0&&_visit(o.children)})};return!this.$$flattenMailboxes||options&&options.reload?(_visit(this.$mailboxes),_this.$$flattenMailboxes=allMailboxes):allMailboxes=this.$$flattenMailboxes,allMailboxes},Account.prototype.$getMailboxByType=function(type){var mailbox,_find=function(mailboxes){var mailbox=_.find(mailboxes,function(o){return o.type==type});return mailbox||angular.forEach(mailboxes,function(o){!mailbox&&o.children&&o.children.length>0&&(mailbox=_find(o.children))}),mailbox};mailbox=_find(this.$mailboxes),console.debug(mailbox),console.debug(this.specialMailboxes)},Account.prototype.$getMailboxByPath=function(path){var mailbox=null,_find=function(mailboxes){var mailbox=_.find(mailboxes,function(o){return o.path==path});return mailbox||angular.forEach(mailboxes,function(o){!mailbox&&o.children&&o.children.length>0&&(mailbox=_find(o.children))}),mailbox};return mailbox=_find(this.$mailboxes)},Account.prototype.$newMailbox=function(path,name){var _this=this;return Account.$$resource.post(path.toString(),"createFolder",{name:name}).then(function(){_this.$getMailboxes({reload:!0})})},Account.prototype.$newMessage=function(){var _this=this;return Account.$$resource.fetch(this.id.toString(),"compose").then(function(data){Account.$log.debug("New message (compose): "+JSON.stringify(data,void 0,2));var message=new Account.$Message(data.accountId,_this.$getMailboxByPath(data.mailboxPath),data);return message}).then(function(message){return Account.$$resource.fetch(message.$absolutePath({asDraft:!0}),"edit").then(function(data){return Account.$log.debug("New message (edit): "+JSON.stringify(data,void 0,2)),angular.extend(message.editable,data),message})})},Account.prototype.$addDelegate=function(user){var _this=this,deferred=Account.$q.defer(),param={uid:user.uid};return!user.uid||_.indexOf(_.pluck(this.delegates,"uid"),user.uid)>-1?deferred.resolve():Account.$$resource.fetch(this.id.toString(),"addDelegate",param).then(function(){_this.delegates.push(user),deferred.resolve(_this.users)},function(data,status){deferred.reject(l("An error occured please try again."))}),deferred.promise},Account.prototype.$removeDelegate=function(uid){var _this=this,param={uid:uid};return Account.$$resource.fetch(this.id.toString(),"removeDelegate",param).then(function(){var i=_.indexOf(_.pluck(_this.delegates,"uid"),uid);i>=0&&_this.delegates.splice(i,1)})}}(),function(){"use strict";function Mailbox(account,futureMailboxData){if(this.$account=account,"function"!=typeof futureMailboxData.then){if(this.init(futureMailboxData),this.name&&!this.path){var newMailboxData=Mailbox.$$resource.create("createFolder",this.name);this.$unwrap(newMailboxData)}}else this.$unwrap(futureMailboxData)}Mailbox.$factory=["$q","$timeout","$log","sgSettings","Resource","Message","Acl","Preferences","sgMailbox_PRELOAD",function($q,$timeout,$log,Settings,Resource,Message,Acl,Preferences,PRELOAD){return angular.extend(Mailbox,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL")+"Mail",Settings.activeUser()),$Message:Message,$$Acl:Acl,$Preferences:Preferences,$query:{sort:"date",asc:0},selectedFolder:null,$refreshTimeout:null,$virtualMode:!1,PRELOAD:PRELOAD}),Preferences.ready().then(function(){Preferences.settings.Mail.SortingState&&(Mailbox.$query.sort=Preferences.settings.Mail.SortingState[0],Mailbox.$query.asc=parseInt(Preferences.settings.Mail.SortingState[1]))}),Mailbox}];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",Mailbox.$factory),Mailbox.$find=function(account){var futureMailboxData;return futureMailboxData=this.$$resource.fetch(account.id.toString(),"view"),Mailbox.$unwrapCollection(account,futureMailboxData)},Mailbox.$unwrapCollection=function(account,futureMailboxData){var collection=[],createMailboxes=function(level,mailbox){for(var i=0;i<mailbox.children.length;i++)mailbox.children[i].level=level,mailbox.children[i]=new Mailbox(account,mailbox.children[i]),createMailboxes(level+1,mailbox.children[i])};return futureMailboxData.then(function(data){return Mailbox.$timeout(function(){return angular.forEach(data.mailboxes,function(data,index){data.level=0;var mailbox=new Mailbox(account,data);createMailboxes(1,mailbox),collection.push(mailbox)}),collection})})},Mailbox.$absolutePath=function(accountId,mailboxPath){var path=[];return mailboxPath&&(path=_.map(mailboxPath.split("/"),function(component){return"folder"+component.asCSSIdentifier()})),path.splice(0,0,accountId),path.join("/")},Mailbox.prototype.init=function(data){this.$isLoading=!0,this.$messages=[],this.uidsMap={},angular.extend(this,data),this.path&&(this.id=this.$id(),this.$acl=new Mailbox.$$Acl("Mail/"+this.id)),this.type&&(this.$isEditable=this.isEditable()),angular.isUndefined(this.$shadowData)&&(this.$shadowData=this.$omit())},Mailbox.prototype.getLength=function(){return this.$messages.length},Mailbox.prototype.getItemAtIndex=function(index){var message;return index>=0&&index<this.$messages.length&&(message=this.$messages[index],this.$loadMessage(message.uid))?message:null},Mailbox.prototype.$id=function(){return Mailbox.$absolutePath(this.$account.id,this.path)},Mailbox.prototype.$selectedCount=function(){var count;return count=0,this.$messages&&(count=_.filter(this.$messages,function(message){return message.selected}).length),count},Mailbox.prototype.$filter=function(sortingAttributes,filters){var _this=this,options={};return angular.isDefined(this.unseenCount)||(this.unseenCount=0),this.$isLoading=!0,Mailbox.$Preferences.ready().then(function(){if(Mailbox.$refreshTimeout&&Mailbox.$timeout.cancel(Mailbox.$refreshTimeout),sortingAttributes&&angular.extend(Mailbox.$query,sortingAttributes),angular.extend(options,{sortingAttributes:Mailbox.$query}),angular.isDefined(filters)&&(options.filters=_.reject(filters,function(filter){return angular.isUndefined(filter.searchInput)||0===filter.searchInput.length}),_.each(options.filters,function(filter){var secondFilter,match=filter.searchBy.match(/(\w+)_or_(\w+)/);match&&(options.sortingAttributes.match="OR",filter.searchBy=match[1],secondFilter=angular.copy(filter),secondFilter.searchBy=match[2],options.filters.push(secondFilter))})),!Mailbox.$virtualMode){var refreshViewCheck=Mailbox.$Preferences.defaults.SOGoRefreshViewCheck;if(refreshViewCheck&&"manually"!=refreshViewCheck){var f=angular.bind(_this,Mailbox.prototype.$filter);Mailbox.$refreshTimeout=Mailbox.$timeout(f,1e3*refreshViewCheck.timeInterval())}}var futureMailboxData=Mailbox.$$resource.post(_this.id,"view",options);return _this.$unwrap(futureMailboxData)})},Mailbox.prototype.$loadMessage=function(messageId){var endIndex,uids,futureHeadersData,startIndex=this.uidsMap[messageId],max=this.$messages.length,loaded=!1;if(angular.isDefined(this.uidsMap[messageId])&&startIndex<this.$messages.length&&(angular.isDefined(this.$messages[startIndex].subject)&&(loaded=!0),endIndex=Math.min(startIndex+Mailbox.PRELOAD.LOOKAHEAD,max-1),!angular.isDefined(this.$messages[endIndex].subject)&&!angular.isDefined(this.$messages[endIndex].loading))){for(endIndex=Math.min(startIndex+Mailbox.PRELOAD.SIZE,max),uids=[];endIndex>startIndex&&max>startIndex;startIndex++)angular.isDefined(this.$messages[startIndex].subject)||this.$messages[startIndex].loading?endIndex++:(uids.push(this.$messages[startIndex].uid),this.$messages[startIndex].loading=!0);Mailbox.$log.debug("Loading UIDs "+uids.join(" ")),futureHeadersData=Mailbox.$$resource.post(this.id,"headers",{uids:uids}),this.$unwrapHeaders(futureHeadersData)}return loaded},Mailbox.prototype.isEditable=function(){return"folder"==this.type},Mailbox.prototype.$rename=function(){var findParent,parent,children,i,_this=this;return this.name==this.$shadowData.name?Mailbox.$q.when():(findParent=function(parent,children){var parentMailbox=null,mailbox=_.find(children,function(o){return o.path==_this.path});return mailbox?parentMailbox=parent:angular.forEach(children,function(o){!parentMailbox&&o.children&&o.children.length>0&&(parentMailbox=findParent(o,o.children))}),parentMailbox},parent=findParent(null,this.$account.$mailboxes),children=null===parent?this.$account.$mailboxes:parent.children,i=_.indexOf(_.pluck(children,"id"),this.id),this.$save().then(function(data){var sibling;angular.extend(_this,data),_this.id=_this.$id(),children.splice(i,1),sibling=_.find(children,function(o){return Mailbox.$log.debug(o.name+" ? "+_this.name),"folder"==o.type&&o.name.localeCompare(_this.name)>0}),i=sibling?_.indexOf(_.pluck(children,"id"),sibling.id):children.length,children.splice(i,0,_this)}))},Mailbox.prototype.$compact=function(){return Mailbox.$$resource.post(this.id,"expunge")},Mailbox.prototype.$setFolderAs=function(type){return Mailbox.$$resource.post(this.id,"setAs"+type+"Folder")},Mailbox.prototype.$emptyTrash=function(){var _this=this;return Mailbox.$$resource.post(this.id,"emptyTrash").then(function(){_this.$messages=[],_this.uidsMap={},_this.unseenCount=0,angular.isDefined(_this.children)&&_this.children.length&&_this.$account.$getMailboxes({reload:!0})})},Mailbox.prototype.$markAsRead=function(){return Mailbox.$$resource.post(this.id,"markRead")},Mailbox.prototype.$flagMessages=function(uids,flags,operation){var data={msgUIDs:uids,flags:flags,operation:operation};return Mailbox.$$resource.post(this.id,"addOrRemoveLabel",data)},Mailbox.prototype.$delete=function(){var promise,_this=this,deferred=Mailbox.$q.defer();return promise=Mailbox.$$resource.remove(this.id),promise.then(function(){_this.$account.$getMailboxes({reload:!0}),deferred.resolve(!0)},function(data,status){deferred.reject(data)}),deferred.promise},Mailbox.prototype.$deleteMessages=function(uids){return Mailbox.$$resource.post(this.id,"batchDelete",{uids:uids})},Mailbox.prototype.$copyMessages=function(uids,folder){return Mailbox.$$resource.post(this.id,"copyMessages",{uids:uids,folder:folder})},Mailbox.prototype.$moveMessages=function(uids,folder){return Mailbox.$$resource.post(this.id,"moveMessages",{uids:uids,folder:folder})},Mailbox.prototype.$reset=function(){var _this=this;angular.forEach(this,function(value,key){"constructor"!=key&&"children"!=key&&"$"!=key[0]&&delete _this[key]}),angular.extend(this,this.$shadowData),this.$shadowData=this.$omit()},Mailbox.prototype.$save=function(){var _this=this;return Mailbox.$$resource.save(this.id,this.$omit()).then(function(data){return _this.$shadowData=_this.$omit(),Mailbox.$log.debug(JSON.stringify(data,void 0,2)),data},function(data){Mailbox.$log.error(JSON.stringify(data,void 0,2)),_this.$reset()})},Mailbox.prototype.$newMailbox=function(path,name){return this.$account.$newMailbox(path,name)},Mailbox.prototype.$omit=function(){var mailbox={};return angular.forEach(this,function(value,key){"constructor"!=key&&"children"!=key&&"$"!=key[0]&&(mailbox[key]=value)}),mailbox},Mailbox.prototype.$unwrap=function(futureMailboxData){var _this=this,deferred=Mailbox.$q.defer();return this.$futureMailboxData=futureMailboxData,this.$futureMailboxData.then(function(data){Mailbox.$timeout(function(){var uids,headers;_this.init(data),_this.uids&&(Mailbox.$log.debug("unwrapping "+data.uids.length+" messages"),headers=_.invoke(_this.headers[0],"toLowerCase"),_this.headers.splice(0,1),_this.threaded&&(uids=_this.uids[0],_this.uids.splice(0,1)),_.reduce(_this.uids,function(msgs,msg,i){var data;return data=_this.threaded?_.object(uids,msg):{uid:msg.toString()},_this.uidsMap[data.uid]=i,msgs.push(new Mailbox.$Message(_this.$account.id,_this,data,!0)),msgs},_this.$messages),_.each(_this.headers,function(data){var msg=_.object(headers,data),i=_this.uidsMap[msg.uid.toString()];_.extend(_this.$messages[i],msg)})),Mailbox.$log.debug("mailbox "+_this.id+" ready"),_this.$isLoading=!1,deferred.resolve(_this.$messages)})},function(data){angular.extend(_this,data),_this.isError=!0,deferred.reject()}),deferred.promise},Mailbox.prototype.$unwrapHeaders=function(futureHeadersData){var _this=this;futureHeadersData.then(function(data){Mailbox.$timeout(function(){var headers,j;data.length>0&&(headers=_.invoke(data[0],"toLowerCase"),data.splice(0,1),_.each(data,function(messageHeaders){messageHeaders=_.object(headers,messageHeaders),j=_this.uidsMap[messageHeaders.uid.toString()],angular.isDefined(j)&&_.extend(_this.$messages[j],messageHeaders)}))})})}}(),function(){"use strict";function Message(accountId,mailbox,futureMessageData,lazy){this.accountId=accountId,this.$mailbox=mailbox,this.$hasUnsafeContent=!1,this.$loadUnsafeContent=!1,this.$showDetailedRecipients=!1,this.editable={to:[],cc:[],bcc:[]},this.selected=!1,"function"!=typeof futureMessageData.then?angular.isDefined(lazy)&&lazy?this.uid=futureMessageData.uid:(angular.extend(this,futureMessageData),this.$formatFullAddresses()):this.$unwrap(futureMessageData)}Message.$factory=["$q","$timeout","$log","$sce","sgSettings","Gravatar","Resource","Preferences",function($q,$timeout,$log,$sce,Settings,Gravatar,Resource,Preferences){return angular.extend(Message,{$q:$q,$timeout:$timeout,$log:$log,$sce:$sce,$gravatar:Gravatar,$$resource:new Resource(Settings.activeUser("folderURL")+"Mail",Settings.activeUser())}),Preferences.ready().then(function(){Preferences.defaults.SOGoMailLabelsColors&&(Message.$tags=Preferences.defaults.SOGoMailLabelsColors),Preferences.defaults.SOGoMailDisplayRemoteInlineImages&&"always"==Preferences.defaults.SOGoMailDisplayRemoteInlineImages&&(Message.$displayRemoteInlineImages=!0)}),Message}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Message",Message.$factory),Message.filterTags=function(query){var re=new RegExp(query,"i"),results=[];return _.forEach(_.keys(Message.$tags),function(tag){var pair=Message.$tags[tag];-1!=pair[0].search(re)&&results.push({name:tag,description:pair[0],color:pair[1]})}),results},Message.prototype.$absolutePath=function(options){if(angular.isUndefined(this.id)||options){var path;path=_.map(this.$mailbox.path.split("/"),function(component){return"folder"+component.asCSSIdentifier()}),path.splice(0,0,this.accountId),options&&options.asDraft&&this.draftId?path.push(this.draftId):path.push(this.uid),this.id=path.join("/")}return this.id},Message.prototype.$setUID=function(uid){var oldUID=this.uid||-1;oldUID!=uid&&(this.uid=uid,oldUID>-1&&this.$mailbox.uidsMap[oldUID]&&(this.$mailbox.uidsMap[uid]=this.$mailbox.uidsMap[oldUID],this.$mailbox.uidsMap[oldUID]=null))},Message.prototype.$formatFullAddresses=function(){var _this=this,identities=_.pluck(_this.$mailbox.$account.identities,"email");_.each(["from","to","cc","bcc","reply-to"],function(type){_.each(_this[type],function(data,i){data.name&&data.name!=data.email?(data.full=data.name+" <"+data.email+">",data.name.split(" ").length&&(data.shortname=data.name.split(" ")[0].replace("'",""))):(data.full="<"+data.email+">",data.shortname=data.email.split("@")[0]),data.image=Message.$gravatar(data.email,32),_.indexOf(identities,data.email)>=0&&(data.shortname=l("me"))})})},Message.prototype.$shortRecipients=function(){var _this=this,result=[];return _.each(["to","cc","bcc"],function(type){_.each(_this[type],function(data,i){result.push(data.shortname)})}),result.join(", ")},Message.prototype.$shortAddress=function(type){var address="";return this[type]&&this[type].length>0&&(address=this[type][0].name||this[type][0].email||""),address},Message.prototype.loadUnsafeContent=function(){this.$loadUnsafeContent=!0},Message.prototype.showDetailedRecipients=function(){this.$showDetailedRecipients=!0},Message.prototype.$content=function(){var _this=this,parts=[],_visit=function(part){part.msgclass="msg-attachment-other","UIxMailPartAlternativeViewer"==part.type?_visit(_.find(part.content,function(alternatePart){return part.preferredPart==alternatePart.contentType})):angular.isArray(part.content)?_.each(part.content,function(mixedPart){_visit(mixedPart)}):(angular.isUndefined(part.safeContent)&&(part.safeContent=part.content,_this.$hasUnsafeContent|=part.safeContent.indexOf(" unsafe-")>-1),"UIxMailPartHTMLViewer"==part.type?(part.html=!0,_this.$loadUnsafeContent||Message.$displayRemoteInlineImages?(angular.isUndefined(part.unsafeContent)&&(part.unsafeContent=document.createElement("div"),part.unsafeContent.innerHTML=part.safeContent,angular.forEach(["src","data","classid","background","style"],function(suffix){var element,value,i,elements=part.unsafeContent.querySelectorAll("[unsafe-"+suffix+"]");for(i=0;i<elements.length;i++)element=angular.element(elements[i]),value=element.attr("unsafe-"+suffix),element.attr(suffix,value),element.removeAttr("unsafe-"+suffix)}),_this.$hasUnsafeContent=!1),part.content=Message.$sce.trustAs("html",part.unsafeContent.innerHTML)):part.content=Message.$sce.trustAs("html",part.safeContent),parts.push(part)):"UIxMailPartICalViewer"==part.type||"UIxMailPartImageViewer"==part.type||"UIxMailPartLinkViewer"==part.type?(part.participants&&_.each(part.participants,function(participant){participant.image=Message.$gravatar(participant.email,32)}),"UIxMailPartImageViewer"==part.type&&(part.msgclass="msg-attachment-image"),part.compile=!0,parts.push(part)):(part.html=!0,part.content=Message.$sce.trustAs("html",part.safeContent),parts.push(part)))};return _visit(this.parts),parts},Message.prototype.$editableContent=function(){var _this=this;return Message.$$resource.fetch(this.$absolutePath(),"edit").then(function(data){return angular.extend(_this,data),Message.$$resource.fetch(_this.$absolutePath({asDraft:!0}),"edit").then(function(data){return Message.$log.debug("editable = "+JSON.stringify(data,void 0,2)),angular.extend(_this.editable,data),data.text})})},Message.prototype.addTag=function(tag){return this.$addOrRemoveTag("add",tag)},Message.prototype.removeTag=function(tag){return this.$addOrRemoveTag("remove",tag)},Message.prototype.$addOrRemoveTag=function(operation,tag){var data={operation:operation,msgUIDs:[this.uid],flags:tag};return tag?Message.$$resource.post(this.$mailbox.$id(),"addOrRemoveLabel",data):void 0},Message.prototype.$imipAction=function(path,action,data){var _this=this;Message.$$resource.post([this.$absolutePath(),path].join("/"),action,data).then(function(data){Message.$timeout(function(){_this.$reload()},function(){})})},Message.prototype.$sendMDN=function(){return this.shouldAskReceipt=0,Message.$$resource.post(this.$absolutePath(),"sendMDN")},Message.prototype.$deleteAttachment=function(filename){var action="deleteAttachment?filename="+filename,_this=this;Message.$$resource.post(this.$absolutePath({asDraft:!0}),action).then(function(data){Message.$timeout(function(){_this.editable.attachmentAttrs=_.filter(_this.editable.attachmentAttrs,function(attachment){return attachment.filename!=filename})},function(){})})},Message.prototype.toggleFlag=function(){var _this=this,action="markMessageFlagged";return this.isflagged&&(action="markMessageUnflagged"),Message.$$resource.post(this.$absolutePath(),action).then(function(data){Message.$timeout(function(){_this.isflagged=!_this.isflagged})})},Message.prototype.$reload=function(options){var futureMessageData;return futureMessageData=Message.$$resource.fetch(this.$absolutePath(options),"view"),this.$unwrap(futureMessageData)},Message.prototype.$reply=function(){return this.$newDraft("reply")},Message.prototype.$replyAll=function(){return this.$newDraft("replyall")},Message.prototype.$forward=function(){return this.$newDraft("forward")},Message.prototype.$newDraft=function(action){var _this=this;return Message.$$resource.fetch(this.$absolutePath(),action).then(function(data){var mailbox,message;return Message.$log.debug("New "+action+": "+JSON.stringify(data,void 0,2)),mailbox=_this.$mailbox.$account.$getMailboxByPath(data.mailboxPath),message=new Message(data.accountId,mailbox,data),Message.$$resource.fetch(message.$absolutePath({asDraft:!0}),"edit").then(function(data){return Message.$log.debug("New "+action+": "+JSON.stringify(data,void 0,2)+" original UID: "+_this.uid),angular.extend(message.editable,data),message.origin={message:_this,action:action},message})})},Message.prototype.$save=function(){var _this=this,data=this.editable;return Message.$log.debug("save = "+JSON.stringify(data,void 0,2)),Message.$$resource.save(this.$absolutePath({asDraft:!0}),data).then(function(response){Message.$log.debug("save = "+JSON.stringify(response,void 0,2)),_this.$setUID(response.uid),_this.$reload({asDraft:!1})})},Message.prototype.$send=function(){var _this=this,data=angular.copy(this.editable),deferred=Message.$q.defer();return Message.$log.debug("send = "+JSON.stringify(data,void 0,2)),Message.$$resource.post(this.$absolutePath({asDraft:!0}),"send",data).then(function(data){"success"==data.status?(deferred.resolve(data),angular.isDefined(_this.origin)&&(_this.origin.action.startsWith("reply")?_this.origin.message.isanswered=!0:"forward"==_this.origin.action&&(_this.origin.message.isforwarded=!0))):deferred.reject(data)}),deferred.promise},Message.prototype.$unwrap=function(futureMessageData){var _this=this;return this.$futureMessageData=futureMessageData.then(function(data){return 0===_this.isread&&Message.$$resource.fetch(_this.$absolutePath(),"markMessageRead").then(function(){Message.$timeout(function(){_this.isread=!0,_this.$mailbox.unseenCount--})}),Message.$timeout(function(){return angular.extend(_this,data),_this.$formatFullAddresses(),_this.$loadUnsafeContent=!1,_this})}),this.$futureMessageData},Message.prototype.$omit=function(){var message={};return angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&(message[key]=value)}),_.each(["from","to","cc","bcc","reply-to"],function(type){message[type]&&(message[type]=_.invoke(message[type].split(","),"trim"))}),message}}(),function(){"use strict";function VirtualMailbox(account){this.$account=account}VirtualMailbox.$factory=["$q","$timeout","$log","sgSettings","Message","Mailbox","sgMailbox_PRELOAD",function($q,$timeout,$log,Settings,Mailbox,Message,PRELOAD){return angular.extend(VirtualMailbox,{$q:$q,$timeout:$timeout,$log:$log,$Message:Message,selectedFolder:null,PRELOAD:PRELOAD}),VirtualMailbox}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMailbox_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("VirtualMailbox",VirtualMailbox.$factory),VirtualMailbox.$absolutePath=function(accountId){return[accountId,"virtual"].join("/")},VirtualMailbox.prototype.init=function(data){this.$isLoading=!1,this.$mailboxes=[],this.uidsMap={},angular.extend(this,data),this.id=this.$id()},VirtualMailbox.prototype.setMailboxes=function(data){this.$mailboxes=data,_.each(this.$mailboxes,function(mailbox){mailbox.$messages=[],mailbox.uidsMap={}})},VirtualMailbox.prototype.startSearch=function(match,params){var _this=this,search=VirtualMailbox.$q.when();this.$isLoading=!0,_.each(this.$mailboxes,function(mailbox){search=search.then(function(){return _this.$isLoading?(VirtualMailbox.$log.debug("searching mailbox "+mailbox.path),mailbox.$filter({sort:"date",asc:!1,match:match},params)):void 0})}),search["finally"](function(){_this.$isLoading=!1})},VirtualMailbox.prototype.stopSearch=function(){VirtualMailbox.$log.debug("stopping search..."),this.$isLoading=!1},VirtualMailbox.prototype.getLength=function(){var len=0;return angular.isDefined(this.$mailboxes)?(_.each(this.$mailboxes,function(mailbox){len+=mailbox.$messages.length}),len):len},VirtualMailbox.prototype.getItemAtIndex=function(index){var i,j,k,mailbox,message;if(angular.isDefined(this.$mailboxes)&&index>=0)for(i=0,j=0;j<this.$mailboxes.length;j++)for(mailbox=this.$mailboxes[j],k=0;k<mailbox.$messages.length;i++,k++)if(message=mailbox.$messages[k],i==index&&mailbox.$loadMessage(message.uid))return message;return null},VirtualMailbox.prototype.$id=function(){return VirtualMailbox.$absolutePath(this.$account.id)},VirtualMailbox.prototype.$selectedCount=function(){return 0},VirtualMailbox.prototype.$flagMessages=function(uids,flags,operation){},VirtualMailbox.prototype.$deleteMessages=function(uids){},VirtualMailbox.prototype.$copyMessages=function(uids,folder){},VirtualMailbox.prototype.$moveMessages=function(uids,folder){}}(),function(){"use strict";function MailboxController($state,$timeout,$mdDialog,stateAccounts,stateAccount,stateMailbox,encodeUriFilter,focus,Dialog,Account,Mailbox){function selectMessage(message){Mailbox.$virtualMode?$state.go("mail.account.virtualMailbox.message",{accountId:stateAccount.id,mailboxId:encodeUriFilter(message.$mailbox.path),messageId:message.uid}):$state.go("mail.account.mailbox.message",{accountId:stateAccount.id,mailboxId:encodeUriFilter(message.$mailbox.path),messageId:message.uid})}function toggleMessageSelection($event,message){message.selected=!message.selected,$event.preventDefault(),$event.stopPropagation()}function unselectMessages(){_.each(vm.selectedFolder.$messages,function(message){message.selected=!1})}function confirmDeleteSelectedMessages(){Dialog.confirm(l("Warning"),l("Are you sure you want to delete the selected messages?")).then(function(){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");vm.selectedFolder.$deleteMessages(selectedUIDs).then(function(){var unseenCount=_.filter(selectedMessages,function(message){return!message.isread});vm.selectedFolder.$messages=_.difference(vm.selectedFolder.$messages,selectedMessages),vm.selectedFolder.unseenCount=-unseenCount},function(error){Dialog.alert(l("Error"),error)})})}function copySelectedMessages(folder){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");vm.selectedFolder.$copyMessages(selectedUIDs,"/"+folder).then(function(){},function(error){Dialog.alert(l("Error"),error)})}function saveSelectedMessages(){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");window.location.href=ApplicationBaseURL+"/"+vm.selectedFolder.id+"/saveMessages?uid="+selectedUIDs.join(",")}function selectAll(){_.each(vm.selectedFolder.$messages,function(message){message.selected=!0})}function markSelectedMessagesAsFlagged(){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");vm.selectedFolder.$flagMessages(selectedUIDs,"\\Flagged","add").then(function(d){_.forEach(selectedMessages,function(message){message.isflagged=!0})})}function markSelectedMessagesAsUnread(){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");vm.selectedFolder.$flagMessages(selectedUIDs,"seen","remove").then(function(d){_.forEach(selectedMessages,function(message){message.isread=!1,vm.selectedFolder.unseenCount++})})}function sort(field){vm.selectedFolder.$filter({sort:field})}function sortedBy(field){return Mailbox.$query.sort==field}function cancelSearch(){vm.mode.search=!1,vm.selectedFolder.$filter()}function newMessage($event){var message;null===messageDialog&&(message=vm.account.$newMessage(),messageDialog=$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccounts:vm.accounts,stateMessage:message,stateRecipients:[]}})["finally"](function(){messageDialog=null}))}var vm=this,messageDialog=null;Mailbox.selectedFolder=stateMailbox,vm.service=Mailbox,vm.accounts=stateAccounts,vm.account=stateAccount,vm.selectedFolder=stateMailbox,vm.selectMessage=selectMessage,vm.toggleMessageSelection=toggleMessageSelection,vm.unselectMessages=unselectMessages,vm.confirmDeleteSelectedMessages=confirmDeleteSelectedMessages,vm.copySelectedMessages=copySelectedMessages,vm.saveSelectedMessages=saveSelectedMessages,vm.markSelectedMessagesAsFlagged=markSelectedMessagesAsFlagged,vm.markSelectedMessagesAsUnread=markSelectedMessagesAsUnread,vm.selectAll=selectAll,vm.sort=sort,vm.sortedBy=sortedBy,vm.cancelSearch=cancelSearch,vm.newMessage=newMessage,vm.mode={search:!1}}MailboxController.$inject=["$state","$timeout","$mdDialog","stateAccounts","stateAccount","stateMailbox","encodeUriFilter","sgFocus","Dialog","Account","Mailbox"],angular.module("SOGo.MailerUI").controller("MailboxController",MailboxController)}(),function(){"use strict";function MailboxesController($state,$timeout,$mdDialog,focus,encodeUriFilter,Dialog,Settings,Account,Mailbox,VirtualMailbox,User,Preferences,stateAccounts){function showAdvancedSearch(path){vm.showingAdvancedSearch=!0,vm.search.mailbox=path}function hideAdvancedSearch(){vm.showingAdvancedSearch=!1,vm.service.$virtualMode=!1,account=vm.accounts[0],mailbox=vm.searchPreviousMailbox,$state.go("mail.account.mailbox",{accountId:account.id,mailboxId:encodeUriFilter(mailbox.path)})}function toggleAdvancedSearch(){if(Mailbox.selectedFolder.$isLoading)vm.virtualMailbox.stopSearch();else{var root,mailboxes=[],_visit=function(folders){_.each(folders,function(o){mailboxes.push(o),o.children&&o.children.length>0&&_visit(o.children)})};vm.virtualMailbox=new VirtualMailbox(vm.accounts[0]),Mailbox.$virtualMode||(vm.searchPreviousMailbox=Mailbox.selectedFolder),Mailbox.selectedFolder=vm.virtualMailbox,Mailbox.$virtualMode=!0,angular.isDefined(vm.search.mailbox)?(root=vm.accounts[0].$getMailboxByPath(vm.search.mailbox),mailboxes.push(root),vm.search.subfolders&&root.children.length&&_visit(root.children)):mailboxes=vm.accounts[0].$flattenMailboxes(),vm.virtualMailbox.setMailboxes(mailboxes),vm.virtualMailbox.startSearch(vm.search.match,vm.search.params),$state.go("mail.account.virtualMailbox",{accountId:vm.accounts[0].id})}}function addSearchParam(v){vm.currentSearchParam=v,focus("advancedSearch")}function newSearchParam(v){if(v.length&&vm.currentSearchParam.length){var n=0;v.startsWith("!")&&(n=1,v=v.substring(1).trim()),vm.search.params.push({searchBy:vm.currentSearchParam,searchInput:v,negative:n}),vm.currentSearchParam=""}}function newFolder(parentFolder){Dialog.prompt(l("New folder"),l("Enter the new name of your folder :")).then(function(name){
parentFolder.$newMailbox(parentFolder.id,name).then(function(){},function(data,status){Dialog.alert(l('An error occured while creating the mailbox "%{0}".',name),l(data.error))})})}function delegate(account){function MailboxDelegationController($scope,$mdDialog,User,account){function userFilter($query){return User.$filter($query,account.delegates)}function closeModal(){$mdDialog.hide()}function removeUser(user){account.$removeDelegate(user.uid)["catch"](function(data,status){Dialog.alert(l("Warning"),l("An error occured please try again."))})}function addUser(data){data&&account.$addDelegate(data).then(function(){vm.userToAdd="",vm.searchText=""},function(error){Dialog.alert(l("Warning"),error)})}var vm=this;vm.users=account.delegates,vm.account=account,vm.userToAdd="",vm.searchText="",vm.userFilter=userFilter,vm.closeModal=closeModal,vm.removeUser=removeUser,vm.addUser=addUser}$mdDialog.show({templateUrl:account.id+"/delegation",controller:MailboxDelegationController,controllerAs:"delegate",clickOutsideToClose:!0,escapeToClose:!0,locals:{User:User,account:account}}),MailboxDelegationController.$inject=["$scope","$mdDialog","User","account"]}function editFolder(folder){vm.editMode=folder.path,focus("mailboxName_"+folder.path)}function revertEditing(folder){folder.$reset(),vm.editMode=!1}function selectFolder(account,folder){vm.editMode!=folder.path&&(vm.editMode=!1,vm.showingAdvancedSearch=!1,vm.service.$virtualMode=!1,$state.go("mail.account.mailbox",{accountId:account.id,mailboxId:encodeUriFilter(folder.path)}))}function saveFolder(folder){folder.$rename().then(function(data){vm.editMode=!1},function(data,status){Dialog.alert(l("Warning"),data)})}function compactFolder(folder){folder.$compact().then(function(){},function(error){Dialog.alert(l("Warning"),error)})}function emptyTrashFolder(folder){folder.$emptyTrash().then(function(){},function(error){Dialog.alert(l("Warning"),error)})}function exportMails(folder){window.location.href=ApplicationBaseURL+"/"+folder.id+"/exportFolder"}function confirmDelete(folder){Dialog.confirm(l("Confirmation"),l("Do you really want to move this folder into the trash ?")).then(function(){folder.$delete().then(function(){$state.go("mail")},function(data,status){Dialog.alert(l('An error occured while deleting the mailbox "%{0}".',folder.name),l(data.error))})})}function markFolderRead(folder){folder.$markAsRead()}function share(folder){folder.$acl.$users().then(function(){$mdDialog.show({templateUrl:folder.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:folder.$acl.users,User:User,folder:folder}})})}function metadataForFolder(folder){return"inbox"==folder.type?{name:folder.name,icon:"inbox"}:"draft"==folder.type?{name:l("DraftsFolderName"),icon:"drafts"}:"sent"==folder.type?{name:l("SentFolderName"),icon:"send"}:"trash"==folder.type?{name:l("TrashFolderName"),icon:"delete"}:"additional"==folder.type?{name:folder.name,icon:"folder_shared"}:{name:folder.name,icon:"folder"}}function setFolderAs(folder,type){folder.$setFolderAs(type).then(function(){folder.$account.$getMailboxes({reload:!0})},function(error){Dialog.alert(l("Warning"),error)})}function refreshUnseenCount(){var unseenCountFolders=window.unseenCountFolders;_.forEach(vm.accounts,function(account){_.includes(unseenCountFolders,account.id+"/folderINBOX")||unseenCountFolders.push(account.id+"/folderINBOX"),_.forEach(account.$$flattenMailboxes,function(mailbox){angular.isDefined(mailbox.unseenCount)&&!_.includes(unseenCountFolders,mailbox.id)&&unseenCountFolders.push(mailbox.id)})}),Account.$$resource.post("","unseenCount",{mailboxes:unseenCountFolders}).then(function(data){_.forEach(vm.accounts,function(account){_.forEach(account.$$flattenMailboxes,function(mailbox){data[mailbox.id]&&(mailbox.unseenCount=data[mailbox.id])})})}),Preferences.ready().then(function(){var refreshViewCheck=Preferences.defaults.SOGoRefreshViewCheck;refreshViewCheck&&"manually"!=refreshViewCheck&&$timeout(vm.refreshUnseenCount,1e3*refreshViewCheck.timeInterval())})}var account,mailbox,vm=this;vm.service=Mailbox,vm.accounts=stateAccounts,vm.newFolder=newFolder,vm.delegate=delegate,vm.editFolder=editFolder,vm.revertEditing=revertEditing,vm.selectFolder=selectFolder,vm.saveFolder=saveFolder,vm.compactFolder=compactFolder,vm.emptyTrashFolder=emptyTrashFolder,vm.exportMails=exportMails,vm.confirmDelete=confirmDelete,vm.markFolderRead=markFolderRead,vm.share=share,vm.metadataForFolder=metadataForFolder,vm.setFolderAs=setFolderAs,vm.refreshUnseenCount=refreshUnseenCount,vm.showingAdvancedSearch=!1,vm.currentSearchParam="",vm.addSearchParam=addSearchParam,vm.newSearchParam=newSearchParam,vm.showAdvancedSearch=showAdvancedSearch,vm.hideAdvancedSearch=hideAdvancedSearch,vm.toggleAdvancedSearch=toggleAdvancedSearch,vm.search={options:{"":l("Select a criteria"),subject:l("Enter Subject"),from:l("Enter From"),to:l("Enter To"),cc:l("Enter Cc"),body:l("Enter Body")},mailbox:"INBOX",subfolders:1,match:"AND",params:[]},"mail"==$state.current.name&&vm.accounts.length>0&&vm.accounts[0].$mailboxes.length>0&&(account=vm.accounts[0],mailbox=account.$mailboxes[0],$state.go("mail.account.mailbox",{accountId:account.id,mailboxId:encodeUriFilter(mailbox.path)})),vm.refreshUnseenCount()}MailboxesController.$inject=["$state","$timeout","$mdDialog","sgFocus","encodeUriFilter","Dialog","sgSettings","Account","Mailbox","VirtualMailbox","User","Preferences","stateAccounts"],angular.module("SOGo.MailerUI").controller("MailboxesController",MailboxesController)}(),function(){"use strict";function MessageController($window,$scope,$state,$mdDialog,stateAccounts,stateAccount,stateMailbox,stateMessage,encodeUriFilter,sgSettings,focus,Dialog,Account,Mailbox,Message){function doDelete(){stateMailbox.$deleteMessages([stateMessage.uid]).then(function(){var index=_.findIndex(stateMailbox.$messages,function(o){return o.uid==stateMessage.uid});-1!=index&&stateMailbox.$messages.splice(index,1),vm.message=null,$state.go("mail.account.mailbox",{accountId:stateAccount.id,mailboxId:encodeUriFilter(stateMailbox.path)})})}function showMailEditor($event,message,recipients){null===messageDialog&&(angular.isDefined(recipients)||(recipients=[]),messageDialog=$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccounts:vm.accounts,stateMessage:message,stateRecipients:recipients}})["finally"](function(){messageDialog=null}))}function close(){$state.go("mail.account.mailbox",{accountId:stateAccount.id,mailboxId:encodeUriFilter(stateMailbox.path)}).then(function(){vm.message=null,delete stateMailbox.selectedMessage})}function reply($event){var message=vm.message.$reply();showMailEditor($event,message)}function replyAll($event){var message=vm.message.$replyAll();showMailEditor($event,message)}function forward($event){var message=vm.message.$forward();showMailEditor($event,message)}function edit($event){vm.message.$editableContent().then(function(){showMailEditor($event,vm.message)})}function openPopup(){var url=[sgSettings.baseURL(),"UIxMailPopupView#/Mail",vm.message.accountId,encodeUriFilter(encodeUriFilter(vm.message.$mailbox.path)),vm.message.uid].join("/"),wId=vm.message.$absolutePath();popupWindow=$window.open(url,wId,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))}function closePopup(){$window.close()}function newMessage($event,recipient){var message=vm.account.$newMessage();showMailEditor($event,message,[recipient])}function saveMessage(){window.location.href=ApplicationBaseURL+"/"+vm.mailbox.id+"/saveMessages?uid="+vm.message.uid}function viewRawSource($event){Message.$$resource.post(vm.message.id,"viewsource").then(function(data){function MessageRawSourceDialogController(scope,$mdDialog){scope.close=function(){$mdDialog.hide()}}$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!0,escapeToClose:!0,template:['<md-dialog flex="80" flex-sm="100" aria-label="'+l("View Message Source")+'">'," <md-dialog-content>"," <pre>",data," </pre>"," </md-dialog-content>",' <div class="md-actions">',' <md-button ng-click="close()">'+l("Close")+"</md-button>"," </div>","</md-dialog>"].join(""),controller:MessageRawSourceDialogController}),MessageRawSourceDialogController.$inject=["scope","$mdDialog"]})}var vm=this,messageDialog=null,popupWindow=null;vm.accounts=stateAccounts,vm.account=stateAccount,vm.mailbox=stateMailbox,vm.message=stateMessage,vm.service=Message,vm.tags={searchText:"",selected:""},vm.doDelete=doDelete,vm.close=close,vm.reply=reply,vm.replyAll=replyAll,vm.forward=forward,vm.edit=edit,vm.openPopup=openPopup,vm.closePopup=closePopup,vm.newMessage=newMessage,vm.saveMessage=saveMessage,vm.viewRawSource=viewRawSource,$scope.$watchCollection("viewer.message.flags",function(oldTags,newTags){_.each(_.difference(newTags,oldTags),function(tag){vm.message.removeTag(tag)})})}MessageController.$inject=["$window","$scope","$state","$mdDialog","stateAccounts","stateAccount","stateMailbox","stateMessage","encodeUriFilter","sgSettings","sgFocus","Dialog","Account","Mailbox","Message"],angular.module("SOGo.MailerUI").controller("MessageController",MessageController)}(),function(){"use strict";function MessageEditorController($stateParams,$mdDialog,FileUploader,stateAccounts,stateMessage,stateRecipients,$timeout,focus,Dialog,AddressBook,Preferences){function cancel(){vm.autosave&&$timeout.cancel(vm.autosave),$mdDialog.cancel()}function send(){vm.autosave&&$timeout.cancel(vm.autosave),vm.message.$send().then(function(data){$mdDialog.hide()},function(data){Dialog.alert(l(data.status),l(data.message))})}function contactFilter($query){return AddressBook.$filterAll($query)}function addRecipient(user){var recipient=[];return angular.isString(user)?user:(user.$$fullname&&recipient.push(user.$$fullname),user.$$email&&recipient.push("<"+user.$$email+">"),recipient.join(" "))}function autosaveDrafts(){vm.message.$save(),Preferences.defaults.SOGoMailAutoSave&&(vm.autosave=$timeout(vm.autosaveDrafts,1e3*Preferences.defaults.SOGoMailAutoSave*60))}var vm=this;vm.addRecipient=addRecipient,vm.autocomplete={to:{},cc:{},bcc:{}},vm.autosave=null,vm.autosaveDrafts=autosaveDrafts,vm.hideCc=!0,vm.hideBcc=!0,vm.cancel=cancel,vm.send=send,vm.contactFilter=contactFilter,vm.identities=_.pluck(_.flatten(_.pluck(stateAccounts,"identities")),"full"),vm.uploader=new FileUploader({url:stateMessage.$absolutePath({asDraft:!0})+"/save",autoUpload:!0,alias:"attachments",onProgressItem:function(item,progress){console.debug(item),console.debug(progress)},onSuccessItem:function(item,response,status,headers){stateMessage.$setUID(response.uid),stateMessage.$reload(),console.debug(item),console.debug("success = "+JSON.stringify(response,void 0,2))},onCancelItem:function(item,response,status,headers){console.debug(item),console.debug("cancel = "+JSON.stringify(response,void 0,2)),stateMessage.$deleteAttachment(item.file.name),this.removeFromQueue(item)},onErrorItem:function(item,response,status,headers){console.debug(item),console.debug("error = "+JSON.stringify(response,void 0,2))}}),"reply"==$stateParams.actionName?stateMessage.$reply().then(function(msgObject){vm.message=msgObject,vm.hideCc=!msgObject.editable.cc||0===msgObject.editable.cc.length,vm.hideBcc=!msgObject.editable.bcc||0===msgObject.editable.bcc.length}):"replyall"==$stateParams.actionName?stateMessage.$replyAll().then(function(msgObject){vm.message=msgObject,vm.hideCc=!msgObject.editable.cc||0===msgObject.editable.cc.length,vm.hideBcc=!msgObject.editable.bcc||0===msgObject.editable.bcc.length}):"forward"==$stateParams.actionName?stateMessage.$forward().then(function(msgObject){vm.message=msgObject}):angular.isDefined(stateMessage)&&(vm.message=stateMessage),angular.isDefined(stateRecipients)&&(vm.message.editable.to=_.union(vm.message.editable.to,_.pluck(stateRecipients,"full"))),Preferences.ready().then(function(){Preferences.defaults.SOGoMailAutoSave&&(vm.autosave=$timeout(vm.autosaveDrafts,1e3*Preferences.defaults.SOGoMailAutoSave*60)),vm.localeCode=Preferences.defaults.LocaleCode})}MessageEditorController.$inject=["$stateParams","$mdDialog","FileUploader","stateAccounts","stateMessage","stateRecipients","$timeout","sgFocus","Dialog","AddressBook","Preferences"],angular.module("SOGo.MailerUI").controller("MessageEditorController",MessageEditorController)}(),function(){"use strict";function sgImip(){function link(scope,iElement,attrs,ctrl){ctrl.pathToAttachment=attrs.sgImipPath}return{restrict:"A",link:link,controller:"sgImipController"}}function sgImipController($scope,User){var vm=this;$scope.delegateInvitation=!1,$scope.delegatedTo="",$scope.searchText="",$scope.userFilter=function($query){return User.$filter($query)},$scope.iCalendarAction=function(action){var data;"delegate"==action&&(data={receiveUpdates:!1,delegatedTo:$scope.delegatedTo.c_email}),$scope.viewer.message.$imipAction(vm.pathToAttachment,action,data)}}sgImipController.$inject=["$scope","User"],angular.module("SOGo.MailerUI").controller("sgImipController",sgImipController).directive("sgImip",sgImip)}();
//# sourceMappingURL=Mailer.services.js.map