summaryrefslogtreecommitdiff
path: root/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content
diff options
context:
space:
mode:
Diffstat (limited to 'addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content')
-rw-r--r--addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/config.xul86
-rw-r--r--addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/config_change.xul42
-rw-r--r--addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/create.xul49
-rw-r--r--addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/config.js122
-rw-r--r--addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/create.js123
-rw-r--r--addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/dialog.js13
-rw-r--r--addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/overlay.js142
-rw-r--r--addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/push.js154
-rw-r--r--addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/tiny_xmlrpc.js421
-rw-r--r--addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/tools.js91
-rw-r--r--addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/overlay.xul55
-rw-r--r--addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/push.xul56
-rw-r--r--addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/push_dialog.xul22
-rw-r--r--addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/push_new.xul37
-rw-r--r--addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/selectpartner.xul31
-rw-r--r--addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/style.css10
16 files changed, 1454 insertions, 0 deletions
diff --git a/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/config.xul b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/config.xul
new file mode 100644
index 00000000000..86e55537054
--- /dev/null
+++ b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/config.xul
@@ -0,0 +1,86 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<?xml-stylesheet href="style.css" type="text/css"?>
+<!DOCTYPE window SYSTEM "chrome://openerp_plugin/locale/config.dtd">
+
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ title="&title.label;" onload="load_config_data();" height="500" width="580">
+<script type="text/javascript" src="chrome://openerp_plugin/content/js/tiny_xmlrpc.js"></script>
+<script type="text/javascript" src="chrome://openerp_plugin/content/js/tools.js"></script>
+<script type="text/javascript" src="chrome://openerp_plugin/content/js/config.js"></script>
+<tabbox>
+ <tabs>
+ <tab label="Configuration Settings"/>
+ <tab label="About"/>
+ </tabs>
+ <tabpanels>
+ <tabpanel id="configtab">
+ <vbox>
+ <groupbox id="gpConnection" align ="center" width="530">
+ <grid flex="1">
+ <columns>
+ <column />
+ <column />
+ <column flex="1"/>
+ </columns>
+ <rows>
+ <row>
+ <label align="right" id="url" value="&txturl.label;" width="80" class="text-prompt"/>
+ <textbox id="txturl" width="300" readonly="true" />
+ <button label="&getdblist.label;" oncommand="openConfigChange();" image="&imagesearch.value;" width="90"/>
+ </row>
+ <row>
+ <label align="right" id="lbldb_list1" control="DBlist" value="&database.label;" width="80" class="text-prompt"/>
+ <textbox id="DBlist_text" width="300"/>
+ </row>
+ <row>
+ <label align="right" control="txtusername" value="&username.label;" width="80" class="text-prompt"/>
+ <textbox id="txtusername" width="300"/>
+ </row>
+ <row>
+ <label align="right" control="txtpassword" value="&password.label;" width="80" class="text-prompt"/>
+ <textbox id="txtpassword" type="password" width="300"/>
+ </row>
+ </rows>
+ </grid>
+
+ <separator class="groove-thin" orient="horizontal" width="94"/>
+ </groupbox>
+ <hbox align="right" >
+ <button id="btconnection" label="&connection.label;" oncommand="connection();" image="&imageok.value;" width="100"/>
+ </hbox>
+ </vbox>
+
+ <separator class="groove-thin" orient="horizontal" width="10"/>
+ </tabpanel>
+
+ <tabpanel id="abouttab">
+ <groupbox id="gpAbout" width="570" align="center">
+ <caption label="&gpAbout.label;" align="center"/>
+
+ <vbox style="border:1px solid black" width="560"/>
+ <description>&openerp.paresent;</description>
+ <image src="chrome://openerp_plugin/skin/logo.png" sizemode="stretch" align="center"/>
+
+ <description> </description>
+ <description> </description>
+ <description>&develop.value;</description>
+ <image src="chrome://openerp_plugin/skin/developped_by.png" sizemode="stretch" align="center"/>
+ <description> </description>
+ <description> </description>
+ <description>&information.value;</description>
+ <description><html:a href="&openerp.value;">&openerp.value;</html:a></description>
+
+ <description><html:a href="&axelor.value;">&axelor.value;</html:a></description>
+ <description><html:a href="&tinyerp.value;">&tinyerp.value;</html:a></description>
+ <description> </description>
+ <description> </description>
+ <description>Copyright © 2006-TODAY OpenERP SA All Rights Reserved.</description>
+ <description>OpenERP is a trademark of the OpenERP SA Company. OpenERP Web is jointly developed by OpenERP SA &amp; Axelor.</description>
+ <description>Licenced under the terms of <html:a href="https://tiny.odoo.com/LICENSE.txt"> OpenERP Public License (OEPL) v1.1 (https://tiny.odoo.com/LICENSE.txt)</html:a> </description>
+ </groupbox>
+ </tabpanel>
+ </tabpanels>
+</tabbox>
+</window>
diff --git a/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/config_change.xul b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/config_change.xul
new file mode 100644
index 00000000000..00a4869b68f
--- /dev/null
+++ b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/config_change.xul
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<?xml-stylesheet href="style.css" type="text/css"?>
+<!DOCTYPE window SYSTEM "chrome://openerp_plugin/locale/config_change.dtd">
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:html="http://www.w3.org/1999/xhtml" onload="config_change_load();"
+ title="Openerp Connection" height="190" width="330">
+ <script type="text/javascript" src="chrome://openerp_plugin/content/js/tiny_xmlrpc.js"></script>
+ <script type="text/javascript" src="chrome://openerp_plugin/content/js/tools.js"></script>
+ <script type="text/javascript" src="chrome://openerp_plugin/content/js/config.js"></script>
+ <separator class="groove-thin" orient="horizontal" width="10"/>
+ <grid flex="1">
+ <columns>
+ <column />
+ <column flex="1"/>
+ </columns>
+ <rows>
+ <row>
+ <label id="lblurl" control="txtcurl" value="&lblurl.label;" class="text-prompt"/>
+ <textbox id="txtcurl" width="170" />
+ </row>
+ <row>
+ <label id="lblport" control="txtcport" value="&lblport.label;" class="text-prompt"/>
+ <textbox id="txtcport" width="170" />
+ </row>
+ <row>
+ <label id="dbprotocol" value="&lblprotocol.label;" class="text-prompt" />
+ <menulist id="dbprotocol_list" width="140">
+ <menupopup>
+ <menuitem label="XML-RPC" value="http://"/>
+ <menuitem label="XML-RPCS" value="https://"/>
+ </menupopup>
+ </menulist>
+ </row>
+ </rows>
+ </grid>
+ <hbox align="right">
+ <button label="Close" image="&imagecancel.value;" oncommand="config_close();" />
+ <button label="OK" image="&imageok.value;" oncommand="config_ok()"/>
+ </hbox>
+ <separator class="groove-thin" orient="horizontal" width="10"/>
+</window>
diff --git a/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/create.xul b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/create.xul
new file mode 100644
index 00000000000..cc47b895a3e
--- /dev/null
+++ b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/create.xul
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<?xml-stylesheet href="style.css" type="text/css"?>
+<!DOCTYPE window SYSTEM "chrome://openerp_plugin/locale/create.dtd">
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ title="&title.label;" onload="load_createContact();" id="create_partner_window">
+ <script type="text/javascript" src="chrome://openerp_plugin/content/js/tiny_xmlrpc.js"></script>
+ <script type="text/javascript" src="chrome://openerp_plugin/content/js/tools.js"></script>
+ <script type="text/javascript" src="chrome://openerp_plugin/content/js/create.js"></script>
+ <groupbox id="contact" >
+ <hbox>
+ <textbox class="plain" style="background-color: transparent;" flex="1"
+ multiline="true" readonly="true"
+ onoverflow="this.height = this.inputField.scrollHeight;"
+ value="No existing contact found, you can create a new partner with this contact or link to a existing partner" />
+ </hbox>
+ <hbox>
+ <label align="right" id="partner" value="&selectpartner.value;" width="90" class="text-prompt"/>
+ <textbox id="txtselectpartner" readonly="true" value="" width="170"/>
+ <button label="Link to partner" oncommand="open_window('chrome://openerp_plugin/content/selectpartner.xul', 400, 400);" image="&imagesearch.value;"/>
+ <button label="Clear" oncommand="clear();"/>
+ </hbox>
+ </groupbox>
+ <groupbox id="information" >
+ <caption label="Address Detail" />
+ <grid flex="1">
+ <columns>
+ <column />
+ <column flex="1"/>
+ </columns>
+ <rows>
+ <row>
+ <label align="right" id="name" value="&name.value;" width="90" class="text-prompt"/>
+ <textbox id="txtname" align="right" />
+ </row>
+ <row>
+ <label align="right" id="emailid" value="&email.value;" width="90" class="text-prompt"/>
+ <textbox id="txtemail" align="right"/>
+ </row>
+ </rows>
+ </grid>
+ <separator class="groove-thin" orient="horizontal" width="90"/>
+ </groupbox>
+ <hbox align="right">
+ <button label="cancel" image="&imagecancel.value;" oncommand="close();" />
+ <button label="create partner" image="&imageok.value;" oncommand="createContact();"/>
+ </hbox>
+</window>
diff --git a/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/config.js b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/config.js
new file mode 100644
index 00000000000..f0f2d750bd0
--- /dev/null
+++ b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/config.js
@@ -0,0 +1,122 @@
+function load_config_data() {
+ getDbList('DBlist');
+ document.getElementById("txturl").value = getServer();
+ document.getElementById("txtusername").value = getUsername();
+ document.getElementById("txtpassword").value = getPassword();
+ document.getElementById("DBlist_text").value = getDbName();
+}
+
+function config_close() {
+ window.close("chrome://openerp_plugin/content/config_change.xul", "", "chrome");
+ open_window('chrome://openerp_plugin/content/config.xul', 580,500);
+}
+
+//set the value of the configuration fields
+function config_change_load() {
+ document.getElementById('txtcurl').value = getPreferenceDefault('server_name', 'localhost')
+ document.getElementById('txtcport').value = getPreferenceDefault('serverport', '8069')
+}
+
+
+function config_ok()
+{
+ var protocol = document.getElementById("dbprotocol_list").value
+ if (document.getElementById('txtcurl').value == '' || document.getElementById('txtcport').value == '') {
+ alert("You Must Enter Server Name and a Port!")
+ return false;
+ }
+ setPreference('serverport', document.getElementById('txtcport').value)
+ setPreference('server_name', document.getElementById('txtcurl').value)
+ setServer(document.getElementById("dbprotocol_list").value+document.getElementById('txtcurl').value +":" + document.getElementById('txtcport').value);
+ config_close()
+}
+
+function openConfigChange() {
+ window.close("chrome://openerp_plugin/content/config.xul", "", "chrome");
+ open_window("chrome://openerp_plugin/content/config_change.xul", 350,200);
+}
+
+//xmlrpc request handler for getting the list of database
+var listDbHandler = {
+ onResult: function(client, context, result) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var arrMethodList = result.QueryInterface(Components.interfaces.nsISupportsArray);
+ var count = arrMethodList.Count();
+ if (count < 1) {
+ setDBList("false");
+ return
+ }
+
+ setDBList("true");
+ dbname_saved = getPreference("serverdbname")
+
+ var menu1 = document.createElement("menulist");
+ menu1.setAttribute("id","DBlist");
+ menu1.setAttribute("width","300");
+ var menupopup1 = document.createElement("menupopup");
+ menu1.appendChild(menupopup1)
+
+ // Loop through the results, adding items to the list
+ for (i = 0; i < count; i++) {
+ var dbname = arrMethodList.QueryElementAt(i, Components.interfaces.nsISupportsCString).data;
+ menupopup1.appendChild(createMenuItem(dbname, dbname));
+ if (dbname == dbname_saved) {
+ index = i
+ }
+ }
+
+ var db_text_field = document.getElementById("DBlist_text");
+ db_text_field.parentNode.replaceChild(menu1, db_text_field);
+
+ menu1.selectedIndex = index
+ },
+
+
+ onFault: function (client, ctxt, fault) {
+ setDBList("false");
+ },
+
+ onError: function (client, ctxt, status, errorMsg) {
+ setDBList("false");
+ }
+};
+//function to get the database list
+function getDbList(argControl) {
+ setDBList("false");
+ setServerService('xmlrpc/db');
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var xmlRpcClient = getXmlRpc();
+ var cmbDbList = document.getElementById(argControl);
+
+ xmlRpcClient.asyncCall(listDbHandler,cmbDbList,'list',[],0);
+ return [];
+}
+
+
+function check_database() {
+ if (getDBList()=="false") {
+ if (document.getElementById('DBlist_text').value =='') {
+ alert("You Must Enter Database Name.");
+ return false;
+ }
+ return document.getElementById('DBlist_text').value;
+ }
+ else {
+ return document.getElementById('DBlist').value;
+ }
+
+}
+
+function connection() {
+ callback = check_connection(login_success)
+ setPreference('serverdbname', check_database())
+ setServer(document.getElementById('txturl').value);
+ setUsername(document.getElementById('txtusername').value);
+ setPassword(document.getElementById('txtpassword').value);
+ login()
+}
+//function to check the login information
+function login_success() {
+ alert("login successfull");
+ window.close("chrome://openerp_plugin/content/config.xul", "", "chrome");
+}
diff --git a/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/create.js b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/create.js
new file mode 100644
index 00000000000..9a549137fa6
--- /dev/null
+++ b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/create.js
@@ -0,0 +1,123 @@
+function load_createContact() {
+ document.getElementById("txtname").value = getSenderName();
+ document.getElementById("txtemail").value = getSenderEmail();
+ setPartnerId(0);
+}
+
+//function to create the xmlrpc supported variables for xmlrpc request
+function dictcontact(a,b){
+ var temp = xmlRpcClient.createType(xmlRpcClient.ARRAY,{});
+ for(i=0;i<a.length;i++){
+ var strkey = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strkey.data = a[i]
+ var strvalue = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strvalue.data = b[i]
+ var test = xmlRpcClient.createType(xmlRpcClient.ARRAY,{});
+ test.AppendElement(strkey);
+ test.AppendElement(strvalue);
+ temp.AppendElement(test);
+ }
+ return temp;
+}
+
+function selectPartner(){
+ var item = document.getElementById('listPartnerBox').selectedItem
+ if(item) {
+ var label = item.label;
+ setPartnerId(item.value);
+ document.getElementById('txtselectpartner').setAttribute('value', label);
+ window.opener.document.getElementById('txtselectpartner').setAttribute('value', label);
+ }
+}
+
+function clear() {
+ setPartnerId(0);
+ document.getElementById('txtselectpartner').setAttribute('value', '');
+}
+
+
+//xmlrpc request handler for getting the list of partners
+var listPartnerHandler = {
+
+ onResult: function(client, context, result) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var arrMethodList = result.QueryInterface(Components.interfaces.nsISupportsArray);
+ // Set the number of results
+ var count = arrMethodList.Count();
+ var close=0;
+ clear_search_box('listPartnerBox')
+ // Loop through the results, adding items to the list
+ var cmbSearchList = document.getElementById('listPartnerBox');
+ for (i = 0; i < count; i++) {
+ var temp = arrMethodList.QueryElementAt(i, Components.interfaces.nsISupportsArray);
+ id = temp.QueryElementAt(0, Components.interfaces.nsISupportsPRInt32);
+ name = temp.QueryElementAt(1, Components.interfaces.nsISupportsCString);
+ var listItem = document.createElement("listitem");
+ cmbSearchList.appendItem(name, id)
+ }
+
+ },
+ onFault: function (client, ctxt, fault) {
+ log_message(fault)
+ },
+
+ onError: function (client, ctxt, status, errorMsg) {
+ log_message(errorMsg)
+ }
+}
+
+//function to get the list of partners
+function getPartnerList(){
+ setServerService('xmlrpc/object');
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var xmlRpcClient = getXmlRpc();
+
+ var cmdPartnerList = document.getElementById('listPartnerBox');
+
+ var name = document.getElementById('txtselectpartner').value;
+ 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 strmethod = get_rpc_string(xmlRpcClient, 'list_document_get');
+ var strobj = get_rpc_string(xmlRpcClient, 'plugin.handler');
+ var strmodel = get_rpc_string(xmlRpcClient, 'res.partner');
+ var strname = get_rpc_string(xmlRpcClient, name);
+ xmlRpcClient.asyncCall(listPartnerHandler,cmdPartnerList,'execute',[ strDbName,struid,strpass,strobj,strmethod,strmodel, strname ],7);
+}
+
+
+
+//xmlrpc request handler for creating a new contact
+var listCreateContactHandler = {
+ onResult: function(client, context, result) {
+ res = extract_data(result)
+ open_url(res[URL])
+ window.close();
+ },
+ onFault: function (client, ctxt, fault) {
+ log_message(fault)
+ },
+
+ onError: function (client, ctxt, status, errorMsg) {
+ log_message(errorMsg)
+ }
+}
+
+
+//function to create a new contact
+function createContact(){
+ 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 strmethod = get_rpc_string(xmlRpcClient, 'list_document_get');
+ var strobj = get_rpc_string(xmlRpcClient, 'plugin.handler');
+ var strmethod = get_rpc_string(xmlRpcClient, 'contact_create');
+ var strpartnerid = get_rpc_int(xmlRpcClient, getPartnerId());
+ var a = ['name','email'];
+ var b = [document.getElementById("txtname").value, document.getElementById("txtemail").value];
+ var arrofarr = dictcontact(a,b);
+ xmlRpcClient.asyncCall(listCreateContactHandler,null,'execute',[strDbName,struid,strpass,strobj,strmethod,arrofarr, strpartnerid], 7);
+}
diff --git a/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/dialog.js b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/dialog.js
new file mode 100644
index 00000000000..3a402959c46
--- /dev/null
+++ b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/dialog.js
@@ -0,0 +1,13 @@
+function load_contact_dialog() {
+ log_message("load contact dialog")
+ if (getPreference('statutdoc')=='open') {
+ document.getElementById('open_document').hidden=false;
+ document.getElementById('new').hidden=false;
+ document.getElementById('message_label').value="Document found"
+ }
+ else {
+ document.getElementById('open_document').hidden=true;
+ document.getElementById('new').hidden=false;
+ document.getElementById('message_label').value="Document not found"
+ }
+}
diff --git a/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/overlay.js b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/overlay.js
new file mode 100644
index 00000000000..a271f72c491
--- /dev/null
+++ b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/overlay.js
@@ -0,0 +1,142 @@
+//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);
+}
diff --git a/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/push.js b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/push.js
new file mode 100644
index 00000000000..be345b2ab3e
--- /dev/null
+++ b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/push.js
@@ -0,0 +1,154 @@
+//xmlrpc request handler for list of search object exist in database or not.
+var DocumentTypeHandler = {
+ onResult: function(client, context, result) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var modelListRPC = result.QueryInterface(Components.interfaces.nsISupportsArray);
+
+ var menu_popup = document.getElementById("model_list");
+ for(i = 0; i < modelListRPC.Count(); i++) {
+ var temp_array = modelListRPC.QueryElementAt(i, Components.interfaces.nsISupportsArray);
+ var model_value = temp_array.QueryElementAt(0, Components.interfaces.nsISupportsCString);
+ var model_name = temp_array.QueryElementAt(1, Components.interfaces.nsISupportsCString);
+ if(i == 0) {
+ var menuitem = document.getElementById("first_model_list");
+ menuitem.setAttribute("label", model_name);
+ menuitem.setAttribute("value", model_value);
+ }
+ else {
+ menu_popup.appendChild(createMenuItem(model_name, model_value));
+ }
+
+ }
+ },
+
+ onFault: function (client, ctxt, fault) {
+ log_message("Fault getDocument : " + fault)
+ },
+
+ onError: function (client, ctxt, status, errorMsg) {
+ log_message("Error getDocument : " + errorMsg)
+ }
+}
+
+//function to create a new attachment record
+function getDocumentType(){
+ 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, 'document_type');
+ xmlRpcClient.asyncCall(DocumentTypeHandler,null,'execute',[strDbName,struid,strpass,strobj,strmethod], 5);
+}
+
+/**
+ * Search Handler : Fill the result of list_document_get in the listbox
+ */
+//xmlrpc request handler for getting the search results for the particular selected check box object
+var listSearchCheckboxHandler = {
+ onResult: function(client, context, result) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var arrMethodList = result.QueryInterface(Components.interfaces.nsISupportsArray);
+ // Set the number of results
+ var count = arrMethodList.Count();
+ var close=0;
+ clear_search_box('listSearchBox')
+ if(count == 0){
+ alert("No Records Found");
+ return false;
+ }
+
+ // Loop through the results, adding items to the list
+ var cmbSearchList = document.getElementById('listSearchBox');
+
+ for (i = 0; i < count; i++) {
+ var temp = arrMethodList.QueryElementAt(i, Components.interfaces.nsISupportsArray);
+ id = temp.QueryElementAt(0, Components.interfaces.nsISupportsPRInt32);
+ name = temp.QueryElementAt(1, Components.interfaces.nsISupportsCString);
+ var listItem = document.createElement("listitem");
+ cmbSearchList.appendItem(name, id)
+ }
+ },
+
+ onFault: function (client, ctxt, fault) {
+ log_message(fault)
+ },
+
+ onError: function (client, ctxt, status, errorMsg) {
+ log_message(errorMsg)
+ }
+};
+
+//function to search the records of selected checkbox object
+function searchCheckbox()
+{
+ model_name = document.getElementById('menu_model_list').selectedItem.value;
+ name = document.getElementById('txtvalueobj').value
+
+ setServerService('xmlrpc/object');
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var xmlRpcClient = getXmlRpc();
+ var cmbSearchList = document.getElementById('listSearchBox');
+ 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 strmethod = get_rpc_string(xmlRpcClient, 'list_document_get');
+ var strobj = get_rpc_string(xmlRpcClient, 'plugin.handler');
+ var strmodel = get_rpc_string(xmlRpcClient, model_name);
+ var strname = get_rpc_string(xmlRpcClient, name);
+
+ xmlRpcClient.asyncCall(listSearchCheckboxHandler,cmbSearchList,'execute',[ strDbName,struid,strpass,strobj,strmethod, strmodel, strname],7);
+}
+
+
+
+//xmlrpc request handler for creating the record of mail
+var pushHandler = {
+ onResult: function(client, context, result) {
+ res = extract_data(result)
+ alert(res[ADDITIONAL_INFORMATION])
+ open_url(res[URL]);
+ window.close();
+ },
+
+ onFault: function (client, ctxt, fault) {
+ log_message(fault)
+ },
+
+ onError: function (client, ctxt, status, errorMsg) {
+ log_message(errorMsg)
+ }
+}
+
+
+function push(op) {
+ var model_name = document.getElementById('menu_model_list').selectedItem.value;
+ var res_id = 0;
+ if(op == "add") {
+ var item = document.getElementById('listSearchBox').selectedItem
+ if (String(item) == "null") {
+ alert("select at least one Document !")
+ return
+ }
+
+ var res_id = item.value;
+
+ }
+ 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 strmethod = get_rpc_string(xmlRpcClient, 'push_message');
+ var strobj = get_rpc_string(xmlRpcClient, 'plugin.handler');
+ var stremail = get_rpc_string(xmlRpcClient, getPreference('email_text'));
+ var strmodel = get_rpc_string(xmlRpcClient, model_name);
+ var strres_id = get_rpc_int(xmlRpcClient, res_id);
+ xmlRpcClient.asyncCall(pushHandler,null,'execute',[strDbName,struid,strpass,strobj,strmethod,strmodel, stremail, strres_id],8);
+}
+
+
diff --git a/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/tiny_xmlrpc.js b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/tiny_xmlrpc.js
new file mode 100644
index 00000000000..0b26a8ed7cb
--- /dev/null
+++ b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/tiny_xmlrpc.js
@@ -0,0 +1,421 @@
+/************************************************************
+* OpenERP, Open Source Management Solution
+* Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Affero General Public License as
+* published by the Free Software Foundation, either version 3 of the
+* License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Affero General Public License for more details.
+*
+* You should have received a copy of the GNU Affero General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+***************************************************************/
+
+var xmlRpcClient;
+
+//Service name on server like /common,/db etc...
+var strServerService;
+
+
+var uri = new Array();
+var name = new Array();
+var rpc= {
+ servers: {},
+ addserver: function(name,ip,port,path) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ this.servers[name]= {
+ ip: ip,
+ port: port,
+ path: path,
+ avaible: true,
+ sock: Components.classes['@mozilla.org/xml-rpc/client;1'].createInstance(Components.interfaces.nsIXmlRpcClient)};
+ },
+ getany: function(rpcval,n) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var t = ['PRUint8','PRUint16','PRInt16','PRInt32','PRBool','Char','CString','Float','Double','PRTime','InputStream','Array','Dictionary'];
+ for (var i=0; i<t.length; i++)
+ try { return [t[i],this.Iget(rpcval,Components.interfaces[((i==10 || i==12)? 'nsI': 'nsISupports')+t[i]],n)]; } catch(e) {}
+ return [false,'error getany','Undefined type'];
+ },
+ onfault: function(t) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ return (t.constructor==Array && t.length==3 && !t[0] && (t[1].substr(0,5)=='error' || t[1].substr(0,5)=='fault'))?
+ true : false;
+ },
+ getall: function(rpcval,n) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var t = this.getany(rpcval,n);
+ if (this.onfault(t)) return t;
+ if (t[0]=='PRBool') return (t[1]=='true');
+ if (t[0]=='PRInt32') return parseInt(t[1]+'');
+ if (t[0]=='PRTime') {
+ dte= new Date("January 1, 1970, 00:00:00");
+ dte.setUTCMilliseconds(t[1]+'');
+ return dte; }
+ if (t[0]=='Double' || t[0]=='Float') return parseFloat(t[1]+'');
+ if (t[0]=='Char' || t[0]=='CString') return (t[1]+'').replace(/¬/g,'€');
+ if (t[0]=='Array') {
+ var a=[];
+ for (var i=0; i<t[1].Count(); i++) a[i]= this.getall(t[1],i);
+ } else if (t[0]=='Dictionary') {
+ var a={};
+ var keys = t[1].getKeys({});
+ for (var k = 0; k < keys.length; k++)
+ a[keys[k]]= this.getall(t[1],keys[k]);
+ } else return t[1];
+ return a;
+ },
+ Iget: function(rpcval,itype,n) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ if (n == undefined) return rpcval.QueryInterface(itype);
+ else if (n==parseInt(n)) return rpcval.QueryElementAt(n,itype);
+ else return rpcval.getValue(n).QueryInterface(itype);
+ },
+ checktype: function(val) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ if (val != undefined) {
+ switch (val.constructor) {
+ case Number: return (val==parseInt(val))? 1:4;
+ case Boolean: return 2;
+ case String: return 3;
+ case Date: return 5;
+ case Object: return 7;
+ case Array: return 6;
+
+ }
+ }
+ return 7;
+
+ },
+ set: function(rpcobj,param) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ if (param==undefined) return [false,'error set','Undefined parameter'];
+ var itype= this.checktype(param);
+ if (this.onfault(itype)) return itype;
+ var p = this.servers[rpcobj].sock.createType(itype,{});
+ if (itype==6) {
+ if (param.length>0)
+ for (var i=0; i<param.length; i++) p.AppendElement( this.set(rpcobj,param[i]) );
+ } else if (itype==7) {
+ for (var i in param) p.setValue( i, this.set(rpcobj,param[i]) );
+ } else if (itype==4) {
+ p.data=(''+param).replace(',','.');
+ } else p.data=param;
+ return p;
+ },
+ ask: function(rpcobj,method,params,func_out) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var a=this.disableNset(rpcobj) ;
+ if (this.onfault(a)) return a;
+ var handler = {
+ onResult: function(client, async, result) {
+ rpc.servers[rpcobj].avaible= true;
+ func_out(rpc.getall(result)); },
+ onFault: function (client, async, faute) {alert("in ask infault"+result)
+ rpc.servers[rpcobj].avaible= true; func_out([false,'fault',faute]); },
+ onError: function (client, async, status, msg) {
+ rpc.servers[rpcobj].avaible= true;
+ if (status=='2147500037') {
+ status= "no network or no server";
+ msg= "1. Check your network connection.";
+ msg+= "\n2. Check your server connection parameters:";
+ msg+= "\n\t"+rpc.servers[rpcobj].ip+":"+rpc.servers[rpcobj].port+"=>"+params[0];
+ msg+= "\n3. Your server may not be launched or connected to the network.";
+ }
+ func_out([false,'error '+status,msg]);
+ } };
+ var p = [];
+ for (var i=0; i<params.length; i++)
+ p[i]= this.set(rpcobj,params[i]);
+ try { this.servers[rpcobj].sock.asyncCall(handler, null, method, p, p.length);
+ } catch(e) {
+ this.servers[rpcobj].avaible= true;
+ this.servers[rpcobj].sock= Components.classes['@mozilla.org/xml-rpc/client;1'].createInstance(Components.interfaces.nsIXmlRpcClient) ;
+ func_out([false,'error catch',e]); }
+ return true;
+ },
+ disableNset: function(rpcobj) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ if (this.servers[rpcobj]) {
+ this.servers[rpcobj].avaible= false;//alert('http://'+this.servers[rpcobj].ip+':'+this.servers[rpcobj].port+this.servers[rpcobj].path);
+ server_path=this.servers[rpcobj].ip+':'+this.servers[rpcobj].port+this.servers[rpcobj].path
+ this.servers[rpcobj].sock.init(server_path);
+
+ return true; }
+ return [false,'error disableNset','Server vars not set'];
+ }
+}
+
+var callback = null;
+
+//Sets the preference service
+function getPref(){
+ var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
+ var branchobj = prefService.getBranch("extensions.tiny.");
+ branchobj.QueryInterface(Components.interfaces.nsIPrefBranch2);
+ return branchobj
+}
+
+function getPreference(key, type) {
+ if (!type || type == 'STRING') {
+ return getPref().getCharPref(key);
+ }
+ if (type == 'INT') {
+ return getPref().getIntPref(key);
+ }
+}
+
+function getPreferenceDefault(key, default_value, type) {
+ res = getPreference(key, type)
+ if (!res || res == "")
+ return default_value
+ return res
+}
+
+function setPreference(key, value, type) {
+
+ if (!type || type == 'STRING') {
+ getPref().setCharPref(key, value);
+ }
+ if (type == 'INT') {
+ getPref().setIntPref(key, value);
+ }
+}
+
+
+
+function setServerName(server) {
+ setPreference('server_name', server)
+}
+
+function getServerName(server) {
+ getPreference('server_name')
+}
+
+//set preference value for server port
+function setPort(argPort){
+ getPref().setCharPref('serverport',argPort)
+}
+
+//get server port
+function getPort(){
+ return getPref().getCharPref('serverport');
+}
+
+
+
+
+//set preference value for server url
+function setServer(argServer){
+ getPref().setCharPref('serverurl',argServer);
+}
+
+//set preference value of username for login
+function setUsername(argUsername){
+ getPref().setCharPref('username',argUsername);
+}
+
+//set preference value of password for login
+function setPassword(argPassword){
+ getPref().setCharPref('password',argPassword);
+}
+
+
+//set server service
+function setServerService(argServerService){
+ strServerService = argServerService;
+}
+
+
+
+//set preference value for storing partner id
+function setPartnerId(argPartnerId){
+ getPref().setCharPref('partnerid',argPartnerId)
+}
+
+
+//set preference value for storing user id
+function setUserId(argUserId){
+ getPref().setIntPref('userid',argUserId);
+}
+
+//set database list is displaye or not
+function setDBList(argDBList){
+ getPref().setCharPref('db_list',argDBList)
+}
+
+//set module install or not
+function setmodule_install(argconnect_module){
+ getPref().setCharPref('module_install',argconnect_module)
+}
+
+//get module install or not
+function getmodule_install(){
+ return getPref().getCharPref('module_install');
+}
+
+
+//get partner id
+function getPartnerId(){
+ return getPref().getCharPref('partnerid');
+}
+//get database list is displaye or not
+function getDBList(){
+ return getPref().getCharPref('db_list');
+}
+
+//get serverurl
+function getServer(){
+ return getPref().getCharPref('serverurl');
+}
+
+
+//get database name
+function getDbName(){
+ return getPref().getCharPref('serverdbname');
+}
+
+//get username from config settings
+function getUsername(){
+ return getPref().getCharPref('username');
+}
+
+//get password from config settings
+function getPassword(){
+ return getPref().getCharPref('password');
+}
+
+//get serverservice
+function getServerService(){
+ return strServerService;
+
+}
+
+//get sender email //TO REMOVE
+function getSenderEmail(){
+ return getPref().getCharPref('senderemail');
+}
+
+//get sender name //TO REMOVE
+function getSenderName() {
+ return getPref().getCharPref('sendername');
+}
+
+//get the whole server path
+function getServerUrl(){
+ return getServer()+"/"+getServerService();
+}
+
+
+//Creates and returns and instance of the XML-RPC client
+function getClient() {
+ // Enable correct security
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ return Components.classes['@mozilla.org/xml-rpc/client;1'].createInstance(Components.interfaces.nsIXmlRpcClient);
+}
+
+//returns the xmlrpc client instance
+function getXmlRpc() {
+ if (!xmlRpcClient) {
+ xmlRpcClient = getClient();
+ }
+ // Initialize the client with the URL
+ xmlRpcClient.init(getServerUrl());
+ return xmlRpcClient;
+}
+
+
+/**
+ * module_install handler
+ */
+var listinstallmodulehandler = {
+ onResult: function(client, context, result) {
+ setmodule_install('yes')
+ callback()
+ },
+ onFault: function (client, ctxt, fault) {
+ setmodule_install('no')
+ callback()
+ },
+
+ onError: function (client, ctxt, status, errorMsg) {
+ setmodule_install('no')
+ callback()
+ }
+}
+/**
+ * Check is the plugin module is installed
+ */
+function module_install()
+{
+ setmodule_install("no")
+
+ 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 strmethod = get_rpc_string(xmlRpcClient, "is_installed");
+ var strobj = get_rpc_string(xmlRpcClient, "plugin.handler");
+ xmlRpcClient.asyncCall(listinstallmodulehandler,null,'execute',[ strDbName,struid,strpass,strobj,strmethod], 5);
+}
+
+
+//xmlrpc request handler for handling the login information
+var listcreateLoginHandler = {
+ onResult: function(client, context, result) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var login = result.QueryInterface(Components.interfaces.nsISupportsPrimitive)
+ if(login.type == 12){
+ login = result.QueryInterface(Components.interfaces.nsISupportsPRInt32)
+ setUserId(login.data);
+ module_install()
+ }
+ else{
+ setUserId(0);
+ callback();
+ }
+ },
+ onFault: function (client, ctxt, fault) {
+ setUserId(0);
+ callback();
+ },
+
+ onError: function (client, ctxt, status, errorMsg) {
+ setUserId(0);
+ callback();
+ }
+}
+
+
+function login(){
+ setServerService('xmlrpc/common');
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var xmlRpcClient = getXmlRpc();
+ var strDbName = get_rpc_string(xmlRpcClient, getPreference("serverdbname"));
+ var strusername = get_rpc_string(xmlRpcClient, getPreference('username'));
+ var strpass = get_rpc_string(xmlRpcClient, getPreference("password"));
+ xmlRpcClient.asyncCall(listcreateLoginHandler,null,'login',[strDbName,strusername,strpass],3);
+}
+
+function get_rpc_string(rpc_client, val) {
+ var str = rpc_client.createType(rpc_client.STRING,{});
+ str.data = val;
+ return str;
+}
+
+function get_rpc_int(rpc_client, val) {
+ var integer = rpc_client.createType(rpc_client.INT,{});
+ integer.data = val;
+ return integer;
+}
+
+
+
diff --git a/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/tools.js b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/tools.js
new file mode 100644
index 00000000000..36cfc51a189
--- /dev/null
+++ b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/js/tools.js
@@ -0,0 +1,91 @@
+function log_message(message) {
+ window.dump("[OPENERP-PLUGIN LOG]: " + message + "\n")
+}
+
+function getMessage(uri) {
+ var content;
+ var MsgService = messenger.messageServiceFromURI(uri);
+ var MsgStream = Components.classes["@mozilla.org/network/sync-stream-listener;1"].createInstance();
+ var MsgStrem_Inputstream = MsgStream.QueryInterface(Components.interfaces.nsIInputStream);
+ var ScriptInput = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance();
+ var ScriptInputStream = ScriptInput.QueryInterface(Components.interfaces.nsIScriptableInputStream);
+ ScriptInputStream.init(MsgStream);
+ try {
+ MsgService.streamMessage(uri,MsgStream, msgWindow, null, false, null);
+ } catch (ex) {
+ return;
+ }
+ ScriptInputStream .available();
+ while (ScriptInputStream .available()) {
+ content = content + ScriptInputStream.read(512);
+ }
+ return content
+
+}
+
+function createMenuItem(aLabel, aValue) {
+ const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
+ var item = document.createElementNS(XUL_NS, "menuitem"); // create a new XUL menuitem
+ item.setAttribute("label", aLabel);
+ item.setAttribute("value", aValue);
+ return item;
+}
+
+
+function clear_search_box(element) {
+ var cmbSearchList = document.getElementById(element);
+ count = cmbSearchList.itemCount
+ for(i = 1; i <= count; i++) {
+ cmbSearchList.removeItemAt(count - i)
+ }
+}
+
+function open_url(url) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var messenger = Components.classes['@mozilla.org/messenger;1'].createInstance(Components.interfaces.nsIMessenger);
+ messenger.launchExternalURL(url);
+}
+
+function extract_data(result) {
+ var returnArray = new Array();
+
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var res = result.QueryInterface(Components.interfaces.nsISupportsArray);
+ returnArray[0] = res.QueryElementAt(0, Components.interfaces.nsISupportsCString);
+ returnArray[1] = res.QueryElementAt(1, Components.interfaces.nsISupportsPRInt32);
+
+ for(i = 2; i < res.Count(); i++) {
+ returnArray[i] = res.QueryElementAt(i, Components.interfaces.nsISupportsCString);
+ }
+ return returnArray
+}
+
+
+var MODEL = 0;
+var RES_ID = 1;
+var URL = 2;
+var ADDITIONAL_INFORMATION = 3
+
+function check_connection(callback) {
+ return function () {
+ if(getPreference('userid', 'INT') == 0) {
+ alert("Server unreachable or login Failed, please check your connection settings")
+ return
+ }
+ else if (getmodule_install() == "no") {
+ alert("Please install the thunderbird module on your '" + getDbName() +"' database and try again !");
+ return
+ }
+ return callback()
+ }
+}
+
+function open_window(url,width,height) {
+ var win = window.open(url, '', 'chrome,width='+width+',height='+height+',resizable=yes');
+ var w = ((window.screen.availWidth/2)-(width/2));
+ var h=((window.screen.availHeight/2)-(height/2));
+ win.moveTo(w,h);
+}
+
+
+
diff --git a/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/overlay.xul b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/overlay.xul
new file mode 100644
index 00000000000..bf825d91084
--- /dev/null
+++ b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/overlay.xul
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://openerp_plugin/skin/overlay.css" type="text/css"?>
+<!DOCTYPE overlay SYSTEM "chrome://openerp_plugin/locale/overlay.dtd">
+<overlay id="tiny-overlay"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<script type="text/javascript" src="chrome://openerp_plugin/content/js/tiny_xmlrpc.js"></script>
+<script type="text/javascript" src="chrome://openerp_plugin/content/js/tools.js"></script>
+<script type="text/javascript" src="chrome://openerp_plugin/content/js/overlay.js"></script>
+
+
+<menubar id="mail-menubar" >
+ <menu insertafter="messageMenu" id="menu_openerp" label="&openerpMenu.label;" accesskey="&openerpMenu.accesskey;">
+ <menupopup id="taskPopup">
+ <menuitem id="tiny-openpartner" label="Contact"
+ oncommand="check(open_partner);"
+ image="&menuicon.value;"
+ class="menuitem-iconic"
+ tooltiptext="&openpartnertooltip.value;"
+ />
+
+ <menuitem id="tiny-opendocument" label="Documents"
+ oncommand="check(open_document);"
+ image="&menuicon.value;"
+ class="menuitem-iconic"
+ tooltiptext="&opendocumenttooltip.value;"
+ />
+ <menuitem id="tiny-plugin3" label="Configuration"
+ oncommand="open_window('chrome://openerp_plugin/content/config.xul', 580,500);"
+ image="&menuicon.settings;"
+ class="menuitem-iconic"
+ tooltiptext="&pluginconfig.value;"
+ />
+ </menupopup>
+ </menu>
+</menubar>
+
+
+<toolbarpalette id="MailToolbarPalette">
+ <toolbarbutton id="GA-button2"
+ class="toolbarbutton-1"
+ image="&partnericon.value;"
+ label= "Contact"
+ oncommand="check(open_partner);"
+ />
+</toolbarpalette>
+<toolbarpalette id="MailToolbarPalette">
+ <toolbarbutton id="GA-button3"
+ class="toolbarbutton-1"
+ image="&imagearchive.value;"
+ label= "Documents"
+ oncommand="check(open_document);" />
+</toolbarpalette>
+
+</overlay>
diff --git a/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/push.xul b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/push.xul
new file mode 100644
index 00000000000..b57ad68e11b
--- /dev/null
+++ b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/push.xul
@@ -0,0 +1,56 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<?xml-stylesheet href="style.css" type="text/css"?>
+<!DOCTYPE window SYSTEM "chrome://openerp_plugin/locale/plugin.dtd">
+<window id="pluginwindows" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ title="&title.label;" onload="getDocumentType()" >
+
+ <script type="text/javascript" src="chrome://openerp_plugin/content/js/tiny_xmlrpc.js"></script>
+ <script type="text/javascript" src="chrome://openerp_plugin/content/js/tools.js"></script>
+ <script type="text/javascript" src="chrome://openerp_plugin/content/js/push.js"></script>
+ <description></description>
+ <vbox>
+ <separator class="groove-thin" orient="horizontal"/>
+ <grid flex="1">
+ <columns>
+ <column />
+ <column />
+ <column flex="1"/>
+ </columns>
+ <rows>
+ <row>
+ <label id="lblex3" align="right" control="section" value="&object.label;" class="text-prompt" />
+ <menulist id="menu_model_list" >
+ <menupopup id="model_list">
+ <menuitem id="first_model_list" value="" label=""/>
+ </menupopup>
+ </menulist>
+ </row>
+ <row>
+ <label id="lblsearch" control="txtvalueobj" value="&search.label;" class="text-prompt"/>
+ <textbox id="txtvalueobj" />
+ <button label="&bsearch.label;" oncommand="searchCheckbox()" image="&imagesearch.value;" accesskey="s" id="search_button"/>
+ </row>
+ </rows>
+ </grid>
+ <hbox >
+ <caption label="&document.label;" id="label_box"/>
+ </hbox>
+ <vbox >
+ <listbox height="200" id="listSearchBox" style="border:1px solid red" seltype="multiple">
+ <listhead>
+ <listheader label="&listSearchBox.header;"/>
+ </listhead>
+ <listcols>
+ <listcol flex="1"/>
+ </listcols>
+ </listbox>
+ </vbox>
+ <hbox align="right" >
+ <button label="&attach.label;" accesskey="u" image="&imagearchive.value;" oncommand="push('add');"/>
+ </hbox>
+ <separator class="groove-thin" orient="horizontal"/>
+ </vbox>
+
+</window>
diff --git a/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/push_dialog.xul b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/push_dialog.xul
new file mode 100644
index 00000000000..72bc7295ffe
--- /dev/null
+++ b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/push_dialog.xul
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+<?xml-stylesheet href="style.css" type="text/css"?>
+<!-- Extremely recommended to keep this css include!! -->
+<window id="rootWnd" title="push box" onload="load_contact_dialog();"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <script type="text/javascript" src="chrome://openerp_plugin/content/js/tiny_xmlrpc.js"></script>
+ <script type="text/javascript" src="chrome://openerp_plugin/content/js/tools.js"></script>
+ <script type="text/javascript" src="chrome://openerp_plugin/content/js/dialog.js"></script>
+ <script type="text/javascript" src="chrome://openerp_plugin/content/js/overlay.js"></script>
+ <vbox>
+ <hbox height="50">
+ <label value="Message" id="message_label" class="text-border"/>
+ </hbox>
+ <hbox align="right">
+ <button label="Cancel" accesskey="c" oncommand="window.close();"/>
+ <button id="push" label="Push Email" accesskey="a" oncommand="window.close();open_window('chrome://openerp_plugin/content/push.xul', 500,360);"/>
+ <button id="new" label="Create Document" accesskey="d" oncommand="window.close();open_window('chrome://openerp_plugin/content/push_new.xul', 320,100);"/>
+ <button id="open_document" label="Open Document" accesskey="o" oncommand="open_url(getPreference('urldoc'));window.close();"/>
+ </hbox>
+ </vbox>
+</window>
diff --git a/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/push_new.xul b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/push_new.xul
new file mode 100644
index 00000000000..e1d22c875ad
--- /dev/null
+++ b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/push_new.xul
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<?xml-stylesheet href="style.css" type="text/css"?>
+<!DOCTYPE window SYSTEM "chrome://openerp_plugin/locale/plugin.dtd">
+<window id="pluginwindows" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ title="&title.label;" onload="getDocumentType()" >
+
+ <script type="text/javascript" src="chrome://openerp_plugin/content/js/tiny_xmlrpc.js"></script>
+ <script type="text/javascript" src="chrome://openerp_plugin/content/js/tools.js"></script>
+ <script type="text/javascript" src="chrome://openerp_plugin/content/js/push.js"></script>
+ <description></description>
+ <vbox>
+ <separator class="groove-thin" orient="horizontal" width="400"/>
+ <grid flex="1">
+ <columns>
+ <column />
+ <column />
+ <column flex="1"/>
+ </columns>
+ <rows>
+ <row>
+ <label id="lblex3" align="right" width="135" control="section" value="&object.label;" class="text-prompt" />
+ <menulist id="menu_model_list" width="150">
+ <menupopup id="model_list">
+ <menuitem id="first_model_list" value="" label=""/>
+ </menupopup>
+ </menulist>
+ </row>
+ </rows>
+ </grid>
+ <hbox align="right" >
+ <button label="&attach.label;" accesskey="u" image="&imagearchive.value;" oncommand="push();"/>
+ </hbox>
+ <separator class="groove-thin" orient="horizontal" width="480"/>
+ </vbox>
+</window>
diff --git a/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/selectpartner.xul b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/selectpartner.xul
new file mode 100644
index 00000000000..db1839ba156
--- /dev/null
+++ b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/selectpartner.xul
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<!DOCTYPE window SYSTEM "chrome://openerp_plugin/locale/selectpartner.dtd">
+<window id="partnerwindowsid" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:html="http://www.w3.org/1999/xhtml" onload="getPartnerList()"
+ title="&title.label;" height="500" width="375">
+<script type="text/javascript" src="chrome://openerp_plugin/content/js/tiny_xmlrpc.js"></script>
+<script type="text/javascript" src="chrome://openerp_plugin/content/js/tools.js"></script>
+<script type="text/javascript" src="chrome://openerp_plugin/content/js/create.js"></script>
+<groupbox id="gpPartner">
+ <hbox>
+ <textbox id="txtselectpartner" class="text-prompt"/>
+ <spacer width="25"/>
+ <button label="&bsearch.label;" image="&imagesearch.value;" oncommand="getPartnerList();"/>
+ </hbox>
+</groupbox>
+<listbox id="listPartnerBox" flex="1" rows="5">
+ <listhead>
+ <listheader label="&listPartnerName.header;"/>
+ </listhead>
+ <listcols>
+ <listcol flex="1"/>
+ </listcols>
+</listbox>
+<description></description>
+<hbox>
+ <spacer width="45"/>
+ <button label="cancel" image="&imagecancel.value;" oncommand="close();" />
+ <button label="link" image="&imageok.value;" oncommand="selectPartner();window.close();"/>
+</hbox>
+
+</window>
diff --git a/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/style.css b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/style.css
new file mode 100644
index 00000000000..59972304145
--- /dev/null
+++ b/addons/plugin_thunderbird/static/thunderbird_plugin/chrome/openerp_plugin/content/style.css
@@ -0,0 +1,10 @@
+.text-prompt {
+ padding-top: .25em;
+ text-align: right;
+}
+
+.text-border {
+ padding: 1em;
+ font-size : 1.2em;
+ font-weight: bold;
+} \ No newline at end of file