| Left: | ||
| Right: |
| LEFT | RIGHT |
|---|---|
| 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 29 matching lines...) Expand all Loading... | |
| 40 let ruleListElement = E("custom_corrections"); | 40 let ruleListElement = E("custom_corrections"); |
| 41 let whitelistElement = E("whitelist"); | 41 let whitelistElement = E("whitelist"); |
| 42 | 42 |
| 43 // Remove existing list entries | 43 // Remove existing list entries |
| 44 for (let i = ruleListElement.getRowCount() - 1; i >= 0; i--) | 44 for (let i = ruleListElement.getRowCount() - 1; i >= 0; i--) |
| 45 ruleListElement.removeItemAt(i); | 45 ruleListElement.removeItemAt(i); |
| 46 for (let i = whitelistElement.getRowCount() - 1; i >= 0; i--) | 46 for (let i = whitelistElement.getRowCount() - 1; i >= 0; i--) |
| 47 whitelistElement.removeItemAt(i); | 47 whitelistElement.removeItemAt(i); |
| 48 | 48 |
| 49 // Build a list of custom rules and sort it alphabetically | 49 // Build a list of custom rules and sort it alphabetically |
| 50 let prefRulesList = Prefs.custom_replace; | 50 let prefRulesList = Prefs.custom_replace; |
|
Wladimir Palant
2012/09/21 14:40:25
Whitelist and custom rules are no longer mangled t
| |
| 51 let prefWhitelist = Prefs.whitelist; | 51 let prefWhitelist = Prefs.whitelist; |
| 52 let ruleList = []; | 52 let ruleList = []; |
| 53 let whitelist = []; | 53 let whitelist = []; |
| 54 | 54 |
| 55 for (let searchString in prefRulesList) | 55 for (let searchString in prefRulesList) |
| 56 { | 56 { |
| 57 ruleList.push([searchString, prefRulesList[searchString]]); | 57 ruleList.push([searchString, prefRulesList[searchString]]); |
| 58 } | 58 } |
| 59 for (let searchString in prefWhitelist) | 59 for (let searchString in prefWhitelist) |
| 60 { | 60 { |
| 61 whitelist.push(searchString); | 61 whitelist.push(searchString); |
| 62 } | 62 } |
| 63 | 63 |
| 64 ruleList.sort(function(a, b) | 64 ruleList.sort(function(a, b) |
| 65 { | 65 { |
| 66 if (a[0] < b[0]) | 66 if (a[0] < b[0]) |
| 67 return -1; | 67 return -1; |
| 68 else if (a[0] > b[0]) | 68 else if (a[0] > b[0]) |
| 69 return 1; | 69 return 1; |
| 70 else | 70 else |
| 71 return 0; | 71 return 0; |
| 72 }); | 72 }); |
| 73 whitelist.sort(); | 73 whitelist.sort(); |
| 74 | 74 |
| 75 // Add the rules to the list | 75 // Add the rules to the list |
| 76 if(ruleList.length > 0) | 76 if (ruleList.length > 0) |
| 77 { | 77 { |
| 78 for (let i = 0; i < ruleList.length; i++) | 78 for (let i = 0; i < ruleList.length; i++) |
| 79 { | 79 { |
| 80 let [searchString, replacement] = ruleList[i]; | 80 let [searchString, replacement] = ruleList[i]; |
| 81 | 81 |
| 82 let option = document.createElement('listitem'); | 82 let option = document.createElement('listitem'); |
| 83 option.setAttribute("value", searchString); | 83 option.setAttribute("value", searchString); |
| 84 | 84 |
| 85 let cell1 = document.createElement('listcell'); | 85 let cell1 = document.createElement('listcell'); |
| 86 cell1.setAttribute("label", searchString); | 86 cell1.setAttribute("label", searchString); |
| 87 option.appendChild(cell1); | 87 option.appendChild(cell1); |
| 88 | 88 |
| 89 let cell2 = document.createElement('listcell'); | 89 let cell2 = document.createElement('listcell'); |
| 90 cell2.setAttribute("label", replacement); | 90 cell2.setAttribute("label", replacement); |
| 91 option.appendChild(cell2); | 91 option.appendChild(cell2); |
| 92 | 92 |
| 93 ruleListElement.appendChild(option); | 93 ruleListElement.appendChild(option); |
| 94 } | 94 } |
| 95 } | 95 } |
| 96 else | 96 else |
| 97 { | 97 { |
| 98 let option = document.createElement("listitem"); | 98 let option = document.createElement("listitem"); |
| 99 option.setAttribute("class", "auto-entry"); | 99 option.setAttribute("class", "auto-entry"); |
| 100 option.setAttribute("label", ruleListElement.getAttribute("_emptyLabel")); | 100 option.setAttribute("label", ruleListElement.getAttribute("_emptyLabel")); |
| 101 | 101 |
| 102 ruleListElement.appendChild(option); | 102 ruleListElement.appendChild(option); |
| 103 } | 103 } |
| 104 | 104 |
| 105 if(whitelist.length > 0) | 105 if (whitelist.length > 0) |
| 106 { | 106 { |
| 107 for (let i = 0; i < whitelist.length; i++) | 107 for (let i = 0; i < whitelist.length; i++) |
| 108 { | 108 { |
| 109 let option = document.createElement("listitem"); | 109 let option = document.createElement("listitem"); |
| 110 option.setAttribute("value", whitelist[i]); | 110 option.setAttribute("value", whitelist[i]); |
| 111 option.setAttribute("label", whitelist[i]) | 111 option.setAttribute("label", whitelist[i]) |
| 112 | 112 |
| 113 whitelistElement.appendChild(option); | 113 whitelistElement.appendChild(option); |
| 114 } | 114 } |
| 115 } | 115 } |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 130 if (searchString.length == 0) | 130 if (searchString.length == 0) |
| 131 return; | 131 return; |
| 132 | 132 |
| 133 Prefs.custom_replace[searchString] = replacement; | 133 Prefs.custom_replace[searchString] = replacement; |
| 134 Prefs.custom_replace = JSON.parse(JSON.stringify(Prefs.custom_replace)); | 134 Prefs.custom_replace = JSON.parse(JSON.stringify(Prefs.custom_replace)); |
| 135 | 135 |
| 136 E("find").value = E("replace").value = ""; | 136 E("find").value = E("replace").value = ""; |
| 137 E("find").oninput(); | 137 E("find").oninput(); |
| 138 } | 138 } |
| 139 | 139 |
| 140 function removeRule(btn, pref) | 140 function removeRule(btn, pref) |
|
Wladimir Palant
2012/09/21 14:40:25
If you have _list as the attribute of the button t
| |
| 141 { | 141 { |
| 142 let list = E(btn.getAttribute("_list")); | 142 let list = E(btn.getAttribute("_list")); |
| 143 let items = list.selectedItems; | 143 let items = list.selectedItems; |
| 144 | 144 |
| 145 let {onWhitelistEntryRemoved} = require("rules"); | |
| 146 | |
| 145 for (let i = items.length - 1; i >= 0; i--) | 147 for (let i = items.length - 1; i >= 0; i--) |
| 146 { | 148 { |
| 147 let searchString = items[i].getAttribute("value"); | 149 let searchString = items[i].getAttribute("value"); |
| 148 delete Prefs[pref][searchString]; | 150 delete Prefs[pref][searchString]; |
| 151 | |
| 152 if (pref == "whitelist") | |
| 153 onWhitelistEntryRemoved(searchString); | |
| 149 } | 154 } |
| 150 Prefs[pref] = JSON.parse(JSON.stringify(Prefs[pref])); | 155 Prefs[pref] = JSON.parse(JSON.stringify(Prefs[pref])); |
|
Wladimir Palant
2012/09/21 14:40:25
It's too bad that we have to use that hack. This n
| |
| 151 } | 156 } |
| LEFT | RIGHT |