Zimlet cookbook based on JavaScript API: Difference between revisions
(→Mail) |
No edit summary |
||
Line 36: | Line 36: | ||
====Get mail subject==== | ====Get mail subject==== | ||
<pre> | <pre> | ||
var subject = msgObj.subject; //where msgObj is of | var subject = msgObj.subject; //where msgObj is of type "ZmMailMsg" | ||
</pre> | |||
====Get all email addresses==== | |||
<pre> | <pre> | ||
var emails = [];//stores all email address in the email | var emails = [];//stores all email address in the email | ||
var participants = msgObj.participants.getArray(); | var participants = msgObj.participants.getArray(); //where msgObj is of type "ZmMailMsg" | ||
for(var i =0; i < participants.length; i++) { | for(var i =0; i < participants.length; i++) { | ||
emails.push(participants[i].address); | emails.push(participants[i].address); | ||
Line 50: | Line 50: | ||
<pre> | <pre> | ||
var ccemails = [];//stores all email address in the email | var ccemails = [];//stores all email address in the email | ||
var participants = msgObj.participants.getArray(); | var participants = msgObj.participants.getArray(); //where msgObj is of type "ZmMailMsg" | ||
for(var i =0; i < participants.length; i++) { | for(var i =0; i < participants.length; i++) { | ||
if(participants[i].type == AjxEmailAddress.CC) { | if(participants[i].type == AjxEmailAddress.CC) { | ||
Line 65: | Line 65: | ||
AjxEmailAddress.SENDER = "SENDER"; | AjxEmailAddress.SENDER = "SENDER"; | ||
</pre> | </pre> | ||
== Calendar == | == Calendar == |
Revision as of 05:42, 31 March 2009
1. How to get access to an email's to,cc,bcc,subject, body information when its drag-dropped onto Zimlet's panel Item? First off we need to allow message(ZmMailMsg) or conversation(ZmConv) to be dragged onto Zimlet Panel Item.
<zimletPanelItem label="Zimlet Name" icon="Zimlet-panelIcon"> <dragSource type="ZmConv" /> <dragSource type="ZmMailMsg" /> </zimletPanelItem>
Then, within the Zimlet's Javascript file, we need to override 'doDrop' function.
com_zimbra_coloredemails.prototype.doDrop = function(zmObject) { };
The email dropped(zmObject) can be either a conversation or a single email. This zmObject internally has an object called 'srcObj' (source-object) and contains the real or actual Zimbra Object that was dropped. Once we get access to this, we can access all the properties and even functions.
com_zimbra_coloredemails.prototype.doDrop = function(zmObject) { var msgObj = zmObject.srcObj;//get access to source-object //if its a conversation i.e. "ZmConv" object, get the first loaded message "ZmMailMsg" object within that. if (zmObject.type == "CONV") { msgObj = zmObject.getFirstHotMsg(); } };
At this point we have a single message "ZmMailMsg" object and we can access all its properties.
Get mail subject
var subject = msgObj.subject; //where msgObj is of type "ZmMailMsg"
====Get all email addresses====
var emails = [];//stores all email address in the email var participants = msgObj.participants.getArray(); //where msgObj is of type "ZmMailMsg" for(var i =0; i < participants.length; i++) { emails.push(participants[i].address); }
Get email addresses only in CC
var ccemails = [];//stores all email address in the email var participants = msgObj.participants.getArray(); //where msgObj is of type "ZmMailMsg" for(var i =0; i < participants.length; i++) { if(participants[i].type == AjxEmailAddress.CC) { ccemails.push(participants[i].address); } } PS: Email address type can be any of the following: AjxEmailAddress.FROM = "FROM"; AjxEmailAddress.TO = "TO"; AjxEmailAddress.CC = "CC"; AjxEmailAddress.BCC = "BCC"; AjxEmailAddress.REPLY_TO = "REPLY_TO"; AjxEmailAddress.SENDER = "SENDER";