aboutsummaryrefslogtreecommitdiffstats
path: root/options.html
diff options
context:
space:
mode:
Diffstat (limited to 'options.html')
-rw-r--r--options.html68
1 files changed, 58 insertions, 10 deletions
diff --git a/options.html b/options.html
index 344fc01d..f752abcd 100644
--- a/options.html
+++ b/options.html
@@ -70,7 +70,10 @@
tr.advancedOption {
display:none;
}
-
+ input:read-only {
+ background-color: #eee;
+ color: #666;
+ }
</style>
<script type="text/javascript">
@@ -80,7 +83,7 @@
var defaultSettings = chrome.extension.getBackgroundPage().defaultSettings;
var editableFields = ["scrollStepSize", "defaultZoomLevel", "excludedUrls", "linkHintCharacters",
- "userDefinedLinkHintCss", "keyMappings"];
+ "userDefinedLinkHintCss", "keyMappings", "filterLinkHints"];
var postSaveHooks = {
"keyMappings": function (value) {
@@ -93,8 +96,13 @@
function initializeOptions() {
populateOptions();
- for (var i = 0; i < editableFields.length; i++)
+
+ for (var i = 0; i < editableFields.length; i++) {
$(editableFields[i]).addEventListener("keyup", onOptionKeyup, false);
+ $(editableFields[i]).addEventListener("change", enableSaveButton, false);
+ $(editableFields[i]).addEventListener("change", onDataLoaded, false);
+ }
+
$("advancedOptions").addEventListener("click", openAdvancedOptions, false);
$("showCommands").addEventListener("click", function () {
showDialog("vimiumCommandListingContainer",
@@ -107,6 +115,10 @@
enableSaveButton();
}
+ function onDataLoaded() {
+ $("linkHintCharacters").readOnly = $("filterLinkHints").checked;
+ }
+
function enableSaveButton() { $("saveOptions").removeAttribute("disabled"); }
// Saves options to localStorage.
@@ -115,15 +127,25 @@
// the freedom to change the defaults in the future.
for (var i = 0; i < editableFields.length; i++) {
var fieldName = editableFields[i];
- var fieldValue = $(fieldName).value.trim();
+ var field = $(fieldName);
+
+ var fieldValue;
+ if (field.getAttribute("type") == "checkbox") {
+ fieldValue = field.checked ? "true" : "false";
+ } else {
+ fieldValue = field.value.trim();
+ field.value = fieldValue;
+ }
+
var defaultFieldValue = (defaultSettings[fieldName] != null) ?
defaultSettings[fieldName].toString() : "";
+
if (fieldValue == defaultFieldValue)
delete localStorage[fieldName];
else
localStorage[fieldName] = fieldValue;
- $(fieldName).value = fieldValue;
- $(fieldName).setAttribute("savedValue", fieldValue);
+
+ field.setAttribute("savedValue", fieldValue);
if (postSaveHooks[fieldName]) { postSaveHooks[fieldName](fieldValue); }
}
@@ -133,17 +155,31 @@
// 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]] || "";
- $(editableFields[i]).setAttribute("savedValue", $(editableFields[i]).value);
+ var val = localStorage[editableFields[i]] || defaultSettings[editableFields[i]] || "";
+ var field = $(editableFields[i]);
+ setFieldValue($(editableFields[i]), val);
}
+ onDataLoaded();
}
function restoreToDefaults() {
- for (var i = 0; i < editableFields.length; i++)
- $(editableFields[i]).value = defaultSettings[editableFields[i]] || "";
+ for (var i = 0; i < editableFields.length; i++) {
+ var val = defaultSettings[editableFields[i]] || "";
+ setFieldValue($(editableFields[i]), val);
+ }
+ onDataLoaded();
enableSaveButton();
}
+ function setFieldValue(field, value) {
+ if (field.getAttribute('type') == 'checkbox')
+ field.checked = value == "true";
+ else
+ field.value = value;
+
+ field.setAttribute("savedValue", value);
+ }
+
function openAdvancedOptions(event) {
var elements = document.getElementsByClassName("advancedOption");
for (var i = 0; i < elements.length; i++)
@@ -255,6 +291,18 @@
<textarea id="userDefinedLinkHintCss" type="text"></textarea>
</td>
</tr>
+ <tr class="advancedOption">
+ <td class="caption">Filter link hints</td>
+ <td verticalAlign="top">
+ <div class="help">
+ <div class="example">
+ Typing in link hints mode will filter link hints by the link text.<br/><br/>
+ Note: You <em>must</em> use numeric link hint characters in this mode
+ </div>
+ </div>
+ <input id="filterLinkHints" type="checkbox"/>
+ </td>
+ </tr>
</table>
<div id="buttonsPanel">