work on post unapproval javascript

This commit is contained in:
albert
2011-02-08 19:11:14 -05:00
parent 76a7594a97
commit 00ea319743
13 changed files with 139 additions and 17 deletions

View File

@@ -10,6 +10,7 @@ class PostsController < ApplicationController
def show
@post = Post.find(params[:id])
@unapproval = Unapproval.new(:post_id => @post)
respond_with(@post)
end

View File

@@ -15,7 +15,7 @@ class UnapprovalsController < ApplicationController
def create
@unapproval = Unapproval.create(params[:unapproval])
respond_with(@unapproval)
respond_with(@unapproval, :location => post_path(@unapproval.post_id))
end
def destroy

View File

@@ -199,9 +199,14 @@ class Post < ActiveRecord::Base
end
module ApprovalMethods
def is_unapprovable?
is_pending == false && is_flagged == false && unapproval.nil?
end
def unapprove!(reason)
raise Unapproval::Error.new("This post is still pending approval") if is_pending?
raise Unapproval::Error.new("This post has already been flagged") if is_flagged?
raise Unapproval::Error.new("This post has already been unapproved once") unless unapproval.nil?
raise Unapproval::Error.new("This post has already been unapproved once") unless unapproval.nil?
unapproval = create_unapproval(
:unapprover_id => CurrentUser.user.id,

View File

@@ -3,11 +3,21 @@
<li><%= link_to "Favorite", "#", :id => "add-to-favorites" %> <img src="/images/wait.gif" style="display: none;" id="add-to-favorites-wait"></li>
<li><%= link_to "Unfavorite", "#", :id => "remove-from-favorites" %> <img src="/images/wait.gif" style="display: none;" id="remove-from-favorites-wait"></li>
<li><%= link_to "Translate", "#" %></li>
<li><%= link_to "Unapprove", "#" %></li>
<% if CurrentUser.user.is_janitor? %>
<li><%= link_to "Approve", "#" %></li>
<li><%= link_to "Undelete", "#" %></li>
<li><%= link_to "Delete", "#" %></li>
<% if !post.is_flagged? %>
<li><%= link_to "Unapprove", new_unapproval_path(:post_id => post.id), :id => "unapprove" %></li>
<% end %>
<% if CurrentUser.is_janitor? %>
<% if post.is_pending? || post.is_flagged? %>
<li><%= link_to "Approve", "#", :id => "approve" %> <img src="/images/wait.gif" style="display: none;" id="approve-wait"></li>
<li><%= link_to "Disapprove", "#", :id => "disapprove" %> <img src="/images/wait.gif" style="display: none;" id="disapprove-wait"></li>
<% end %>
<% end %>
<% if CurrentUser.is_moderator? %>
<% if post.is_removed? %>
<li><%= link_to "Undelete", "#" %></li>
<% else %>
<li><%= link_to "Delete", "#" %></li>
<% end %>
<% end %>
<li><%= link_to "Pool", "#" %></li>
</ul>

View File

@@ -52,6 +52,10 @@
</section>
</section>
</div>
<div id="unapprove-dialog" title="Unapprove Post">
<%= render :template => "unapprovals/new" %>
</div>
</div>
<% content_for(:page_title) do %>
@@ -63,6 +67,7 @@
<meta name="favorites" content="<%= @post.fav_string %>">
<meta name="pools" content="<%= @post.pool_string %>">
<meta name="post-id" content="<%= @post.id %>">
<meta name="post-is-unapprovable" content="<%= @post.is_unapprovable? %>">
<% end %>
<%= render :partial => "posts/partials/common/secondary_links" %>

View File

@@ -0,0 +1,4 @@
<p>You can unapprove a post if you believe it breaks the rules or doesn't belong on this site. You must provide a reason.</p>
<%= form_for(@unapproval) do |f| %>
<%= f.text_area :reason, :size => "40x5" %>
<% end %>

View File

@@ -1115,14 +1115,21 @@ $(document).ready(function() {
Danbooru.Favorite.initialize_all = function() {
this.initialize_add_to_favorites();
this.initialize_remove_from_favorites();
this.hide_or_remove_add_to_favorites_link();
this.hide_or_show_add_to_favorites_link();
}
Danbooru.Favorite.hide_or_remove_add_to_favorites_link = function() {
Danbooru.Favorite.hide_or_show_add_to_favorites_link = function() {
var favorites = $("meta[name=favorites]").attr("content");
var current_user = $("meta[name=current-user-id]").attr("content");
var regexp = new RegExp("\\bfav:" + current_user + "\\b");
if (favorites.match(regexp)) {
var current_user_id = $("meta[name=current-user-id]").attr("content");
if (current_user_id == "") {
$("a#add-to-favorites").hide();
$("a#remove-from-favorites").hide();
return;
}
var regexp = new RegExp("\\bfav:" + current_user_id + "\\b");
if ((favorites != undefined) && (favorites.match(regexp))) {
$("a#add-to-favorites").hide();
} else {
$("a#remove-from-favorites").hide();
@@ -1178,3 +1185,35 @@ $(document).ready(function() {
$(document).ready(function() {
Danbooru.Favorite.initialize_all();
});
(function() {
Danbooru.Unapproval = {};
Danbooru.Unapproval.initialize_all = function() {
this.initialize_unapprove();
}
Danbooru.Unapproval.initialize_unapprove = function() {
$("#unapprove-dialog").dialog({
autoOpen: false,
width: 400,
modal: true,
buttons: {
"Submit": function() {
$("#unapprove-dialog form").submit();
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
$("a#unapprove").click(function() {
$("#unapprove-dialog").dialog("open");
return false;
});
}
})();
$(document).ready(function() {
Danbooru.Unapproval.initialize_all();
});

View File

@@ -4,14 +4,21 @@
Danbooru.Favorite.initialize_all = function() {
this.initialize_add_to_favorites();
this.initialize_remove_from_favorites();
this.hide_or_remove_add_to_favorites_link();
this.hide_or_show_add_to_favorites_link();
}
Danbooru.Favorite.hide_or_remove_add_to_favorites_link = function() {
Danbooru.Favorite.hide_or_show_add_to_favorites_link = function() {
var favorites = $("meta[name=favorites]").attr("content");
var current_user = $("meta[name=current-user-id]").attr("content");
var regexp = new RegExp("\\bfav:" + current_user + "\\b");
if (favorites.match(regexp)) {
var current_user_id = $("meta[name=current-user-id]").attr("content");
if (current_user_id == "") {
$("a#add-to-favorites").hide();
$("a#remove-from-favorites").hide();
return;
}
var regexp = new RegExp("\\bfav:" + current_user_id + "\\b");
if ((favorites != undefined) && (favorites.match(regexp))) {
$("a#add-to-favorites").hide();
} else {
$("a#remove-from-favorites").hide();

View File

@@ -0,0 +1,32 @@
(function() {
Danbooru.Unapproval = {};
Danbooru.Unapproval.initialize_all = function() {
this.initialize_unapprove();
}
Danbooru.Unapproval.initialize_unapprove = function() {
$("#unapprove-dialog").dialog({
autoOpen: false,
width: 400,
modal: true,
buttons: {
"Submit": function() {
$("#unapprove-dialog form").submit();
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
$("a#unapprove").click(function() {
$("#unapprove-dialog").dialog("open");
return false;
});
}
})();
$(document).ready(function() {
Danbooru.Unapproval.initialize_all();
});

View File

@@ -292,6 +292,10 @@ div.post_histories div.index div.post {
color: red;
text-decoration: line-through; }
/*** Post Unapprovals ***/
div#unapprove-dialog p {
margin-bottom: 1em; }
/*** Comments ***/
div.comment-response > div {
margin-top: 1em; }

View File

@@ -467,6 +467,14 @@ div.post_histories {
}
/*** Post Unapprovals ***/
div#unapprove-dialog {
p {
margin-bottom: 1em;
}
}
/*** Comments ***/
div.comment-response {
}

6
script/custom/auto_compile.sh Executable file
View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
while true ; do
script/custom/compile_javascripts ;
sleep 1 ;
done

View File

@@ -13,3 +13,4 @@ cat public/javascripts/src/app/comments.js >> public/javascripts/compiled/defaul
cat public/javascripts/src/app/uploads.js >> public/javascripts/compiled/default.js
cat public/javascripts/src/app/users.js >> public/javascripts/compiled/default.js
cat public/javascripts/src/app/favorites.js >> public/javascripts/compiled/default.js
cat public/javascripts/src/app/unapprovals.js >> public/javascripts/compiled/default.js