8000 Fix #7, small code improvements. · cpluspluscom/EnhancedCpp.com@fada9e3 · GitHub
[go: up one dir, main page]

Skip to content

Commit fada9e3

Browse files
committed
Fix #7, small code improvements.
1 parent 4088e7c commit fada9e3

File tree

5 files changed

+89
-75
lines changed

5 files changed

+89
-75
lines changed

js/autoquote.js

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,24 @@
44

55
function ExecuteAutoQuote()
66
{
7-
var q_body = localStorage.getItem('q_body');
8-
var q_tid = localStorage.getItem('q_tid');
9-
if (q_body && q_tid && window.location.pathname.indexOf(q_tid) !== -1 && document.getElementById('CH_reply')) {
10-
var reply = document.getElementById('CH_reply').getElementsByTagName('a')[0].click();
11-
reply = document.getElementById('CH_reply').getElementsByTagName('textarea');
12-
13-
reply[0].value = q_body;
7+
window.addEventListener("beforeunload", function() {
8+
var reply = document.getElementById('CH_reply').getElementsByTagName('textarea');
9+
if(reply[0] && reply[0].value.length !== 0) {
10+
localStorage.setItem('q_body', reply[0].value);
11+
localStorage.setItem('q_tid', ThreadID);
12+
}
13+
});
14+
15+
if(document.getElementById('CH_reply')) {
16+
var q_body = localStorage.getItem('q_body');
17+
var q_tid = localStorage.getItem('q_tid');
18+
if (q_body && q_tid && ThreadID == q_tid) {
19+
var reply = document.getElementById('CH_reply').getElementsByTagName('a')[0].click();
20+
reply = document.getElementById('CH_reply').getElementsByTagName('textarea');
21+
reply[0].value = q_body;
22+
23+
localStorage.removeItem('q_body');
24+
localStorage.removeItem('q_tid');
25+
}
1426
}
15-
localStorage.removeItem('q_body');
16-
localStorage.removeItem('q_tid');
1727
}

js/hook.js

Lines changed: 2 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,7 @@
1-
var allScripts = document.getElementsByTagName('script');
2-
1+
// Important variables
32
var ThreadID = null;
43
var ThreadArchived = null;
54

6-
function EditPage()
7-
{
8-
if(ThreadID === null)
9-
return;
10-
11-
// Get the starting conditions...
12-
var canReply = (ThreadArchived === 0);
13-
14-
// Add buttons
15-
var PostList = document.getElementById('CH_PostList');
16-
if(PostList) {
17-
var PostDivs = PostList.getElementsByTagName('div');
18-
var PostDivsLen = PostDivs.length;
19-
for(var i = 0; i !== PostDivsLen; i++)
20-
{
21-
var div = PostDivs[i];
22-
23-
if(div.id.indexOf('msg') === 0 /* It's a message */ &&
24-
!Number.isNaN(+div.id.substr(3)) /* Has a message ID */)
25-
{
26-
var SpanList = div.getElementsByTagName('span');
27-
var SpanListLen = SpanList.length;
28-
for(var y = 0; y !== SpanListLen; y++)
29-
{
30-
var span = SpanList[y];
31-
var PostID = +span.id.substr(6);
32-
if(span.className === 'dbtn' /* right class name */ &&
33-
span.id.indexOf('CH_btn') === 0 /* id begins with CH_btn */ &&
34-
!Number.isNaN(PostID))
35-
{
36-
// Add "Show as Code" and "Quote".
37-
CreateButtons(span, PostID, canReply);
38-
}
39-
}
40-
}
41-
}
42-
}
43-
44-
45-
// Create spoiler tags
46-
// Quotes
47-
var AllQuotes = document.getElementsByClassName('quote');
48-
for (var i = 0; i !== AllQuotes.length; i++) {
49-
isEditablePage = 1;
50-
51-
var ItemType = +(AllQuotes[i].getElementsByClassName('qh').length !== 0) + 1;
52-
CreateSpoiler(AllQuotes[i], ItemType, canReply); // quote -> 1, named quote -> 2
53-
}
54-
55-
// Code and Output
56-
var AllCodes = document.getElementsByClassName('snippet');
57-
for (var i = 0; i != AllCodes.length; i++) {
58-
isEditablePage = 1;
59-
60-
var ItemType = (AllCodes[i].getElementsByClassName('output').length !== 0) ? 3 : 0;
61-
CreateSpoiler(AllCodes[i], ItemType, canReply); // code -> 0, output -> 3
62-
}
63-
}
64-
655
// Validation
666
var HasEdited = false;
677
var HasLoadedProperties = false;
@@ -74,7 +14,7 @@ function CheckRun()
7414
HasEdited === false)
7515
{
7616
HasEdited = true;
77-
EditPage();
17+
EnhanceWebsite();
7818
}
7919
}
8020
function SetOptionsLoaded(val)
@@ -95,7 +35,6 @@ function SetPostProperties(threadid, threadarchived, threadauthor, threadsolved,
9535
ThreadID = threadid;
9636
ThreadArchived = threadarchived;
9737
SetPropertiesLoaded(true);
98-
AddPrototypes([{from: "%THREADID%",to: ThreadID}]);
9938
}
10039

