1
0
mirror of https://github.com/vichan-devel/vichan.git synced 2024-11-12 01:50:48 +01:00

more efficient javascript remembering system

This commit is contained in:
Savetheinternet 2011-04-22 18:16:12 +10:00
parent 25e77ae425
commit c4913ab883
4 changed files with 79 additions and 59 deletions

65
main.js
View File

@ -51,7 +51,7 @@ function citeReply(id) {
document.getElementById('body').value += '>>' + id + '\n';
}
var selectedstyle = 'Yotsuba';
var selectedstyle = 'Yotsuba B';
var styles = [
['Yotsuba B', '/board/default.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()
{
newElement = document.createElement('div');
@ -89,8 +124,6 @@ function init()
document.getElementsByTagName('body')[0].insertBefore(newElement, document.getElementsByTagName('body')[0].lastChild)
if(!localStorage.password)
localStorage.password = generatePassword();
if(document.forms.delete) {
document.forms.delete.password.value = localStorage.password;
}
@ -99,33 +132,7 @@ function init()
citeReply(window.location.hash.substring(2));
else if (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');
for ( i in link ) {
if(typeof link[i] == "object" && link[i].childNodes[0].src) {

View File

@ -18,7 +18,7 @@
<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}
<input type="hidden" name="board" value="{board[uri]}" />
{mod?<input type="hidden" name="mod" value="1" />}
@ -96,6 +96,9 @@
</tr>
</table>
</form>
<script type="text/javascript">
rememberStuff();
</script>
<hr/>
<form name="delete" action="{post_url}" method="post">
<input type="hidden" name="board" value="{board[uri]}" />

View File

@ -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()
{
newElement = document.createElement('div');
@ -89,8 +124,6 @@ function init()
document.getElementsByTagName('body')[0].insertBefore(newElement, document.getElementsByTagName('body')[0].lastChild)
if(!localStorage.password)
localStorage.password = generatePassword();
if(document.forms.delete) {
document.forms.delete.password.value = localStorage.password;
}
@ -99,33 +132,7 @@ function init()
citeReply(window.location.hash.substring(2));
else if (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');
for ( i in link ) {
if(typeof link[i] == "object" && link[i].childNodes[0].src) {

View File

@ -17,7 +17,7 @@
<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>
<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="board" value="{board[uri]}" />
{mod?<input type="hidden" name="mod" value="1" />}
@ -87,6 +87,9 @@
</tr>
</table>
</form>
<script type="text/javascript">
rememberStuff();
</script>
<hr/>
<form name="delete" action="{config[post_url]}" method="post">
<input type="hidden" name="board" value="{board[uri]}" />