🏗 Use json for the response to dw_locktimer
This commit is contained in:
parent
f7d14abd12
commit
b16fbc3f1d
16
inc/Ajax.php
16
inc/Ajax.php
|
@ -119,7 +119,6 @@ class Ajax {
|
|||
* Andreas Gohr <andi@splitbrain.org>
|
||||
*/
|
||||
protected function call_lock() {
|
||||
global $lang;
|
||||
global $ID;
|
||||
global $INFO;
|
||||
global $INPUT;
|
||||
|
@ -129,20 +128,29 @@ class Ajax {
|
|||
|
||||
$INFO = pageinfo();
|
||||
|
||||
$response = [
|
||||
'errors' => [],
|
||||
'lock' => '0',
|
||||
'draft' => '',
|
||||
];
|
||||
if(!$INFO['writable']) {
|
||||
echo 'Permission denied';
|
||||
$response['errors'][] = 'Permission to write this page has been denied.';
|
||||
echo json_encode($response);
|
||||
return;
|
||||
}
|
||||
|
||||
if(!checklock($ID)) {
|
||||
lock($ID);
|
||||
echo 1;
|
||||
$response['lock'] = '1';
|
||||
}
|
||||
|
||||
$draft = new Draft($ID, $INFO['client']);
|
||||
if ($draft->saveDraft()) {
|
||||
echo $draft->getDraftMessage();
|
||||
$response['draft'] = $draft->getDraftMessage();
|
||||
} else {
|
||||
$response['errors'] = array_merge($response['errors'], $draft->getErrors());
|
||||
}
|
||||
echo json_encode($response);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -104,7 +104,7 @@ var dw_locktimer = {
|
|||
var now = new Date(),
|
||||
params = 'call=lock&id=' + dw_locktimer.pageid + '&';
|
||||
|
||||
// refresh every minute only
|
||||
// refresh every half minute only
|
||||
if(now.getTime() - dw_locktimer.lasttime.getTime() <= 30*1000) {
|
||||
return;
|
||||
}
|
||||
|
@ -118,7 +118,7 @@ var dw_locktimer = {
|
|||
DOKU_BASE + 'lib/exe/ajax.php',
|
||||
params,
|
||||
null,
|
||||
'html'
|
||||
'json'
|
||||
).done(function dwLocktimerRefreshDoneHandler(data) {
|
||||
dw_locktimer.callbacks.forEach(
|
||||
function (callback) {
|
||||
|
@ -133,11 +133,16 @@ var dw_locktimer = {
|
|||
* Callback. Resets the warning timer
|
||||
*/
|
||||
refreshed: function(data){
|
||||
var error = data.charAt(0);
|
||||
data = data.substring(1);
|
||||
if (data.errors.length) {
|
||||
data.errors.forEach(function(error) {
|
||||
jQuery('#draft__status').after(
|
||||
jQuery('<div class="error"></div>').text(error)
|
||||
);
|
||||
})
|
||||
}
|
||||
|
||||
jQuery('#draft__status').html(data);
|
||||
if(error != '1') {
|
||||
jQuery('#draft__status').html(data.draft);
|
||||
if(data.lock !== '1') {
|
||||
return; // locking failed
|
||||
}
|
||||
dw_locktimer.reset();
|
||||
|
|
Loading…
Reference in New Issue