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 @ 591297

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

bugfix for #162, missed changed name of pref.

  • Property mode set to 100644
File size: 11.6 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_colorIndication");
135        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage_store_base_id");
136        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage_store_SMTP");
137        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage_storedefault");
138        vI_statusmenu.observe(null, null, "extensions.virtualIdentity.storage");
139    },
140   
141    __timeout : 5,  // timeout for status messages in seconds
142    __addStatusMessage : function(save, smtp) {
143        var sourceString = "vident.statusText.save." + save;
144        if (smtp != "off") sourceString = sourceString + ".smtp"
145        var messageLine1 = vI.elements.strings.getString(sourceString + ".line1");
146        var messageLine2 = vI.elements.strings.getString(sourceString + ".line2");
147        if (!messageLine2) {
148            vI_statusmenu.objStatusText.setAttribute("label", messageLine1);
149            vI_statusmenu.objStatusTooltipLine1.setAttribute("value", messageLine1);
150            vI_statusmenu.objStatusTooltipLine2.setAttribute("hidden", "true");
151        }   
152        else {
153            vI_statusmenu.objStatusText.setAttribute("label", messageLine1 + " " + messageLine2);
154            vI_statusmenu.objStatusTooltipLine1.setAttribute("value", messageLine1);
155            vI_statusmenu.objStatusTooltipLine2.setAttribute("value", messageLine2);
156            vI_statusmenu.objStatusTooltipLine2.removeAttribute("hidden");
157        }
158        window.setTimeout(vI_statusmenu.__clearStatusMessage, vI_statusmenu.__timeout * 1000);
159    },
160
161    __clearStatusMessage : function() {
162        vI_statusmenu.objStatusText.setAttribute("label", "");
163    },
164
165    changeSMTPStatus : function (elem) {
166        vI_statusmenu.objSaveSMTPMenuItem.setAttribute("checked", elem.getAttribute("checked"));
167        vI_statusmenu.menuConstraint();
168    },
169
170    changeBaseIDStatus : function (elem) {
171        vI_statusmenu.objSaveBaseIDMenuItem.setAttribute("checked", elem.getAttribute("checked"));
172        vI_statusmenu.menuConstraint();
173    },
174
175    changeSaveStatus : function (elem) {
176        vI_statusmenu.objStorageSaveMenuItem.setAttribute("checked", elem.getAttribute("checked"));
177        vI_statusmenu.menuConstraint();
178    },
179
180    menuConstraint : function () {
181        var save = "off"; var smtp = "off";
182        if (vI_statusmenu.objStorageSaveMenuItem.getAttribute("checked") == "true") {
183            vI_statusmenu.objSaveSMTPMenuItem.removeAttribute("disabled");
184            vI_statusmenu.objSaveBaseIDMenuItem.removeAttribute("disabled");
185            if (vI_statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.storage")) {
186                if (vI_statusmenu.objSaveBaseIDMenuItem.getAttribute("checked") == "true") save = "base";
187                else save = "ok";
188                if (vI_statusmenu.objSaveSMTPMenuItem.getAttribute("checked") == "true") smtp = "save";
189            }
190        }
191        else {
192            vI_statusmenu.objSaveSMTPMenuItem.setAttribute("disabled", "true");
193            vI_statusmenu.objSaveBaseIDMenuItem.setAttribute("disabled", "true");
194        }
195        vI_statusmenu.objStatusMenu.setAttribute("save", save);
196        vI_statusmenu.objStatusMenu.setAttribute("smtp", smtp);
197        vI_statusmenu.__addStatusMessage(save, smtp);
198    },
199
200    clicked : function (button) {
201        if (button != 0) return; // only react on left mouse button
202        if (!vI_statusmenu.prefroot.getBoolPref("extensions.virtualIdentity.storage")) return;
203
204        var curSaveStatus = (vI_statusmenu.objStorageSaveMenuItem.getAttribute("checked") == "true");
205        var curSaveSMTPStatus = (vI_statusmenu.objSaveSMTPMenuItem.getAttribute("checked") == "true");
206        var curSaveBaseIDStatus = (vI_statusmenu.objSaveBaseIDMenuItem.getAttribute("checked") == "true");
207        var newSaveStatus = ((!curSaveStatus) || (curSaveStatus && !curSaveSMTPStatus) || (curSaveStatus && !curSaveBaseIDStatus))
208        var newSaveSMTPStatus = ((!curSaveSMTPStatus && curSaveStatus) || (curSaveBaseIDStatus && !curSaveSMTPStatus))
209        var newSaveBaseIDStatus = ((curSaveSMTPStatus && curSaveStatus && !curSaveBaseIDStatus) || (curSaveBaseIDStatus && !curSaveSMTPStatus))
210        vI_statusmenu.objStorageSaveMenuItem.setAttribute("checked", newSaveStatus)
211        vI_statusmenu.objSaveSMTPMenuItem.setAttribute("checked", newSaveSMTPStatus)
212        vI_statusmenu.objSaveBaseIDMenuItem.setAttribute("checked", newSaveBaseIDStatus)
213       
214        vI_statusmenu.menuConstraint();
215    }
216}
Note: See TracBrowser for help on using the repository browser.