1var batcheditServer = (function () { 2 var cookie = '{7b4e584c-bf85-4f7b-953b-15e327df08ff}'; 3 var session = null; 4 var transaction = null; 5 6 function initialize() { 7 session = jQuery('input[name=session]').val(); 8 } 9 10 function sendRequest(request, data, onSuccess, onError) { 11 if (transaction != null) { 12 return false; 13 } 14 15 data.append('call', 'batchedit'); 16 data.append('session', jQuery('input[name=session]').val()); 17 data.append('command', request); 18 19 transaction = request; 20 21 function errorHandler(status, message) { 22 console.log(status + ': ' + message); 23 24 if (typeof onError != 'undefined') { 25 onError(status, message); 26 } 27 } 28 29 jQuery.ajax({ 30 cache : false, 31 data : data, 32 processData: false, 33 contentType: false, 34 global : false, 35 type : 'POST', 36 timeout : 1000, 37 url : DOKU_BASE + 'lib/exe/ajax.php', 38 success : function (data) { 39 if (typeof data != 'object') { 40 errorHandler('invalid_data', 'Invalid data type'); 41 return; 42 } 43 44 if (data.hasOwnProperty('error')) { 45 errorHandler(data['error'], data['message']); 46 return; 47 } 48 49 if (typeof onSuccess != 'undefined') { 50 onSuccess(data); 51 } 52 }, 53 error : function (xhr, status, message) { 54 errorHandler(transaction + '_failed', message); 55 }, 56 dataFilter : function (data) { 57 var match = data.match(new RegExp(cookie + '(.+?)' + cookie)); 58 59 if ((match == null) || (match.length != 2)) { 60 return '{"error":"invalid_data","message":"Malformed response"}'; 61 } 62 63 return match[1]; 64 }, 65 complete : function () { 66 transaction = null; 67 } 68 }); 69 70 return true; 71 } 72 73 function checkProgress(onSuccess, onError) { 74 return sendRequest('progress', new FormData(), onSuccess, onError); 75 } 76 77 function cancelOperation(onSuccess, onError) { 78 return sendRequest('cancel', new FormData(), onSuccess, onError); 79 } 80 81 return { 82 initialize : initialize, 83 checkProgress : checkProgress, 84 cancelOperation : cancelOperation 85 } 86})(); 87 88jQuery(function () { 89 batcheditServer.initialize(); 90}); 91