OLD | NEW |
1 /* | 1 /* |
2 * This Source Code is subject to the terms of the Mozilla Public License | 2 * This Source Code is subject to the terms of the Mozilla Public License |
3 * version 2.0 (the "License"). You can obtain a copy of the License at | 3 * version 2.0 (the "License"). You can obtain a copy of the License at |
4 * http://mozilla.org/MPL/2.0/. | 4 * http://mozilla.org/MPL/2.0/. |
5 */ | 5 */ |
6 | 6 |
7 Cu.import("resource://gre/modules/Services.jsm"); | 7 Cu.import("resource://gre/modules/Services.jsm"); |
8 | 8 |
9 let {Prefs} = require("prefs"); | 9 let {Prefs} = require("prefs"); |
10 Prefs.addListener(onPrefChange); | 10 Prefs.addListener(onPrefChange); |
(...skipping 19 matching lines...) Expand all Loading... |
30 } | 30 } |
31 | 31 |
32 function onPrefChange(name) | 32 function onPrefChange(name) |
33 { | 33 { |
34 if (name == "custom_replace" || name == "whitelist") | 34 if (name == "custom_replace" || name == "whitelist") |
35 updateList(); | 35 updateList(); |
36 } | 36 } |
37 | 37 |
38 function updateList() | 38 function updateList() |
39 { | 39 { |
| 40 // |
| 41 // Custom rules |
| 42 // |
| 43 |
40 let ruleListElement = E("custom_corrections"); | 44 let ruleListElement = E("custom_corrections"); |
41 let whitelistElement = E("whitelist"); | |
42 | 45 |
43 // Remove existing list entries | 46 // Remove existing list entries |
44 for (let i = ruleListElement.getRowCount() - 1; i >= 0; i--) | 47 for (let i = ruleListElement.getRowCount() - 1; i >= 0; i--) |
45 ruleListElement.removeItemAt(i); | 48 ruleListElement.removeItemAt(i); |
46 for (let i = whitelistElement.getRowCount() - 1; i >= 0; i--) | |
47 whitelistElement.removeItemAt(i); | |
48 | 49 |
49 // Build a list of custom rules and sort it alphabetically | 50 // Build a list of custom rules and sort it alphabetically |
50 let prefRulesList = Prefs.custom_replace; | 51 let prefRulesList = Prefs.custom_replace; |
51 let prefWhitelist = Prefs.whitelist; | |
52 let ruleList = []; | 52 let ruleList = []; |
53 let whitelist = []; | 53 |
54 | |
55 for (let searchString in prefRulesList) | 54 for (let searchString in prefRulesList) |
56 { | 55 { |
57 ruleList.push([searchString, prefRulesList[searchString]]); | 56 ruleList.push([searchString, prefRulesList[searchString]]); |
58 } | 57 } |
59 for (let searchString in prefWhitelist) | |
60 { | |
61 whitelist.push(searchString); | |
62 } | |
63 | 58 |
64 ruleList.sort(function(a, b) | 59 ruleList.sort(function(a, b) |
65 { | 60 { |
66 if (a[0] < b[0]) | 61 if (a[0] < b[0]) |
67 return -1; | 62 return -1; |
68 else if (a[0] > b[0]) | 63 else if (a[0] > b[0]) |
69 return 1; | 64 return 1; |
70 else | 65 else |
71 return 0; | 66 return 0; |
72 }); | 67 }); |
73 whitelist.sort(); | |
74 | 68 |
75 // Add the rules to the list | 69 // Add the rules to the list |
76 if (ruleList.length > 0) | 70 if (ruleList.length > 0) |
77 { | 71 { |
78 for (let i = 0; i < ruleList.length; i++) | 72 for (let i = 0; i < ruleList.length; i++) |
79 { | 73 { |
80 let [searchString, replacement] = ruleList[i]; | 74 let [searchString, replacement] = ruleList[i]; |
81 | 75 |
82 let option = document.createElement('listitem'); | 76 let option = document.createElement('listitem'); |
83 option.setAttribute("value", searchString); | 77 option.setAttribute("value", searchString); |
(...skipping 11 matching lines...) Expand all Loading... |
95 } | 89 } |
96 else | 90 else |
97 { | 91 { |
98 let option = document.createElement("listitem"); | 92 let option = document.createElement("listitem"); |
99 option.setAttribute("class", "auto-entry"); | 93 option.setAttribute("class", "auto-entry"); |
100 option.setAttribute("label", ruleListElement.getAttribute("_emptyLabel")); | 94 option.setAttribute("label", ruleListElement.getAttribute("_emptyLabel")); |
101 | 95 |
102 ruleListElement.appendChild(option); | 96 ruleListElement.appendChild(option); |
103 } | 97 } |
104 | 98 |
| 99 // |
| 100 // Exception rules |
| 101 // |
| 102 |
| 103 let whitelistElement = E("whitelist"); |
| 104 |
| 105 // Remove existing list entries |
| 106 for (let i = whitelistElement.getRowCount() - 1; i >= 0; i--) |
| 107 whitelistElement.removeItemAt(i); |
| 108 |
| 109 // Build a list of exceptions and sort it alphabetically |
| 110 let whitelist = Object.keys(Prefs.whitelist); |
| 111 whitelist.sort(); |
| 112 |
| 113 // Add the rules to the list |
105 if (whitelist.length > 0) | 114 if (whitelist.length > 0) |
106 { | 115 { |
107 for (let i = 0; i < whitelist.length; i++) | 116 for (let i = 0; i < whitelist.length; i++) |
108 { | 117 { |
109 let option = document.createElement("listitem"); | 118 let option = document.createElement("listitem"); |
110 option.setAttribute("value", whitelist[i]); | 119 option.setAttribute("value", whitelist[i]); |
111 option.setAttribute("label", whitelist[i]) | 120 option.setAttribute("label", whitelist[i]); |
112 | 121 |
113 whitelistElement.appendChild(option); | 122 whitelistElement.appendChild(option); |
114 } | 123 } |
115 } | 124 } |
116 else | 125 else |
117 { | 126 { |
118 let option = document.createElement("listitem"); | 127 let option = document.createElement("listitem"); |
119 option.setAttribute("class", "auto-entry"); | 128 option.setAttribute("class", "auto-entry"); |
120 option.setAttribute("label", whitelistElement.getAttribute("_emptyLabel")); | 129 option.setAttribute("label", whitelistElement.getAttribute("_emptyLabel")); |
121 | 130 |
(...skipping 25 matching lines...) Expand all Loading... |
147 for (let i = items.length - 1; i >= 0; i--) | 156 for (let i = items.length - 1; i >= 0; i--) |
148 { | 157 { |
149 let searchString = items[i].getAttribute("value"); | 158 let searchString = items[i].getAttribute("value"); |
150 delete Prefs[pref][searchString]; | 159 delete Prefs[pref][searchString]; |
151 | 160 |
152 if (pref == "whitelist") | 161 if (pref == "whitelist") |
153 onWhitelistEntryRemoved(searchString); | 162 onWhitelistEntryRemoved(searchString); |
154 } | 163 } |
155 Prefs[pref] = JSON.parse(JSON.stringify(Prefs[pref])); | 164 Prefs[pref] = JSON.parse(JSON.stringify(Prefs[pref])); |
156 } | 165 } |
OLD | NEW |