diff options
| -rw-r--r-- | background_scripts/exclusions.coffee | 6 | ||||
| -rw-r--r-- | pages/options.coffee | 18 | ||||
| -rw-r--r-- | pages/popup.html | 26 |
3 files changed, 33 insertions, 17 deletions
diff --git a/background_scripts/exclusions.coffee b/background_scripts/exclusions.coffee index a8d65d62..12d86f41 100644 --- a/background_scripts/exclusions.coffee +++ b/background_scripts/exclusions.coffee @@ -23,9 +23,9 @@ root.Exclusions = Exclusions = rules: Settings.get("exclusionRules") - # Merge the matching rules for URL, or null. - getRule: (url) -> - matching = (rule for rule in @rules when url.match(RegexpCache.get(rule.pattern))) + # Merge the matching rules for URL, or null. If rules are provided, match against those. + getRule: (url, rules=@rules) -> + matching = (rule for rule in rules when rule.pattern and url.match(RegexpCache.get(rule.pattern))) # An absolute exclusion rule (with no passKeys) takes priority. for rule in matching return rule unless rule.passKeys diff --git a/pages/options.coffee b/pages/options.coffee index cd932ed8..80c9ae44 100644 --- a/pages/options.coffee +++ b/pages/options.coffee @@ -161,8 +161,8 @@ class ExclusionRulesOption extends Option readValueFromElement: -> rules = for element in @element.getElementsByClassName "exclusionRuleTemplateInstance" - pattern = element.children[0].firstChild.value.trim() - passKeys = element.children[1].firstChild.value.trim() + pattern = element.children[0].firstChild.value.trim().split(/\s+/).join "" + passKeys = element.children[1].firstChild.value.trim().split(/\s+/).join "" { pattern: pattern, passKeys: passKeys } rules.filter (rule) -> rule.pattern @@ -275,7 +275,19 @@ initPopupPage = -> window.close() # Populate options. Just one, here. - new ExclusionRulesOption("exclusionRules", onUpdated, tab.url) + exclusions = new ExclusionRulesOption("exclusionRules", onUpdated, tab.url) + + document.addEventListener "keyup", (event) -> + rules = exclusions.readValueFromElement() + isEnabled = bgExclusions.getRule tab.url, rules + console.log isEnabled + $("state").innerHTML = + if isEnabled and isEnabled.passKeys + "Excluded: #{isEnabled.passKeys}" + else if isEnabled + "Disabled" + else + "Enabled" # # Initialization. diff --git a/pages/popup.html b/pages/popup.html index 0b4de131..370751ff 100644 --- a/pages/popup.html +++ b/pages/popup.html @@ -7,12 +7,12 @@ padding: 0px; } - #helpText, #optionsLink { + #helpText, #optionsLink, #state { font-family : "Helvetica Neue", "Helvetica", "Arial", sans-serif; font-size: 12px; } - #helpText { color: #979ca0; } + #helpText, #stateLine { color: #979ca0; } #exclusionAddButton { width: 80px; } #saveOptions { @@ -67,16 +67,20 @@ <div id="footer"> <div id="footerWrapper"> - <table id="footerTable"> + <table> <tr> - <td id="footerTableData"> - <span> - <span id="helpText">These are the matching rules for this page.</span> - <button id="saveOptions" disabled="true">No Changes</button> - <button id="exclusionAddButton">Add Rule</button> - <br/> - <span> <a id="optionsLink" target="_blank">Vimium Options</a></span> - </span> + <td id="stateLine" style="width: 99%"> + <span id="state"></span> + <br/> + <span id="helpText">These are the matching rules for this page.</span> + <br/> + <span> <a id="optionsLink" target="_blank">Options</a></span> + </td> + <td valign="top"> + <button id="exclusionAddButton">Add Rule</button> + </td> + <td valign="top"> + <button id="saveOptions" disabled="true">No Changes</button> </td> </tr> </table> |
