if history:
for att in attach:
attachments.append(att_obj.create(cr, uid, {'name': att[0], 'datas': base64.encodestring(att[1])}))
-
+
for param in (email, email_cc, email_bcc):
if isinstance(param, list):
param = ", ".join(param)
mailgate_thread()
def format_date_tz(date, tz=None):
- if not date:
+ if not date:
return 'n/a'
format = tools.DEFAULT_SERVER_DATETIME_FORMAT
return tools.server_to_local_timestamp(date, format, format, tz)
'description': fields.text('Description', readonly=True),
'partner_id': fields.many2one('res.partner', 'Partner', required=False),
'attachment_ids': fields.many2many('ir.attachment', 'message_attachment_rel', 'message_id', 'attachment_id', 'Attachments', readonly=True),
- 'display_text': fields.function(_get_display_text, method=True, type='text', size="512", string='Display Text'),
+ 'display_text': fields.function(_get_display_text, method=True, type='text', size="512", string='Display Text'),
}
def init(self, cr):
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param model: OpenObject Model
- @param res_ids: Ids of the record of OpenObject model created
+ @param res_ids: Ids of the record of OpenObject model created
@param msg: Email details
@param attach: Email attachments
"""
'res_model': model,
'email_cc': msg.get('cc'),
'email_from': msg.get('from'),
- 'email_to': msg.get('to'),
+ 'email_to': msg.get('to'),
'message_id': msg.get('message-id'),
'references': msg.get('references') or msg.get('in-reply-to'),
'res_id': res_id,
tools.misc._email_send(smtp_from, self.to_email(email_error), msg, openobject_id=res.id)
def process_email(self, cr, uid, model, message, attach=True, context=None):
+ print "processssss_emaillllllllll",model
"""This function Processes email and create record for given OpenERP model
@param self: The object pointer
@param cr: the current row, from the database cursor,
{
"name" : "Thunderbird Interface",
"version" : "1.0",
- "author" : "Axelor",
- "website" : "http://www.axelor.com/",
- "depends" : ["base"],
+ "author" : "OpenERP SA & Axelor",
+ "website" : "http://www.openerp.com/",
+ "depends" : ["base","mail_gateway"],
"category" : "Generic Modules/Thunderbird interface",
- "description": '''
+ "description": """
This module is required for the thuderbird plug-in to work
properly.
a project, an analytical account, or any other object and attach selected
mail as .eml file in attachment of selected record.
- You can create new case in crm using Create Case button.
- Select a section for which you want to create case.''',
+ """,
"init_xml" : [],
"demo_xml" : [],
"update_xml" : ['thunderbird_installer.xml',
import base64\r
import netsvc\r
from tools.translate import _\r
+import email\r
+import tools\r
+import binascii\r
+class email_server_tools(osv.osv_memory):\r
+ _inherit = "email.server.tools"\r
+ def history_message(self, cr, uid, model, res_id, message):\r
+ #@param message: string of mail which is read from EML File\r
+ attachment_pool = self.pool.get('ir.attachment')\r
+ msg = self.parse_message(message)\r
+ attachments = msg.get('attachments', [])\r
+ att_ids = []\r
+ for attachment in attachments:\r
+ data_attach = {\r
+ 'name': attachment,\r
+ 'datas': binascii.b2a_base64(str(attachments.get(attachment))),\r
+ 'datas_fname': attachment,\r
+ 'description': 'Mail attachment From Thunderbird msg_id: %s' %(msg.get('message_id', '')),\r
+ 'res_model': model,\r
+ 'res_id': res_id,\r
+ }\r
+ att_ids.append(attachment_pool.create(cr, uid, data_attach))\r
+ return self.history(cr, uid, model, res_id, msg, att_ids)\r
+\r
+ def parse_message(self, message):\r
+ #TOCHECK: put this function in mailgateway\r
+ msg_txt = email.message_from_string(message)\r
+ message_id = msg_txt.get('message-id', False)\r
+ msg = {}\r
+ msg_txt = email.message_from_string(message)\r
+ fields = msg_txt.keys()\r
+ msg['id'] = message_id\r
+ msg['message-id'] = message_id\r
+\r
+ if 'Subject' in fields:\r
+ msg['subject'] = self._decode_header(msg_txt.get('Subject'))\r
+\r
+ if 'Content-Type' in fields:\r
+ msg['content-type'] = msg_txt.get('Content-Type')\r
+\r
+ if 'From' in fields:\r
+ msg['from'] = self._decode_header(msg_txt.get('From'))\r
+\r
+ if 'Delivered-To' in fields:\r
+ msg['to'] = self._decode_header(msg_txt.get('Delivered-To'))\r
+\r
+ if 'CC' in fields:\r
+ msg['cc'] = self._decode_header(msg_txt.get('CC'))\r
+\r
+ if 'Reply-to' in fields:\r
+ msg['reply'] = self._decode_header(msg_txt.get('Reply-To'))\r
+\r
+ if 'Date' in fields:\r
+ msg['date'] = self._decode_header(msg_txt.get('Date'))\r
+\r
+ if 'Content-Transfer-Encoding' in fields:\r
+ msg['encoding'] = msg_txt.get('Content-Transfer-Encoding')\r
+\r
+ if 'References' in fields:\r
+ msg['references'] = msg_txt.get('References')\r
+\r
+ if 'In-Reply-To' in fields:\r
+ msg['in-reply-to'] = msg_txt.get('In-Reply-To')\r
+\r
+ if 'X-Priority' in fields:\r
+ msg['priority'] = msg_txt.get('X-Priority', '3 (Normal)').split(' ')[0]\r
+\r
+ if not msg_txt.is_multipart() or 'text/plain' in msg.get('Content-Type', ''):\r
+ encoding = msg_txt.get_content_charset()\r
+ body = msg_txt.get_payload(decode=True)\r
+ msg['body'] = tools.ustr(body, encoding)\r
+\r
+ attachments = {}\r
+ has_plain_text = False\r
+ if msg_txt.is_multipart() or 'multipart/alternative' in msg.get('content-type', ''):\r
+ body = ""\r
+ for part in msg_txt.walk():\r
+ if part.get_content_maintype() == 'multipart':\r
+ continue\r
+\r
+ encoding = part.get_content_charset()\r
+ filename = part.get_filename()\r
+ if part.get_content_maintype()=='text':\r
+ content = part.get_payload(decode=True)\r
+ if filename:\r
+ attachments[filename] = content\r
+ elif not has_plain_text:\r
+ # main content parts should have 'text' maintype\r
+ # and no filename. we ignore the html part if\r
+ # there is already a plaintext part without filename,\r
+ # because presumably these are alternatives.\r
+ content = tools.ustr(content, encoding)\r
+ if part.get_content_subtype() == 'html':\r
+ body = tools.ustr(tools.html2plaintext(content))\r
+ elif part.get_content_subtype() == 'plain':\r
+ body = content\r
+ has_plain_text = True\r
+ elif part.get_content_maintype() in ('application', 'image'):\r
+ if filename :\r
+ attachments[filename] = part.get_payload(decode=True)\r
+ else:\r
+ res = part.get_payload(decode=True)\r
+ body += tools.ustr(res, encoding)\r
+\r
+ msg['body'] = body\r
+ msg['attachments'] = attachments\r
+ return msg\r
+email_server_tools()\r
\r
class thunderbird_partner(osv.osv_memory):\r
_name = "thunderbird.partner"\r
_description="Thunderbid mails"\r
- _rec_name="sender"\r
-\r
- def mailcreate(self,cr,user,vals):\r
- dictcreate = dict(vals)\r
- import email\r
- header_name = email.Header.decode_header(dictcreate['name'])\r
- dictcreate['name'] = header_name and header_name[0] and header_name[0][0]\r
- address_obj = self.pool.get('res.partner.address')\r
- case_pool = self.pool.get(dictcreate.get('object','crm.lead'))\r
- partner_ids = address_obj.search(cr,user,[('email','=',dictcreate['email_from'])])\r
- partner = address_obj.read(cr,user,partner_ids,['partner_id','name'])\r
- if partner and partner[0] and partner[0]['partner_id']:\r
- dictcreate.update({'partner_id':partner[0]['partner_id'][0],'partner_name':partner[0]['name']})\r
- create_id = case_pool.create(cr, user, dictcreate)\r
- cases = case_pool.browse(cr,user,[create_id])\r
- case_pool._history(cr, user, cases, _('Archive'), history=True, email=False)\r
- return create_id\r
\r
def create_contact(self,cr,user,vals):\r
dictcreate = dict(vals)\r
create_id = self.pool.get('res.partner.address').create(cr, user, dictcreate)\r
return create_id\r
\r
+ def history_message(self,cr,uid,vals):\r
+ dictcreate = dict(vals)\r
+ server_tools_pool = self.pool.get('email.server.tools')\r
+ res_id = int(dictcreate.get('res_id'))\r
+ model = str(dictcreate.get('model'))\r
+ message = str(dictcreate.get('message'))\r
+ server_tools_pool.history_message(cr,uid,model,res_id,message)\r
+ return True\r
+\r
+ def process_email(self,cr,uid,vals):\r
+ dictcreate = dict(vals)\r
+ model = str(dictcreate.get('model'))\r
+ message = str(dictcreate.get('message'))\r
+ return self.pool.get('email.server.tools').process_email(cr, uid, model, message, attach=True, context=None)\r
+\r
def search_contact(self, cr, user, vals):\r
address_obj = self.pool.get('res.partner.address')\r
partner = address_obj.search(cr, user,[('email','=',vals)])\r
name_get.append(er_val)\r
return name_get\r
\r
- def create_attachment(self,cr,user,vals):\r
- dictcreate = dict(vals)\r
- datas = [dictcreate['datas']]\r
- name = [dictcreate['name']]\r
- f_name = [dictcreate['datas_fname']]\r
- if(dictcreate['datas'].__contains__(',')):\r
- name = dictcreate['name'].split(',')\r
- datas = dictcreate['datas'].split(',')\r
- f_name = dictcreate['datas_fname'].split(',')\r
- for i in range(0,datas.__len__()):\r
- dictcreate['name'] = name[i]\r
- dictcreate['datas'] = datas[i]\r
- dictcreate['datas_fname'] = f_name[i]\r
- create_id = self.pool.get('ir.attachment').create(cr,user,dictcreate)\r
- return 0\r
+\r
\r
def list_alldocument(self,cr,user,vals):\r
obj_list= [('crm.lead','Lead'),('project.issue','Project Issue'), ('hr.applicant','HR Recruitment')]\r
<label align="right" id="emailid" value="&emailid.value;" width="94" />
<textbox id="txtemail" width="268" align="right"/>
<spacer width="5"/>
+ <button label="&create.label;" accesskey="r" image="&imagecreate.value;" oncommand="Create.onMenuItemCommand(event);"/>
<button label="&bsearch.label;" oncommand="searchContactdetail();" image="&imagesearch.value;"/>
</hbox>
<hbox>
<label align="right" id="name" value="&name.value;" width="80" />
<textbox id="txtname" align="right" width="270" readonly="true"/>
<spacer width="5"/>
- <button label="New Partner" image="&imagecreate.value;" oncommand="CreatePartner.onMenuItemCommand(event);" width="130"/>
+ <button label="New Partner" image="&imagecreate.value;" oncommand="CreatePartner.onMenuItemCommand(event);" width="133"/>
</hbox>
</groupbox>
</tabpanel>
<description></description>
<hbox>
- <spacer width="450"/>
- <button label="&create.label;" accesskey="r" image="&imagecreate.value;" oncommand="Create.onMenuItemCommand(event);"/>
+ <spacer width="600"/>
<button label="&cancel.label;" image="&imagecancel.value;" oncommand="close();" />
<button label="&ok.label;" image="&imageok.value;" oncommand="UpdateContact();"/>
<hbox>
<description>Documents</description>
</hbox>
- <listbox height="250" id="listSearchBox" >
+ <listbox height="250" id="listSearchBox" seltype="multiple">
<listhead >
<listheader label="&listSearchBox.header;"/>
</listhead>
var t = getMobilenumber();}
if(strlSearchResult=="email" && strlSearchResultValue!=''){
- setSenderEmail(sendername);
+ setSenderEmail(strlSearchResultValue);
var t = getSenderEmail();}
if(strlSearchResult=="res_id"){
if(strlSearchResult=="email" && strlSearchResultValue=='')
{
alert("Contact is not Available")
- document.getElementById("txtemail").value = sendername;
+ document.getElementById("txtemail").value = strlSearchResultValue;
}
if(strlSearchResult=="partner_name"){
document.getElementById("txtname").value =strlSearchResultValue;}
}
//function to archive the mail content through xmlrpc request
-function archivemail(){
+
+function parse_eml(){
+ var fpath =""
+ if(navigator.userAgent.indexOf('Linux')!= -1){
+ fpath ="/tmp/"
+ }
+ else if(navigator.userAgent.indexOf('Win')!= -1){
+ fpath ="C:\\"
+ }
+ else if(navigator.userAgent.indexOf('Mac OS X')!= -1){
+ fpath ="/tmp/"
+ }
+
+ name = fpath + getFileName() +".eml"
+
+ var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
+ file.initWithPath( name );
+ if ( file.exists() == false ) {
+ return null;
+ } else {
+ var is = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance( Components.interfaces.nsIFileInputStream );
+ is.init( file,0x01, 00004, null);
+ var sis = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance( Components.interfaces.nsIScriptableInputStream );
+ sis.init( is );
+ var output = sis.read( sis.available() );
+ return output
+ }
+}
+function upload_archivemail()
+{
+ list_documents = document.getElementById('listSearchBox')
+ var context = []
+ var cnt = list_documents.selectedCount
+ for(i=0;i<=cnt;i++)
+ {
+ var object = list_documents.getSelectedItem(i)
+ var eml_string = parse_eml();
+ var model = object.label;
+ var res_id = object.value;
+ var branchobj = getPref();
+ setServerService('xmlrpc/object');
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var xmlRpcClient = getXmlRpc();
+ var strDbName = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strDbName.data = branchobj.getCharPref("serverdbname");
+ var struids = xmlRpcClient.createType(xmlRpcClient.INT,{});
+ struids.data = branchobj.getIntPref('userid');
+ var strpass = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strpass.data = branchobj.getCharPref("password");
+ var strmethod = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strmethod.data = 'history_message';
+ var strobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strobj.data = 'thunderbird.partner';
+ var resobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ var a = ['model', 'res_id','message'];
+ var b = [model, res_id,eml_string];
+ var arrofarr = dictcontact(a,b)
+ xmlRpcClient.asyncCall(listArchiveHandler,null,'execute',[strDbName,struids,strpass,strobj,strmethod,arrofarr],6);
+
+ }
+
+}
+
+function create_archivemail(){
var popup = document.getElementById("section").selectedItem; // a <menupopup> element
if (String(popup) != "null"){
var strpass = xmlRpcClient.createType(xmlRpcClient.STRING,{});
strpass.data = branchobj.getCharPref("password");
var strmethod = xmlRpcClient.createType(xmlRpcClient.STRING,{});
- strmethod.data = 'mailcreate';
+ strmethod.data = 'process_email';
var strobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
strobj.data = 'thunderbird.partner';
- var a = ['name','object','date','email_from','email_cc','description','user_id'];
- var b = [getSubject(),object,getReceivedDate(),getSenderEmail(),getCCList(),getMessageBody(),branchobj.getIntPref('userid')];
+ var eml_string = parse_eml()
+ var a = ['model', 'message'];
+ var b = [object, eml_string];
var arrofarr = dictcontact(a,b);
xmlRpcClient.asyncCall(listArchiveHandler,null,'execute',[strDbName,struids,strpass,strobj,strmethod,arrofarr],6);
}
}
//function to create a new attachment record
-function createAttachment(popup,res_id){
+function createAttachment(popup, res_id){
var branchobj = getPref();
setServerService('xmlrpc/object');
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
//function to create a new attachment record
-function createAttachmentEML()
-{
- if(document.getElementById('listSearchBox').selectedItem)
- {
- data_attach = "no"
- if(getPref().getCharPref('attachmentlength')>0 && getAttachment() == "yes"){
- createAttachment(document.getElementById('listSearchBox').selectedItem.label , document.getElementById('listSearchBox').selectedItem.value)
- data_attach = "yes"
- }
- var fpath =""
- if(navigator.userAgent.indexOf('Linux')!= -1){
- fpath ="/tmp/"
- }
- else if(navigator.userAgent.indexOf('Win')!= -1){
- fpath ="C:\\"
- }
- else if(navigator.userAgent.indexOf('Mac OS X')!= -1){
- fpath ="/tmp/"
- }
-
- var encoded_string=""
- name = fpath + getFileName() +".eml"
-
- var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
- file.initWithPath( name );
- if ( file.exists() == false ) {
- return null;
- } else {
- var is = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance( Components.interfaces.nsIFileInputStream );
- is.init( file,0x01, 00004, null);
- var sis = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance( Components.interfaces.nsIScriptableInputStream );
- sis.init( is );
- var output = sis.read( sis.available() );
- encoded_string += encode64(output)+',';
- encoded_string = encoded_string.substring(0,encoded_string.length-1);
- a = ":"
- if (data_attach == "yes")
- {
- alert("Mail Archived Successfully With Attachments");
- window.close();
- }
- else
- {
- alert("Mail Archived Successfully" + a);
- window.close();
- }
-
- }
-
- attach_eml="yes";
- var branchobj = getPref();
- setServerService('xmlrpc/object');
- netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
- var xmlRpcClient = getXmlRpc();
- var strDbName = xmlRpcClient.createType(xmlRpcClient.STRING,{});
- strDbName.data = branchobj.getCharPref("serverdbname");
- var struids = xmlRpcClient.createType(xmlRpcClient.INT,{});
- struids.data = branchobj.getIntPref('userid');
- var strpass = xmlRpcClient.createType(xmlRpcClient.STRING,{});
- strpass.data = branchobj.getCharPref("password");
- var strmethod = xmlRpcClient.createType(xmlRpcClient.STRING,{});
- strmethod.data = 'create_attachment';
- var strobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
- strobj.data = 'thunderbird.partner';
- var resobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
- var popup = document.getElementById("section").selectedItem; // a <menupopup> element
- object=popup.value;
- resobj.data = object;
- filename = getFileName()
- if (getFileName().length > 60)
- {
- filename = filename.substring(0,60) ;
-
- }
- filename = filename + ".eml"
- var a = ['name','datas','res_model','description','res_id','datas_fname'];
- var b = [getFileName(),encoded_string,document.getElementById('listSearchBox').selectedItem.label,getSubject()+'\n'+getSenderEmail() ,document.getElementById('listSearchBox').selectedItem.value ,filename];
- var arrofarr = dictcontact(a,b);
- xmlRpcClient.asyncCall(listAttachHandler,null,'execute',[strDbName,struids,strpass,strobj,strmethod,arrofarr],6);
- }
- else
- {
- alert("you must select only one record");
- }
-}
//function to create a new attachment record
function attachmentWidnowOpen(msg)
{
- if(getPref().getCharPref('attachmentlength')>0)
+ /* if(getPref().getCharPref('attachmentlength')>0)
{
if (msg=="create"){
}
}
else
- {
+ { */
if (msg=="create")
{
var popup = document.getElementById("section").selectedItem; // a <menupopup> element
object=popup.value;
if (object=="" || object == undefined) { alert("select at least one document !")}
else{
- archivemail()
+ create_archivemail()
}
}
else
{
if(document.getElementById('listSearchBox').selectedItem)
{
- createAttachmentEML()
+ upload_archivemail()
}
else{
alert("you must select only one record");
}
}
- }
+ //}
}
<label align="right" id="emailid" value="&emailid.value;" width="94" />
<textbox id="txtemail" width="268" align="right"/>
<spacer width="5"/>
+ <button label="&create.label;" accesskey="r" image="&imagecreate.value;" oncommand="Create.onMenuItemCommand(event);"/>
<button label="&bsearch.label;" oncommand="searchContactdetail();" image="&imagesearch.value;"/>
</hbox>
<hbox>
<label align="right" id="name" value="&name.value;" width="80" />
<textbox id="txtname" align="right" width="270" readonly="true"/>
<spacer width="5"/>
- <button label="New Partner" image="&imagecreate.value;" oncommand="CreatePartner.onMenuItemCommand(event);" width="130"/>
+ <button label="New Partner" image="&imagecreate.value;" oncommand="CreatePartner.onMenuItemCommand(event);" width="133"/>
</hbox>
</groupbox>
</tabpanel>
<description></description>
<hbox>
- <spacer width="450"/>
- <button label="&create.label;" accesskey="r" image="&imagecreate.value;" oncommand="Create.onMenuItemCommand(event);"/>
+ <spacer width="600"/>
<button label="&cancel.label;" image="&imagecancel.value;" oncommand="close();" />
<button label="&ok.label;" image="&imageok.value;" oncommand="UpdateContact();"/>
<hbox>
<description>Documents</description>
</hbox>
- <listbox height="250" id="listSearchBox" >
+ <listbox height="250" id="listSearchBox" seltype="multiple">
<listhead >
<listheader label="&listSearchBox.header;"/>
</listhead>
var t = getMobilenumber();}
if(strlSearchResult=="email" && strlSearchResultValue!=''){
- setSenderEmail(sendername);
+ setSenderEmail(strlSearchResultValue);
var t = getSenderEmail();}
if(strlSearchResult=="res_id"){
if(strlSearchResult=="email" && strlSearchResultValue=='')
{
alert("Contact is not Available")
- document.getElementById("txtemail").value = sendername;
+ document.getElementById("txtemail").value = strlSearchResultValue;
}
if(strlSearchResult=="partner_name"){
document.getElementById("txtname").value =strlSearchResultValue;}
}
//function to archive the mail content through xmlrpc request
-function archivemail(){
+
+function parse_eml(){
+ var fpath =""
+ if(navigator.userAgent.indexOf('Linux')!= -1){
+ fpath ="/tmp/"
+ }
+ else if(navigator.userAgent.indexOf('Win')!= -1){
+ fpath ="C:\\"
+ }
+ else if(navigator.userAgent.indexOf('Mac OS X')!= -1){
+ fpath ="/tmp/"
+ }
+
+ name = fpath + getFileName() +".eml"
+
+ var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
+ file.initWithPath( name );
+ if ( file.exists() == false ) {
+ return null;
+ } else {
+ var is = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance( Components.interfaces.nsIFileInputStream );
+ is.init( file,0x01, 00004, null);
+ var sis = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance( Components.interfaces.nsIScriptableInputStream );
+ sis.init( is );
+ var output = sis.read( sis.available() );
+ return output
+ }
+}
+function upload_archivemail()
+{
+ list_documents = document.getElementById('listSearchBox')
+ var context = []
+ var cnt = list_documents.selectedCount
+ for(i=0;i<=cnt;i++)
+ {
+ var object = list_documents.getSelectedItem(i)
+ var eml_string = parse_eml();
+ var model = object.label;
+ var res_id = object.value;
+ var branchobj = getPref();
+ setServerService('xmlrpc/object');
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var xmlRpcClient = getXmlRpc();
+ var strDbName = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strDbName.data = branchobj.getCharPref("serverdbname");
+ var struids = xmlRpcClient.createType(xmlRpcClient.INT,{});
+ struids.data = branchobj.getIntPref('userid');
+ var strpass = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strpass.data = branchobj.getCharPref("password");
+ var strmethod = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strmethod.data = 'history_message';
+ var strobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strobj.data = 'thunderbird.partner';
+ var resobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ var a = ['model', 'res_id','message'];
+ var b = [model, res_id,eml_string];
+ var arrofarr = dictcontact(a,b)
+ xmlRpcClient.asyncCall(listArchiveHandler,null,'execute',[strDbName,struids,strpass,strobj,strmethod,arrofarr],6);
+
+ }
+
+}
+
+function create_archivemail(){
var popup = document.getElementById("section").selectedItem; // a <menupopup> element
if (String(popup) != "null"){
var strpass = xmlRpcClient.createType(xmlRpcClient.STRING,{});
strpass.data = branchobj.getCharPref("password");
var strmethod = xmlRpcClient.createType(xmlRpcClient.STRING,{});
- strmethod.data = 'mailcreate';
+ strmethod.data = 'process_email';
var strobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
strobj.data = 'thunderbird.partner';
- var a = ['name','object','date','email_from','email_cc','description','user_id'];
- var b = [getSubject(),object,getReceivedDate(),getSenderEmail(),getCCList(),getMessageBody(),branchobj.getIntPref('userid')];
+ var eml_string = parse_eml()
+ var a = ['model', 'message'];
+ var b = [object, eml_string];
var arrofarr = dictcontact(a,b);
xmlRpcClient.asyncCall(listArchiveHandler,null,'execute',[strDbName,struids,strpass,strobj,strmethod,arrofarr],6);
}
}
//function to create a new attachment record
-function createAttachment(popup,res_id){
+function createAttachment(popup, res_id){
var branchobj = getPref();
setServerService('xmlrpc/object');
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
//function to create a new attachment record
-function createAttachmentEML()
-{
- if(document.getElementById('listSearchBox').selectedItem)
- {
- data_attach = "no"
- if(getPref().getCharPref('attachmentlength')>0 && getAttachment() == "yes"){
- createAttachment(document.getElementById('listSearchBox').selectedItem.label , document.getElementById('listSearchBox').selectedItem.value)
- data_attach = "yes"
- }
- var fpath =""
- if(navigator.userAgent.indexOf('Linux')!= -1){
- fpath ="/tmp/"
- }
- else if(navigator.userAgent.indexOf('Win')!= -1){
- fpath ="C:\\"
- }
- else if(navigator.userAgent.indexOf('Mac OS X')!= -1){
- fpath ="/tmp/"
- }
-
- var encoded_string=""
- name = fpath + getFileName() +".eml"
-
- var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
- file.initWithPath( name );
- if ( file.exists() == false ) {
- return null;
- } else {
- var is = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance( Components.interfaces.nsIFileInputStream );
- is.init( file,0x01, 00004, null);
- var sis = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance( Components.interfaces.nsIScriptableInputStream );
- sis.init( is );
- var output = sis.read( sis.available() );
- encoded_string += encode64(output)+',';
- encoded_string = encoded_string.substring(0,encoded_string.length-1);
- a = ":"
- if (data_attach == "yes")
- {
- alert("Mail Archived Successfully With Attachments");
- window.close();
- }
- else
- {
- alert("Mail Archived Successfully" + a);
- window.close();
- }
-
- }
-
- attach_eml="yes";
- var branchobj = getPref();
- setServerService('xmlrpc/object');
- netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
- var xmlRpcClient = getXmlRpc();
- var strDbName = xmlRpcClient.createType(xmlRpcClient.STRING,{});
- strDbName.data = branchobj.getCharPref("serverdbname");
- var struids = xmlRpcClient.createType(xmlRpcClient.INT,{});
- struids.data = branchobj.getIntPref('userid');
- var strpass = xmlRpcClient.createType(xmlRpcClient.STRING,{});
- strpass.data = branchobj.getCharPref("password");
- var strmethod = xmlRpcClient.createType(xmlRpcClient.STRING,{});
- strmethod.data = 'create_attachment';
- var strobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
- strobj.data = 'thunderbird.partner';
- var resobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
- var popup = document.getElementById("section").selectedItem; // a <menupopup> element
- object=popup.value;
- resobj.data = object;
- filename = getFileName()
- if (getFileName().length > 60)
- {
- filename = filename.substring(0,60) ;
-
- }
- filename = filename + ".eml"
- var a = ['name','datas','res_model','description','res_id','datas_fname'];
- var b = [getFileName(),encoded_string,document.getElementById('listSearchBox').selectedItem.label,getSubject()+'\n'+getSenderEmail() ,document.getElementById('listSearchBox').selectedItem.value ,filename];
- var arrofarr = dictcontact(a,b);
- xmlRpcClient.asyncCall(listAttachHandler,null,'execute',[strDbName,struids,strpass,strobj,strmethod,arrofarr],6);
- }
- else
- {
- alert("you must select only one record");
- }
-}
//function to create a new attachment record
function attachmentWidnowOpen(msg)
{
- if(getPref().getCharPref('attachmentlength')>0)
+ /* if(getPref().getCharPref('attachmentlength')>0)
{
if (msg=="create"){
}
}
else
- {
+ { */
if (msg=="create")
{
var popup = document.getElementById("section").selectedItem; // a <menupopup> element
object=popup.value;
if (object=="" || object == undefined) { alert("select at least one document !")}
else{
- archivemail()
+ create_archivemail()
}
}
else
{
if(document.getElementById('listSearchBox').selectedItem)
{
- createAttachmentEML()
+ upload_archivemail()
}
else{
alert("you must select only one record");
}
}
- }
+ //}
}