summaryrefslogtreecommitdiff
path: root/lib/scripts/edit.js
diff options
context:
space:
mode:
authorAdrian Lang <lang@cosmocode.de>2010-03-25 15:01:25 +0100
committerAdrian Lang <lang@cosmocode.de>2010-03-26 13:22:54 +0100
commit26ee1edf9c1750df399baebcb70afb49778b4a92 (patch)
treefebbeb86c3fb7ae3ad52a9e8bd40613fb6bf3af8 /lib/scripts/edit.js
parent2e61e4df6fa5a971de75b3cefdb0912c9fac7c79 (diff)
downloadrpg-26ee1edf9c1750df399baebcb70afb49778b4a92.tar.gz
rpg-26ee1edf9c1750df399baebcb70afb49778b4a92.tar.bz2
Rewrite JavaScript change check
Diffstat (limited to 'lib/scripts/edit.js')
-rw-r--r--lib/scripts/edit.js59
1 files changed, 26 insertions, 33 deletions
diff --git a/lib/scripts/edit.js b/lib/scripts/edit.js
index b756e9488..eeca27353 100644
--- a/lib/scripts/edit.js
+++ b/lib/scripts/edit.js
@@ -260,9 +260,9 @@ var textChanged = false;
/**
* Check for changes before leaving the page
*/
-function changeCheck(msg){
+function changeCheck(){
if(textChanged){
- var ok = confirm(msg);
+ var ok = confirm(LANG.notsavedyet);
if(ok){
// remove a possibly saved draft using ajax
var dwform = $('dw__editform');
@@ -289,57 +289,50 @@ function changeCheck(msg){
* JSnocheck class), add handlers to monitor changes
*
* Sets focus to the editbox as well
- *
- * @fixme this is old and crappy code. needs to be redone
*/
-function initChangeCheck(msg){
- var edit_text = document.getElementById('wiki__text');
- if(!edit_text) return;
- if(edit_text.readOnly) return;
- if(!$('dw__editform')) return;
+addInitEvent(function (){
+ var editform = $('dw__editform');
+ if (!editform) return;
+
+ var edit_text = $('wiki__text');
+ if(edit_text) {
+ if(edit_text.readOnly) return;
+
+ // set focus
+ edit_text.focus();
+ }
+
+ var checkfunc = function(){
+ textChanged = true; //global var
+ summaryCheck();
+ };
+ addEvent(editform, 'change', checkfunc);
+ addEvent(editform, 'keydown', checkfunc);
// add change check for links
var links = document.getElementsByTagName('a');
for(var i=0; i < links.length; i++){
if(links[i].className.indexOf('JSnocheck') == -1){
- links[i].onclick = function(){
- var rc = changeCheck(msg);
- if(window.event) window.event.returnValue = rc;
- return rc;
- };
+ addEvent(links[i], 'click', changeCheck);
}
}
// add change check for forms
var forms = document.forms;
for(i=0; i < forms.length; i++){
if(forms[i].className.indexOf('JSnocheck') == -1){
- forms[i].onsubmit = function(){
- var rc = changeCheck(msg);
- if(window.event) window.event.returnValue = rc;
- return rc;
- };
+ addEvent(forms[i], 'submit', changeCheck);
}
}
// reset change memory var on submit
- var btn_save = document.getElementById('edbtn__save');
- btn_save.onclick = function(){ textChanged = false; };
- var btn_prev = document.getElementById('edbtn__preview');
- btn_prev.onclick = function(){ textChanged = false; };
+ addEvent($('edbtn__save'), 'click', function(){ textChanged = false; });
+ addEvent($('edbtn__preview'), 'click', function(){ textChanged = false; });
- // add change memory setter
- edit_text.onchange = function(){
- textChanged = true; //global var
- summaryCheck();
- };
- var summary = document.getElementById('edit__summary');
+ var summary = $('edit__summary');
addEvent(summary, 'change', summaryCheck);
addEvent(summary, 'keyup', summaryCheck);
if (textChanged) summaryCheck();
-
- // set focus
- edit_text.focus();
-}
+});
/**
* Checks if a summary was entered - if not the style is changed