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