10140
function HookPostProperties()

js/main.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,12 @@ chrome.storage.sync.get(defaultOptions, function(items) {
1717
LoadOption(k, numericItem, +(numericDefault > 1));
1818
}
1919

20-
HookPostProperties();
2120
SetOptionsLoaded(true);
21+
HookPostProperties();
22+
});
23+
24+
function EnhanceWebsite() {
25+
AddPrototypes([{from: "%THREADID%",to: ThreadID}]);
26+
EditPage();
2227
ExecuteAutoQuote();
23-
});
28+
}

js/transform.js

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,3 +127,63 @@ function CreateButtons(buttonStorage, postID, isReplyable) {
127127
buttonStorage.innerHTML = result;
128128
}
129129
}
130+
131+
// Start editing the page
132+
function EditPage()
133+
{
134+
if(ThreadID === null)
135+
return;
136+
137+
// Get the starting conditions...
138+
var canReply = (ThreadArchived === 0);
139+
140+
// Add buttons
141+
var PostList = document.getElementById('CH_PostList');
142+
if(PostList) {
143+
var PostDivs = PostList.getElementsByTagName('div');
144+
var PostDivsLen = PostDivs.length;
145+
for(var i = 0; i !== PostDivsLen; i++)
146+
{
147+
var div = PostDivs[i];
148+
149+
if(div.id.indexOf('msg') === 0 /* It's a message */ &&
150+
!Number.isNaN(+div.id.substr(3)) /* Has a message ID */)
151+
{
152+
var SpanList = div.getElementsByTagName('span');
153+
var SpanListLen = SpanList.length;
154+
for(var y = 0; y !== SpanListLen; y++)
155+
{
156+
var span = SpanList[y];
157+
var PostID = +span.id.substr(6);
158+
if(span.className === 'dbtn' /* right class name */ &&
159+
span.id.indexOf('CH_btn') === 0 /* id begins with CH_btn */ &&
160+
!Number.isNaN(PostID))
161+
{
162+
// Add "Show as Code" and "Quote".
163+
CreateButtons(span, PostID, canReply);
164+
}
165+
}
166+
}
167+
}
168+
}
169+
170+
171+
// Create spoiler tags
172+
// Quotes
173+
var AllQuotes = document.getElementsByClassName('quote');
174+
for (var i = 0; i !== AllQuotes.length; i++) {
175+
isEditablePage = 1;
176+
177+
var ItemType = +(AllQuotes[i].getElementsByClassName('qh').length !== 0) + 1;
178+
CreateSpoiler(AllQuotes[i], ItemType, canReply); // quote -> 1, named quote -> 2
179+
}
180+
181+
// Code and Output
182+
var AllCodes = document.getElementsByClassName('snippet');
183+
for (var i = 0; i != AllCodes.length; i++) {
184+
isEditablePage = 1;
185+
186+
var ItemType = (AllCodes[i].getElementsByClassName('output').length !== 0) ? 3 : 0;
187+
CreateSpoiler(AllCodes[i], ItemType, canReply); // code -> 0, output -> 3
188+
}
189+
}

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
{
2222
"matches" : ["http://www.cplusplus.com/*"],
2323
"run_at" : "document_end",
24-
"js" : ["options/js/defaults.js", "js/options.js", "js/prototypes.js", "js/base.js", "js/transform.js", "js/autoquote.js", "js/hook.js", "js/main.js"],
24+
"js" : ["options/js/defaults.js", "js/options.js", "js/prototypes.js", "js/base.js", "js/autoquote.js", "js/transform.js", "js/hook.js", "js/main.js"],
2525
"css" : ["css/style.css"]
2626
}
2727
]

0 commit comments

Comments
 (0)
0