This is just some static backup of the original site, don't expect every link to work!

source: chrome/content/v_identity/vI_statusmenu.js @ d1f668

lite_0.1multiEditng_0.6ng_0.6_helpng_0.8ng_0.9
Last change on this file since d1f668 was d1f668, checked in by rene <rene@…>, 13 years ago

implementation of SMTP storage / change of interface

  • Property mode set to 100644
File size: 11.7 KB
Line 
1/* ***** BEGIN LICENSE BLOCK *****
2    This program is free software; you can redistribute it and/or modify
3    it under the terms of the GNU General Public License as published by
4    the Free Software Foundation; either version 2 of the License, or
5    (at your option) any later version.
6
7    This program is distributed in the hope that it will be useful,
8    but WITHOUT ANY WARRANTY; without even the implied warranty of
9    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10    GNU General Public License for more details.
11
12    You should have received a copy of the GNU General Public License
13    along with this program; if not, write to the Free Software
14    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
15
16    The Original Code is the Virtual Identity Extension.
17
18    The Initial Developer of the Original Code is Rene Ejury.
19    Portions created by the Initial Developer are Copyright (C) 2007
20    the Initial Developer. All Rights Reserved.
21
22    Contributor(s):
23 * ***** END LICENSE BLOCK ***** */
24
25var vI_statusmenu = {
26    prefroot : Components.classes["@mozilla.org/preferences-service;1"]
27        .getService(Components.interfaces.nsIPrefService)
28        .getBranch(null),
29
30    objStatusMenu : null,
31    objSaveBaseIDMenuItem : null,
32    objStorageSaveMenuItem : null,
33    objStatusMenuSeparator : null,
34    objSaveSwitch : null,
35    objSaveBaseIDSwitch : null,
36    objSaveSMTPSwitch : null,
37    objFccSwitch : null,
38    objStatusText : null,
39   
40    observe: function(subject, topic, data) {
41        switch (data) {
42            case "extensions.virtualIdentity.fcc_show_switch":
43                vI_statusmenu.objFccSwitch.setAttribute("hidden", !vI_statusmenu.prefroot.getBoolPref(data));
44                // no break, continue like with doFcc           
45            case "extensions.virtualIdentity.doFcc":
46                vI_statusmenu.objFccSwitch.setAttribute("checked", vI_statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.doFcc"));
47                break;
48            case "extensions.virtualIdentity.storage_show_switch":
49                vI_statusmenu.objSaveSwitch.setAttribute("hidden", !vI_statusmenu.prefroot.getBoolPref(data));
50                break;
51            case "extensions.virtualIdentity.storage_show_baseID_switch":
52                vI_statusmenu.objSaveBaseIDSwitch.setAttribute("hidden", !vI_statusmenu.prefroot.getBoolPref(data));
53                break;
54            case "extensions.virtualIdentity.storage_show_SMTP_switch":
55                vI_statusmenu.objSaveSMTPSwitch.setAttribute("hidden", !vI_statusmenu.prefroot.getBoolPref(data));
56                break;
57            case "extensions.virtualIdentity.storage_storedefault":
58                vI_statusmenu.objStorageSaveMenuItem.setAttribute("checked", vI_statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.storage_storedefault"));
59                break;
60            case "extensions.virtualIdentity.storage_store_base_id":
61                vI_statusmenu.objSaveBaseIDMenuItem.setAttribute("checked", vI_statusmenu.prefroot.getBoolPref(data));
62                break;
63            case "extensions.virtualIdentity.storage_store_SMTP":
64                vI_statusmenu.objSaveSMTPMenuItem.setAttribute("checked", vI_statusmenu.prefroot.getBoolPref(data));
65                break;
66            case "extensions.virtualIdentity.storage_colorIndication":
67                document.getElementById("identityHbox").setAttribute("colorize", vI_statusmenu.prefroot.getBoolPref(data))
68                document.getElementById("baseIDHbox").setAttribute("colorize", vI_statusmenu.prefroot.getBoolPref(data))
69                document.getElementById("smtpServerHbox").setAttribute("colorize", vI_statusmenu.prefroot.getBoolPref(data))
70                break;
71            case "extensions.virtualIdentity.storage":
72                if (vI_statusmenu.prefroot.getBoolPref(data)) {
73                    vI_statusmenu.objStorageSaveMenuItem.removeAttribute("hidden");
74                    vI_statusmenu.objSaveBaseIDMenuItem.removeAttribute("hidden");
75                    vI_statusmenu.objStatusMenuSeparator.removeAttribute("hidden");
76                }
77                else {
78                    vI_statusmenu.objStorageSaveMenuItem.setAttribute("hidden", "true");
79                    vI_statusmenu.objSaveBaseIDMenuItem.setAttribute("hidden", "true");
80                    vI_statusmenu.objStatusMenuSeparator.setAttribute("hidden", "true");
81                }
82                break;
83        }
84        vI_statusmenu.menuConstraint(vI_statusmenu.objStorageSaveMenuItem);
85    },
86   
87    addObserver: function() {
88        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.fcc_show_switch", vI_statusmenu, false);
89        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.doFcc", vI_statusmenu, false);
90        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage", vI_statusmenu, false);
91        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_show_switch", vI_statusmenu, false);
92        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_show_baseID_switch", vI_statusmenu, false);
93        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_show_SMTP_switch", vI_statusmenu, false);
94        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_colorIndication", vI_statusmenu, false);
95        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_storedefault", vI_statusmenu, false);
96        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_store_base_id", vI_statusmenu, false);
97        vI_statusmenu.prefroot.addObserver("extensions.virtualIdentity.storage_store_SMTP", vI_statusmenu, false);
98    },
99   
100    removeObserver: function() {
101        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.fcc_show_switch", vI_statusmenu);
102        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.doFcc", vI_statusmenu);
103        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage", vI_statusmenu);
104        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_show_switch", vI_statusmenu);
105        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_show_baseID_switch", vI_statusmenu);
106        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_show_SMTP_switch", vI_statusmenu);
107        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_colorIndication", vI_statusmenu);
108        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_storedefault", vI_statusmenu);
109        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_store_base_id", vI_statusmenu);
110        vI_statusmenu.prefroot.removeObserver("extensions.virtualIdentity.storage_store_SMTP", vI_statusmenu);
111    },
112   
113    init : function () {
114        vI_statusmenu.prefroot.QueryInterface(Components.interfaces.nsIPrefBranch2);
115
116        vI_statusmenu.objStatusMenu = document.getElementById("vI-status-menu");
117        vI_statusmenu.objSaveBaseIDMenuItem = document.getElementById("vI_statusMenu_storage_saveBaseID");
118        vI_statusmenu.objSaveSMTPMenuItem = document.getElementById("vI_statusMenu_storage_saveSMTP");
119        vI_statusmenu.objStorageSaveMenuItem = document.getElementById("vI_statusMenu_storage_save");
120        vI_statusmenu.objStatusMenuSeparator = document.getElementById("vI_statusMenu_separator");
121        vI_statusmenu.objSaveSwitch = document.getElementById("saveSwitch");
122        vI_statusmenu.objSaveBaseIDSwitch = document.getElementById("saveBaseIDSwitch");
123        vI_statusmenu.objSaveSMTPSwitch = document.getElementById("saveSMTPSwitch");
124        vI_statusmenu.objFccSwitch = document.getElementById("fcc_switch");
125        vI_statusmenu.objStatusText = document.getElementById("statusText");
126        vI_statusmenu.objStatusTooltipLine1 = document.getElementById("vI_statusMenuTooltip_StatusValueLine1");
127        vI_statusmenu.objStatusTooltipLine2 = document.getElementById("vI_statusMenuTooltip_StatusValueLine2");
128
129        vI_statusmenu.addObserver();
130        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.fcc_show_switch");
131        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage_show_switch");
132        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage_show_baseID_switch");
133        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage_show_SMTP_switch");
134        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage_show_switch");
135        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage_colorIndication");
136        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage_store_base_id");
137        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage_store_SMTP");
138        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage_storedefault");
139        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage");
140    },
141   
142    __timeout : 5,  // timeout for status messages in seconds
143    __addStatusMessage : function(save, smtp) {
144        var sourceString = "vident.statusText.save." + save;
145        if (smtp != "off") sourceString = sourceString + ".smtp"
146        var messageLine1 = vI.elements.strings.getString(sourceString + ".line1");
147        var messageLine2 = vI.elements.strings.getString(sourceString + ".line2");
148        if (!messageLine2) {
149            vI_statusmenu.objStatusText.setAttribute("label", messageLine1);
150            vI_statusmenu.objStatusTooltipLine1.setAttribute("value", messageLine1);
151            vI_statusmenu.objStatusTooltipLine2.setAttribute("hidden", "true");
152        }   
153        else {
154            vI_statusmenu.objStatusText.setAttribute("label", messageLine1 + " " + messageLine2);
155            vI_statusmenu.objStatusTooltipLine1.setAttribute("value", messageLine1);
156            vI_statusmenu.objStatusTooltipLine2.setAttribute("value", messageLine2);
157            vI_statusmenu.objStatusTooltipLine2.removeAttribute("hidden");
158        }
159        window.setTimeout(vI_statusmenu.__clearStatusMessage, vI_statusmenu.__timeout * 1000);
160    },
161
162    __clearStatusMessage : function() {
163        vI_statusmenu.objStatusText.setAttribute("label", "");
164    },
165
166    changeSMTPStatus : function (elem) {
167        vI_statusmenu.objSaveSMTPMenuItem.setAttribute("checked", elem.getAttribute("checked"));
168        vI_statusmenu.menuConstraint();
169    },
170
171    changeBaseIDStatus : function (elem) {
172        vI_statusmenu.objSaveBaseIDMenuItem.setAttribute("checked", elem.getAttribute("checked"));
173        vI_statusmenu.menuConstraint();
174    },
175
176    changeSaveStatus : function (elem) {
177        vI_statusmenu.objStorageSaveMenuItem.setAttribute("checked", elem.getAttribute("checked"));
178        vI_statusmenu.menuConstraint();
179    },
180
181    menuConstraint : function () {
182        var save = "off"; var smtp = "off";
183        if (vI_statusmenu.objStorageSaveMenuItem.getAttribute("checked") == "true") {
184            vI_statusmenu.objSaveSMTPMenuItem.removeAttribute("disabled");
185            vI_statusmenu.objSaveBaseIDMenuItem.removeAttribute("disabled");
186            if (vI_statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.storage")) {
187                if (vI_statusmenu.objSaveBaseIDMenuItem.getAttribute("checked") == "true") save = "base";
188                else save = "ok";
189                if (vI_statusmenu.objSaveSMTPMenuItem.getAttribute("checked") == "true") smtp = "save";
190            }
191        }
192        else {
193            vI_statusmenu.objSaveSMTPMenuItem.setAttribute("disabled", "true");
194            vI_statusmenu.objSaveBaseIDMenuItem.setAttribute("disabled", "true");
195        }
196        vI_statusmenu.objStatusMenu.setAttribute("save", save);
197        vI_statusmenu.objStatusMenu.setAttribute("smtp", smtp);
198        vI_statusmenu.__addStatusMessage(save, smtp);
199    },
200
201    clicked : function (button) {
202        if (button != 0) return; // only react on left mouse button
203        if (!vI_statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.storage")) return;
204
205        var curSaveStatus = (vI_statusmenu.objStorageSaveMenuItem.getAttribute("checked") == "true");
206        var curSaveSMTPStatus = (vI_statusmenu.objSaveSMTPMenuItem.getAttribute("checked") == "true");
207        var curSaveBaseIDStatus = (vI_statusmenu.objSaveBaseIDMenuItem.getAttribute("checked") == "true");
208        var newSaveStatus = ((!curSaveStatus) || (curSaveStatus && !curSaveSMTPStatus) || (curSaveStatus && !curSaveBaseIDStatus))
209        var newSaveSMTPStatus = ((!curSaveSMTPStatus && curSaveStatus) || (curSaveBaseIDStatus && !curSaveSMTPStatus))
210        var newSaveBaseIDStatus = ((curSaveSMTPStatus && curSaveStatus && !curSaveBaseIDStatus) || (curSaveBaseIDStatus && !curSaveSMTPStatus))
211        vI_statusmenu.objStorageSaveMenuItem.setAttribute("checked", newSaveStatus)
212        vI_statusmenu.objSaveSMTPMenuItem.setAttribute("checked", newSaveSMTPStatus)
213        vI_statusmenu.objSaveBaseIDMenuItem.setAttribute("checked", newSaveBaseIDStatus)
214       
215        vI_statusmenu.menuConstraint();
216    }
217}
Note: See TracBrowser for help on using the repository browser.