Skip to content

Commit 77f1918

Browse files
committed
Added options page
1 parent d8d37b9 commit 77f1918

File tree

3 files changed

+82
-2
lines changed

3 files changed

+82
-2
lines changed

manifest.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
"manifest_version" : 2,
33
"name" : "Enhanced Cpp.com",
44
"description" : "Author: SGH",
5-
"version" : "1.4",
5+
"version" : "1.5",
66
"homepage_url" : "https://github.com/cpluspluscom/EnhancedCpp.com",
7+
"options_page" : "options/options.html",
78

89
"icons" : {
910
"128": "icon/128.png",
@@ -21,7 +22,7 @@
2122
"content_scripts" : [{
2223
"matches" : [ "http://www.cplusplus.com/*" ],
2324
"run_at" : "document_end",
24-
"js" : ["js/options.js","js/base.js","js/transform.js","js/enumerate.js"],
25+
"js" : ["js/options.js","js/base.js","js/transform.js","js/enumerate.js","js/main.js"],
2526
"css" : ["css/style.css"]
2627
}]
2728
}

options/js/optpage.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
var defaultOptions =
2+
{
3+
allow_quote:'1',
4+
allow_code:'0',
5+
splow_quote:'1',
6+
splow_code:'0',
7+
splow_outp:'1',
8+
spl_qopen:'0',
9+
spl_qsz:'20',
10+
spl_qxsz:'35',
11+
spl_copen:'1',
12+
spl_csz:'20',
13+
spl_popen:'0',
14+
spl_psz:'20'
15+
};
16+
17+
function Save() {
18+
var localOptions = {};
19+
for(var k in defaultOptions)
20+
{
21+
if(!defaultOptions.hasOwnProperty(k))
22+
continue; // trashy stuff
23+
var numericDefault = parseInt(defaultOptions[k]);
24+
if(isNaN(numericDefault))
25+
continue; // trashy stuff #2
26+
var numericItem;
27+
if(numericDefault > 1)
28+
numericItem = document.getElementById(k).value;
29+
else
30+
numericItem = document.getElementById(k).checked?1:0;
31+
localOptions[k]=numericItem;
32+
}
33+
chrome.storage.sync.set(localOptions,
34+
function() {
35+
var targetStatus = document.getElementById('status');
36+
targetStatus.textContent = 'Options Saved.'
37+
setTimeout(function(){targetStatus.textContent='';},1500);
38+
});
39+
}
40+
function Load() {
41+
chrome.storage.sync.get(defaultOptions,
42+
function(items) {
43+
for(var k in items)
44+
{
45+
if(!defaultOptions.hasOwnProperty(k))
46+
continue; // unknown option
47+
var numericDefault = parseInt(defaultOptions[k]);
48+
if(isNaN(numericDefault))
49+
continue; // shouldn't happen
50+
var numericItem = parseInt(items[k]);
51+
if(isNaN(numericItem))
52+
numericItem = numericDefault; // invalid stored option. load fallback.
53+
54+
if(numericDefault > 1)
55+
document.getElementById(k).value = numericItem;
56+
else
57+
document.getElementById(k).checked = (numericItem != 0)?1:0;
58+
}
59+
});
60+
}
61+
document.addEventListener('DOMContentLoaded', Load);
62+
document.getElementById('save').addEventListener('click',Save);

options/options.html

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<!DOCTYPE html><html><head><title>Enhanced cplusplus.com Options Page</title></head><body>
2+
<label><input type='checkbox' id='allow_quote'>Allow Quote Buttons</label>
3+
<br><label><input type='checkbox' id='allow_code'>Allow Code-ize Buttons</label>
4+
<br><br><label><input type='checkbox' id='splow_quote'>Allow Quote Spoilers</label>
5+
<br><label>&nbsp;&nbsp;&nbsp;<input type='checkbox' id='spl_qopen'>Open by Default</label>
6+
<br><label>&nbsp;&nbsp;&nbsp;Closed Size (Stock)&nbsp;<input type='number' id='spl_qsz' step='1' min='1' max='4096'>px.</label>
7+
<br><label>&nbsp;&nbsp;&nbsp;Closed Size (Named)&nbsp;<input type='number' id='spl_qxsz' step='1' min='1' max='4096'>px.</label>
8+
9+
<br><br><label><input type='checkbox' id='splow_code'>Allow Code Spoilers</label>
10+
<br><label>&nbsp;&nbsp;&nbsp;<input type='checkbox' id='spl_copen'>Open by Default</label>
11+
<br><label>&nbsp;&nbsp;&nbsp;Closed Size&nbsp;<input type='number' id='spl_csz' step='1' min='1' max='4096'>px.</label>
12+
<br><br><label><input type='checkbox' id='splow_outp'>Allow Output Spoilers</label>
13+
<br><label>&nbsp;&nbsp;&nbsp;<input type='checkbox' id='spl_popen'>Open by Default</label>
14+
<br><label>&nbsp;&nbsp;&nbsp;Closed Size&nbsp;<input type='number' id='spl_psz' step='1' min='1' max='4096'>px.</label><br>
15+
<button class='css_save' id='save'>Save</button>&nbsp;<span class='css_status' id='status'></span>
16+
<script src='js/optpage.js'></script>
17+
</body></html>

0 commit comments

Comments
 (0)