diff options
Diffstat (limited to 'pages/options.coffee')
| -rw-r--r-- | pages/options.coffee | 21 | 
1 files changed, 8 insertions, 13 deletions
| diff --git a/pages/options.coffee b/pages/options.coffee index a6916d43..9df1c175 100644 --- a/pages/options.coffee +++ b/pages/options.coffee @@ -100,8 +100,10 @@ class ExclusionRulesOption extends Option        element    populateElement: (rules) -> -    for rule in rules -      @appendRule rule +    # For the case of restoring a backup, we first have to remove existing rules. +    exclusionRules = $ "exclusionRules" +    exclusionRules.deleteRow 1 while exclusionRules.rows[1] +    @appendRule rule for rule in rules    # Append a row for a new rule.  Return the newly-added element.    appendRule: (rule) -> @@ -333,23 +335,16 @@ document.addEventListener "DOMContentLoaded", ->  #  # Backup and restore. "?" is for the tests."  DomUtils?.documentReady -> -  $("backupButton").addEventListener "click", -> -    document.activeElement?.blur() +  populateBackupLinkUrl = ->      backup = settingsVersion: bgSettings.get "settingsVersion"      for option in Option.all        backup[option.field] = option.readValueFromElement()      # Create the blob in the background page so it isn't garbage collected when the page closes in FF.      bgWin = chrome.extension.getBackgroundPage()      blob = new bgWin.Blob [ JSON.stringify backup, null, 2 ] -    url =  bgWin.URL.createObjectURL blob -    a = $ "backupLink" -    a.href = url -    if Utils.isFirefox() -      # On Firefox, the user has to click the link manually. -      a.style.display = "" -      a.textContent = "Click to download backup" -    else -      a.click() +    $("backupLink").href = bgWin.URL.createObjectURL blob + +  $("backupLink").addEventListener "mousedown", populateBackupLinkUrl, true    $("chooseFile").addEventListener "change", (event) ->      document.activeElement?.blur() | 
