Move post replacement create action to post replacements controller.

This commit is contained in:
evazion
2017-05-14 18:52:34 -05:00
parent cb09b6661d
commit 648cc9ecb7
9 changed files with 35 additions and 25 deletions

View File

@@ -1,7 +1,7 @@
module Moderator
module Post
class PostsController < ApplicationController
before_filter :approver_only, :only => [:delete, :undelete, :move_favorites, :replace, :ban, :unban, :confirm_delete, :confirm_move_favorites, :confirm_ban]
before_filter :approver_only, :only => [:delete, :undelete, :move_favorites, :ban, :unban, :confirm_delete, :confirm_move_favorites, :confirm_ban]
before_filter :admin_only, :only => [:expunge]
skip_before_filter :api_check
@@ -37,15 +37,6 @@ module Moderator
redirect_to(post_path(@post))
end
def replace
@post = ::Post.find(params[:id])
@post.replace!(params[:post][:source])
respond_with(@post) do |format|
format.html { redirect_to(@post) }
end
end
def expunge
@post = ::Post.find(params[:id])
@post.expunge!

View File

@@ -2,10 +2,27 @@ class PostReplacementsController < ApplicationController
respond_to :html, :xml, :json
before_filter :approver_only, except: [:index]
def new
@post = Post.find(params[:post_id])
end
def create
@post = Post.find(params[:post_id])
@post_replacement = @post.replace!(create_params)
flash[:notice] = "Post replaced"
respond_with(@post_replacement, location: @post)
end
def index
params[:search][:post_id] = params.delete(:post_id) if params.has_key?(:post_id)
@post_replacements = PostReplacement.search(params[:search]).paginate(params[:page], limit: params[:limit])
respond_with(@post_replacements)
end
private
def create_params
params.require(:post_replacement).permit(:replacement_url)
end
end

View File

@@ -1429,9 +1429,12 @@ class Post < ActiveRecord::Base
ModAction.log("undeleted post ##{id}")
end
def replace!(url)
replacement = replacements.create(replacement_url: url)
replacement.process!
def replace!(params)
transaction do
replacement = replacements.create(params)
replacement.process!
replacement
end
end
end

View File

@@ -1,5 +0,0 @@
<div id="c-moderator-post-posts">
<div id="a-replace">
<%= render "moderator/post/posts/replace" %>
</div>
</div>

View File

@@ -1,4 +1,4 @@
<%= simple_form_for(@post, url: replace_moderator_post_post_path, method: :post) do |f| %>
<%= simple_form_for(post_replacement, url: post_replacements_path(post_id: post_replacement.post_id), method: :post) do |f| %>
<h1>Replace Image</h1>
<p>
@@ -7,5 +7,5 @@
lower-quality images, such as image samples, to higher-quality versions.
</p>
<%= f.input :source, label: "New Source", input_html: { value: "" } %>
<%= f.input :replacement_url, label: "New Source", input_html: { value: "" } %>
<% end %>

View File

@@ -0,0 +1,5 @@
<div id="c-post-replacements">
<div id="a-new">
<%= render "new", post_replacement: @post.replacements.new %>
</div>
</div>

View File

@@ -55,7 +55,7 @@
<li><%= link_to "Expunge", expunge_moderator_post_post_path(:post_id => post.id), :remote => true, :method => :post, :id => "expunge", :data => {:confirm => "This will permanently delete this post (meaning the file will be deleted). Are you sure you want to delete this post?"} %></li>
<% end %>
<li><%= link_to "Replace Image", replace_moderator_post_post_path(:post_id => post.id), :id => "replace-image" %></li>
<li><%= link_to "Replace Image", new_post_replacement_path(:post_id => post.id), :id => "replace-image" %></li>
<li id="mobile-version-list"><%= link_to "Mobile version", mobile_post_path(post) %></li>
<% end %>

View File

@@ -122,7 +122,7 @@
</div>
<div id="replace-image-dialog" class="prose" title="Replace image" style="display: none;">
<%= render "moderator/post/posts/replace" %>
<%= render "post_replacements/new", post_replacement: @post.replacements.new %>
</div>
<div id="add-to-pool-dialog" title="Add to pool" style="display: none;">

View File

@@ -30,7 +30,6 @@ Rails.application.routes.draw do
member do
get :confirm_delete
post :expunge
post :replace
post :delete
post :undelete
get :confirm_move_favorites
@@ -199,7 +198,7 @@ Rails.application.routes.draw do
end
resources :posts do
resources :events, :only => [:index], :controller => "post_events"
resources :replacements, :only => [:index], :controller => "post_replacements"
resources :replacements, :only => [:index, :new, :create], :controller => "post_replacements"
resource :artist_commentary, :only => [:index, :show] do
collection { put :create_or_update }
member { put :revert }
@@ -218,7 +217,7 @@ Rails.application.routes.draw do
end
resources :post_appeals
resources :post_flags
resources :post_replacements, :only => [:index]
resources :post_replacements, :only => [:index, :new, :create]
resources :post_versions, :only => [:index, :search] do
member do
put :undo