Files
danbooru/app/assets/javascripts/posts.js
2011-08-15 11:30:14 -04:00

115 lines
3.1 KiB
JavaScript

(function() {
Danbooru.Post = {};
Danbooru.Post.pending_update_count = 0;
Danbooru.Post.initialize_all = function() {
this.initialize_post_sections();
this.initialize_wiki_page_excerpt();
}
Danbooru.Post.initialize_wiki_page_excerpt = function() {
if (Danbooru.Cookie.get("hide-wiki-page-excerpt") === "1") {
$("#hide-wiki-page-excerpt").hide();
$("#wiki-page-excerpt-content").hide();
} else {
$("#show-wiki-page-excerpt").hide();
}
$("#hide-wiki-page-excerpt").click(function() {
$("#hide-wiki-page-excerpt").hide();
$("#wiki-page-excerpt-content").hide();
$("#show-wiki-page-excerpt").show();
Danbooru.Cookie.put("hide-wiki-page-excerpt", "1");
});
$("#show-wiki-page-excerpt").click(function() {
$("#hide-wiki-page-excerpt").show();
$("#wiki-page-excerpt-content").show();
$("#show-wiki-page-excerpt").hide();
Danbooru.Cookie.put("hide-wiki-page-excerpt", "0");
});
}
Danbooru.Post.initialize_post_sections = function() {
$("#post-sections li a").click(function(e) {
$("#comments").hide();
$("#notes").hide();
$("#edit").hide();
$("#post-sections li").removeClass("active");
$(e.target).parent("li").addClass("active");
var name = e.target.hash;
$(name).show();
e.preventDefault();
});
$("#post-sections li:first-child").addClass("active");
$("#notes").hide();
$("#edit").hide();
}
Danbooru.Post.notice_update = function(x) {
if (x === "inc") {
Danbooru.Post.pending_update_count += 1;
Danbooru.notice("Updating posts (" + Danbooru.Post.pending_update_count + " pending)...");
} else {
Danbooru.Post.pending_update_count -= 1;
if (Danbooru.Post.pending_update_count < 1) {
Danbooru.notice("Posts updated");
} else {
Danbooru.notice("Updating posts (" + Post.pending_update_count + " pending)...");
}
}
}
Danbooru.Post.update_data = function(data) {
var $post = $("#post_" + data.id);
$post.data("tags", data.tags);
}
Danbooru.Post.vote = function(score, id) {
Danbooru.Post.notice_update("inc");
$.ajax({
type: "POST",
url: "/posts/" + id + "/votes",
data: {
score: score
},
complete: function() {
Danbooru.Post.notice_update("dec");
},
success: function(data, status, xhr) {
$("post-score-" + data.post_id).html(data.score);
},
error: function(data, status, xhr) {
Danbooru.notice("Error: " + data.reason);
}
});
}
Danbooru.Post.update = function(post_id, params) {
Danbooru.Post.notice_update("inc");
$.ajax({
type: "PUT",
url: "/posts/" + post_id + ".json",
data: params,
complete: function() {
Danbooru.Post.notice_update("dec");
},
success: function(data, status, xhr) {
Danbooru.Post.update_data(data);
},
error: function(data, status, xhr) {
Danbooru.j_alert("Error: " + data.reason);
}
});
}
})();
$(document).ready(function() {
Danbooru.Post.initialize_all();
});