diff options
Diffstat (limited to 'wiki/lib/scripts/locktimer.js')
-rw-r--r-- | wiki/lib/scripts/locktimer.js | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/wiki/lib/scripts/locktimer.js b/wiki/lib/scripts/locktimer.js deleted file mode 100644 index f83b633..0000000 --- a/wiki/lib/scripts/locktimer.js +++ /dev/null @@ -1,115 +0,0 @@ -/** - * Class managing the timer to display a warning on a expiring lock - */ -var dw_locktimer = { - timeout: 0, - draft: false, - timerID: null, - lasttime: null, - msg: LANG.willexpire, - pageid: '', - - /** - * Initialize the lock timer - * - * @param {int} timeout Length of timeout in seconds - * @param {bool} draft Whether to save drafts - * @param {string} edid Optional; ID of an edit object which has to be present - */ - init: function(timeout,draft,edid){ - var $edit; - - edid = edid || 'wiki__text'; - - $edit = jQuery('#' + edid); - if($edit.length === 0 || $edit.attr('readonly')) { - return; - } - - // init values - dw_locktimer.timeout = timeout*1000; - dw_locktimer.draft = draft; - dw_locktimer.lasttime = new Date(); - - dw_locktimer.pageid = jQuery('#dw__editform').find('input[name=id]').val(); - if(!dw_locktimer.pageid) { - return; - } - - // register refresh event - $edit.keypress(dw_locktimer.refresh); - // start timer - dw_locktimer.reset(); - }, - - /** - * (Re)start the warning timer - */ - reset: function(){ - dw_locktimer.clear(); - dw_locktimer.timerID = window.setTimeout(dw_locktimer.warning, dw_locktimer.timeout); - }, - - /** - * Display the warning about the expiring lock - */ - warning: function(){ - dw_locktimer.clear(); - alert(fixtxt(dw_locktimer.msg)); - }, - - /** - * Remove the current warning timer - */ - clear: function(){ - if(dw_locktimer.timerID !== null){ - window.clearTimeout(dw_locktimer.timerID); - dw_locktimer.timerID = null; - } - }, - - /** - * Refresh the lock via AJAX - * - * Called on keypresses in the edit area - */ - refresh: function(){ - var now = new Date(), - params = 'call=lock&id=' + dw_locktimer.pageid + '&'; - - // refresh every minute only - if(now.getTime() - dw_locktimer.lasttime.getTime() <= 30*1000) { - return; - } - - // POST everything necessary for draft saving - if(dw_locktimer.draft && jQuery('#dw__editform').find('textarea[name=wikitext]').length > 0){ - params += jQuery('#dw__editform').find('input[name=prefix], ' + - 'textarea[name=wikitext], ' + - 'input[name=suffix], ' + - 'input[name=date]').serialize(); - } - - jQuery.post( - DOKU_BASE + 'lib/exe/ajax.php', - params, - dw_locktimer.refreshed, - 'html' - ); - dw_locktimer.lasttime = now; - }, - - /** - * Callback. Resets the warning timer - */ - refreshed: function(data){ - var error = data.charAt(0); - data = data.substring(1); - - jQuery('#draft__status').html(data); - if(error != '1') { - return; // locking failed - } - dw_locktimer.reset(); - } -}; |