teh legendary `Publish' button, oh yeah!
[redakcja.git] / redakcja / static / js / wiki / wikiapi.js
index 2f79b09..a1f2fb9 100644 (file)
@@ -50,6 +50,9 @@
                if (vname == "ajax_document_addtag")
                        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] + '/';
 
                });
        };
 
+       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);