X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/793b39c86e9583467f1cbc41f8b1a4677d079f23..577bb2b84d936d65bf072ef0a6b898db9d6e77ab:/redakcja/static/js/wiki/wikiapi.js diff --git a/redakcja/static/js/wiki/wikiapi.js b/redakcja/static/js/wiki/wikiapi.js index d8ade93f..cbed73b8 100644 --- a/redakcja/static/js/wiki/wikiapi.js +++ b/redakcja/static/js/wiki/wikiapi.js @@ -18,40 +18,43 @@ var base_path = "/documents"; if (vname == "ajax_document_text") { - var path = "/text/" + arguments[1]; + var path = "/text/" + arguments[1] + '/'; if (arguments[2] !== undefined) - path += "/" + arguments[2]; + path += arguments[2] + '/'; return base_path + path; } if (vname == "ajax_document_revert") { - return base_path + "/revert/" + arguments[1]; + return base_path + "/revert/" + arguments[1] + '/'; } if (vname == "ajax_document_history") { - return base_path + "/history/" + arguments[1]; + return base_path + "/history/" + arguments[1] + '/'; } if (vname == "ajax_document_gallery") { - return base_path + "/gallery/" + arguments[1]; + return base_path + "/gallery/" + arguments[1] + '/'; } if (vname == "ajax_document_diff") - return base_path + "/diff/" + arguments[1]; + return base_path + "/diff/" + arguments[1] + '/'; if (vname == "ajax_document_rev") - return base_path + "/rev/" + arguments[1]; + return base_path + "/rev/" + arguments[1] + '/'; if (vname == "ajax_document_addtag") - return base_path + "/tags/" + arguments[1]; + return base_path + "/tag/" + arguments[1] + '/'; + + if (vname == "ajax_document_pubmark") + return base_path + "/pubmark/" + arguments[1] + '/'; if (vname == "ajax_publish") - return base_path + "/publish/" + arguments[1]; + return base_path + "/publish/" + arguments[1] + '/'; console.log("Couldn't reverse match:", vname); return "/404.html"; @@ -68,6 +71,17 @@ this.readonly = !!$("*[data-key='readonly']", meta).text(); this.galleryLink = $("*[data-key='gallery']", meta).text(); + + var diff = $("*[data-key='diff']", meta).text(); + diff = diff.split(','); + if (diff.length == 2 && diff[0] < diff[1]) + this.diff = diff; + else if (diff.length == 1) { + diff = parseInt(diff); + if (diff != NaN) + this.diff = [diff - 1, diff]; + } + this.galleryImages = []; this.text = null; this.has_local_changes = false; @@ -389,5 +403,45 @@ }); }; + WikiDocument.prototype.pubmark = function(params) { + params = $.extend({}, noops, params); + var self = this; + var data = { + "pubmark-id": self.id, + }; + + /* unpack form */ + $.each(params.form.serializeArray(), function() { + data[this.name] = this.value; + }); + + $.ajax({ + url: reverse("ajax_document_pubmark", self.id), + type: "POST", + dataType: "json", + data: data, + success: function(data) { + params.success(self, data.message); + }, + error: function(xhr) { + if (xhr.status == 403 || xhr.status == 401) { + params.failure(self, { + "__all__": ["Nie masz uprawnień lub nie jesteś zalogowany."] + }); + } + else { + try { + params.failure(self, $.parseJSON(xhr.responseText)); + } + catch (e) { + params.failure(self, { + "__all__": ["Nie udało się - błąd serwera."] + }); + }; + }; + } + }); + }; + $.wikiapi.WikiDocument = WikiDocument; })(jQuery);