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