diff options
author | Kate Arzamastseva <pshns@ukr.net> | 2011-06-04 18:59:05 +0300 |
---|---|---|
committer | Kate Arzamastseva <pshns@ukr.net> | 2011-06-04 18:59:05 +0300 |
commit | 8d56551e75f273694893a29a06d8164d3d60ae17 (patch) | |
tree | 80c181cbb7b4df28fe7691a2dd48fd6761dbe785 /lib/scripts/locktimer.js | |
parent | e4f389ef1728a0f86164a0e4b88626be9860dabb (diff) | |
parent | 0f80b0bcd4ca247f7bc4c3830946741546ad6e88 (diff) | |
download | rpg-8d56551e75f273694893a29a06d8164d3d60ae17.tar.gz rpg-8d56551e75f273694893a29a06d8164d3d60ae17.tar.bz2 |
Merge remote-tracking branch 'upstream/master' into media-revisions
Diffstat (limited to 'lib/scripts/locktimer.js')
-rw-r--r-- | lib/scripts/locktimer.js | 98 |
1 files changed, 53 insertions, 45 deletions
diff --git a/lib/scripts/locktimer.js b/lib/scripts/locktimer.js index 0db7d2b15..60508a8e7 100644 --- a/lib/scripts/locktimer.js +++ b/lib/scripts/locktimer.js @@ -1,13 +1,13 @@ /** - * Class managing the timer to display a warning on a expiring lock - */ +* Class managing the timer to display a warning on a expiring lock +*/ var locktimer = { - sack: null, - timeout: 0, - timerID: null, + sack: null, + timeout: 0, + timerID: null, lasttime: null, - msg: '', - pageid: '', + msg: '', + pageid: '', init: function(timeout,msg,draft,edid){ var edit = $(edid); @@ -15,50 +15,50 @@ var locktimer = { if(edit.readOnly) return; // init values - locktimer.timeout = timeout*1000; - locktimer.msg = msg; - locktimer.draft = draft; - locktimer.lasttime = new Date(); + this.timeout = timeout*1000; + this.msg = msg; + this.draft = draft; + this.lasttime = new Date(); - if(!$('dw__editform')) return; - locktimer.pageid = $('dw__editform').elements.id.value; - if(!locktimer.pageid) return; + if(jQuery('#dw__editform').length == 0) return; + this.pageid = jQuery('#dw__editform input[name=id]').val(); + if(!this.pageid) return; - // init ajax component - locktimer.sack = new sack(DOKU_BASE + 'lib/exe/ajax.php'); - locktimer.sack.AjaxFailedAlert = ''; - locktimer.sack.encodeURIString = false; - locktimer.sack.onCompletion = locktimer.refreshed; + if(jQuery('#wiki__text').attr('readonly')) return; // register refresh event - addEvent($('dw__editform'),'keypress',function(){locktimer.refresh();}); + jQuery('#dw__editform').keypress( + function() { + locktimer.refresh(); + } + ); // start timer - locktimer.reset(); + this.reset(); }, /** * (Re)start the warning timer */ reset: function(){ - locktimer.clear(); - locktimer.timerID = window.setTimeout("locktimer.warning()", locktimer.timeout); + this.clear(); + this.timerID = window.setTimeout("locktimer.warning()", this.timeout); }, /** * Display the warning about the expiring lock */ warning: function(){ - locktimer.clear(); - alert(locktimer.msg); + this.clear(); + alert(this.msg); }, /** * Remove the current warning timer */ clear: function(){ - if(locktimer.timerID !== null){ - window.clearTimeout(locktimer.timerID); - locktimer.timerID = null; + if(this.timerID !== null){ + window.clearTimeout(this.timerID); + this.timerID = null; } }, @@ -69,34 +69,42 @@ var locktimer = { */ refresh: function(){ var now = new Date(); + var params = {}; // refresh every minute only - if(now.getTime() - locktimer.lasttime.getTime() > 30*1000){ - var params = 'call=lock&id='+encodeURIComponent(locktimer.pageid); - var dwform = $('dw__editform'); - if(locktimer.draft && dwform.elements.wikitext){ - params += '&prefix='+encodeURIComponent(dwform.elements.prefix.value); - params += '&wikitext='+encodeURIComponent(dwform.elements.wikitext.value); - params += '&suffix='+encodeURIComponent(dwform.elements.suffix.value); - if(dwform.elements.date){ - params += '&date='+encodeURIComponent(dwform.elements.date.value); + if(now.getTime() - this.lasttime.getTime() > 30*1000){ + params['call'] = 'lock'; + params['id'] = locktimer.pageid; + + if(locktimer.draft && jQuery('#dw__editform textarea[name=wikitext]').length > 0){ + params['prefix'] = jQuery('#dw__editform input[name=prefix]').val(); + params['wikitext'] = jQuery('#dw__editform textarea[name=wikitext]').val(); + params['suffix'] = jQuery('#dw__editform input[name=suffix]').val(); + if(jQuery('#dw__editform input[name=date]').length > 0) { + params['date'] = jQuery('#dw__editform input[name=id]').val(); } } - locktimer.sack.runAJAX(params); - locktimer.lasttime = now; + + jQuery.post( + DOKU_BASE + 'lib/exe/ajax.php', + params, + function (data) { + locktimer.refreshed(data); + }, + 'html' + ); + this.lasttime = now; } }, /** * Callback. Resets the warning timer */ - refreshed: function(){ - var data = this.response; + refreshed: function(data){ var error = data.charAt(0); - data = data.substring(1); + data = data.substring(1); - $('draft__status').innerHTML=data; + jQuery('#draft__status').html(data); if(error != '1') return; // locking failed - locktimer.reset(); + this.reset(); } }; - |