X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/e77f342a73c940f16c37f57ffa50edce9caef8f0..77d054cf52faf3ac0a56040cb29f40016a3c7453:/redakcja/static/js/wiki/wikiapi.js diff --git a/redakcja/static/js/wiki/wikiapi.js b/redakcja/static/js/wiki/wikiapi.js index 3ec2fdc2..8da5929a 100644 --- a/redakcja/static/js/wiki/wikiapi.js +++ b/redakcja/static/js/wiki/wikiapi.js @@ -26,6 +26,11 @@ return base_path + path; } + if (vname == "ajax_document_revert") { + return base_path + "/" + arguments[1] + "/revert"; + } + + if (vname == "ajax_document_history") { return base_path + "/" + arguments[1] + "/history"; @@ -33,12 +38,15 @@ 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"; @@ -152,6 +160,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 */ @@ -169,7 +195,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,6 +248,8 @@ success: function(data) { var changed = false; + $('#header').removeClass('saving'); + if (data.text) { self.text = data.text; self.revision = data.revision; @@ -233,19 +261,72 @@ params['success'](self, changed, ((changed && "UdaÅo siÄ zapisaÄ :)") || "Twoja wersja i serwera jest identyczna")); }, error: function(xhr) { - try { - params['failure'](self, $.parseJSON(xhr.responseText)); - } - catch (e) { - params['failure'](self, { - "__message": "Nie udaÅo siÄ zapisaÄ - bÅÄ d serwera.
" - }); - }; + 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.revertToVersion = function(params) { + var self = this; + params = $.extend({}, noops, params); + + if (params.revision >= this.revision) { + params.failure(self, 'ProszÄ wybraÄ rewizjÄ starszÄ niż aktualna.'); + return; + } + + // Serialize form to dictionary + var data = {}; + $.each(params['form'].serializeArray(), function() { + data[this.name] = this.value; + }); + + $.ajax({ + url: reverse("ajax_document_revert", self.id), + type: "POST", + dataType: "json", + data: data, + success: function(data) { + if (data.text) { + self.text = data.text; + self.revision = data.revision; + self.gallery = data.gallery; + self.triggerDocumentChanged(); + + params.success(self, "UdaÅo siÄ przywróciÄ wersjÄ :)"); + } + else { + params.failure(self, "Przywracana wersja identyczna z aktualnÄ . Anulowano przywracanie."); + } + }, + error: function(xhr) { + params.failure(self, "Nie udaÅo siÄ przywróciÄ wersji - bÅÄ d serwera."); + } + }); + }; + WikiDocument.prototype.publish = function(params) { params = $.extend({}, noops, params); var self = this;