Skip to content

Commit ba95b95

Browse files
committed
Options Page UI options are saved and set properly
Former-commit-id: 3ef5b93
1 parent d25a847 commit ba95b95

File tree

2 files changed

+50
-36
lines changed

2 files changed

+50
-36
lines changed

options.html

+3-3
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,15 @@ <h3 class="title">WebCache Options</h3>
3939
<div class="settings-wrapper">
4040
<div class="setting">
4141
<ul id="sortable">
42-
<li class="list-item" id="Google Cache">
42+
<li class="list-item" id="google-cache-sortable">
4343
<p>Google Cache</p>
4444
<span class="ui-icon ui-icon-grip-dotted-horizontal icon"></span>
4545
</li>
46-
<li class="list-item" id="Wayback Machine">
46+
<li class="list-item" id="wayback-machine-sortable">
4747
<p>Wayback Machine</p>
4848
<span class="ui-icon ui-icon-grip-dotted-horizontal icon"></span>
4949
</li>
50-
<li class="list-item" id="Coral CDN">
50+
<li class="list-item" id="coral-cdn-sortable">
5151
<p>Coral CDN</p>
5252
<span class="ui-icon ui-icon-grip-dotted-horizontal icon"></span>
5353
</li>

options.js

+47-33
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,62 @@
1-
var CACHES = ["WayBack Machine", "Coral CDN", "Google Cache"];
2-
var HTML = ["Google Cache", "WayBack Machine", "Coral CDN"];
31
var order = [];
42

5-
//order = CACHES;
6-
73
$("#sortable").sortable({
8-
stop: function(event, ui) {
9-
//console.log("Old Position: " + order.indexOf(ui.item.attr('id')));
10-
//console.log("New position: " + ui.item.index());
11-
12-
order.splice(order.indexOf(ui.item.attr('id')), 1);
13-
order.splice(ui.item.index(), 0, ui.item.attr('id'));
14-
15-
chrome.storage.sync.set({'cacheOrder': order}, function() {
16-
console.log("Saved Settings: " + order.split(":"));
17-
});
4+
stop: function(event, ui) { // Save settings after change
5+
// console.log("Old Position: " + order.indexOf(ui.item.attr('id')));
6+
// console.log("New position: " + ui.item.index());
7+
8+
order.splice(order.indexOf(ui.item.attr('id')), 1);
9+
order.splice(ui.item.index(), 0, ui.item.attr('id'));
10+
11+
var saveObj = {};
12+
saveObj['cacheOrder4'] = order;
13+
chrome.storage.local.set(saveObj, function() {
14+
console.log("Saved Cache Ordering Preferences");
15+
});
1816
},
19-
create: function(event, ui) { // Set up sortable and also radio buttons
20-
chrome.storage.sync.get('cacheOrder', function(result) {
21-
order = result.cacheOrder;
22-
23-
var ul = $('#sortable');
24-
var li = ul.children('li').get();
25-
li.sort(function(a,b) {
26-
return order.indexOf($(a).attr('id')) - order.indexOf($(b).attr('id'))
27-
});
28-
ul.append(li);
17+
create: function(event, ui) { // Set up sortable, checkboxes, & toggle
18+
// Set up sortable
19+
chrome.storage.local.get('cacheOrder4', function(result) {
20+
order = result['cacheOrder4'] || ['google-cache-sortable', 'wayback-machine-sortable', 'coral-cdn-sortable'];
21+
22+
var ul = $('#sortable');
23+
var li = ul.children('li').get();
24+
li.sort(function(a, b) {
25+
return order.indexOf($(a).attr('id')) - order.indexOf($(b).attr('id'));
2926
});
30-
// Set up radio buttons
31-
chrome.storage.sync.get('auto-detect', function(result) {
32-
if(result['auto-detect'] == 'on') {
33-
$('#on').prop('checked', true);
34-
} else {
35-
$('#off').prop('checked', true);
36-
}
27+
ul.append(li);
28+
});
29+
30+
// Set up auto-detect toggle
31+
chrome.storage.local.get('auto-detect', function(result) {
32+
toggle = $('#myonoffswitch');
33+
toggle.prop('checked', result['auto-detect']);
34+
});
35+
36+
// Set up context menu caches
37+
chrome.storage.local.get(['google-cache', 'wayback-machine', 'coral-cdn'], function(results) {
38+
Object.keys(results).forEach(function(key) {
39+
$('#' + key).prop('checked', results[key]);
3740
});
41+
});
3842
}
3943
});
4044

41-
$("#myonoffswitch").click(function(button) { // Save auto-detect settings
42-
chrome.storage.sync.set({'auto-detect': button.target.id}, function() {
45+
$("#myonoffswitch").click(function(event) { // Save auto-detect settings
46+
chrome.storage.local.set({'auto-detect': $("#myonoffswitch").is(':checked')}, function() {
4347
console.log("Saved Auto-Detect Preferences");
4448
});
4549
});
50+
51+
$(".context-menu-label").click(function(event) { // Add/Remove context menu caches
52+
var id = $(event.target).attr('for');
53+
var checkbox = $('#' + id);
54+
var saveObj = {};
55+
saveObj[id] = !checkbox.is(':checked');
56+
57+
chrome.storage.local.set(saveObj, function() {
58+
console.log("Saved context menu preferences for " + id);
59+
});
4660
});
4761

4862
$("#sortable").disableSelection();

0 commit comments

Comments
 (0)