Zimlet cookbook based on JavaScript API: Difference between revisions

Line 17: Line 17:
</pre>
</pre>


The email dropped(zmObject) can be either a conversation or a single email. This zmObject internally has an object called 'srcObj' (aka 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.
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.
<pre>
<pre>
com_zimbra_coloredemails.prototype.doDrop =
com_zimbra_coloredemails.prototype.doDrop =
Line 23: Line 23:
     var msgObj = zmObject.srcObj;//get access to source-object
     var msgObj = zmObject.srcObj;//get access to source-object


     if (zmObject.type == "CONV") {//if its a conversation i.e. "ZmConv"...
     //if its a conversation i.e. "ZmConv" object, get the first loaded message "ZmMailMsg" object within that.
       msgObj  = zmObject.getFirstHotMsg();//get the first loaded message "ZmMailMsg" object
    if (zmObject.type == "CONV") {
       msgObj  = zmObject.getFirstHotMsg();
     }
     }


  //At this point we have a single message "ZmMailMsg" object and we can access all its properties.
 
  msgObj.
};
};
</pre>
  At this point we have a single message "ZmMailMsg" object and we can access all its properties.
 
====Get mail subject====
<pre>
  var subject = msgObj.subject; //where msgObj is of typu "ZmMailMsg"
<pre>
====Get all email addresses====
  <pre>
var emails = [];//stores all email address in the email
var participants = msgObj.participants.getArray();
for(var i =0; i < participants.length; i++) {
  emails.push(participants[i].address);
}
</pre>
====Get email addresses only in CC====
<pre>
var ccemails = [];//stores all email address in the email
var participants = msgObj.participants.getArray();
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";
</pre>
</pre>



Revision as of 05:41, 31 March 2009

Mail

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 typu "ZmMailMsg"
<pre>
 ====Get all email addresses====
  <pre>
var emails = [];//stores all email address in the email
var participants = msgObj.participants.getArray();
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();
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";

Calendar

AddressBook

Notebook

Tasks

Briefcase

General(Common to all apps modules )

Jump to: navigation, search