diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/exe/js.php | 1 | ||||
-rw-r--r-- | lib/scripts/edit.js | 59 |
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 |