work on post unapproval javascript
This commit is contained in:
@@ -10,6 +10,7 @@ class PostsController < ApplicationController
|
||||
|
||||
def show
|
||||
@post = Post.find(params[:id])
|
||||
@unapproval = Unapproval.new(:post_id => @post)
|
||||
respond_with(@post)
|
||||
end
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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>
|
||||
@@ -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" %>
|
||||
|
||||
@@ -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 %>
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
|
||||
@@ -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();
|
||||
|
||||
32
public/javascripts/src/app/unapprovals.js
Normal file
32
public/javascripts/src/app/unapprovals.js
Normal 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();
|
||||
});
|
||||
@@ -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; }
|
||||
|
||||
@@ -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
6
script/custom/auto_compile.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
while true ; do
|
||||
script/custom/compile_javascripts ;
|
||||
sleep 1 ;
|
||||
done
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user