post replacements: add option to fix source after replacement.
Adds a "Final Source" field to the post replacement dialog. If specified, the post's source field will be changed to this value after replacement. This makes fixing the source back to the HTML page after replacement easier.
This commit is contained in:
@@ -23,6 +23,6 @@ class PostReplacementsController < ApplicationController
|
||||
|
||||
private
|
||||
def create_params
|
||||
params.require(:post_replacement).permit(:replacement_url)
|
||||
params.require(:post_replacement).permit(:replacement_url, :final_source)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,7 +4,8 @@ class PostReplacement < ApplicationRecord
|
||||
belongs_to :post
|
||||
belongs_to :creator, class_name: "User"
|
||||
before_validation :initialize_fields
|
||||
attr_accessible :replacement_url
|
||||
attr_accessible :replacement_url, :final_source
|
||||
attr_accessor :final_source
|
||||
|
||||
def initialize_fields
|
||||
self.creator = CurrentUser.user
|
||||
@@ -37,7 +38,7 @@ class PostReplacement < ApplicationRecord
|
||||
post.image_width = upload.image_width
|
||||
post.image_height = upload.image_height
|
||||
post.file_size = upload.file_size
|
||||
post.source = upload.source
|
||||
post.source = final_source.presence || upload.source
|
||||
post.tag_string = upload.tag_string
|
||||
rescale_notes
|
||||
update_ugoira_frame_data(upload)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<%= format_text(WikiPage.titled(Danbooru.config.replacement_notice_wiki_page).first.try(&:body), ragel: true) %>
|
||||
|
||||
<%= simple_form_for(post_replacement, url: post_replacements_path(post_id: post_replacement.post_id), method: :post) do |f| %>
|
||||
<%= f.input :replacement_url, label: "New Source", input_html: { value: "" } %>
|
||||
<%= f.input :replacement_url, label: "Replacement URL", hint: "The source URL to download the replacement from.", as: :string, input_html: { value: post_replacement.post.normalized_source } %>
|
||||
<%= f.input :final_source, label: "Final Source", hint: "If present, the source field will be changed to this after replacement.", as: :string, input_html: { value: post_replacement.post.source } %>
|
||||
<% end %>
|
||||
|
||||
@@ -190,5 +190,15 @@ class PostReplacementTest < ActiveSupport::TestCase
|
||||
assert(File.exists?(@post.large_file_path))
|
||||
end
|
||||
end
|
||||
|
||||
context "a post when given a final_source" do
|
||||
should "change the source to the final_source" do
|
||||
replacement_url = "http://data.tumblr.com/afed9f5b3c33c39dc8c967e262955de2/tumblr_orwwptNBCE1wsfqepo1_raw.png"
|
||||
final_source = "https://noizave.tumblr.com/post/162094447052"
|
||||
@post.replace!(replacement_url: replacement_url, final_source: final_source)
|
||||
|
||||
assert_equal(final_source, @post.source)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user