aboutsummaryrefslogtreecommitdiffstats
path: root/pages/options.coffee
diff options
context:
space:
mode:
authorStephen Blott2014-09-01 12:07:24 +0100
committerStephen Blott2014-09-02 08:43:36 +0100
commit41bdac83d2fd450569013dd5cfdb78239143ba24 (patch)
tree58c06e564cb5641102fbc6583071e84e094818f7 /pages/options.coffee
parent1685640ccabe265c9f182a0175d8ce823db35b4b (diff)
downloadvimium-41bdac83d2fd450569013dd5cfdb78239143ba24.tar.bz2
Structured passkeys, internally and on the options and popup pages.
Diffstat (limited to 'pages/options.coffee')
-rw-r--r--pages/options.coffee23
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()