odoo/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/overlay.js

143 lines
4.7 KiB
JavaScript

//global array creation and declaration
var MBstrBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"].
getService(Components.interfaces.nsIStringBundleService);
var mboximportbundle = MBstrBundleService.createBundle("chrome://mboximport/locale/mboximport.properties");
//function to get the required details of the selected email
function check(fun) {
cb = function() {
if(GetNumSelectedMessages() < 1 || GetNumSelectedMessages() > 1) {
alert("You must select only one mail to archive");
return false
}
return fun()
}
if(getPreference('userid', 'INT') == 0 || getmodule_install() == "no") {
callback = check_connection(cb)
login()
return False
}
return cb()
}
var openPartnerHandler = {
onResult: function(client, context, result) {
res = extract_data(result)
if(res[RES_ID]==0) {
open_window("chrome://openerp_plugin/content/create.xul", 550, 250);
return;
}
open_url(res[URL])
},
onFault: function (client, ctxt, fault) {
log_message(fault);
},
onError: function (client, ctxt, status, errorMsg) {
log_message(errorMsg)
}
}
function searchPartner(email)
{
setServerService('xmlrpc/object');
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
var xmlRpcClient = getXmlRpc();
var strDbName = get_rpc_string(xmlRpcClient, getPreference("serverdbname"));
var struid = get_rpc_int(xmlRpcClient, getPreference('userid', 'INT'));
var strpass = get_rpc_string(xmlRpcClient, getPreference("password"));
var strobj = get_rpc_string(xmlRpcClient, 'plugin.handler');
var strmethod = get_rpc_string(xmlRpcClient, 'partner_get');
var strname = get_rpc_string(xmlRpcClient, email);
xmlRpcClient.asyncCall(openPartnerHandler,null,'execute',[ strDbName,struid,strpass,strobj,strmethod,strname ],6);
}
function open_partner()
{
//gives the selected email uri
var messageUri= gDBView.URIForFirstSelectedMessage;
var messenger = Components.classes['@mozilla.org/messenger;1'].createInstance(Components.interfaces.nsIMessenger);
//gives the selected email object
var message = messenger.messageServiceFromURI(messageUri).messageURIToMsgHdr(messageUri);
//functionality to split the author name and email
if(message.author.charAt(0) == '"'){
sendername = message.author.split('"')[1].split('"')[0];
}
else if(message.author.indexOf('<')!=-1){
sendername = message.author.split('<')[0];
}
else{
sendername = message.author;
}
if(message.author.indexOf('<')!=-1){
senderemail = message.author.split('<')[1].split('>')[0];
}
else{
senderemail = message.author;
}
setPreference('senderemail', senderemail);
setPreference('sendername', sendername);
searchPartner(senderemail);
}
var listDocumentHandler = {
onResult: function(client, context, result) {
res = extract_data(result)
if(res[RES_ID]==0) {
setPreference('statutdoc','create');
}
else {
setPreference('statutdoc', 'open');
setPreference('urldoc', res[URL]);
}
open_window("chrome://openerp_plugin/content/push_dialog.xul", 480, 110);
},
onFault: function (client, ctxt, fault) {
log_message(fault);
},
onError: function (client, ctxt, status, errorMsg) {
log_message(errorMsg)
}
}
function open_document() {
var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
//gives the selected email uri
var messageUri = gDBView.URIForFirstSelectedMessage;
var branchobj = getPref();
setServerService('xmlrpc/object');
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
var xmlRpcClient = getXmlRpc();
var strDbName = get_rpc_string(xmlRpcClient, branchobj.getCharPref("serverdbname"));
var struids = get_rpc_int(xmlRpcClient, branchobj.getIntPref('userid'));
var strpass = get_rpc_string(xmlRpcClient, branchobj.getCharPref("password"));
var strmethod = get_rpc_string(xmlRpcClient, 'document_get');
var strobj = get_rpc_string(xmlRpcClient, 'plugin.handler');
var eml_string = getMessage(messageUri);
setPreference('email_text', eml_string);
var email = get_rpc_string(xmlRpcClient, eml_string);
xmlRpcClient.asyncCall(listDocumentHandler,null,'execute',[strDbName,struids,strpass,strobj,strmethod, email],6);
}