!import
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
1 /*
2 //@line 38 "/home/visbrero/mnt/roisin/rev_control/hg/mozilla/mailnews/base/prefs/resources/content/am-junk.js"
3 */
4
5 const KEY_ISP_DIRECTORY_LIST = "ISPDL";
6 var gPrefBranch = null;
7
onInit
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
8 function onInit(aPageId, aServerId)
9 {
10 // manually adjust several pref UI elements
11 document.getElementById('spamLevel').checked =
12 document.getElementById('server.spamLevel').value > 0;
13
14 var spamActionTargetAccount = document.getElementById('server.spamActionTargetAccount').value;
15 if (!spamActionTargetAccount)
16 {
17 var server = GetMsgFolderFromUri(aServerId, false).server;
18 if (server.canCreateFoldersOnServer && server.canSearchMessages)
19 spamActionTargetAccount = parent.pendingServerId;
20 else
21 spamActionTargetAccount = parent.accountManager.localFoldersServer.serverURI;
22 document.getElementById('server.spamActionTargetAccount').value = spamActionTargetAccount;
23 }
24 SetFolderPicker(spamActionTargetAccount, 'actionTargetAccount');
25 var spamActionTargetFolder = document.getElementById('server.spamActionTargetFolder').value;
26 if (!spamActionTargetFolder)
27 {
28 spamActionTargetFolder = parent.accountManager.localFoldersServer.serverURI + "/Junk";
29 document.getElementById('server.spamActionTargetFolder').value = spamActionTargetFolder;
30 }
31 SetFolderPicker(spamActionTargetFolder, 'actionTargetFolder');
32
33 // set up the whitelist UI
34 var wList = document.getElementById("whiteListAbURI");
35 var currentArray = [];
36 if (document.getElementById("server.useWhiteList").checked)
37 currentArray = document.getElementById("server.whiteListAbURI").value.split(" ");
38
39 for (var i = 0; i < wList.getRowCount(); i++)
40 {
41 var wlNode = wList.getItemAtIndex(i);
42 wlNode.checked = (currentArray.indexOf(wlNode.id) > -1);
43 }
44
45 // set up trusted IP headers
46 var serverFilterList = document.getElementById("useServerFilterList");
47 serverFilterList.value =
48 document.getElementById("server.serverFilterName").value;
49 if (!serverFilterList.selectedItem)
50 serverFilterList.selectedIndex = 0;
51
52 updateMoveTargetMode(document.getElementById('server.moveOnSpam').checked);
53
54 // enable or disable the useServerFilter checkbox
55 var checked = document.getElementById("server.useServerFilter").checked;
56 onServerFilterToggle(checked);
57 }
58
onPreInit
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
59 function onPreInit(account, accountValues)
60 {
61 gPrefBranch = Components.classes["@mozilla.org/preferences-service;1"]
62 .getService(Components.interfaces.nsIPrefService)
63 .getBranch("mail.server." +
64 account.incomingServer.key + ".");
65 buildServerFilterMenuList();
66 }
67
updateMoveTargetMode
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
68 function updateMoveTargetMode(aEnable)
69 {
70 if (aEnable)
71 document.getElementById("broadcaster_moveMode").removeAttribute("disabled");
72 else
73 document.getElementById("broadcaster_moveMode").setAttribute("disabled", "true");
74
75 updatePurgeSpam(aEnable, "purgeSpam");
76 updatePurgeSpam(aEnable, "purgeSpamInterval");
77 }
78
updatePurgeSpam
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
79 function updatePurgeSpam(aEnable, aPref)
80 {
81 if (!aEnable || gPrefBranch.prefIsLocked(aPref))
82 document.getElementById("server." + aPref).setAttribute("disabled", "true");
83 else
84 document.getElementById("server." + aPref).removeAttribute("disabled");
85 }
86
updateSpamLevel
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
87 function updateSpamLevel()
88 {
89 document.getElementById('server.spamLevel').value =
90 document.getElementById('spamLevel').checked ? 100 : 0;
91 }
92
93 // propagate changes to the server filter menu list back to
94 // our hidden wsm element.
onServerFilterListChange
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
95 function onServerFilterListChange()
96 {
97 document.getElementById('server.serverFilterName').value =
98 document.getElementById("useServerFilterList").value;
99 }
100
101 /**
102 * Called when someone checks or unchecks the server-filter checkbox. We need
103 * to enable or disable the menulist accordingly
104 *
105 * @param the boolean value of the checkbox
106 */
onServerFilterToggle
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
107 function onServerFilterToggle(aValue)
108 {
109 document.getElementById("useServerFilterList").disabled = !aValue;
110 }
111
onSave
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
112 function onSave()
113 {
114 onSaveWhiteList();
115 }
116
117 // propagate changes to the whitelist menu list back to
118 // our hidden wsm element.
onSaveWhiteList
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
119 function onSaveWhiteList()
120 {
121 var wList = document.getElementById("whiteListAbURI");
122 var wlArray = [];
123
124 for (var i = 0; i < wList.getRowCount(); i++)
125 {
126 var wlNode = wList.getItemAtIndex(i);
127 if (wlNode.checked)
128 wlArray.push(wlNode.id);
129 }
130 var wlValue = wlArray.join(" ");
131 document.getElementById("server.whiteListAbURI").setAttribute("value", wlValue);
132 document.getElementById("server.useWhiteList").checked = (wlValue != "");
133 }
134
onActionTargetChange
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
135 function onActionTargetChange(aMenuList, aWSMElementId)
136 {
137 document.getElementById(aWSMElementId).value = aMenuList.getAttribute('uri');
138 }
139
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
140 function buildServerFilterMenuList()
141 {
142 var fileLocator = Components.classes["@mozilla.org/file/directory_service;1"]
143 .getService(Components.interfaces.nsIProperties);
144 // Now walk through the isp directories looking for sfd files
145 var ispDirectories = fileLocator.get(KEY_ISP_DIRECTORY_LIST, Components.interfaces.nsISimpleEnumerator);
146 while (ispDirectories.hasMoreElements())
147 {
148 var ispDirectory = ispDirectories.getNext().QueryInterface(Components.interfaces.nsIFile);
149 if (ispDirectory)
150 buildServerFilterListFromDir(ispDirectory);
151 }
152 }
153
154 // helper function called by buildServerFilterMenuList. Enumerates over the passed in
155 // directory looking for .sfd files. For each entry found, it gets appended to the menu list
buildServerFilterListFromDir
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
156 function buildServerFilterListFromDir(aDir)
157 {
158 var ispHeaderList = document.getElementById('useServerFilterList');
159
160 // now iterate over each file in the directory looking for .sfd files
161 var entries = aDir.directoryEntries.QueryInterface(Components.interfaces.nsIDirectoryEnumerator);
162
163 while (entries.hasMoreElements())
164 {
165 var entry = entries.nextFile;
166 if (entry.isFile())
167 {
168 // we only care about files that end in .sfd
169 if (entry.isFile() && /\.sfd$/.test(entry.leafName))
170 {
171 var fileName = RegExp.leftContext;
172 // if we've already added an item with this name, then don't add it again.
173 if (ispHeaderList.getElementsByAttribute("value", fileName).item(0))
174 continue;
175 ispHeaderList.appendItem(fileName, fileName);
176 }
177 }
178 }
179 }