aboutsummaryrefslogtreecommitdiffstats
path: root/options.html
diff options
context:
space:
mode:
Diffstat (limited to 'options.html')
-rw-r--r--options.html20
1 files changed, 17 insertions, 3 deletions
diff --git a/options.html b/options.html
index bfa01450..f52cb6ec 100644
--- a/options.html
+++ b/options.html
@@ -80,7 +80,9 @@
var defaultSettings = chrome.extension.getBackgroundPage().defaultSettings;
var editableFields = ["scrollStepSize", "defaultZoomLevel", "excludedUrls", "linkHintCharacters",
- "userDefinedLinkHintCss", "keyMappings"];
+ "userDefinedLinkHintCss", "keyMappings"];
+
+ var canBeEmptyFields = ["excludedUrls", "keyMappings", "userDefinedLinkHintCss"];
var postSaveHooks = {
keyMappings: function (value) {
@@ -118,10 +120,17 @@
var fieldValue = $(fieldName).value.trim();
var defaultFieldValue = (defaultSettings[fieldName] != null) ?
defaultSettings[fieldName].toString() : "";
+
+ // Don't save to storage if it's equal to the default
if (fieldValue == defaultFieldValue)
delete localStorage[fieldName];
- else
+ // ..or if it's empty and not a field that we allow to be empty.
+ else if (!fieldValue && canBeEmptyFields.indexOf(fieldName) == -1) {
+ delete localStorage[fieldName];
+ fieldValue = defaultFieldValue;
+ } else
localStorage[fieldName] = fieldValue;
+
$(fieldName).value = fieldValue;
$(fieldName).setAttribute("savedValue", fieldValue);
@@ -133,7 +142,12 @@
// Restores select box state to saved value from localStorage.
function populateOptions() {
for (var i = 0; i < editableFields.length; i++) {
- $(editableFields[i]).value = localStorage[editableFields[i]] || defaultSettings[editableFields[i]] || "";
+ // If it's null or undefined, let's go to the default. We want to allow empty strings in certain cases.
+ if (localStorage[editableFields[i]] != "" && !localStorage[editableFields[i]]) {
+ $(editableFields[i]).value = defaultSettings[editableFields[i]] || "";
+ } else {
+ $(editableFields[i]).value = localStorage[editableFields[i]];
+ }
$(editableFields[i]).setAttribute("savedValue", $(editableFields[i]).value);
}
}