X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/4cdc0fc88d27843994fb6203eb4e5898f46c2c83..6abb0567faf0b8791bd17fa1db4803be2e4bf2fe:/redakcja/static/js/wiki/wikiapi.js diff --git a/redakcja/static/js/wiki/wikiapi.js b/redakcja/static/js/wiki/wikiapi.js index 3a05ea85..8df3ef5a 100644 --- a/redakcja/static/js/wiki/wikiapi.js +++ b/redakcja/static/js/wiki/wikiapi.js @@ -50,6 +50,9 @@ if (vname == "ajax_document_pubmark") return base_path + "/pubmark/" + arguments[1] + '/'; + if (vname == "ajax_cover_preview") + return "/cover/preview/"; + console.log("Couldn't reverse match:", vname); return "/404.html"; }; @@ -59,12 +62,13 @@ */ function WikiDocument(element_id) { var meta = $('#' + element_id); - this.id = meta.attr('data-book') + '/' + meta.attr('data-chunk'); + this.id = meta.attr('data-chunk-id'); this.revision = $("*[data-key='revision']", meta).text(); this.readonly = !!$("*[data-key='readonly']", meta).text(); this.galleryLink = $("*[data-key='gallery']", meta).text(); + this.galleryStart = parseInt($("*[data-key='gallery-start']", meta).text()); var diff = $("*[data-key='diff']", meta).text(); if (diff) { @@ -203,9 +207,18 @@ self.galleryImages = data; params['success'](self, data); }, - error: function() { + error: function(xhr) { + switch (xhr.status) { + case 403: + var msg = 'Galerie dostÄpne tylko dla zalogowanych użytkowników.'; + break; + case 404: + var msg = "Nie znaleziono galerii o nazwie: '" + self.galleryLink + "'."; + default: + var msg = "Nie udaÅo siÄ wczytaÄ galerii o nazwie: '" + self.galleryLink + "'."; + } self.galleryImages = []; - params['failure'](self, "
Nie udaÅo siÄ wczytaÄ galerii pod nazwÄ : '" + self.galleryLink + "'.
"); + params['failure'](self, "" + msg + "
"); } }); }; @@ -214,16 +227,24 @@ * Set document's text */ WikiDocument.prototype.setText = function(text) { - this.text = text; - this.has_local_changes = true; + return this.setDocumentProperty('text', text); }; /* * Set document's gallery link */ WikiDocument.prototype.setGalleryLink = function(gallery) { - this.galleryLink = gallery; - this.has_local_changes = true; + return this.setDocumentProperty('galleryLink', gallery); + }; + + /* + * Set document's property + */ + WikiDocument.prototype.setDocumentProperty = function(property, value) { + if(this[property] !== value) { + this[property] = value; + this.has_local_changes = true; + } }; /* @@ -333,33 +354,6 @@ }); }; - WikiDocument.prototype.publish = function(params) { - params = $.extend({}, noops, params); - var self = this; - $.ajax({ - url: reverse("ajax_publish", self.id), - type: "POST", - dataType: "json", - success: function(data) { - params.success(self, data); - }, - error: function(xhr) { - if (xhr.status == 403 || xhr.status == 401) { - params.failure(self, "Nie masz uprawnieÅ lub nie jesteÅ zalogowany."); - } - else { - try { - params.failure(self, xhr.responseText); - } - catch (e) { - params.failure(self, "Nie udaÅo siÄ - bÅÄ d serwera."); - }; - }; - - } - }); - }; - WikiDocument.prototype.pubmark = function(params) { params = $.extend({}, noops, params); var self = this; @@ -400,6 +394,25 @@ }); }; + WikiDocument.prototype.refreshCover = function(params) { + var self = this; + var data = { + xml: self.text // TODO: send just DC + }; + $.ajax({ + url: reverse("ajax_cover_preview"), + type: "POST", + data: data, + success: function(data) { + params.success(data); + }, + error: function(xhr) { + // params.failure("Nie udaÅo siÄ odÅwieżyÄ okÅadki - bÅÄ d serwera."); + } + }); + }; + + WikiDocument.prototype.getLength = function(params) { var xml = this.text.replace(/\/(\s+)/g, '