Browse Source

more efficient javascript remembering system

pull/40/head
Savetheinternet 13 years ago
parent
commit
c4913ab883
  1. 65
      main.js
  2. 5
      templates/index.html
  3. 63
      templates/main.js
  4. 5
      templates/thread.html

65
main.js

@ -51,7 +51,7 @@ function citeReply(id) {
document.getElementById('body').value += '>>' + id + '\n'; document.getElementById('body').value += '>>' + id + '\n';
} }
var selectedstyle = 'Yotsuba'; var selectedstyle = 'Yotsuba B';
var styles = [ var styles = [
['Yotsuba B', '/board/default.css'], ['Yotsuba B', '/board/default.css'],
['Yotsuba', '/board/yotsuba.css'] ['Yotsuba', '/board/yotsuba.css']
@ -73,6 +73,41 @@ if(localStorage.stylesheet) {
} }
} }
function rememberStuff() {
if(document.forms.post) {
if(!localStorage.password)
localStorage.password = generatePassword();
document.forms.post.password.value = localStorage.password;
if(localStorage.name)
document.forms.post.name.value = localStorage.name;
if(localStorage.email)
document.forms.post.email.value = localStorage.email;
if(sessionStorage.body) {
saved = JSON.parse(sessionStorage.body);
if(get_cookie('serv')) {
// Remove successful posts
successful = JSON.parse(get_cookie('serv'));
for (var url in successful) {
saved[url] = null;
}
sessionStorage.body = JSON.stringify(saved);
document.cookie = 'serv={};expires=0;path=/;';
}
if(saved[document.location]) {
document.getElementsByTagName('form')[0].body.value = saved[document.location];
}
}
if(localStorage.body) {
document.getElementsByTagName('form')[0].body.value = localStorage.body;
localStorage.body = '';
}
}
}
function init() function init()
{ {
newElement = document.createElement('div'); newElement = document.createElement('div');
@ -89,8 +124,6 @@ function init()
document.getElementsByTagName('body')[0].insertBefore(newElement, document.getElementsByTagName('body')[0].lastChild) document.getElementsByTagName('body')[0].insertBefore(newElement, document.getElementsByTagName('body')[0].lastChild)
if(!localStorage.password)
localStorage.password = generatePassword();
if(document.forms.delete) { if(document.forms.delete) {
document.forms.delete.password.value = localStorage.password; document.forms.delete.password.value = localStorage.password;
} }
@ -99,33 +132,7 @@ function init()
citeReply(window.location.hash.substring(2)); citeReply(window.location.hash.substring(2));
else if (window.location.hash.substring(1)) else if (window.location.hash.substring(1))
highlightReply(window.location.hash.substring(1)); highlightReply(window.location.hash.substring(1));
if(localStorage.name)
document.getElementsByTagName('form')[0].name.value = localStorage.name;
if(localStorage.email)
document.getElementsByTagName('form')[0].email.value = localStorage.email;
if(sessionStorage.body) {
saved = JSON.parse(sessionStorage.body);
if(get_cookie('serv')) {
// Remove successful posts
successful = JSON.parse(get_cookie('serv'));
for (var url in successful) {
saved[url] = null;
}
sessionStorage.body = JSON.stringify(saved);
document.cookie = 'serv={};expires=0;path=/;';
}
if(saved[document.location]) {
document.getElementsByTagName('form')[0].body.value = saved[document.location];
}
}
if(localStorage.body) {
document.getElementsByTagName('form')[0].body.value = localStorage.body;
localStorage.body = '';
}
link = document.getElementsByTagName('a'); link = document.getElementsByTagName('a');
for ( i in link ) { for ( i in link ) {
if(typeof link[i] == "object" && link[i].childNodes[0].src) { if(typeof link[i] == "object" && link[i].childNodes[0].src) {

5
templates/index.html

@ -18,7 +18,7 @@
<div class="title">{board[title]?{board[title]}}<p>{mod?<a href="?/">Return to dashboard</a>}</p></div> <div class="title">{board[title]?{board[title]}}<p>{mod?<a href="?/">Return to dashboard</a>}</p></div>
<form onsubmit="return dopost(this);" enctype="multipart/form-data" action="{config[post_url]}" method="post"> <form name="post" onsubmit="return dopost(this);" enctype="multipart/form-data" action="{config[post_url]}" method="post">
{hidden_inputs} {hidden_inputs}
<input type="hidden" name="board" value="{board[uri]}" /> <input type="hidden" name="board" value="{board[uri]}" />
{mod?<input type="hidden" name="mod" value="1" />} {mod?<input type="hidden" name="mod" value="1" />}
@ -96,6 +96,9 @@
</tr> </tr>
</table> </table>
</form> </form>
<script type="text/javascript">
rememberStuff();
</script>
<hr/> <hr/>
<form name="delete" action="{post_url}" method="post"> <form name="delete" action="{post_url}" method="post">
<input type="hidden" name="board" value="{board[uri]}" /> <input type="hidden" name="board" value="{board[uri]}" />

63
templates/main.js

@ -73,6 +73,41 @@ if(localStorage.stylesheet) {
} }
} }
function rememberStuff() {
if(document.forms.post) {
if(!localStorage.password)
localStorage.password = generatePassword();
document.forms.post.password.value = localStorage.password;
if(localStorage.name)
document.forms.post.name.value = localStorage.name;
if(localStorage.email)
document.forms.post.email.value = localStorage.email;
if(sessionStorage.body) {
saved = JSON.parse(sessionStorage.body);
if(get_cookie('{config[cookies][js]}')) {
// Remove successful posts
successful = JSON.parse(get_cookie('{config[cookies][js]}'));
for (var url in successful) {
saved[url] = null;
}
sessionStorage.body = JSON.stringify(saved);
document.cookie = '{config[cookies][js]}={};expires=0;path=/;';
}
if(saved[document.location]) {
document.getElementsByTagName('form')[0].body.value = saved[document.location];
}
}
if(localStorage.body) {
document.getElementsByTagName('form')[0].body.value = localStorage.body;
localStorage.body = '';
}
}
}
function init() function init()
{ {
newElement = document.createElement('div'); newElement = document.createElement('div');
@ -89,8 +124,6 @@ function init()
document.getElementsByTagName('body')[0].insertBefore(newElement, document.getElementsByTagName('body')[0].lastChild) document.getElementsByTagName('body')[0].insertBefore(newElement, document.getElementsByTagName('body')[0].lastChild)
if(!localStorage.password)
localStorage.password = generatePassword();
if(document.forms.delete) { if(document.forms.delete) {
document.forms.delete.password.value = localStorage.password; document.forms.delete.password.value = localStorage.password;
} }
@ -99,33 +132,7 @@ function init()
citeReply(window.location.hash.substring(2)); citeReply(window.location.hash.substring(2));
else if (window.location.hash.substring(1)) else if (window.location.hash.substring(1))
highlightReply(window.location.hash.substring(1)); highlightReply(window.location.hash.substring(1));
if(localStorage.name)
document.getElementsByTagName('form')[0].name.value = localStorage.name;
if(localStorage.email)
document.getElementsByTagName('form')[0].email.value = localStorage.email;
if(sessionStorage.body) {
saved = JSON.parse(sessionStorage.body);
if(get_cookie('{config[cookies][js]}')) {
// Remove successful posts
successful = JSON.parse(get_cookie('{config[cookies][js]}'));
for (var url in successful) {
saved[url] = null;
}
sessionStorage.body = JSON.stringify(saved);
document.cookie = '{config[cookies][js]}={};expires=0;path=/;';
}
if(saved[document.location]) {
document.getElementsByTagName('form')[0].body.value = saved[document.location];
}
}
if(localStorage.body) {
document.getElementsByTagName('form')[0].body.value = localStorage.body;
localStorage.body = '';
}
link = document.getElementsByTagName('a'); link = document.getElementsByTagName('a');
for ( i in link ) { for ( i in link ) {
if(typeof link[i] == "object" && link[i].childNodes[0].src) { if(typeof link[i] == "object" && link[i].childNodes[0].src) {

5
templates/thread.html

@ -17,7 +17,7 @@
<div class="title">{board[title]?{board[title]}}<p>{mod?<a href="?/">Return to dashboard</a>}</p></div> <div class="title">{board[title]?{board[title]}}<p>{mod?<a href="?/">Return to dashboard</a>}</p></div>
<div class="banner">Posting mode: Reply <a class="unimportant" href="{return}">[Return.]</a></div> <div class="banner">Posting mode: Reply <a class="unimportant" href="{return}">[Return.]</a></div>
<form onsubmit="return dopost(this);" enctype="multipart/form-data" action="{config[post_url]}" method="post">{hidden_inputs} <form name="post" onsubmit="return dopost(this);" enctype="multipart/form-data" action="{config[post_url]}" method="post">{hidden_inputs}
<input type="hidden" name="thread" value="{id}" /> <input type="hidden" name="thread" value="{id}" />
<input type="hidden" name="board" value="{board[uri]}" /> <input type="hidden" name="board" value="{board[uri]}" />
{mod?<input type="hidden" name="mod" value="1" />} {mod?<input type="hidden" name="mod" value="1" />}
@ -87,6 +87,9 @@
</tr> </tr>
</table> </table>
</form> </form>
<script type="text/javascript">
rememberStuff();
</script>
<hr/> <hr/>
<form name="delete" action="{config[post_url]}" method="post"> <form name="delete" action="{config[post_url]}" method="post">
<input type="hidden" name="board" value="{board[uri]}" /> <input type="hidden" name="board" value="{board[uri]}" />

Loading…
Cancel
Save