--- /dev/null
+/* ***** BEGIN LICENSE BLOCK *****\r
+ * Copyright (c) 2008-2009 EADS DEFENCE AND SECURITY - All rights reserved.\r
+ * ximfmail is under the triple license MPL 1.1/GPL 2.0/LGPL 2.1.\r
+ *\r
+ *\r
+ * Redistribution and use, in source and binary forms, with or without modification,\r
+ * are permitted provided that the following conditons are met :\r
+ *\r
+ * 1. Redistributions of source code must retain the above copyright notice,\r
+ * 2. MPL 1.1/GPL 2.0/LGPL 2.1. license agreements must be attached\r
+ * in the redistribution of the source code.\r
+ * 3. Neither the names of the copyright holders nor the names of any contributors\r
+ * may be used to endorse or promote products derived from this software without specific\r
+ * prior written permission from EADS Defence and Security.\r
+ *\r
+ * Alternatively, the contents of this file may be used under the terms of\r
+ * either of the GNU General Public License Version 2 or later (the "GPL"),\r
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),\r
+ * in which case the provisions of the GPL or the LGPL are applicable instead\r
+ * of those above. If you wish to allow use of your version of this file only\r
+ * under the terms of either the GPL or the LGPL, and not to allow others to\r
+ * use your version of this file under the terms of the MPL, indicate your\r
+ * decision by deleting the provisions above and replace them with the notice\r
+ * and other provisions required by the GPL or the LGPL. If you do not delete\r
+ * the provisions above, a recipient may use your version of this file under\r
+ * the terms of any one of the MPL, the GPL or the LGPL.\r
+ *\r
+ * REMINDER :\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND\r
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\r
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING\r
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ *\r
+ * EADS Defence and Security - 1 Boulevard Jean Moulin -\r
+ * ZAC de la Clef Saint Pierre - 78990 Elancourt - FRANCE (IDDN.FR.001.480012.002.S.P.2008.000.10000)\r
+ *\r
+ * Contributor(s):\r
+ * Copyright(c) Airbus Defence and Space 2014 - All rights reserved\r
+ * ***** END LICENSE BLOCK ***** */\r
+// get pref settings\r
+function onPreInit(account, accountValues) {\r
+ XimfmailAccountPage.getInstance().setIdentity(account.defaultIdentity);\r
+}\r
+function onInit(aPageId, aServerId) {\r
+ XimfmailAccountPage.getInstance().init();\r
+}\r
+// save all changes on this page\r
+function onSave() {\r
+ XimfmailAccountPage.getInstance().save();\r
+}\r
+/**\r
+ * Ximfmail settings account page\r
+ */\r
+var XimfmailAccountPage = ( function () {\r
+ var instantiated = null;\r
+ var accountIdentity = null;\r
+ var log = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);\r
+ // enable/disable ximfmail settings\r
+ function toogle(){\r
+ if ($("#checkListTheme").attr("checked") === "true") {\r
+ $("#isUsingXimfail").attr("disabled", "false");\r
+ } else {\r
+ $("#isUsingXimfail").attr("disabled", "true");\r
+ }\r
+ }\r
+ /*\r
+ * init default menulist xul element with first menuitem\r
+ * idMenuList : id of menulist xul element\r
+ */\r
+ function initEntryMenu(idMenuList){\r
+ var itemlist = $("#"+ idMenuList +" > menupopup > menuitem");\r
+ $("#"+idMenuList).attr("value",$(itemlist[0]).attr("value"));\r
+ $("#"+idMenuList).attr("label",$(itemlist[0]).attr("label"));\r
+ }\r
+ /*\r
+ * display user pref value in menulist if exists\r
+ * manage RDF Catalog list in accountWizard, accountManager\r
+ * identity : user identity key\r
+ * idPref : user preference key\r
+ * idList : id of menulist xul element\r
+ */\r
+ function initEntryMenuWithPref(idPref,idList){\r
+ var pref = ximfPref.get(accountIdentity.key,idPref);\r
+ log.logStringMessage("[am-ximfmail - initEntryMenuWithPref] pref : " + pref);\r
+ if (pref) {\r
+ var entry = document.getElementById(idList);\r
+ if(!entry){\r
+ log.logStringMessage("[am-ximfmail - initEntryMenuWithPref] unloaded entry : " + entry);\r
+ return;\r
+ }\r
+ var themeList = entry.menupopup.childNodes;\r
+ for (var i=0; i<themeList.length; ++i) {\r
+ if(themeList[i].localName === "menuitem") {\r
+ var themeListval = themeList[i].value;\r
+ if( pref === themeListval){\r
+ entry.value = themeListval;\r
+ entry.label = themeList[i].label;\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ // load instances of selected theme\r
+ function loadTheme() {\r
+ var themeRef = $("#listTheme").attr("value");\r
+ AddRdfDataSce2domList("instanceCompose", themeRef);\r
+ initEntryMenu("instanceComposeList");\r
+ AddRdfDataSce2domList("instanceTreeThread", themeRef);\r
+ initEntryMenu("instanceTreeThreadList");\r
+ };\r
+ /**\r
+ * Listener on datasources of istance definitions menu\r
+ */\r
+ var treebuilderListener = {\r
+ item: null,\r
+ willRebuild : function(builder) {\r
+ },\r
+ didRebuild : function(builder) {\r
+ // determine if user uses ximfmail\r
+ $("#checkListTheme").attr("checked", "false");\r
+ if (ximfPref.getBool(accountIdentity.key, ximfConst.XIMF_PREF_IDENTITY_USE_XIMFMAIL)) {\r
+ $("#checkListTheme").attr("checked", "true");\r
+ }\r
+ initEntryMenuWithPref("ximfmail_theme_ref","listTheme");\r
+ loadTheme();\r
+ initEntryMenuWithPref("ximfmail_instance_compose_ref","instanceComposeList");\r
+ initEntryMenuWithPref(ximfConst.XIMF_PREF_IDENTITY_TREETHREAD_REF,"instanceTreeThreadList");\r
+ $("#listTheme").bind('command', loadTheme);\r
+ $("#checkListTheme").click(toogle);\r
+ toogle();\r
+ // determine if user wants XSMTP compatibility\r
+ $("#xsmtpComptibilityBox").attr("checked", ximfPref.getBool(accountIdentity.key, "ximfmail_xsmtp_compatibility_on").toString());\r
+ }\r
+ };\r
+ //\r
+ function instantiate() {\r
+ return {\r
+ setIdentity : function (aIdentity) {\r
+ accountIdentity = aIdentity;\r
+ },\r
+ init : function () {\r
+ try {\r
+ if (!accountIdentity) {\r
+ // no account id (local folder)\r
+ $("#checkListTheme").attr("checked", "false");\r
+ toogle();\r
+ $("#checkListTheme").attr("disabled", "true");\r
+ return;\r
+ }\r
+ $("#checkListTheme").removeAttr("disabled");\r
+ //load XIMF instances of profile for account\r
+ XimfCatalogFactory.getIntance(function(instance){\r
+ var listInstances = document.getElementById("listThemPopup");\r
+ listInstances.database.AddDataSource(instance.getDSCatalog());\r
+ listInstances.builder.addListener(treebuilderListener);\r
+ listInstances.builder.rebuild();\r
+ });\r
+ } catch (ex) {\r
+ log.logStringMessage("[am-ximfmail] Error on init settings for account " + accountIdentity.key + " : " + ex);\r
+ }\r
+ },\r
+ save : function () {\r
+ try {\r
+ if (!accountIdentity) {\r
+ return;\r
+ }\r
+ // save ximfmail selection to preferences\r
+ ximfPref.set(accountIdentity.key, "ximfmail_theme_ref", $("#listTheme").attr("value"));\r
+ ximfPref.set(accountIdentity.key, "ximfmail_theme_name", $("#listTheme").attr("label"));\r
+ ximfPref.set(accountIdentity.key, "ximfmail_instance_compose_ref", $("#instanceComposeList").attr("value"));\r
+ ximfPref.set(accountIdentity.key, ximfConst.XIMF_PREF_IDENTITY_TREETHREAD_REF,$("#instanceTreeThreadList").attr("value"));\r
+ if($("#checkListTheme").attr("checked") === "true"){\r
+ ximfPref.setBool(accountIdentity.key, ximfConst.XIMF_PREF_IDENTITY_USE_XIMFMAIL,true);\r
+ try{\r
+ CreateSecurityLabelXml();\r
+ }catch(e){}\r
+ }else{\r
+ ximfPref.setBool(accountIdentity.key, ximfConst.XIMF_PREF_IDENTITY_USE_XIMFMAIL,false);\r
+ }\r
+ if($("#xsmtpComptibilityBox").attr("checked") === "true"){\r
+ ximfPref.setBool(accountIdentity.key, "ximfmail_xsmtp_compatibility_on",true);\r
+ }else{\r
+ ximfPref.setBool(accountIdentity.key, "ximfmail_xsmtp_compatibility_on",false);\r
+ }\r
+ log.logStringMessage("[am-ximfmail] Save settings for account " + accountIdentity.key);\r
+ } catch (ex) {\r
+ log.logStringMessage("[am-ximfmail] Error on saving settings for account " + accountIdentity.key + " : " + ex);\r
+ }\r
+ }\r
+ };\r
+ };\r
+ //\r
+ return {\r
+ getInstance : function(){\r
+ if(!instantiated){\r
+ instantiated = instantiate();\r
+ }\r
+ return instantiated;\r
+ }\r
+ };\r
+})();
\ No newline at end of file