X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/404bfe407798a8a83fa02dc1742a315400b7c00b..ab76a5c2c90d386b3d5f40aee3d784b02cb92434:/redakcja/static/js/wiki/wikiapi.js diff --git a/redakcja/static/js/wiki/wikiapi.js b/redakcja/static/js/wiki/wikiapi.js index 13435ea0..97d18862 100644 --- a/redakcja/static/js/wiki/wikiapi.js +++ b/redakcja/static/js/wiki/wikiapi.js @@ -7,8 +7,8 @@ failure: noop }; /* - * Return absolute reverse path of given named view. - * (at least he have it hard-coded in one place) + * Return absolute reverse path of given named view. (at least he have it + * hard-coded in one place) * * TODO: think of a way, not to hard-code it here ;) * @@ -33,20 +33,20 @@ if (vname == "ajax_document_gallery") { - return base_path + "/gallery/" + arguments[1]; + return base_path + "/" + arguments[1] + "/gallery"; } if (vname == "ajax_document_diff") return base_path + "/" + arguments[1] + "/diff"; + if (vname == "ajax_document_rev") + return base_path + "/" + arguments[1] + "/rev"; + if (vname == "ajax_document_addtag") return base_path + "/" + arguments[1] + "/tags"; if (vname == "ajax_publish") return base_path + "/" + arguments[1] + "/publish"; - - if (vname == 'ping') - return base_path + '/ping/' console.log("Couldn't reverse match:", vname); return "/404.html"; @@ -107,8 +107,8 @@ /* * Fetch history of this document. * - * from - First revision to fetch (default = 0) - * upto - Last revision to fetch (default = tip) + * from - First revision to fetch (default = 0) upto - Last revision to + * fetch (default = tip) * */ WikiDocument.prototype.fetchHistory = function(params) { @@ -155,6 +155,24 @@ }); }; + WikiDocument.prototype.checkRevision = function(params) { + /* this doesn't modify anything, so no locks */ + var self = this; + $.ajax({ + method: "GET", + url: reverse("ajax_document_rev", self.id), + dataType: 'text', + success: function(data) { + if (data == '') { + if (params.error) + params.error(); + } + else if (data != self.revision) + params.outdated(); + } + }); + }; + /* * Fetch gallery */ @@ -172,7 +190,7 @@ }, error: function() { self.galleryImages = []; - params['failure'](self, "
Nie udaÅo siÄ wczytaÄ gallerii pod nazwÄ : '" + self.galleryLink + "'.
"); + params['failure'](self, "Nie udaÅo siÄ wczytaÄ galerii pod nazwÄ : '" + self.galleryLink + "'.
"); } }); }; @@ -222,10 +240,11 @@ type: "POST", dataType: "json", data: data, - timeout: 5000, success: function(data) { var changed = false; + $('#header').removeClass('saving'); + if (data.text) { self.text = data.text; self.revision = data.revision; @@ -236,24 +255,32 @@ params['success'](self, changed, ((changed && "UdaÅo siÄ zapisaÄ :)") || "Twoja wersja i serwera jest identyczna")); }, - error: function(xhr, msg) { - if (msg == 'timeout') { - params['failure'](self, { - "__message": "Przekroczony czas poÅÄ czenia. Zmiany nie zostaÅy zapisane." - }); - } - else { + error: function(xhr) { + if ($('#header').hasClass('saving')) { + $('#header').removeClass('saving'); + $.blockUI({ + message: "Nie udaÅo siÄ zapisaÄ zmian.
Nie udaÅo siÄ zapisaÄ - bÅÄ d serwera.
" }); }; - } + } + } }); + + $('#save-hide').click(function(){ + $('#header').addClass('saving'); + $.unblockUI(); + $.wiki.blocking.unblock(); + }); }; /* end of save() */ WikiDocument.prototype.publish = function(params) { @@ -323,20 +350,4 @@ }; $.wikiapi.WikiDocument = WikiDocument; - - - var ping = function () { - $.ajax({ - url : reverse('ping'), - timeout: 2000, - complete : function () { - setTimeout(function () { - ping(); - }, 600000); - } - }); - }; - - ping(); - })(jQuery);