summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/exe/js.php1
-rw-r--r--lib/scripts/edit.js59
2 files changed, 26 insertions, 34 deletions
diff --git a/lib/exe/js.php b/lib/exe/js.php
index 0eb43b246..05965ba02 100644
--- a/lib/exe/js.php
+++ b/lib/exe/js.php
@@ -107,7 +107,6 @@ function js_out(){
js_runonstart('addTocToggle()');
js_runonstart("initSizeCtl('size__ctl','wiki__text')");
js_runonstart("initToolbar('tool__bar','wiki__text',toolbar)");
- js_runonstart("initChangeCheck('".js_escape($lang['notsavedyet'])."')");
if($conf['locktime'] != 0){
js_runonstart("locktimer.init(".($conf['locktime'] - 60).",'".js_escape($lang['willexpire'])."',".$conf['usedraft'].")");
}
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