source: npl/mailserver/dspam/dspam-3.10.2/contrib/plugins/thunderbird/chrome/content/options.js

Last change on this file was c5c522c, checked in by Edwin Eefting <edwin@datux.nl>, 8 years ago

initial commit, transferred from cleaned syn3 svn tree

  • Property mode set to 100644
File size: 8.1 KB
Line 
1/* read and write options
2* to preferences
3*/
4
5var _elementIDs = ["spamaddress", "hamaddress", "spamaction", "hamaction", "PickFolder0", "PickFolder1", "spamfolder", "hamfolder"];
6       
7function init()
8{
9        var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
10
11        // initialize the default window values...
12        for( var i = 0; i < _elementIDs.length; i++ )
13        {
14                var elementID = _elementIDs[i];
15                var element = document.getElementById(elementID);
16                if (!element) break;
17                        var eltType = element.localName;
18                try
19                {
20                        if (eltType == "radiogroup")
21                                element.selectedIndex = pref.getIntPref(element.getAttribute("prefstring"));
22                        else if (eltType == "checkbox")
23                                element.checked = pref.getBoolPref(element.getAttribute("prefstring"));
24                        else if (eltType == "textbox")
25                                element.value = pref.getCharPref(element.getAttribute("prefstring")) ;
26                        else if (eltType == "menulist")
27                                SetFolderPicker(pref.getComplexValue(element.getAttribute("prefstring"), Components.interfaces.nsISupportsString).data, elementID);
28                } catch (ex) {
29                        if (eltType == "radiogroup")
30                                element.selectedIndex = 0;
31                }
32        }
33
34}
35
36 
37function savePrefs()
38{
39        var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
40        var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
41
42        for( var i = 0; i < _elementIDs.length; i++ )
43        {
44                var elementID = _elementIDs[i];
45
46                var element = document.getElementById(elementID);
47                if (!element) break;
48                        var eltType = element.localName;
49
50                if (eltType == "radiogroup")
51                        pref.setIntPref(element.getAttribute("prefstring"), element.selectedIndex);
52                else if (eltType == "checkbox")
53                        pref.setBoolPref(element.getAttribute("prefstring"), element.checked);
54                else if (eltType == "textbox" && element.preftype == "int")
55                        pref.setIntPref(element.getAttribute("prefstring"), parseInt(element.value) );
56                else if (eltType == "textbox")
57                        pref.setCharPref(element.getAttribute("prefstring"), element.value );
58                else if (eltType == "menulist")
59                        if ((elementID == "PickFolder0") || (elementID == "PickFolder1")) {
60                                var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
61                                str.data = element.getAttribute("uri");
62                                pref.setComplexValue(element.getAttribute("prefstring"), Components.interfaces.nsISupportsString, str);
63                        }
64        }
65}
66
67
68function setFolderPicker(val,pickerID,targetID,selection) {
69
70        try {
71                var picker = document.getElementById(pickerID);
72        } catch(e) {}
73
74        var uri = val;
75        if (selection) {
76                var pn = selection.parentNode;
77                while (pn.id.indexOf('PickFolde') < 0) {
78                        pn = pn.parentNode;
79                }
80                if (pn.id.indexOf('PickFolde') > -1) {
81                        var picker = pn;
82                }
83                uri = selection.getAttribute('id');
84                val = selection.getAttribute('value');
85                if (uri == '' && val == '') return;
86        }
87        var msgfolder = GetMsgFolderFromUri(uri, true);
88        if (msgfolder == null) {
89                if (val == QMglobals.bundle.getString("treeItemNone") ) uri = '';
90        } else {
91                val = document.getElementById("bundle_messenger").getFormattedString("verboseFolderFormat", [msgfolder.name, msgfolder.server.prettyName]);
92        }       
93        try {
94                picker.setAttribute("label",val);
95                picker.setAttribute("uri",uri);
96        } catch(e) {}
97}
98
99/*
100        function savePrefsnction() {
101                var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
102                for( var i = 0; i < QMglobals.items; i++ ) {
103                var elementID = 'PickFolder' + i;
104                var element = document.getElementById(elementID);
105                var uri = element.getAttribute("uri")
106                if (!element) break;
107                pref.setCharPref('quickmove.qf' + i, uri);
108                var element = document.getElementById("qmMR" + i);
109                if (!element) break;
110                pref.setBoolPref("quickmove.markread" + i, element.checked);
111                }
112                for( var i = 1; i < 11; i++ ) {
113                var element = document.getElementById('gl' + i);
114                pref.setCharPref('quickmove.label.group' + i, element.value);
115                }
116            pref.setBoolPref(QMglobals.bundle.getString("debugpref"), document.getElementById("QMdebug").checked);
117            var obSvc = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
118            obSvc.notifyObservers(null, "update_QMsettings", null);
119        }, 
120*/
121
122
123
124
125    function setBox(myId, myValue) {
126      document.getElementById(myId).setAttribute("disabled", !myValue);
127    }
128
129    function getBox(myId) {
130      return document.getElementById(myId).getAttribute("focused")
131    }
132
133    function updateCheckSpam() {
134//      setBox("startupLabel", getBox("spammove"));
135      setBox("PickFolder0", getBox("spammove"));
136    }
137
138    function updateCheckHam() {
139//      setBox("startupLabel", getBox("spammove"));
140      setBox("PickFolder1", getBox("hammove"));
141    }
142
143    function doDefault() {
144      var selected = theListbox.selectedIndex;
145      if (selected < 0) {
146        alert(alerts.getString("dspam.options.errordefault"));
147      } else {
148        var defaultLabel = document.getElementById("defaultServerLabel");
149        var newDefault = theListbox.getItemAtIndex(selected);
150        theListbox.insertItemAt(0, defaultLabel.getAttribute("value"), defaultAccount);
151        defaultLabel.setAttribute("value", newDefault.getAttribute("label"));
152        defaultAccount = newDefault.getAttribute("value");
153        theListbox.removeItemAt(selected+1);
154        theListbox.ensureIndexIsVisible(0);
155        theListbox.selectedIndex = 0;
156      }
157    }
158
159    function doUp() {
160      var selected = theListbox.selectedIndex;
161      if (selected < 0) {
162        alert(alerts.getString("dspam.options.errormoveup"));
163        return;
164      } else if (selected > 0) {
165        var moveMe = theListbox.removeItemAt(selected-1);
166        if (moveMe) {
167          if(selected >= theListbox.getRowCount()) {
168            theListbox.appendItem(moveMe.getAttribute("label"), moveMe.getAttribute("value"));
169          } else {
170            theListbox.insertItemAt(selected, moveMe.getAttribute("label"), moveMe.getAttribute("value"));
171          }
172          if(selected-2 >= 0)
173            theListbox.ensureIndexIsVisible(selected-2);
174          theListbox.ensureIndexIsVisible(selected);
175        }
176      }
177    }
178
179    function doDown() {
180      var selected = theListbox.selectedIndex;
181      if (selected < 0) {
182        alert(alerts.getString("dspam.options.errormovedown"));
183        return;
184      } else if (selected < theListbox.getRowCount()-1) {
185        var moveMe = theListbox.removeItemAt(selected+1);
186        if (moveMe) {
187          theListbox.insertItemAt(selected, moveMe.getAttribute("label"), moveMe.getAttribute("value"));
188          if(selected+2 < theListbox.getRowCount())
189            theListbox.ensureIndexIsVisible(selected+2);
190          theListbox.ensureIndexIsVisible(selected+1);
191        }
192      }
193    }
194
195    function openURL(aURL) {
196      var uri = Components.classes["@mozilla.org/network/standard-url;1"].createInstance(Components.interfaces.nsIURI);
197      uri.spec = aURL;
198      var protocolSvc = Components.classes["@mozilla.org/uriloader/external-protocol-service;1"].getService(Components.interfaces.nsIExternalProtocolService);
199      protocolSvc.loadUrl(uri);
200    }
201
202function chuonthisInitPrefs(branch) {
203  return Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch(branch);
204}
205
206function chuonthisGetPrefString(prefs, prefname) {
207  try {
208    return prefs.getComplexValue(prefname, Components.interfaces.nsISupportsString).data;
209  } catch (ex) {
210    return "";
211  }
212}
213
214function chuonthisSetPrefString(prefs, prefname, prefvalue) {
215  var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
216  str.data = prefvalue;
217  prefs.setComplexValue(prefname, Components.interfaces.nsISupportsString, str);
218}
219
220function chuonthisGetPrefBool(prefs, prefname, defvalue) {
221  try {
222    return prefs.getBoolPref(prefname);
223  } catch (ex) {
224    return defvalue;
225  }
226}
Note: See TracBrowser for help on using the repository browser.