work on post unapproval javascript
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -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" %>
|
||||||
|
|||||||
@@ -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() {
|
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();
|
||||||
|
});
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
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;
|
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; }
|
||||||
|
|||||||
@@ -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
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/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
|
||||||
|
|||||||
Reference in New Issue
Block a user