implemented javascripts for approval/disapproval/unapproval from post/show page
This commit is contained in:
@@ -1,22 +1,50 @@
|
|||||||
class PostModerationController < ApplicationController
|
class PostModerationController < ApplicationController
|
||||||
respond_to :html, :xml, :json
|
|
||||||
before_filter :janitor_only
|
before_filter :janitor_only
|
||||||
|
rescue_from Post::ApprovalError, :with => :approval_error
|
||||||
|
rescue_from Post::DisapprovalError, :with => :disapproval_error
|
||||||
|
|
||||||
def moderate
|
def moderate
|
||||||
@search = Post.pending.available_for_moderation.search(params[:search]).order("id asc")
|
@search = Post.pending.available_for_moderation.search(params[:search]).order("id asc")
|
||||||
@posts = @search.paginate(:page => params[:page])
|
@posts = @search.paginate(:page => params[:page])
|
||||||
respond_with(@posts)
|
respond_to do |format|
|
||||||
|
format.html
|
||||||
|
format.json {render :json => @posts.to_json}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def approve
|
def approve
|
||||||
@post = Post.find(params[:post_id])
|
@post = Post.find(params[:post_id])
|
||||||
@post.approve!
|
@post.approve!
|
||||||
respond_with(@post, :location => post_moderation_moderate_path)
|
respond_to do |format|
|
||||||
|
format.html {redirect_to(post_moderation_moderate_path, :notice => "Post approved")}
|
||||||
|
format.js
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def disapprove
|
def disapprove
|
||||||
@post = Post.find(params[:post_id])
|
@post = Post.find(params[:post_id])
|
||||||
@post_disapproval = PostDisapproval.create(:post => @post, :user => CurrentUser.user)
|
@post_disapproval = PostDisapproval.create(:post => @post, :user => CurrentUser.user)
|
||||||
respond_with(@post_disapproval, :location => post_moderation_moderate_path)
|
if @post_disapproval.errors.any?
|
||||||
|
raise Post::DisapprovalError.new(@post_disapproval.errors.full_messages)
|
||||||
|
end
|
||||||
|
respond_to do |format|
|
||||||
|
format.html {redirect_to(post_moderation_moderate_path, :notice => "Post disapproved")}
|
||||||
|
format.js
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
def disapproval_error(e)
|
||||||
|
respond_to do |format|
|
||||||
|
format.html {redirect_to(post_moderation_moderate_path, :notice => "You have already disapproved this post")}
|
||||||
|
format.js {render :action => "disapproval_error"}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def approval_error(e)
|
||||||
|
respond_to do |format|
|
||||||
|
format.html {redirect_to(post_moderation_moderate_path, :notice => e.message)}
|
||||||
|
format.js {@exception = e; render :action => "approval_error"}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
class UnapprovalsController < ApplicationController
|
class UnapprovalsController < ApplicationController
|
||||||
before_filter :member_only
|
before_filter :member_only
|
||||||
respond_to :html, :xml, :json
|
respond_to :html, :xml, :json, :js
|
||||||
rescue_from User::PrivilegeError, :with => "static/access_denied"
|
rescue_from User::PrivilegeError, :with => "static/access_denied"
|
||||||
|
|
||||||
def new
|
def new
|
||||||
@@ -15,7 +15,7 @@ class UnapprovalsController < ApplicationController
|
|||||||
|
|
||||||
def create
|
def create
|
||||||
@unapproval = Unapproval.create(params[:unapproval])
|
@unapproval = Unapproval.create(params[:unapproval])
|
||||||
respond_with(@unapproval, :location => post_path(@unapproval.post_id))
|
respond_with(@unapproval)
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
|
|||||||
@@ -33,6 +33,10 @@ module ApplicationHelper
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def wait_image(html_id)
|
||||||
|
('<img src="/images/wait.gif" style="display: none;" id="' + html_id + '">').html_safe
|
||||||
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
def nav_link_match(controller, url)
|
def nav_link_match(controller, url)
|
||||||
url =~ case controller
|
url =~ case controller
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
class Post < ActiveRecord::Base
|
class Post < ActiveRecord::Base
|
||||||
class ApprovalError < Exception ; end
|
class ApprovalError < Exception ; end
|
||||||
|
class DisapprovalError < Exception ; end
|
||||||
|
|
||||||
attr_accessor :old_tag_string, :old_parent_id
|
attr_accessor :old_tag_string, :old_parent_id
|
||||||
after_destroy :delete_files
|
after_destroy :delete_files
|
||||||
@@ -203,6 +204,10 @@ class Post < ActiveRecord::Base
|
|||||||
is_pending == false && is_flagged == false && unapproval.nil?
|
is_pending == false && is_flagged == false && unapproval.nil?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def is_approvable?
|
||||||
|
(is_pending? || is_flagged?) && approver_string != "approver:#{CurrentUser.name}"
|
||||||
|
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 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?
|
||||||
@@ -222,7 +227,7 @@ class Post < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def approve!
|
def approve!
|
||||||
raise ApprovalError.new("You have already approved this post previously") if approver_string == "approver:#{CurrentUser.name}"
|
raise ApprovalError.new("You have previously approved this post and cannot approve it again") if approver_string == "approver:#{CurrentUser.name}"
|
||||||
|
|
||||||
self.is_flagged = false
|
self.is_flagged = false
|
||||||
self.is_pending = false
|
self.is_pending = false
|
||||||
|
|||||||
@@ -4,7 +4,22 @@ class Unapproval < ActiveRecord::Base
|
|||||||
belongs_to :unapprover, :class_name => "User"
|
belongs_to :unapprover, :class_name => "User"
|
||||||
belongs_to :post
|
belongs_to :post
|
||||||
validates_presence_of :reason, :unapprover_id, :unapprover_ip_addr
|
validates_presence_of :reason, :unapprover_id, :unapprover_ip_addr
|
||||||
|
validate :validate_post_is_active
|
||||||
before_validation :initialize_unapprover, :on => :create
|
before_validation :initialize_unapprover, :on => :create
|
||||||
|
before_save :flag_post
|
||||||
|
|
||||||
|
def validate_post_is_active
|
||||||
|
if post.is_pending? || post.is_flagged? || post.is_removed?
|
||||||
|
errors[:post] << "is inactive"
|
||||||
|
false
|
||||||
|
else
|
||||||
|
true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def flag_post
|
||||||
|
post.update_attribute(:is_flagged, true)
|
||||||
|
end
|
||||||
|
|
||||||
def initialize_unapprover
|
def initialize_unapprover
|
||||||
self.unapprover_id = CurrentUser.id
|
self.unapprover_id = CurrentUser.id
|
||||||
|
|||||||
2
app/views/post_moderation/approval_error.js.erb
Normal file
2
app/views/post_moderation/approval_error.js.erb
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Danbooru.Utility.j_error(<%= @exception.message.to_json.html_safe %>);
|
||||||
|
$("img#approve-wait").hide();
|
||||||
4
app/views/post_moderation/approve.js.erb
Normal file
4
app/views/post_moderation/approve.js.erb
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
$("a#approve").hide();
|
||||||
|
$("a#disapprove").hide();
|
||||||
|
$("a#unapprove").show();
|
||||||
|
$("img#approve-wait").hide();
|
||||||
2
app/views/post_moderation/disapproval_error.js.erb
Normal file
2
app/views/post_moderation/disapproval_error.js.erb
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Danbooru.Utility.j_error("You have already disapproved this post");
|
||||||
|
$("img#disapprove-wait").hide();
|
||||||
4
app/views/post_moderation/disapprove.js
Normal file
4
app/views/post_moderation/disapprove.js
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
$("a#approve").hide();
|
||||||
|
$("a#disapprove").hide();
|
||||||
|
$("a#unapprove").hide();
|
||||||
|
$("img#disapprove-wait").hide();
|
||||||
@@ -1,16 +1,12 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<%= resize_image_links(post, CurrentUser.user) %>
|
<%= resize_image_links(post, CurrentUser.user) %>
|
||||||
<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" %> <%= wait_image("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" %> <%= wait_image("remove-from-favorites-wait") %></li>
|
||||||
<li><%= link_to "Translate", "#" %></li>
|
<li><%= link_to "Translate", "#" %></li>
|
||||||
<% if !post.is_flagged? %>
|
<li><%= link_to "Unapprove", new_unapproval_path(:post_id => post.id), :id => "unapprove" %></li>
|
||||||
<li><%= link_to "Unapprove", new_unapproval_path(:post_id => post.id), :id => "unapprove" %></li>
|
|
||||||
<% end %>
|
|
||||||
<% if CurrentUser.is_janitor? %>
|
<% if CurrentUser.is_janitor? %>
|
||||||
<% if post.is_pending? || post.is_flagged? %>
|
<li><%= link_to "Approve", "#", :id => "approve" %> <%= wait_image("approve-wait") %></li>
|
||||||
<li><%= link_to "Approve", "#", :id => "approve" %> <img src="/images/wait.gif" style="display: none;" id="approve-wait"></li>
|
<li><%= link_to "Disapprove", "#", :id => "disapprove" %> <%= wait_image("disapprove-wait") %></li>
|
||||||
<li><%= link_to "Disapprove", "#", :id => "disapprove" %> <img src="/images/wait.gif" style="display: none;" id="disapprove-wait"></li>
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if CurrentUser.is_moderator? %>
|
<% if CurrentUser.is_moderator? %>
|
||||||
<% if post.is_removed? %>
|
<% if post.is_removed? %>
|
||||||
|
|||||||
@@ -68,6 +68,7 @@
|
|||||||
<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? %>">
|
<meta name="post-is-unapprovable" content="<%= @post.is_unapprovable? %>">
|
||||||
|
<meta name="post-is-approvable" content="<%= @post.is_approvable? %>">
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= render :partial => "posts/partials/common/secondary_links" %>
|
<%= render :partial => "posts/partials/common/secondary_links" %>
|
||||||
|
|||||||
9
app/views/unapprovals/create.js.erb
Normal file
9
app/views/unapprovals/create.js.erb
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
var errors = <%= @unapproval.errors.full_messages.to_json.html_safe %>;
|
||||||
|
if (errors.length > 0) {
|
||||||
|
Danbooru.Utility.j_error(errors.join("; "));
|
||||||
|
} else {
|
||||||
|
Danbooru.Utility.j_alert("Unapproval", "Unapproval successful");
|
||||||
|
$("a#approve").show();
|
||||||
|
$("a#disapprove").show();
|
||||||
|
$("a#unapprove").hide();
|
||||||
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
<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>
|
<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| %>
|
<%= form_for(@unapproval, :remote => true, :format => :js) do |f| %>
|
||||||
|
<%= hidden_field_tag "unapproval[post_id]", @unapproval.post_id %>
|
||||||
<%= f.text_area :reason, :size => "40x5" %>
|
<%= f.text_area :reason, :size => "40x5" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -817,6 +817,18 @@ $(document).ready(function() {
|
|||||||
|
|
||||||
|
|
||||||
var Danbooru = {};
|
var Danbooru = {};
|
||||||
|
(function() {
|
||||||
|
Danbooru.Utility = {};
|
||||||
|
|
||||||
|
Danbooru.Utility.j_alert = function(title, msg) {
|
||||||
|
$('<div title="' + title + '"></div>').html(msg).dialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
Danbooru.Utility.j_error = function(msg) {
|
||||||
|
this.j_alert("Error", msg);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
// PostModeMenu = {
|
// PostModeMenu = {
|
||||||
// init: function() {
|
// init: function() {
|
||||||
// this.original_background_color = $(document.body).css("background-color")
|
// this.original_background_color = $(document.body).css("background-color")
|
||||||
@@ -1190,6 +1202,13 @@ $(document).ready(function() {
|
|||||||
|
|
||||||
Danbooru.Unapproval.initialize_all = function() {
|
Danbooru.Unapproval.initialize_all = function() {
|
||||||
this.initialize_unapprove();
|
this.initialize_unapprove();
|
||||||
|
this.hide_or_show_unapprove_link();
|
||||||
|
}
|
||||||
|
|
||||||
|
Danbooru.Unapproval.hide_or_show_unapprove_link = function() {
|
||||||
|
if ($("meta[name=post-is-unapprovable]").attr("content") != "true") {
|
||||||
|
$("a#unapprove").hide();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Danbooru.Unapproval.initialize_unapprove = function() {
|
Danbooru.Unapproval.initialize_unapprove = function() {
|
||||||
@@ -1200,6 +1219,7 @@ $(document).ready(function() {
|
|||||||
buttons: {
|
buttons: {
|
||||||
"Submit": function() {
|
"Submit": function() {
|
||||||
$("#unapprove-dialog form").submit();
|
$("#unapprove-dialog form").submit();
|
||||||
|
$(this).dialog("close");
|
||||||
},
|
},
|
||||||
"Cancel": function() {
|
"Cancel": function() {
|
||||||
$(this).dialog("close");
|
$(this).dialog("close");
|
||||||
@@ -1217,3 +1237,53 @@ $(document).ready(function() {
|
|||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
Danbooru.Unapproval.initialize_all();
|
Danbooru.Unapproval.initialize_all();
|
||||||
});
|
});
|
||||||
|
(function() {
|
||||||
|
Danbooru.PostModeration = {};
|
||||||
|
|
||||||
|
Danbooru.PostModeration.initialize_all = function() {
|
||||||
|
this.initialize_approve_link();
|
||||||
|
this.initialize_disapprove_link();
|
||||||
|
this.hide_or_show_approve_and_disapprove_links();
|
||||||
|
}
|
||||||
|
|
||||||
|
Danbooru.PostModeration.hide_or_show_approve_and_disapprove_links = function() {
|
||||||
|
if ($("meta[name=post-is-approvable]").attr("content") != "true") {
|
||||||
|
$("a#approve").hide();
|
||||||
|
$("a#disapprove").hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Danbooru.PostModeration.initialize_disapprove_link = function() {
|
||||||
|
$("a#disapprove").click(function() {
|
||||||
|
$.ajax({
|
||||||
|
url: "/post_moderation/disapprove.js",
|
||||||
|
type: "put",
|
||||||
|
data: {
|
||||||
|
post_id: $("meta[name=post-id]").attr("content")
|
||||||
|
},
|
||||||
|
beforeSend: function() {
|
||||||
|
$("img#disapprove-wait").show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
Danbooru.PostModeration.initialize_approve_link = function() {
|
||||||
|
$("a#approve").click(function() {
|
||||||
|
$.ajax({
|
||||||
|
url: "/post_moderation/approve.js",
|
||||||
|
type: "put",
|
||||||
|
data: {
|
||||||
|
post_id: $("meta[name=post-id]").attr("content")
|
||||||
|
},
|
||||||
|
beforeSend: function() {
|
||||||
|
$("img#approve-wait").show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
Danbooru.PostModeration.initialize_all();
|
||||||
|
});
|
||||||
|
|||||||
50
public/javascripts/src/app/post_moderation.js
Normal file
50
public/javascripts/src/app/post_moderation.js
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
(function() {
|
||||||
|
Danbooru.PostModeration = {};
|
||||||
|
|
||||||
|
Danbooru.PostModeration.initialize_all = function() {
|
||||||
|
this.initialize_approve_link();
|
||||||
|
this.initialize_disapprove_link();
|
||||||
|
this.hide_or_show_approve_and_disapprove_links();
|
||||||
|
}
|
||||||
|
|
||||||
|
Danbooru.PostModeration.hide_or_show_approve_and_disapprove_links = function() {
|
||||||
|
if ($("meta[name=post-is-approvable]").attr("content") != "true") {
|
||||||
|
$("a#approve").hide();
|
||||||
|
$("a#disapprove").hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Danbooru.PostModeration.initialize_disapprove_link = function() {
|
||||||
|
$("a#disapprove").click(function() {
|
||||||
|
$.ajax({
|
||||||
|
url: "/post_moderation/disapprove.js",
|
||||||
|
type: "put",
|
||||||
|
data: {
|
||||||
|
post_id: $("meta[name=post-id]").attr("content")
|
||||||
|
},
|
||||||
|
beforeSend: function() {
|
||||||
|
$("img#disapprove-wait").show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
Danbooru.PostModeration.initialize_approve_link = function() {
|
||||||
|
$("a#approve").click(function() {
|
||||||
|
$.ajax({
|
||||||
|
url: "/post_moderation/approve.js",
|
||||||
|
type: "put",
|
||||||
|
data: {
|
||||||
|
post_id: $("meta[name=post-id]").attr("content")
|
||||||
|
},
|
||||||
|
beforeSend: function() {
|
||||||
|
$("img#approve-wait").show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
Danbooru.PostModeration.initialize_all();
|
||||||
|
});
|
||||||
@@ -3,6 +3,13 @@
|
|||||||
|
|
||||||
Danbooru.Unapproval.initialize_all = function() {
|
Danbooru.Unapproval.initialize_all = function() {
|
||||||
this.initialize_unapprove();
|
this.initialize_unapprove();
|
||||||
|
this.hide_or_show_unapprove_link();
|
||||||
|
}
|
||||||
|
|
||||||
|
Danbooru.Unapproval.hide_or_show_unapprove_link = function() {
|
||||||
|
if ($("meta[name=post-is-unapprovable]").attr("content") != "true") {
|
||||||
|
$("a#unapprove").hide();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Danbooru.Unapproval.initialize_unapprove = function() {
|
Danbooru.Unapproval.initialize_unapprove = function() {
|
||||||
@@ -13,6 +20,7 @@
|
|||||||
buttons: {
|
buttons: {
|
||||||
"Submit": function() {
|
"Submit": function() {
|
||||||
$("#unapprove-dialog form").submit();
|
$("#unapprove-dialog form").submit();
|
||||||
|
$(this).dialog("close");
|
||||||
},
|
},
|
||||||
"Cancel": function() {
|
"Cancel": function() {
|
||||||
$(this).dialog("close");
|
$(this).dialog("close");
|
||||||
|
|||||||
12
public/javascripts/src/app/utility.js
Normal file
12
public/javascripts/src/app/utility.js
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
(function() {
|
||||||
|
Danbooru.Utility = {};
|
||||||
|
|
||||||
|
Danbooru.Utility.j_alert = function(title, msg) {
|
||||||
|
$('<div title="' + title + '"></div>').html(msg).dialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
Danbooru.Utility.j_error = function(msg) {
|
||||||
|
this.j_alert("Error", msg);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
@@ -8,9 +8,11 @@ cat public/javascripts/src/lib/jrails.min.js >> public/javascripts/compiled/defa
|
|||||||
cat public/javascripts/src/lib/rails.js >> public/javascripts/compiled/default.js
|
cat public/javascripts/src/lib/rails.js >> public/javascripts/compiled/default.js
|
||||||
cat public/javascripts/src/app/cookie.js >> public/javascripts/compiled/default.js
|
cat public/javascripts/src/app/cookie.js >> public/javascripts/compiled/default.js
|
||||||
cat public/javascripts/src/app/application.js >> public/javascripts/compiled/default.js
|
cat public/javascripts/src/app/application.js >> public/javascripts/compiled/default.js
|
||||||
|
cat public/javascripts/src/app/utility.js >> public/javascripts/compiled/default.js
|
||||||
cat public/javascripts/src/app/posts.js >> public/javascripts/compiled/default.js
|
cat public/javascripts/src/app/posts.js >> public/javascripts/compiled/default.js
|
||||||
cat public/javascripts/src/app/comments.js >> public/javascripts/compiled/default.js
|
cat public/javascripts/src/app/comments.js >> public/javascripts/compiled/default.js
|
||||||
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
|
cat public/javascripts/src/app/unapprovals.js >> public/javascripts/compiled/default.js
|
||||||
|
cat public/javascripts/src/app/post_moderation.js >> public/javascripts/compiled/default.js
|
||||||
|
|||||||
4
script/testing/reset_post_1.sh
Executable file
4
script/testing/reset_post_1.sh
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
psql -c "UPDATE posts SET is_flagged = false, is_pending = true, approver_string = '' WHERE id = 1" danbooru2
|
||||||
|
psql -c "DELETE FROM unapprovals" danbooru2
|
||||||
Reference in New Issue
Block a user