1 //global array creation and declaration
\r
2 var contentType = new Array();
\r
3 var uri = new Array();
\r
4 var url = new Array();
\r
5 var name = new Array();
\r
6 var test = new Array();
\r
8 var MBstrBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"].
\r
9 getService(Components.interfaces.nsIStringBundleService);
\r
10 var mboximportbundle = MBstrBundleService.createBundle("chrome://mboximport/locale/mboximport.properties");
\r
11 //function to get the required details of the selected email
\r
15 setTimeout("createConnection()",5000)
\r
16 if (getconnect_server() == "false")
\r
18 alert("Please Login To The Database First !")
\r
21 setTimeout("module_install()", 10000)
\r
22 if (getmodule_install() == "no")
\r
24 alert("Please install the thunderbird module on your '" + getDbName() +"' database and try again !");
\r
27 if(GetNumSelectedMessages() < 1 || GetNumSelectedMessages() > 1){
\r
28 alert("You must select only one mail to archive");
\r
35 function searchmail()
\r
37 if (check() == false){
\r
40 var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
\r
41 var username = Components.classes["@mozilla.org/process/environment;1"].
\r
42 getService(Components.interfaces.nsIEnvironment).get('USERNAME')
\r
43 var version_obj = prefService.getBranch("extensions.");
\r
44 version_obj.QueryInterface(Components.interfaces.nsIPrefBranch2);
\r
45 version = version_obj.getCharPref("lastAppVersion");
\r
46 version = parseInt(version[0])
\r
48 file = getPredefinedFolder(2);
\r
52 var emlsArray = gFolderDisplay.selectedMessages;
\r
56 var emlsArray = GetSelectedMessages();
\r
59 IETtotal = emlsArray.length;
\r
61 var msguri = emlsArray[0];
\r
64 //gives the selected email uri
\r
65 var messageUri= gDBView.URIForFirstSelectedMessage;
\r
67 var messenger = Components.classes['@mozilla.org/messenger;1'].createInstance(Components.interfaces.nsIMessenger);
\r
69 //gives the selected email object
\r
70 var message = messenger.messageServiceFromURI(messageUri).messageURIToMsgHdr(messageUri);
\r
75 m_uri = message.folder.getUriForMsg(message);
\r
76 saveMsgAsEML(m_uri,file,false,emlsArray,null);
\r
80 saveMsgAsEML(msguri,file,false,emlsArray,null);
\r
83 //gives the received email date
\r
84 var stdate = new Date(message.date / 1000);
\r
86 //functionality to split the author name and email
\r
87 if(message.author.charAt(0) == '"'){
\r
88 sendername = message.author.split('"')[1].split('"')[0];
\r
90 else if(message.author.indexOf('<')!=-1){
\r
91 sendername = message.author.split('<')[0];
\r
94 sendername = message.author;
\r
96 if(message.author.indexOf('<')!=-1){
\r
97 senderemail = message.author.split('<')[1].split('>')[0];
\r
100 senderemail = message.author
\r
103 //gives the receiver email address
\r
104 receiveremail = message.mime2DecodedRecipients;
\r
106 //parsing the received date in the particular format
\r
107 receivedDate = stdate.getFullYear()+'/'+(stdate.getMonth()+1)+'/'+stdate.getDate();
\r
109 //gives the selected email subject
\r
110 subject = message.subject;
\r
112 //gives the selected email cclist
\r
113 cclist = message.ccList;
\r
115 //gives the selected email message body in text format
\r
118 var listener = Components.classes["@mozilla.org/network/sync-stream-listener;1"].createInstance(Components.interfaces.nsISyncStreamListener);
\r
119 var uri = message.folder.getUriForMsg(message);
\r
120 messenger.messageServiceFromURI(uri)
\r
121 .streamMessage(uri, listener, null, null, false, "");
\r
122 var folder = message.folder;
\r
123 messagebody = folder.getMsgTextFromStream(listener.inputStream,message.Charset,65536,32768,false,true,{})
\r
127 messagebody = getMessageBrowser().docShell.contentViewer.DOMDocument.body.textContent;
\r
129 //gives the selected email message body in html format
\r
130 msghtmlbody = ""// getMessageBrowser().docShell.contentViewer.DOMDocument.body.innerHTML;
\r
132 //set the initial information for the selected email
\r
133 setSenderEmail(senderemail);
\r
134 setSenderName(sendername);
\r
135 setReceiverEmail(receiveremail);
\r
136 setSubject(subject);
\r
137 setReceivedDate(receivedDate);
\r
139 setMessageBody(messagebody);
\r
140 getPref().setCharPref('displayName','');
\r
141 getPref().setCharPref('attachmentdata','');
\r
144 getPref().setCharPref('attachmentlength',currentAttachments.length);
\r
145 //retrieving the information for the selected email's attachment
\r
146 if(currentAttachments.length > 0){
\r
147 for(i=0;i<currentAttachments.length;i++){
\r
148 contentType[i] = currentAttachments[i].contentType;
\r
149 uri = currentAttachments[i].uri;
\r
150 url[i] = currentAttachments[i].url;
\r
151 name[i] = currentAttachments[i].displayName;
\r
152 var obj = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
\r
153 if(navigator.userAgent.indexOf('Linux')!= -1){
\r
154 obj.initWithPath("/tmp/");
\r
156 else if(navigator.userAgent.indexOf('Win')!= -1){
\r
157 obj.initWithPath("C:\\Users\\"+ username +"\\");
\r
159 else if(navigator.userAgent.indexOf('Mac OS X')!= -1){
\r
160 obj.initWithPath("/tmp/");
\r
163 alert("Not Compatible for this Operating System");
\r
166 //saving the attachment files in system's temp folder
\r
167 test[i] = messenger.saveAttachmentToFolder(contentType[i],url[i],name[i],uri,obj);
\r
169 //function to read the attachment file contents
\r
170 att =getAttachValue()
\r
171 window.open("chrome://openerp_plugin/content/plugin.xul", "", "chrome, resizable=yes");
\r
172 createInstance(name,test)
\r
177 window.open("chrome://openerp_plugin/content/plugin.xul", "", "chrome, resizable=yes");
\r
182 var openPartnerHandler = {
\r
183 onResult: function(client, context, result) {
\r
184 netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
\r
185 // var sendername = getSenderEmail();
\r
186 var arrIdList = result.QueryInterface(Components.interfaces.nsISupportsArray);
\r
187 var count = arrIdList.Count();
\r
188 for (var i = 0; i < count; i++) {
\r
189 var strlResult = arrIdList.QueryElementAt(i, Components.interfaces.nsISupportsArray);
\r
190 var strlSearchResult = strlResult.QueryElementAt(0, Components.interfaces.nsISupportsCString);
\r
191 var strlSearchResultValue = strlResult.QueryElementAt(1, Components.interfaces.nsISupportsCString);
\r
192 if(strlSearchResult=="email" && strlSearchResultValue=='')
\r
194 alert("Partner is not Available.");
\r
197 if(strlSearchResult=="partner_id"){
\r
198 partner_id = strlSearchResultValue;
\r
199 weburl = getWebServerURL();
\r
201 if (parseInt(partner_id) > 0){
\r
202 //Encode the url and form an url to have menu in webclient
\r
203 var encoded = encodeURIComponent("/openerp/form/view?model=res.partner&id="+partner_id)
\r
204 var t = weburl + "?next=" + encoded
\r
205 var messenger = Components.classes["@mozilla.org/messenger;1"].createInstance();
\r
206 messenger = messenger.QueryInterface(Components.interfaces.nsIMessenger);
\r
207 messenger.launchExternalURL(t);
\r
210 alert("Partner is not Available.");
\r
216 onFault: function (client, ctxt, fault) {
\r
220 onError: function (client, ctxt, status, errorMsg) {
\r
226 function searchPartner(email)
\r
228 var branchobj = getPref();
\r
229 setServerService('xmlrpc/object');
\r
230 netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
\r
232 var xmlRpcClient = getXmlRpc();
\r
233 var strDbName = xmlRpcClient.createType(xmlRpcClient.STRING,{});
\r
234 strDbName.data = branchobj.getCharPref("serverdbname");
\r
235 var struid = xmlRpcClient.createType(xmlRpcClient.INT,{});
\r
236 struid.data = branchobj.getIntPref('userid');
\r
237 var strpass = xmlRpcClient.createType(xmlRpcClient.STRING,{});
\r
238 strpass.data = branchobj.getCharPref("password");
\r
239 var strobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
\r
240 strobj.data = 'thunderbird.partner';
\r
241 var strmethod = xmlRpcClient.createType(xmlRpcClient.STRING,{});
\r
242 strmethod.data = 'search_contact';
\r
243 var strname = xmlRpcClient.createType(xmlRpcClient.STRING,{});
\r
244 strname.data = email;
\r
245 xmlRpcClient.asyncCall(openPartnerHandler,null,'execute',[ strDbName,struid,strpass,strobj,strmethod,strname ],6);
\r
249 function open_partner()
\r
251 if (check() == false){
\r
254 var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
\r
255 var version_obj = prefService.getBranch("extensions.");
\r
256 version_obj.QueryInterface(Components.interfaces.nsIPrefBranch2);
\r
257 version = version_obj.getCharPref("lastAppVersion");
\r
258 version = parseInt(version[0])
\r
260 file = getPredefinedFolder(2);
\r
264 var emlsArray = gFolderDisplay.selectedMessages;
\r
268 var emlsArray = GetSelectedMessages();
\r
271 IETtotal = emlsArray.length;
\r
273 var msguri = emlsArray[0];
\r
276 //gives the selected email uri
\r
277 var messageUri= gDBView.URIForFirstSelectedMessage;
\r
280 var messenger = Components.classes['@mozilla.org/messenger;1'].createInstance(Components.interfaces.nsIMessenger);
\r
282 //gives the selected email object
\r
283 var message = messenger.messageServiceFromURI(messageUri).messageURIToMsgHdr(messageUri);
\r
285 //functionality to split the author name and email
\r
286 if(message.author.charAt(0) == '"'){
\r
287 sendername = message.author.split('"')[1].split('"')[0];
\r
289 else if(message.author.indexOf('<')!=-1){
\r
290 sendername = message.author.split('<')[0];
\r
293 sendername = message.author;
\r
295 if(message.author.indexOf('<')!=-1){
\r
296 senderemail = message.author.split('<')[1].split('>')[0];
\r
299 senderemail = message.author
\r
301 searchPartner(senderemail);
\r
305 var listDocumentHandler = {
\r
306 onResult: function(client, context, result) {
\r
307 netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
\r
308 var res = result.QueryInterface(Components.interfaces.nsISupportsArray);
\r
309 res_id = res.QueryElementAt(1, Components.interfaces.nsISupportsPRInt32);
\r
310 model = res.QueryElementAt(0, Components.interfaces.nsISupportsCString);
\r
311 weburl = getWebServerURL();
\r
314 alert("Document is not available.");
\r
320 var encoded = encodeURIComponent("/openerp/form/view?model=" + model +"&id=" + res_id)
\r
321 var t = weburl + "?next=" + encoded
\r
322 var messenger = Components.classes["@mozilla.org/messenger;1"].createInstance();
\r
323 messenger = messenger.QueryInterface(Components.interfaces.nsIMessenger);
\r
324 messenger.launchExternalURL(t);
\r
328 onFault: function (client, ctxt, fault) {
\r
332 onError: function (client, ctxt, status, errorMsg) {
\r
337 //function to archive the mail content through xmlrpc request
\r
338 function parse_eml(){
\r
340 var username = Components.classes["@mozilla.org/process/environment;1"].
\r
341 getService(Components.interfaces.nsIEnvironment).get('USERNAME')
\r
342 if(navigator.userAgent.indexOf('Linux')!= -1){
\r
345 else if(navigator.userAgent.indexOf('Win')!= -1){
\r
346 fpath ="C:\\Users\\"+ username +"\\"
\r
348 else if(navigator.userAgent.indexOf('Mac OS X')!= -1){
\r
351 name = fpath + getPref().getCharPref('fname') +".eml"
\r
352 var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
\r
353 file.initWithPath( name );
\r
354 if ( file.exists() == false ) {
\r
357 var is = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance( Components.interfaces.nsIFileInputStream );
\r
358 is.init( file,0x01, 00004, null);
\r
359 var sis = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance( Components.interfaces.nsIScriptableInputStream );
\r
361 var output = sis.read( sis.available() );
\r
366 function open_document()
\r
368 if (check() == false){
\r
371 var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
\r
372 var version_obj = prefService.getBranch("extensions.");
\r
373 version_obj.QueryInterface(Components.interfaces.nsIPrefBranch2);
\r
374 version = version_obj.getCharPref("lastAppVersion");
\r
375 version = parseInt(version[0])
\r
376 file = getPredefinedFolder(2);
\r
379 var emlsArray = gFolderDisplay.selectedMessages;
\r
383 var emlsArray = GetSelectedMessages();
\r
385 IETtotal = emlsArray.length;
\r
387 var msguri = emlsArray[0];
\r
388 //gives the selected email uri
\r
389 var messageUri= gDBView.URIForFirstSelectedMessage;
\r
390 var messenger = Components.classes['@mozilla.org/messenger;1'].createInstance(Components.interfaces.nsIMessenger);
\r
391 //gives the selected email object
\r
392 var message = messenger.messageServiceFromURI(messageUri).messageURIToMsgHdr(messageUri);
\r
395 m_uri = message.folder.getUriForMsg(message);
\r
396 saveMsgAsEML(m_uri,file,false,emlsArray,null);
\r
400 saveMsgAsEML(msguri,file,false,emlsArray,null);
\r
402 //gives the received email date
\r
403 var stdate = new Date(message.date / 1000);
\r
404 var branchobj = getPref();
\r
405 setServerService('xmlrpc/object');
\r
406 netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
\r
407 var xmlRpcClient = getXmlRpc();
\r
408 var strDbName = xmlRpcClient.createType(xmlRpcClient.STRING,{});
\r
409 strDbName.data = branchobj.getCharPref("serverdbname");
\r
410 var struids = xmlRpcClient.createType(xmlRpcClient.INT,{});
\r
411 struids.data = branchobj.getIntPref('userid');
\r
412 var strpass = xmlRpcClient.createType(xmlRpcClient.STRING,{});
\r
413 strpass.data = branchobj.getCharPref("password");
\r
414 var strmethod = xmlRpcClient.createType(xmlRpcClient.STRING,{});
\r
415 strmethod.data = 'search_message';
\r
416 var strobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
\r
417 strobj.data = 'thunderbird.partner';
\r
418 var eml_string = parse_eml()
\r
419 var a = ['message'];
\r
420 var b = [eml_string];
\r
421 var arrofarr = dictcontact(a,b);
\r
422 xmlRpcClient.asyncCall(listDocumentHandler,null,'execute',[strDbName,struids,strpass,strobj,strmethod,arrofarr],6);
\r
425 function open_contact()
\r
427 if (check() == false){
\r
431 var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
\r
432 var version_obj = prefService.getBranch("extensions.");
\r
433 version_obj.QueryInterface(Components.interfaces.nsIPrefBranch2);
\r
434 version = version_obj.getCharPref("lastAppVersion");
\r
435 version = parseInt(version[0])
\r
437 file = getPredefinedFolder(2);
\r
441 var emlsArray = gFolderDisplay.selectedMessages;
\r
445 var emlsArray = GetSelectedMessages();
\r
448 IETtotal = emlsArray.length;
\r
450 var msguri = emlsArray[0];
\r
453 //gives the selected email uri
\r
454 var messageUri= gDBView.URIForFirstSelectedMessage;
\r
456 var messenger = Components.classes['@mozilla.org/messenger;1'].createInstance(Components.interfaces.nsIMessenger);
\r
458 //gives the selected email object
\r
459 var message = messenger.messageServiceFromURI(messageUri).messageURIToMsgHdr(messageUri);
\r
461 //functionality to split the author name and email
\r
462 if(message.author.charAt(0) == '"'){
\r
463 sendername = message.author.split('"')[1].split('"')[0];
\r
465 else if(message.author.indexOf('<')!=-1){
\r
466 sendername = message.author.split('<')[0];
\r
469 sendername = message.author;
\r
471 if(message.author.indexOf('<')!=-1){
\r
472 senderemail = message.author.split('<')[1].split('>')[0];
\r
475 senderemail = message.author
\r
478 //set the initial information for the selected email
\r
479 setSenderEmail(senderemail);
\r
480 setSenderName(sendername);
\r
481 setPartnerName("");
\r
486 setOfficenumber("");
\r
488 setMobilenumber("");
\r
493 //function to open the configuration window
\r
495 onLoad: function() {
\r
496 // initialization code
\r
497 this.initialized = true;
\r
500 onMenuItemCommand: function() {
\r
501 window.open("chrome://openerp_plugin/content/config.xul", "", "chrome");
\r
504 window.addEventListener("load", function(e) { Config.onLoad(e); }, false);
\r
506 //function to open the plugin window for searching the records for a particular object
\r
508 onLoad: function() {
\r
509 this.initialized = true;
\r
512 onMenuItemCommand: function() {
\r
513 window.open("chrome://openerp_plugin/content/plugin.xul", "", "chrome, resizable=yes");
\r
516 window.addEventListener("load", function(e) { Plugin.onLoad(e); }, false);
\r
518 //function to open the window for creating a new partner contact
\r
520 onLoad: function(){
\r
521 this.initialized=true;
\r
524 onMenuItemCommand: function(){
\r
525 window.open("chrome://openerp_plugin/content/create.xul", "", "chrome");
\r
528 window.addEventListener("load", function(e) { Create.onLoad(e); }, false);
\r
531 onLoad: function(){
\r
532 this.initialized=true;
\r
535 onMenuItemCommand: function(){
\r
542 //function to open the window for selecting the partner for a new contact creation
\r
544 onLoad: function(){
\r
545 this.initialized=true;
\r
548 onMenuItemCommand: function(){
\r
549 // document.getElementById("txtselectpartner").value="";
\r
550 window.open("chrome://openerp_plugin/content/selectpartner.xul", "", "chrome");
\r
555 var CreatePartner = {
\r
556 onLoad: function(){
\r
557 this.initialized=true;
\r
560 onMenuItemCommand: function(){
\r
561 window.open("chrome://openerp_plugin/content/createpartner.xul", "", "chrome");
\r
564 window.addEventListener("load", function(e) { CreatePartner.onLoad(e); }, false);
\r