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 def show
@post = Post.find(params[:id]) @post = Post.find(params[:id])
@unapproval = Unapproval.new(:post_id => @post)
respond_with(@post) respond_with(@post)
end end

View File

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

View File

@@ -199,9 +199,14 @@ class Post < ActiveRecord::Base
end end
module ApprovalMethods module ApprovalMethods
def is_unapprovable?
is_pending == false && is_flagged == false && unapproval.nil?
end
def unapprove!(reason) 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 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( unapproval = create_unapproval(
:unapprover_id => CurrentUser.user.id, :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 "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 "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 "Translate", "#" %></li>
<li><%= link_to "Unapprove", "#" %></li> <% if !post.is_flagged? %>
<% if CurrentUser.user.is_janitor? %> <li><%= link_to "Unapprove", new_unapproval_path(:post_id => post.id), :id => "unapprove" %></li>
<li><%= link_to "Approve", "#" %></li> <% end %>
<li><%= link_to "Undelete", "#" %></li> <% if CurrentUser.is_janitor? %>
<li><%= link_to "Delete", "#" %></li> <% 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 %> <% end %>
<li><%= link_to "Pool", "#" %></li> <li><%= link_to "Pool", "#" %></li>
</ul> </ul>

View File

@@ -52,6 +52,10 @@
</section> </section>
</section> </section>
</div> </div>
<div id="unapprove-dialog" title="Unapprove Post">
<%= render :template => "unapprovals/new" %>
</div>
</div> </div>
<% content_for(:page_title) do %> <% content_for(:page_title) do %>
@@ -63,6 +67,7 @@
<meta name="favorites" content="<%= @post.fav_string %>"> <meta name="favorites" content="<%= @post.fav_string %>">
<meta name="pools" content="<%= @post.pool_string %>"> <meta name="pools" content="<%= @post.pool_string %>">
<meta name="post-id" content="<%= @post.id %>"> <meta name="post-id" content="<%= @post.id %>">
<meta name="post-is-unapprovable" content="<%= @post.is_unapprovable? %>">
<% end %> <% end %>
<%= render :partial => "posts/partials/common/secondary_links" %> <%= 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() { Danbooru.Favorite.initialize_all = function() {
this.initialize_add_to_favorites(); this.initialize_add_to_favorites();
this.initialize_remove_from_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 favorites = $("meta[name=favorites]").attr("content");
var current_user = $("meta[name=current-user-id]").attr("content"); var current_user_id = $("meta[name=current-user-id]").attr("content");
var regexp = new RegExp("\\bfav:" + current_user + "\\b");
if (favorites.match(regexp)) { 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(); $("a#add-to-favorites").hide();
} else { } else {
$("a#remove-from-favorites").hide(); $("a#remove-from-favorites").hide();
@@ -1178,3 +1185,35 @@ $(document).ready(function() {
$(document).ready(function() { $(document).ready(function() {
Danbooru.Favorite.initialize_all(); 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() { Danbooru.Favorite.initialize_all = function() {
this.initialize_add_to_favorites(); this.initialize_add_to_favorites();
this.initialize_remove_from_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 favorites = $("meta[name=favorites]").attr("content");
var current_user = $("meta[name=current-user-id]").attr("content"); var current_user_id = $("meta[name=current-user-id]").attr("content");
var regexp = new RegExp("\\bfav:" + current_user + "\\b");
if (favorites.match(regexp)) { 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(); $("a#add-to-favorites").hide();
} else { } else {
$("a#remove-from-favorites").hide(); $("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; color: red;
text-decoration: line-through; } text-decoration: line-through; }
/*** Post Unapprovals ***/
div#unapprove-dialog p {
margin-bottom: 1em; }
/*** Comments ***/ /*** Comments ***/
div.comment-response > div { div.comment-response > div {
margin-top: 1em; } margin-top: 1em; }

View File

@@ -467,6 +467,14 @@ div.post_histories {
} }
/*** Post Unapprovals ***/
div#unapprove-dialog {
p {
margin-bottom: 1em;
}
}
/*** Comments ***/ /*** Comments ***/
div.comment-response { 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/uploads.js >> public/javascripts/compiled/default.js
cat public/javascripts/src/app/users.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/favorites.js >> public/javascripts/compiled/default.js
cat public/javascripts/src/app/unapprovals.js >> public/javascripts/compiled/default.js