sogo/UI/WebServerResources/js/Mailer.services.js

3 lines
44 KiB
JavaScript

!function(){"use strict";function a(b){"function"!=typeof b.then&&(angular.extend(this,b),_.forEach(this.identities,function(a){a.fullName?a.full=a.fullName+" <"+a.email+">":a.full="<"+a.email+">"}),a.$log.debug("Account: "+JSON.stringify(b,void 0,2)))}a.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Mailbox","Message",function(b,c,d,e,f,g,h,i){return angular.extend(a,{$q:b,$timeout:c,$log:d,$$resource:new f(e.activeUser("folderURL")+"Mail",e.activeUser()),$Preferences:g,$Mailbox:h,$Message:i}),a}];try{angular.module("SOGo.MailerUI")}catch(b){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Account",a.$factory),a.$findAll=function(b){return b?a.$unwrapCollection(b):a.$$resource.fetch("","mailAccounts").then(function(b){return a.$unwrapCollection(b)})},a.$unwrapCollection=function(b){var c=[];return angular.forEach(b,function(b,d){b.id=d,c[d]=new a(b)}),a.$accounts=c,c},a.prototype.getLength=function(){return this.$flattenMailboxes().length},a.prototype.getItemAtIndex=function(a){var b;return b=this.$flattenMailboxes(),a>=0&&a<b.length?b[a]:null},a.prototype.$getMailboxes=function(b){var c=this;return!this.$mailboxes||b&&b.reload?a.$Mailbox.$find(this).then(function(b){return c.$mailboxes=b,c.$expanded=!1,a.$Preferences.ready().then(function(){var b,d=function(a){_.forEach(a,function(a){a.$expanded=b.indexOf("/"+a.id)>=0,a.children&&a.children.length>0&&d(a.children)})};a.$Preferences.settings.Mail.ExpandedFolders&&(b=angular.isString(a.$Preferences.settings.Mail.ExpandedFolders)?angular.fromJson(a.$Preferences.settings.Mail.ExpandedFolders):a.$Preferences.settings.Mail.ExpandedFolders,c.$expanded=b.indexOf("/"+c.id)>=0,b.length>0&&d(c.$mailboxes)),a.$accounts&&(c.$expanded|=1==a.$accounts.length),c.$flattenMailboxes({reload:!0})}),c.$mailboxes}):a.$q.when(this.$mailboxes)},a.prototype.$flattenMailboxes=function(b){var c=this,d=[],e=[],f=function(a){_.forEach(a,function(a){d.push(a),(b&&b.all||a.$expanded)&&a.children&&a.children.length>0&&f(a.children)})};return!this.$$flattenMailboxes||b&&(b.reload||b.all)?(f(this.$mailboxes),b&&b.all||(c.$$flattenMailboxes=d,b&&b.saveState&&(_.forEach(a.$accounts,function(a){a.$expanded&&e.push("/"+a.id),_.reduce(a.$$flattenMailboxes,function(a,b){return b.$expanded&&a.push("/"+b.id),a},e)}),a.$$resource.post(null,"saveFoldersState",e)))):d=this.$$flattenMailboxes,d},a.prototype.$getMailboxByType=function(a){var b,c=function(b){var d=_.find(b,function(b){return b.type==a});return d||angular.forEach(b,function(a){!d&&a.children&&a.children.length>0&&(d=c(a.children))}),d};return b=c(this.$mailboxes)},a.prototype.$getMailboxByPath=function(a){var b=null,c=function(b){var d=_.find(b,function(b){return b.path==a});return d||angular.forEach(b,function(a){!d&&a.children&&a.children.length>0&&(d=c(a.children))}),d};return b=c(this.$mailboxes)},a.prototype.$newMailbox=function(b,c){var d=this;return a.$$resource.post(b.toString(),"createFolder",{name:c}).then(function(){d.$getMailboxes({reload:!0})})},a.prototype.updateQuota=function(a){var b,c,d;b=Math.round(1e4*a.usedSpace/a.maxQuota)/100,c=l("quotasFormat"),d=c.formatted(b,Math.round(a.maxQuota/10.24)/100),this.$quota={percent:b,description:d}},a.prototype.$newMessage=function(){var b=this;return a.$$resource.fetch(this.id.toString(),"compose").then(function(c){a.$log.debug("New message (compose): "+JSON.stringify(c,void 0,2));var d=new a.$Message(c.accountId,b.$getMailboxByPath(c.mailboxPath),c);return d}).then(function(b){return a.$$resource.fetch(b.$absolutePath({asDraft:!0}),"edit").then(function(c){return a.$log.debug("New message (edit): "+JSON.stringify(c,void 0,2)),angular.extend(b.editable,c),b.isNew=!0,b})})},a.prototype.$addDelegate=function(b){var c=this,d=a.$q.defer(),e={uid:b.uid};return!b.uid||_.indexOf(_.map(this.delegates,"uid"),b.uid)>-1?d.resolve():a.$$resource.fetch(this.id.toString(),"addDelegate",e).then(function(){c.delegates.push(b),d.resolve(c.users)},function(a,b){d.reject(l("An error occured please try again."))}),d.promise},a.prototype.$removeDelegate=function(b){var c=this,d={uid:b};return a.$$resource.fetch(this.id.toString(),"removeDelegate",d).then(function(){var a=_.indexOf(_.map(c.delegates,"uid"),b);a>=0&&c.delegates.splice(a,1)})}}(),function(){"use strict";function a(b,c){if(this.$account=b,"function"!=typeof c.then){if(this.init(c),this.name&&!this.path){var d=a.$$resource.create("createFolder",this.name);this.$unwrap(d)}}else this.$unwrap(c)}a.$factory=["$q","$timeout","$log","sgSettings","Resource","Message","Acl","Preferences","sgMailbox_PRELOAD",function(b,c,d,e,f,g,h,i,j){return angular.extend(a,{$q:b,$timeout:c,$log:d,$$resource:new f(e.activeUser("folderURL")+"Mail",e.activeUser()),$Message:g,$$Acl:h,$Preferences:i,$query:{sort:"date",asc:0},selectedFolder:null,$refreshTimeout:null,$virtualMode:!1,PRELOAD:j}),i.ready().then(function(){i.settings.Mail.SortingState&&(a.$query.sort=i.settings.Mail.SortingState[0],a.$query.asc=parseInt(i.settings.Mail.SortingState[1]))}),a}];try{angular.module("SOGo.MailerUI")}catch(b){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMailbox_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("Mailbox",a.$factory),a.$find=function(b){var c;return c=this.$$resource.fetch(b.id.toString(),"view"),a.$unwrapCollection(b,c)},a.$unwrapCollection=function(b,c){var d=[],e=function(c,d){for(var f=0;f<d.children.length;f++)d.children[f].level=c,d.children[f]=new a(b,d.children[f]),e(c+1,d.children[f])};return c.then(function(c){return a.$timeout(function(){return angular.forEach(c.mailboxes,function(c,f){c.level=0;var g=new a(b,c);e(1,g),d.push(g)}),c.quotas&&b.updateQuota(c.quotas),d})})},a.$absolutePath=function(a,b){var c=[];return b&&(c=_.map(b.split("/"),function(a){return"folder"+a.asCSSIdentifier()})),c.splice(0,0,a),c.join("/")},a.prototype.init=function(b){this.$isLoading=!0,this.$messages=[],this.uidsMap={},angular.extend(this,b),this.path&&(this.id=this.$id(),this.$acl=new a.$$Acl("Mail/"+this.id)),this.type&&(this.$isEditable=this.isEditable()),this.$isNoInferiors=this.isNoInferiors(),angular.isUndefined(this.$shadowData)&&(this.$shadowData=this.$omit())},a.prototype.selectFolder=function(){a.$virtualMode||(a.selectedFolder=this)},a.prototype.getLength=function(){return this.$messages.length},a.prototype.getItemAtIndex=function(a){var b;return a>=0&&a<this.$messages.length&&(b=this.$messages[a],this.$lastVisibleIndex=Math.max(0,a-3),this.$loadMessage(b.uid))?b:null},a.prototype.$id=function(){return a.$absolutePath(this.$account.id,this.path)},a.prototype.$selectedCount=function(){var a;return a=0,this.$messages&&(a=_.filter(this.$messages,function(a){return a.selected}).length),a},a.prototype.isSelectedMessage=function(a){return this.selectedMessage==a},a.prototype.hasSelectedMessage=function(){return angular.isDefined(this.selectedMessage)},a.prototype.$filter=function(b,c){var d=this,e={};return angular.isDefined(this.unseenCount)||(this.unseenCount=0),a.$timeout(function(){d.$isLoading=!0}),a.$Preferences.ready().then(function(){if(a.$refreshTimeout&&a.$timeout.cancel(a.$refreshTimeout),b&&angular.extend(a.$query,b),angular.extend(e,{sortingAttributes:a.$query}),angular.isDefined(c)&&(e.filters=_.reject(c,function(a){return!a.searchInput||0===a.searchInput.length}),_.forEach(e.filters,function(a){var b,c=a.searchBy.match(/(\w+)_or_(\w+)/);c&&(e.sortingAttributes.match="OR",a.searchBy=c[1],b=angular.copy(a),b.searchBy=c[2],e.filters.push(b))})),!a.$virtualMode){var f=a.$Preferences.defaults.SOGoRefreshViewCheck;if(f&&"manually"!=f){var g=angular.bind(d,a.prototype.$filter,null,c);a.$refreshTimeout=a.$timeout(g,1e3*f.timeInterval())}}var h=a.$$resource.post(d.id,"view",e);return d.$unwrap(h)})},a.prototype.$loadMessage=function(b){var c,d,e,f,g=this.uidsMap[b],h=this.$messages.length,i=!1;if(angular.isDefined(this.uidsMap[b])&&g<this.$messages.length&&(angular.isDefined(this.$messages[g].subject)&&(i=!0),c=Math.min(g+a.PRELOAD.LOOKAHEAD,h-1),angular.isDefined(this.$messages[c].subject)||angular.isDefined(this.$messages[c].loading)?(d=Math.max(g-a.PRELOAD.LOOKAHEAD,0),angular.isDefined(this.$messages[d].subject)||angular.isDefined(this.$messages[d].loading)||(c=g,g=Math.max(g-a.PRELOAD.SIZE,0))):c=Math.min(g+a.PRELOAD.SIZE,h-1),!angular.isDefined(this.$messages[g].subject)&&!angular.isDefined(this.$messages[g].loading)||!angular.isDefined(this.$messages[c].subject)&&!angular.isDefined(this.$messages[c].loading))){for(e=[];c>g&&h>g;g++)angular.isDefined(this.$messages[g].subject)||this.$messages[g].loading?c++:(e.push(this.$messages[g].uid),this.$messages[g].loading=!0);a.$log.debug("Loading UIDs "+e.join(" ")),f=a.$$resource.post(this.id,"headers",{uids:e}),this.$unwrapHeaders(f)}return i},a.prototype.isEditable=function(){return"folder"==this.type},a.prototype.isNoInferiors=function(){return this.flags.indexOf("noinferiors")>=0},a.prototype.$rename=function(){var b,c,d,e,f=this;return this.name==this.$shadowData.name?a.$q.when():(b=function(a,c){var d=null,e=_.find(c,function(a){return a.path==f.path});return e?d=a:angular.forEach(c,function(a){!d&&a.children&&a.children.length>0&&(d=b(a,a.children))}),d},c=b(null,this.$account.$mailboxes),d=null===c?this.$account.$mailboxes:c.children,e=_.indexOf(_.map(d,"id"),this.id),this.$save().then(function(b){var c;angular.extend(f,b),f.id=f.$id(),d.splice(e,1),c=_.find(d,function(b){return a.$log.debug(b.name+" ? "+f.name),"folder"==b.type&&b.name.localeCompare(f.name)>0}),e=c?_.indexOf(_.map(d,"id"),c.id):d.length,d.splice(e,0,f)}))},a.prototype.$compact=function(){var b=this;return a.$$resource.post(this.id,"expunge").then(function(a){a.quotas&&b.$account.updateQuota(a.quotas)})},a.prototype.$setFolderAs=function(b){return a.$$resource.post(this.id,"setAs"+b+"Folder")},a.prototype.$emptyTrash=function(){var b=this;return a.$$resource.post(this.id,"emptyTrash").then(function(a){b.$messages=[],b.uidsMap={},b.unseenCount=0,angular.isDefined(b.children)&&b.children.length&&b.$account.$getMailboxes({reload:!0}),a.quotas&&b.$account.updateQuota(a.quotas)})},a.prototype.$markAsRead=function(){return a.$$resource.post(this.id,"markRead")},a.prototype.$flagMessages=function(b,c,d){var e={msgUIDs:b,flags:c,operation:d};return a.$$resource.post(this.id,"addOrRemoveLabel",e)},a.prototype.saveSelectedMessages=function(){var b,c;return b=_.filter(this.$messages,function(a){return a.selected}),c=_.map(b,"uid"),a.$$resource.download(this.id,"saveMessages",{uids:c})},a.prototype.exportFolder=function(){return a.$$resource.download(this.id,"exportFolder")},a.prototype.$delete=function(){var b=this;return a.$$resource.remove(this.id).then(function(){return b.$account.$getMailboxes({reload:!0}),!0})},a.prototype.$_deleteMessages=function(a,b){var c,d=this,e=this.$messages.length;return c=_.filter(b,function(a,b){return!a.isread}),this.unseenCount-=c.length,_.forEachRight(this.$messages,function(b,c){var f=_.findIndex(a,function(a){return b.uid==a});f>-1?(a.splice(f,1),delete d.uidsMap[b.uid],b.uid==d.selectedMessage&&delete d.selectedMessage,d.$messages.splice(c,1),e>c&&(e=c)):d.uidsMap[b.uid]-=a.length}),e},a.prototype.$deleteMessages=function(b){var c,d=this;return c=_.map(b,"uid"),a.$$resource.post(this.id,"batchDelete",{uids:c}).then(function(a){return a.quotas&&d.$account.updateQuota(a.quotas),d.$_deleteMessages(c,b)})},a.prototype.$markOrUnMarkMessagesAsJunk=function(b){var c,d="junk"==this.type?"markMessagesAsNotJunk":"markMessagesAsJunk";return c=_.map(b,"uid"),a.$$resource.post(this.id,d,{uids:c})},a.prototype.$copyMessages=function(b,c){var d=this;return a.$$resource.post(this.id,"copyMessages",{uids:b,folder:c}).then(function(a){a.quotas&&d.$account.updateQuota(a.quotas)})},a.prototype.$moveMessages=function(b,c){var d,e=this;return d=_.map(b,"uid"),a.$$resource.post(this.id,"moveMessages",{uids:d,folder:c}).then(function(){return e.$_deleteMessages(d,b)})},a.prototype.$reset=function(){var a=this;angular.forEach(this,function(b,c){"constructor"!=c&&"children"!=c&&"$"!=c[0]&&delete a[c]}),angular.extend(this,this.$shadowData),this.$shadowData=this.$omit()},a.prototype.$save=function(){var b=this;return a.$$resource.save(this.id,this.$omit()).then(function(c){return b.$shadowData=b.$omit(),a.$log.debug(JSON.stringify(c,void 0,2)),c},function(c){a.$log.error(JSON.stringify(c.data,void 0,2)),b.$reset()})},a.prototype.$newMailbox=function(a,b){return this.$account.$newMailbox(a,b)},a.prototype.$omit=function(){return{name:this.name}},a.prototype.$unwrap=function(b){var c=this,d=a.$q.defer();return this.$futureMailboxData=b,this.$futureMailboxData.then(function(b){a.$timeout(function(){var e,f;(!b.uids||c.$topIndex>b.uids.length-1)&&(c.$topIndex=0),c.init(b),c.uids&&(a.$log.debug("unwrapping "+b.uids.length+" messages"),f=_.invokeMap(c.headers[0],"toLowerCase"),c.headers.splice(0,1),c.threaded&&(e=c.uids[0],c.uids.splice(0,1)),_.reduce(c.uids,function(b,d,f){var g;return g=c.threaded?_.zipObject(e,d):{uid:d.toString()},c.uidsMap[g.uid]=f,b.push(new a.$Message(c.$account.id,c,g,!0)),b},c.$messages),_.forEach(c.headers,function(a){var b=_.zipObject(f,a),d=c.uidsMap[b.uid.toString()];_.extend(c.$messages[d],b)})),a.$log.debug("mailbox "+c.id+" ready"),c.$isLoading=!1,d.resolve(c.$messages)})},function(a){angular.extend(c,a),c.isError=!0,d.reject()}),d.promise},a.prototype.$unwrapHeaders=function(b){var c=this;b.then(function(b){a.$timeout(function(){var a,d;b.length>0&&(a=_.invokeMap(b[0],"toLowerCase"),b.splice(0,1),_.forEach(b,function(b){b=_.zipObject(a,b),d=c.uidsMap[b.uid.toString()],angular.isDefined(d)&&_.extend(c.$messages[d],b)}))})})}}(),function(){"use strict";function a(a,b,c,d){this.accountId=a,this.$mailbox=b,this.$hasUnsafeContent=!1,this.$loadUnsafeContent=!1,this.editable={to:[],cc:[],bcc:[]},this.selected=!1,"function"!=typeof c.then?(!angular.isUndefined(d)&&d||(angular.extend(this,c),this.$formatFullAddresses()),this.uid=parseInt(c.uid)):this.$unwrap(c)}a.$factory=["$q","$timeout","$log","sgSettings","sgMessage_STATUS","Gravatar","Resource","Preferences",function(b,c,d,e,f,g,h,i){return angular.extend(a,{STATUS:f,$q:b,$timeout:c,$log:d,$gravatar:g,$$resource:new h(e.activeUser("folderURL")+"Mail",e.activeUser())}),i.ready().then(function(){i.defaults.SOGoMailLabelsColors&&(a.$tags=i.defaults.SOGoMailLabelsColors),i.defaults.SOGoMailDisplayRemoteInlineImages&&"always"==i.defaults.SOGoMailDisplayRemoteInlineImages&&(a.$displayRemoteInlineImages=!0)}),a}];try{angular.module("SOGo.MailerUI")}catch(b){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",a.$factory),a.filterTags=function(b,c){var d=new RegExp(b,"i"),e=[];return _.forEach(_.keys(a.$tags),function(b){var f=a.$tags[b];-1!=f[0].search(d)&&(_.includes(c,b)||e.push({name:b,description:f[0],color:f[1]}))}),e},a.prototype.$absolutePath=function(a){function b(){var a;return a=_.map(c.$mailbox.path.split("/"),function(a){return"folder"+a.asCSSIdentifier()}),a.splice(0,0,c.accountId),a.join("/")}var c=this,d=this.id;return(angular.isUndefined(this.id)||a&&a.nocache)&&(this.id=b()+"/"+this.uid,d=this.id),a&&a.asDraft&&this.draftId&&(d=b()+"/"+this.draftId),d},a.prototype.$setUID=function(a){var b,c=this.uid||-1,d=this;c!=parseInt(a)&&(this.uid=parseInt(a),this.$absolutePath({nocache:!0}),c>-1?(c=c.toString(),angular.isDefined(this.$mailbox.uidsMap[c])&&(b=this.$mailbox.uidsMap[c],this.$mailbox.uidsMap[a]=b,delete this.$mailbox.uidsMap[c],_.forEach(["from","to","subject"],function(a){d.$mailbox.$messages[b][a]=d[a]}))):this.$mailbox.constructor.selectedFolder&&"draft"==this.$mailbox.constructor.selectedFolder.type&&this.$mailbox.constructor.selectedFolder.$filter())},a.prototype.$formatFullAddresses=function(){var b=this,c=_.map(b.$mailbox.$account.identities,"email");_.forEach(["from","to","cc","bcc","reply-to"],function(d){_.forEach(b[d],function(b){b.name&&b.name!=b.email?(b.full=b.name+" <"+b.email+">",b.name.length<10?b.shortname=b.name:b.name.split(" ").length&&(b.shortname=b.name.split(" ")[0].replace("'",""))):b.email&&(b.full="<"+b.email+">",b.shortname=b.email.split("@")[0]),b.image=a.$gravatar(b.email,32),_.indexOf(c,b.email)>=0&&(b.shortname=l("me"))})})},a.prototype.$shortRecipients=function(a){var b=this,c=[],d=0,e=0;return _.forEach(["to","cc","bcc"],function(f){e+=b[f]?b[f].length:0,_.forEach(b[f],function(b,e){a>d&&c.push(b.shortname),d++})}),e>a&&c.push(l("and %{0} more...",e-a)),c.join(", ")},a.prototype.$shortAddress=function(a){var b="";return this[a]&&this[a].length>0&&(b=this[a][0].name||this[a][0].email||""),b},a.prototype.allowReplyAll=function(){var a=0;return a=_.reduce(["to","cc"],_.bind(function(a,b){return this[b]?a+this[b].length:a},this),a),!this.isDraft&&a>1},a.prototype.loadUnsafeContent=function(){this.$loadUnsafeContent=!0},a.prototype.$content=function(){var b=this,c=[],d=function(e){if(e.msgclass="msg-attachment-other","UIxMailPartAlternativeViewer"==e.type)d(_.find(e.content,function(a){return e.preferredPart==a.contentType}));else if(angular.isArray(e.content)){if("UIxMailPartSignedViewer"==e.type&&1===e["supports-smime"]){var f="<p>"+e.error.replace(/\n/,'</p><p class="md-caption">');f=f.replace(/\n/g,'</p><p class="md-caption">')+"</p>",b.$smime={validSignature:e.valid,message:f}}_.forEach(e.content,function(a){d(a)})}else angular.isUndefined(e.safeContent)&&(e.safeContent=e.content,b.$hasUnsafeContent|=e.safeContent.indexOf(" unsafe-")>-1),"UIxMailPartHTMLViewer"==e.type?(e.html=!0,b.$loadUnsafeContent||a.$displayRemoteInlineImages?(angular.isUndefined(e.unsafeContent)&&(e.unsafeContent=document.createElement("div"),e.unsafeContent.innerHTML=e.safeContent,angular.forEach(["src","data","classid","background","style"],function(a){var b,c,d,f=e.unsafeContent.querySelectorAll("[unsafe-"+a+"]");for(d=0;d<f.length;d++)b=angular.element(f[d]),c=b.attr("unsafe-"+a),b.attr(a,c),b.removeAttr("unsafe-"+a)}),b.$hasUnsafeContent=!1),e.content=e.unsafeContent.innerHTML):e.content=e.safeContent,c.push(e)):"UIxMailPartICalViewer"==e.type||"UIxMailPartImageViewer"==e.type||"UIxMailPartLinkViewer"==e.type?(e.participants&&_.forEach(e.participants,function(b){b.image=a.$gravatar(b.email,32)}),"UIxMailPartImageViewer"==e.type?e.msgclass="msg-attachment-image":"UIxMailPartLinkViewer"==e.type&&(e.msgclass="msg-attachment-link"),e.compile=!0,c.push(e)):(e.html=!0,e.content=e.safeContent,c.push(e))};return d(this.parts),c},a.prototype.$editableContent=function(){var b=this;return a.$$resource.fetch(this.$absolutePath(),"edit").then(function(c){return angular.extend(b,c),a.$$resource.fetch(b.$absolutePath({asDraft:!0}),"edit").then(function(c){var d=_.find(b.$mailbox.$account.identities,function(a){return-1!==c.from.toLowerCase().indexOf(a.email)});return d&&(c.from=d.full),a.$log.debug("editable = "+JSON.stringify(c,void 0,2)),angular.extend(b.editable,c),c.text})})},a.prototype.$plainContent=function(){return a.$$resource.fetch(this.$absolutePath(),"viewplain")},a.prototype.addTag=function(a){return this.$addOrRemoveTag("add",a)},a.prototype.removeTag=function(a){return this.$addOrRemoveTag("remove",a)},a.prototype.$addOrRemoveTag=function(b,c){var d={operation:b,msgUIDs:[this.uid],flags:c};return c?a.$$resource.post(this.$mailbox.$id(),"addOrRemoveLabel",d):void 0},a.prototype.$imipAction=function(b,c,d){var e=this;a.$$resource.post([this.$absolutePath(),b].join("/"),c,d).then(function(b){a.$timeout(function(){e.$reload()})})},a.prototype.$sendMDN=function(){return this.shouldAskReceipt=0,a.$$resource.post(this.$absolutePath(),"sendMDN")},a.prototype.$deleteAttachment=function(b){var c="deleteAttachment?filename="+b,d=this;a.$$resource.post(this.$absolutePath({asDraft:!0}),c).then(function(c){a.$timeout(function(){d.editable.attachmentAttrs=_.filter(d.editable.attachmentAttrs,function(a){return a.filename!=b})})})},a.prototype.toggleFlag=function(){var b=this,c="markMessageFlagged";return this.isflagged&&(c="markMessageUnflagged"),a.$$resource.post(this.$absolutePath(),c).then(function(c){a.$timeout(function(){b.isflagged=!b.isflagged})})},a.prototype.$isLoading=function(){return this.$loaded==a.STATUS.LOADING},a.prototype.$reload=function(b){var c;return b&&b.useCache&&this.$futureMessageData?this:(c=a.$$resource.fetch(this.$absolutePath(b),"view"),this.$unwrap(c))},a.prototype.$reply=function(){return this.$newDraft("reply")},a.prototype.$replyAll=function(){return this.$newDraft("replyall")},a.prototype.$forward=function(){return this.$newDraft("forward")},a.prototype.$newDraft=function(b){var c=this;return a.$$resource.fetch(this.$absolutePath(),b).then(function(d){var e,f;return a.$log.debug("New "+b+": "+JSON.stringify(d,void 0,2)),e=c.$mailbox.$account.$getMailboxByPath(d.mailboxPath),f=new a(d.accountId,e,d),a.$$resource.fetch(f.$absolutePath({asDraft:!0}),"edit").then(function(d){return a.$log.debug("New "+b+": "+JSON.stringify(d,void 0,2)+" original UID: "+c.uid),angular.extend(f.editable,d),f.origin={message:c,action:b},f})})},a.prototype.$save=function(){var b=this,c=this.editable;return a.$log.debug("save = "+JSON.stringify(c,void 0,2)),a.$$resource.save(this.$absolutePath({asDraft:!0}),c).then(function(c){a.$log.debug("save = "+JSON.stringify(c,void 0,2)),b.$setUID(c.uid),b.$reload(),b.isNew=!1})},a.prototype.$send=function(){var b=this,c=angular.copy(this.editable);return a.$log.debug("send = "+JSON.stringify(c,void 0,2)),a.$$resource.post(this.$absolutePath({asDraft:!0}),"send",c).then(function(c){return"success"==c.status?(angular.isDefined(b.origin)&&(b.origin.action.startsWith("reply")?b.origin.message.isanswered=!0:"forward"==b.origin.action&&(b.origin.message.isforwarded=!0)),c):a.$q.reject(c)})},a.prototype.$unwrap=function(b){var c=this;return this.$loaded=a.STATUS.DELAYED_LOADING,a.$timeout(function(){c.$loaded!=a.STATUS.LOADED&&(c.$loaded=a.STATUS.LOADING)},a.STATUS.DELAYED_MS),this.$futureMessageData=b.then(function(b){return 0===c.isread&&a.$$resource.fetch(c.$absolutePath(),"markMessageRead").then(function(){a.$timeout(function(){c.isread=!0,c.$mailbox.unseenCount--})}),a.$timeout(function(){return angular.extend(c,b),c.$formatFullAddresses(),c.$loadUnsafeContent=!1,c.$loaded=a.STATUS.LOADED,c})}),this.$futureMessageData},a.prototype.$omit=function(a){var b={},c=a&&a.privateAttributes;return angular.forEach(this,function(a,d){("constructor"!=d&&"$"!=d[0]||c)&&(b[d]=a)}),b},a.prototype.saveMessage=function(){var b;return b=[this.uid],a.$$resource.download(this.$mailbox.id,"saveMessages",{uids:b})}}(),function(){"use strict";function a(a){this.$account=a}a.$factory=["$q","$timeout","$log","sgSettings","Message","Mailbox","sgMailbox_PRELOAD",function(b,c,d,e,f,g,h){return angular.extend(a,{$q:b,$timeout:c,$log:d,$Message:g,selectedFolder:null,PRELOAD:h}),a}];try{angular.module("SOGo.MailerUI")}catch(b){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMailbox_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("VirtualMailbox",a.$factory),a.$absolutePath=function(a){return[a,"virtual"].join("/")},a.prototype.init=function(a){this.$isLoading=!1,this.$mailboxes=[],this.uidsMap={},angular.extend(this,a),this.id=this.$id()},a.prototype.setMailboxes=function(a){this.$mailboxes=a,_.forEach(this.$mailboxes,function(a){a.$messages=[],a.uidsMap={}})},a.prototype.startSearch=function(b,c){var d=this,e=a.$q.when();this.$isLoading=!0,_.forEach(this.$mailboxes,function(f){e=e.then(function(){return d.$isLoading?(a.$log.debug("searching mailbox "+f.path),f.$filter({sort:"date",asc:!1,match:b},c)):void 0})}),e["finally"](function(){d.$isLoading=!1})},a.prototype.stopSearch=function(){a.$log.debug("stopping search..."),this.$isLoading=!1},a.prototype.selectFolder=function(){},a.prototype.resetSelectedMessage=function(){_.forEach(this.$mailboxes,function(a){delete a.selectedMessage})},a.prototype.hasSelectedMessage=function(){return angular.isDefined(_.find(this.$mailboxes,function(a){return angular.isDefined(a.selectedMessage)}))},a.prototype.isSelectedMessage=function(a,b){return angular.isDefined(_.find(this.$mailboxes,function(c){return c.path==b&&c.selectedMessage==a}))},a.prototype.getLength=function(){var a=0;return angular.isDefined(this.$mailboxes)?(_.forEach(this.$mailboxes,function(b){a+=b.$messages.length}),a):a},a.prototype.getItemAtIndex=function(a){var b,c,d,e,f;if(angular.isDefined(this.$mailboxes)&&a>=0)for(b=0,c=0;c<this.$mailboxes.length;c++)for(e=this.$mailboxes[c],d=0;d<e.$messages.length;b++,d++)if(f=e.$messages[d],b==a&&e.$loadMessage(f.uid))return f;return null},a.prototype.$id=function(){return a.$absolutePath(this.$account.id)},a.prototype.$selectedCount=function(){return 0},a.prototype.$flagMessages=function(a,b,c){},a.prototype.$deleteMessages=function(a){},a.prototype.$copyMessages=function(a,b){},a.prototype.$moveMessages=function(a,b){}}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k){function m(a){k.$virtualMode?c.go("mail.account.virtualMailbox.message",{accountId:f.id,mailboxId:h(a.$mailbox.path),messageId:a.uid}):c.go("mail.account.mailbox.message",{messageId:a.uid})}function n(a,b){b.selected=!b.selected,B.mode.multiple+=b.selected?1:-1,a.preventDefault(),a.stopPropagation()}function o(){_.forEach(B.selectedFolder.$messages,function(a){a.selected=!1}),B.mode.multiple=0}function p(){i.confirm(l("Warning"),l("Are you sure you want to delete the selected messages?"),{ok:l("Delete")}).then(function(){var a=!1,b=_.filter(B.selectedFolder.$messages,function(b){return b.selected&&b.uid==B.selectedFolder.selectedMessage&&(a=!0),b.selected});B.selectedFolder.$deleteMessages(b).then(function(b){r(a,b)})})}function q(){var a=!1,b=_.filter(B.selectedFolder.$messages,function(b){return b.selected&&b.uid==B.selectedFolder.selectedMessage&&(a=!0),b.selected});B.selectedFolder.$markOrUnMarkMessagesAsJunk(b).then(function(){var c="/"+B.account.id+"/folderINBOX";"junk"!=B.selectedFolder.type&&(c="/"+B.account.$getMailboxByType("junk").id),B.selectedFolder.$moveMessages(b,c).then(function(b){r(a,b)})})}function r(a,b){var d,e,f=b;B.mode.multiple=B.selectedFolder.$selectedCount(),a&&(k.$virtualMode?c.go("mail.account.virtualMailbox"):(b>0&&(f-=1,d=B.selectedFolder.$messages[f]),b<B.selectedFolder.$messages.length&&(e=B.selectedFolder.$messages[b]),d?d.isread&&e&&!e.isread&&(f=b,d=e):e&&(f=b,d=e),d?(c.go("mail.account.mailbox.message",{messageId:d.uid}),B.selectedFolder.$topIndex=f):c.go("mail.account.mailbox")))}function s(a){var b=_.filter(B.selectedFolder.$messages,function(a){return a.selected}),c=_.map(b,"uid");B.selectedFolder.$copyMessages(c,"/"+a)}function t(a){var b=!1,c=_.filter(B.selectedFolder.$messages,function(a){return a.selected&&a.uid==B.selectedFolder.selectedMessage&&(b=!0),a.selected});B.selectedFolder.$moveMessages(c,"/"+a).then(function(a){r(b,a)})}function u(){for(var a=0,b=B.selectedFolder.$messages.length;b>a;a++)B.selectedFolder.$messages[a].selected=!0;B.mode.multiple=b}function v(){var a=_.filter(B.selectedFolder.$messages,function(a){return a.selected}),b=_.map(a,"uid");B.selectedFolder.$flagMessages(b,"\\Flagged","add").then(function(b){_.forEach(a,function(a){a.isflagged=!0})})}function w(){var a=_.filter(B.selectedFolder.$messages,function(a){return a.selected}),b=_.map(a,"uid");B.selectedFolder.$flagMessages(b,"seen","remove").then(function(b){_.forEach(a,function(a){a.isread=!1,B.selectedFolder.unseenCount++})})}function x(a){B.selectedFolder.$filter({sort:a})}function y(a){return k.$query.sort==a}function z(){B.mode.search=!1,B.selectedFolder.$filter().then(function(){B.selectedFolder.selectedMessage&&b(function(){B.selectedFolder.$topIndex=B.selectedFolder.uidsMap[B.selectedFolder.selectedMessage]})})}function A(a){var b;null===C&&(b=B.account.$newMessage(),C=d.show({parent:angular.element(document.body),targetEvent:a,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:B.account,stateMessage:b,stateRecipients:[]}})["finally"](function(){C=null}))}var B=this,C=null;a.$mailboxController=B,g.selectFolder(),B.service=k,B.accounts=e,B.account=f,B.selectedFolder=g,B.selectMessage=m,B.toggleMessageSelection=n,B.unselectMessages=o,B.confirmDeleteSelectedMessages=p,B.markOrUnMarkMessagesAsJunk=q,B.copySelectedMessages=s,B.moveSelectedMessages=t,B.markSelectedMessagesAsFlagged=v,B.markSelectedMessagesAsUnread=w,B.selectAll=u,B.sort=x,B.sortedBy=y,B.cancelSearch=z,B.newMessage=A,B.mode={search:!1,multiple:0}}function b(a){return a[0].controller.prototype.resetScroll=function(){"messagesList"==this.$element.parent().attr("id")?this.updateSize():this.scrollTo(0)},a}a.$inject=["$window","$timeout","$state","$mdDialog","stateAccounts","stateAccount","stateMailbox","encodeUriFilter","Dialog","Account","Mailbox"],angular.module("material.components.virtualRepeat").decorator("mdVirtualRepeatContainerDirective",b),b.$inject=["$delegate"],angular.module("SOGo.MailerUI").controller("MailboxController",a)}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k,m,n,o,p,q,r,s){function t(a){P.showingAdvancedSearch=!0,P.search.mailbox=a,f(h["gt-md"])||g("left").close()}function u(){P.showingAdvancedSearch=!1,P.service.$virtualMode=!1,N=P.accounts[0],O=P.searchPreviousMailbox,a.go("mail.account.mailbox",{accountId:N.id,mailboxId:j(O.path)})}function v(){if(o.selectedFolder.$isLoading)P.virtualMailbox.stopSearch();else{var b,c=[],d=function(a){_.forEach(a,function(a){c.push(a),a.children&&a.children.length>0&&d(a.children)})};P.virtualMailbox=new p(P.accounts[0]),o.$virtualMode||(P.searchPreviousMailbox=o.selectedFolder),o.selectedFolder=P.virtualMailbox,o.$virtualMode=!0,angular.isDefined(P.search.mailbox)?(b=P.accounts[0].$getMailboxByPath(P.search.mailbox),c.push(b),P.search.subfolders&&b.children.length&&d(b.children)):c=P.accounts[0].$flattenMailboxes(),P.virtualMailbox.setMailboxes(c),P.virtualMailbox.startSearch(P.search.match,P.search.params),a.go("mail.account.virtualMailbox",{accountId:P.accounts[0].id})}}function w(a){return P.currentSearchParam=a,i("advancedSearch"),!1}function x(a){if(a.length&&P.currentSearchParam.length){var b=0,c=P.currentSearchParam;return a.startsWith("!")&&(b=1,a=a.substring(1).trim()),P.currentSearchParam="",{searchBy:c,searchInput:a,negative:b}}}function y(a){a.$expanded=!a.$expanded,a.$flattenMailboxes({reload:!0,saveState:!0}),b(function(){angular.element(c).triggerHandler("resize")},150)}function z(a){k.prompt(l("New folder"),l("Enter the new name of your folder :")).then(function(b){a.$newMailbox(a.id,b).then(function(){},function(a,c){k.alert(l('An error occured while creating the mailbox "%{0}".',b),l(a.error))})})}function A(a){function b(a,b,c,d){function e(a){return c.$filter(a,d.delegates)}function f(){b.hide()}function g(a){d.$removeDelegate(a.uid)["catch"](function(a,b){k.alert(l("Warning"),l("An error occured please try again."))})}function h(a){a&&d.$addDelegate(a).then(function(){i.userToAdd="",i.searchText=""},function(a){k.alert(l("Warning"),a)})}var i=this;i.users=d.delegates,i.account=d,i.userToAdd="",i.searchText="",i.userFilter=e,i.closeModal=f,i.removeUser=g,i.addUser=h}d.show({templateUrl:a.id+"/delegation",controller:b,controllerAs:"delegate",clickOutsideToClose:!0,escapeToClose:!0,locals:{User:q,account:a}}),b.$inject=["$scope","$mdDialog","User","account"]}function B(a){P.editMode=a.path,i("mailboxName_"+a.path)}function C(a){a.$reset(),P.editMode=!1}function D(b,c,d){P.editMode!=d.path&&(P.editMode=!1,P.showingAdvancedSearch=!1,P.service.$virtualMode=!1,f(h["gt-md"])||g("left").close(),a.go("mail.account.mailbox",{accountId:c.id,mailboxId:j(d.path)}),b.stopPropagation(),b.preventDefault())}function E(a){a.$rename().then(function(a){P.editMode=!1})}function F(a){a.$compact().then(function(){e.show(e.simple().content(l("Folder compacted")).position("top right").hideDelay(3e3));
})}function G(a){a.$emptyTrash().then(function(){e.show(e.simple().content(l("Trash emptied")).position("top right").hideDelay(3e3))})}function H(b){k.confirm(l("Confirmation"),l("Do you really want to move this folder into the trash ?")).then(function(){b.$delete().then(function(){a.go("mail.account.inbox")},function(a,c){k.alert(l('An error occured while deleting the mailbox "%{0}".',b.name),l(a.error))})})}function I(a){a.$markAsRead()}function J(a){a.$acl.$users().then(function(){d.show({templateUrl:a.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:a.$acl.users,User:q,folder:a}})})}function K(a){return"inbox"==a.type?{name:a.name,icon:"inbox"}:"draft"==a.type?{name:l("DraftsFolderName"),icon:"drafts"}:"sent"==a.type?{name:l("SentFolderName"),icon:"send"}:"trash"==a.type?{name:l("TrashFolderName"),icon:"delete"}:"junk"==a.type?{name:l("JunkFolderName"),icon:"thumb_down"}:"additional"==a.type?{name:a.name,icon:"folder_shared"}:{name:a.name,icon:"folder_open"}}function L(a,b){a.$setFolderAs(b).then(function(){a.$account.$getMailboxes({reload:!0})})}function M(){var a=window.unseenCountFolders;_.forEach(P.accounts,function(b){_.includes(a,b.id+"/folderINBOX")||a.push(b.id+"/folderINBOX"),_.forEach(b.$$flattenMailboxes,function(b){angular.isDefined(b.unseenCount)&&!_.includes(a,b.id)&&a.push(b.id)})}),n.$$resource.post("","unseenCount",{mailboxes:a}).then(function(a){_.forEach(P.accounts,function(b){_.forEach(b.$$flattenMailboxes,function(b){a[b.id]&&(b.unseenCount=a[b.id])})})}),r.ready().then(function(){var a=r.defaults.SOGoRefreshViewCheck;a&&"manually"!=a&&b(P.refreshUnseenCount,1e3*a.timeInterval())})}var N,O,P=this;P.service=o,P.accounts=s,P.toggleAccountState=y,P.newFolder=z,P.delegate=A,P.editFolder=B,P.revertEditing=C,P.selectFolder=D,P.saveFolder=E,P.compactFolder=F,P.emptyTrashFolder=G,P.confirmDelete=H,P.markFolderRead=I,P.share=J,P.metadataForFolder=K,P.setFolderAs=L,P.refreshUnseenCount=M,P.showingAdvancedSearch=!1,P.currentSearchParam="",P.addSearchParam=w,P.newSearchParam=x,P.showAdvancedSearch=t,P.hideAdvancedSearch=u,P.toggleAdvancedSearch=v,P.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:[]},P.refreshUnseenCount()}a.$inject=["$state","$timeout","$window","$mdDialog","$mdToast","$mdMedia","$mdSidenav","sgConstant","sgFocus","encodeUriFilter","Dialog","sgSettings","Account","Mailbox","VirtualMailbox","User","Preferences","stateAccounts"],angular.module("SOGo.MailerUI").controller("MailboxesController",a)}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){function t(){var b,c,d={};return a.opener&&a.opener.$mailboxController&&a.opener.$mailboxController.selectedFolder.$id()==i.$id()&&(c=a.opener.$mailboxController,d.mailboxCtrl=c,a.opener.$messageController&&a.opener.$messageController.message.uid==j.uid&&(b=a.opener.$messageController,d.messageCtrl=b)),d}function u(a){L.$showDetailedRecipients=!L.$showDetailedRecipients,a.stopPropagation(),a.preventDefault()}function v(a){var b,c,d,e;"A"==a.target.tagName&&"href"in a.target.attributes&&(b=a.target.attributes.href.value,c=/^mailto:([^\?]+)/.exec(b),c&&(d=_.map(decodeURIComponent(c[1]).split(","),function(a){return"<"+a+">"}),e={to:d},_.forEach(["subject","body"],function(a){var d=new RegExp(a+"=([^&]+)");a="body"==a?"text":a,c=d.exec(b),c&&(e[a]=[decodeURIComponent(c[1])])}),_.forEach(["cc","bcc"],function(a){var d=new RegExp(a+"=([^&]+)");c=d.exec(b),c&&(e[a]=[decodeURIComponent(c[1])])}),F(a,e)))}function w(){var a,b,e,g,h,k=t();k.messageCtrl?(a=k.mailboxCtrl.selectedFolder,b=k.messageCtrl.message,e=k.messageCtrl.$state):(a=i,b=j,e=c),a.$deleteMessages([b]).then(function(c){var i=c;if(b=null,angular.isDefined(e)){c>0&&(i-=1,g=a.$messages[i]),c<a.$messages.length&&(h=a.$messages[c]),g?g.isread&&h&&!h.isread&&(i=c,g=h):h&&(i=c,g=h);try{g&&d(f["gt-md"])?(e.go("mail.account.mailbox.message",{messageId:g.uid}),i<a.$topIndex?a.$topIndex=i:i>a.$lastVisibleIndex&&(a.$topIndex=i-(a.$lastVisibleIndex-a.$topIndex))):e.go("mail.account.mailbox").then(function(){b=null,delete a.selectedMessage})}catch(j){}}E()})}function x(a,b){null===M&&(M=e.show({parent:angular.element(document.body),targetEvent:a,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:L.account,stateMessage:b}})["finally"](function(){M=null,E()}))}function y(){c.go("mail.account.mailbox").then(function(){L.message=null,delete i.selectedMessage})}function z(a){var b=L.message.$reply();x(a,b)}function A(a){var b=L.message.$replyAll();x(a,b)}function B(a){var b=L.message.$forward();x(a,b)}function C(a){L.message.$editableContent().then(function(){x(a,L.message)})}function D(){var b=[l.baseURL(),"UIxMailPopupView#/Mail",L.message.accountId,k(k(L.message.$mailbox.path)),L.message.uid].join("/"),c=L.message.$absolutePath();N=a.open(b,c,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))}function E(){a.opener&&a.close()}function F(a,b){L.account.$newMessage().then(function(c){angular.extend(c.editable,b),x(a,c)}),a.stopPropagation(),a.preventDefault()}function G(a){L.showRawSource||L.message.$rawSource?L.showRawSource=!L.showRawSource:s.$$resource.post(L.message.id,"viewsource").then(function(a){L.message.$rawSource=a,L.showRawSource=!0})}function H(b){a.print()}function I(a){return K(a,"appointment")}function J(a){return K(a,"task")}function K(a,b){L.message.$plainContent().then(function(c){var d={pid:o.$defaultCalendar(),type:b,summary:c.subject,comment:c.content},f=new p(d),g=[l.activeUser("folderURL"),"Calendar","UIx"+b.capitalize()+"EditorTemplate"].join("/");return e.show({parent:angular.element(document.body),targetEvent:a,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:g,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:f}})})}var L=this,M=null,N=null;a.$messageController=L,L.$state=c,L.accounts=g,L.account=h,L.mailbox=i,L.message=j,L.service=s,L.tags={searchText:"",selected:""},L.showFlags=j.flags&&j.flags.length>0,L.$showDetailedRecipients=!1,L.toggleDetailedRecipients=u,L.filterMailtoLinks=v,L.deleteMessage=w,L.close=y,L.reply=z,L.replyAll=A,L.forward=B,L.edit=C,L.openPopup=D,L.closePopup=E,L.newMessage=F,L.toggleRawSource=G,L.showRawSource=!1,L.print=H,L.convertToEvent=I,L.convertToTask=J,a.opener?(b.$watchCollection(function(){return L.message.flags},function(a,b){var c;(a||b)&&(c=t(),c.messageCtrl&&c.messageCtrl.service.$timeout(function(){c.messageCtrl.showFlags=!0,c.messageCtrl.message.flags=a}))}),b.$watch(function(){return L.message.isflagged},function(a,b){var c=t();c.mailboxCtrl&&c.mailboxCtrl.service.$timeout(function(){var b=_.find(c.mailboxCtrl.selectedFolder.$messages,{uid:L.message.uid});b.isflagged=a})})):b.$watchCollection(function(){return L.message.flags},function(a,b){var c,d,e;(a||b)&&(c=a||[],d=b||[],_.forEach(c,function(a,b){angular.isObject(a)&&(c[b]=a.name)}),c.length>d.length?(e=_.difference(c,d),_.forEach(e,function(a){L.message.addTag(a)})):c.length<d.length&&(e=_.difference(d,c),_.forEach(e,function(a){L.message.removeTag(a)})))})}a.$inject=["$window","$scope","$state","$mdMedia","$mdDialog","sgConstant","stateAccounts","stateAccount","stateMailbox","stateMessage","encodeUriFilter","sgSettings","sgFocus","Dialog","Calendar","Component","Account","Mailbox","Message"],angular.module("SOGo.MailerUI").controller("MessageController",a)}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k,m,n,o){function p(){var b,c={};return a.opener&&a.opener.$mailboxController&&("draft"==a.opener.$mailboxController.selectedFolder.type?(c.draftMailboxCtrl=a.opener.$mailboxController,a.opener.$messageController&&a.opener.$messageController.message.uid==h.uid&&(c.draftMessageCtrl=a.opener.$messageController)):h.origin&&(b=h.origin.message,a.opener.$mailboxController.selectedFolder.$id()==b.$mailbox.$id()&&(c.originMailboxCtrl=a.opener.$mailboxController))),c}function q(){var a,b,c,d=y.message.editable.attachmentAttrs;if(d)for(a=0;a<d.length;a++)b={name:d[a].filename,type:d[a].mimetype,size:parseInt(d[a].size)},c=new f.FileItem(y.uploader,b),c.progress=100,c.isUploaded=!0,c.isSuccess=!0,c.inlineUrl=d[a].url,y.uploader.queue.push(c)}function r(a){a.isUploading?y.uploader.cancelItem(a):(y.message.$deleteAttachment(a.file.name),a.remove())}function s(){y.autosave&&j.cancel(y.autosave),y.message.isNew&&y.message.attachmentAttrs&&y.message.$mailbox.$deleteMessages([y.message]),d.cancel()}function t(){var a=p();y.message.$save().then(function(b){y.message.$rawSource=null,a.draftMailboxCtrl&&a.draftMailboxCtrl.selectedFolder.$filter().then(function(){a.draftMessageCtrl&&a.draftMessageCtrl.$state.go("mail.account.mailbox.message",{messageId:y.message.uid})}),e.show(e.simple().content(l("Your email has been saved")).position("top right").hideDelay(3e3))})}function u(){var a=p();y.autosave&&j.cancel(y.autosave),y.message.$send().then(function(b){a.draftMailboxCtrl&&a.draftMailboxCtrl.selectedFolder.$filter().then(function(){a.draftMessageCtrl&&a.draftMessageCtrl.close()}),a.originMailboxCtrl&&a.originMailboxCtrl.selectedFolder.$filter(),e.show(e.simple().content(l("Your email has been sent")).position("top right").hideDelay(3e3)),d.hide()})}function v(a){return m.$filterAll(a).then(function(a){var b=[];return _.forEach(_.invokeMap(a,"explode"),function(a){_.forEach(a,function(a){b.push(a)})}),_.uniqBy(b,function(a){return a.$$fullname+" "+a.$$email})})}function w(a,b){var c,d,e;return angular.isString(a)?a:(c=y.message.editable[b],a.$isList({expandable:!0})?angular.isDefined(a.refs)&&a.refs.length?_.forEach(a.refs,function(a){a.email.length&&c.push(a.$shortFormat())}):(e=n.$find(a.container,a.c_name),e.$id().then(function(a){_.forEach(e.refs,function(a){a.email.length&&c.push(a.$shortFormat())})})):d=a.$shortFormat(),d?d:null)}function x(){y.message.$save(),o.defaults.SOGoMailAutoSave&&(y.autosave=j(y.autosaveDrafts,1e3*o.defaults.SOGoMailAutoSave*60))}var y=this,z=186;y.addRecipient=w,y.autocomplete={to:{},cc:{},bcc:{}},y.autosave=null,y.autosaveDrafts=x,y.hideCc=0===h.editable.cc.length,y.hideBcc=0===h.editable.bcc.length,y.cancel=s,y.save=t,y.send=u,y.removeAttachment=r,y.contactFilter=v,y.identities=_.map(g.identities,"full"),y.recipientSeparatorKeys=[c.KEY_CODE.ENTER,c.KEY_CODE.TAB,c.KEY_CODE.COMMA,z],y.uploader=new f({url:h.$absolutePath({asDraft:!0})+"/save",autoUpload:!0,alias:"attachments",removeAfterUpload:!1,onSuccessItem:function(a,b,c,d){h.$setUID(b.uid),h.$reload({asDraft:!1}),a.inlineUrl=b.lastAttachmentAttrs[0].url},onCancelItem:function(a,b,c,d){h.$deleteAttachment(a.file.name),this.removeFromQueue(a)},onErrorItem:function(a,b,c,d){e.show(e.simple().content(l('Error while uploading the file "%{0}":',a.file.name)).position("top right").hideDelay(3e3)),this.removeFromQueue(a)}}),"reply"==b.actionName?h.$reply().then(function(a){y.message=a,y.hideCc=!a.editable.cc||0===a.editable.cc.length,y.hideBcc=!a.editable.bcc||0===a.editable.bcc.length}):"replyall"==b.actionName?h.$replyAll().then(function(a){y.message=a,y.hideCc=!a.editable.cc||0===a.editable.cc.length,y.hideBcc=!a.editable.bcc||0===a.editable.bcc.length}):"forward"==b.actionName?h.$forward().then(function(a){y.message=a,q()}):angular.isDefined(h)&&(y.message=h,q()),o.ready().then(function(){o.defaults.SOGoMailAutoSave&&(y.autosave=j(y.autosaveDrafts,1e3*o.defaults.SOGoMailAutoSave*60)),y.localeCode=o.defaults.LocaleCode})}function b(a,b){a.closeToast=function(){b.hide()}}a.$inject=["$window","$stateParams","$mdConstant","$mdDialog","$mdToast","FileUploader","stateAccount","stateMessage","encodeUriFilter","$timeout","Dialog","AddressBook","Card","Preferences"],b.$inject=["$scope","$mdToast"],angular.module("SOGo.MailerUI").controller("SendMessageToastController",b).controller("MessageEditorController",a)}(),function(){"use strict";function a(){function a(a,b,c,d){d.pathToAttachment=c.sgImipPath}return{restrict:"A",link:a,controller:"sgImipController"}}function b(a,b){var c=this;a.delegateInvitation=!1,a.delegatedTo="",a.searchText="",a.userFilter=function(a){return b.$filter(a)},a.iCalendarAction=function(b){var d;"delegate"==b&&(d={receiveUpdates:!1,delegatedTo:a.delegatedTo.c_email}),a.viewer.message.$imipAction(c.pathToAttachment,b,d)}}b.$inject=["$scope","User"],angular.module("SOGo.MailerUI").controller("sgImipController",b).directive("sgImip",a)}(),function(){"use strict";function a(){function a(a,b,c,d){var e,f=b.parent();e=function(a){"IMG"==a.target.tagName&&f.toggleClass("sg-zoom")},b.on("click",e)}return{restrict:"A",link:a}}angular.module("SOGo.MailerUI").directive("sgZoomableImage",a)}();
//# sourceMappingURL=Mailer.services.js.map