diff options
| author | Stephen Blott | 2014-09-01 12:07:24 +0100 | 
|---|---|---|
| committer | Stephen Blott | 2014-09-02 08:43:36 +0100 | 
| commit | 41bdac83d2fd450569013dd5cfdb78239143ba24 (patch) | |
| tree | 58c06e564cb5641102fbc6583071e84e094818f7 /pages/options.coffee | |
| parent | 1685640ccabe265c9f182a0175d8ce823db35b4b (diff) | |
| download | vimium-41bdac83d2fd450569013dd5cfdb78239143ba24.tar.bz2 | |
Structured passkeys, internally and on the options and popup pages.
Diffstat (limited to 'pages/options.coffee')
| -rw-r--r-- | pages/options.coffee | 23 | 
1 files changed, 18 insertions, 5 deletions
diff --git a/pages/options.coffee b/pages/options.coffee index d4767da6..be0eccfb 100644 --- a/pages/options.coffee +++ b/pages/options.coffee @@ -2,11 +2,17 @@ $ = (id) -> document.getElementById id  bgSettings = chrome.extension.getBackgroundPage().Settings -editableFields = [ "scrollStepSize", "excludedUrls", "linkHintCharacters", "linkHintNumbers", +editableFields = [ "scrollStepSize", "linkHintCharacters", "linkHintNumbers",    "userDefinedLinkHintCss", "keyMappings", "filterLinkHints", "previousPatterns",    "nextPatterns", "hideHud", "regexFindMode", "searchUrl", "searchEngines"] -canBeEmptyFields = ["excludedUrls", "keyMappings", "userDefinedLinkHintCss", "searchEngines"] +canBeEmptyFields = ["keyMappings", "userDefinedLinkHintCss", "searchEngines"] + +# Settings which handle their own DOM and callbacks for the options page. +# See populateOption in ../background_scripts/exclusions.coffee for an example. +selfHandlingFields = +  exclusionRules: (args...) -> chrome.extension.getBackgroundPage().Exclusions.populateOption(args...) +selfHandlingCallbacks = {}  document.addEventListener "DOMContentLoaded", ->    populateOptions() @@ -68,6 +74,10 @@ saveOptions = ->      $(fieldName).value = fieldValue      $(fieldName).setAttribute "savedValue", fieldValue      bgSettings.performPostUpdateHook fieldName, fieldValue +  +  # Self-handling options save themselves. +  for field of selfHandlingFields +    selfHandlingCallbacks[field].saveOption() if selfHandlingCallbacks[field].saveOption    $("saveOptions").disabled = true @@ -76,14 +86,17 @@ populateOptions = ->    for field in editableFields      val = bgSettings.get(field) or ""      setFieldValue $(field), val -  onDataLoaded() +  # Self-handling options build their own DOM, and provide callbacks for saveOptions and restoreToDefaults. +  for field of selfHandlingFields +    selfHandlingCallbacks[field] = selfHandlingFields[field]($(field),enableSaveButton)  restoreToDefaults = -> -  return unless confirm "Are you sure you want to return Vimium's settings to their defaults?" -    for field in editableFields      val = bgSettings.defaults[field] or ""      setFieldValue $(field), val +  # Self-handling options restore their own defaults. +  for field of selfHandlingFields +    selfHandlingCallbacks[field].restoreToDefault() if selfHandlingCallbacks[field].restoreToDefault    onDataLoaded()    enableSaveButton()  | 
