Merge branch 'master' into feat-public-favgroups
This commit is contained in:
@@ -124,6 +124,7 @@
|
||||
var query = Danbooru.RelatedTag.recent_search.query;
|
||||
var related_tags = Danbooru.RelatedTag.recent_search.tags;
|
||||
var wiki_page_tags = Danbooru.RelatedTag.recent_search.wiki_page_tags;
|
||||
var other_wikis = Danbooru.RelatedTag.recent_search.other_wikis;
|
||||
var $dest = $("#related-tags");
|
||||
$dest.empty();
|
||||
|
||||
@@ -134,6 +135,9 @@
|
||||
if (wiki_page_tags.length) {
|
||||
$dest.append(Danbooru.RelatedTag.build_html("wiki:" + query, wiki_page_tags, "wiki"));
|
||||
}
|
||||
$.each(other_wikis, function(i,wiki) {
|
||||
$dest.append(Danbooru.RelatedTag.build_html("wiki:" + wiki.title, wiki.wiki_page_tags, "otherwiki" + i.toString()));
|
||||
});
|
||||
if (Danbooru.RelatedTag.recent_artists) {
|
||||
var tags = [];
|
||||
if (Danbooru.RelatedTag.recent_artists.length === 0) {
|
||||
|
||||
@@ -14,6 +14,13 @@ class PostReplacementsController < ApplicationController
|
||||
respond_with(@post_replacement, location: @post)
|
||||
end
|
||||
|
||||
def update
|
||||
@post_replacement = PostReplacement.find(params[:id])
|
||||
@post_replacement.update(update_params)
|
||||
|
||||
respond_with(@post_replacement)
|
||||
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])
|
||||
@@ -25,4 +32,12 @@ private
|
||||
def create_params
|
||||
params.require(:post_replacement).permit(:replacement_url, :replacement_file, :final_source, :tags)
|
||||
end
|
||||
|
||||
def update_params
|
||||
params.require(:post_replacement).permit(
|
||||
:file_ext_was, :file_size_was, :image_width_was, :image_height_was, :md5_was,
|
||||
:file_ext, :file_size, :image_width, :image_height, :md5,
|
||||
:original_url, :replacement_url
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -26,12 +26,26 @@ class RelatedTagQuery
|
||||
results
|
||||
end
|
||||
|
||||
def other_wiki_category_tags
|
||||
if Tag.category_for(query) != Tag.categories.copyright
|
||||
return []
|
||||
end
|
||||
listtags = (wiki_page.try(:tags) || []).select {|name| name =~ /^list_of_/i }
|
||||
results = listtags.map do |name|
|
||||
listlinks = WikiPage.titled(name).first.try(:tags) || []
|
||||
if listlinks.length > 0
|
||||
{"title" => name, "wiki_page_tags" => map_with_category_data(listlinks)}
|
||||
end
|
||||
end
|
||||
results.reject {|list| list.nil?}
|
||||
end
|
||||
|
||||
def tags_for_html
|
||||
map_with_category_data(tags)
|
||||
end
|
||||
|
||||
def to_json
|
||||
{:query => query, :category => category, :tags => map_with_category_data(tags), :wiki_page_tags => map_with_category_data(wiki_page_tags)}.to_json
|
||||
{:query => query, :category => category, :tags => map_with_category_data(tags), :wiki_page_tags => map_with_category_data(wiki_page_tags), :other_wikis => other_wiki_category_tags}.to_json
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
@@ -3,13 +3,19 @@ class PostReplacement < ApplicationRecord
|
||||
|
||||
belongs_to :post
|
||||
belongs_to :creator, class_name: "User"
|
||||
before_validation :initialize_fields
|
||||
before_validation :initialize_fields, on: :create
|
||||
attr_accessor :replacement_file, :final_source, :tags
|
||||
|
||||
def initialize_fields
|
||||
self.creator = CurrentUser.user
|
||||
self.original_url = post.source
|
||||
self.tags = post.tag_string + " " + self.tags.to_s
|
||||
|
||||
self.file_ext_was = post.file_ext
|
||||
self.file_size_was = post.file_size
|
||||
self.image_width_was = post.image_width
|
||||
self.image_height_was = post.image_height
|
||||
self.md5_was = post.md5
|
||||
end
|
||||
|
||||
def undo!
|
||||
@@ -32,9 +38,9 @@ class PostReplacement < ApplicationRecord
|
||||
md5_changed = (upload.md5 != post.md5)
|
||||
|
||||
if replacement_file.present?
|
||||
update(replacement_url: "file://#{replacement_file.original_filename}")
|
||||
self.replacement_url = "file://#{replacement_file.original_filename}"
|
||||
else
|
||||
update(replacement_url: upload.downloaded_source)
|
||||
self.replacement_url = upload.downloaded_source
|
||||
end
|
||||
|
||||
# queue the deletion *before* updating the post so that we use the old
|
||||
@@ -44,6 +50,12 @@ class PostReplacement < ApplicationRecord
|
||||
Post.delay(queue: "default", run_at: Time.now + DELETION_GRACE_PERIOD).delete_files(post.id, post.file_path, post.large_file_path, post.preview_file_path)
|
||||
end
|
||||
|
||||
self.file_ext = upload.file_ext
|
||||
self.file_size = upload.file_size
|
||||
self.image_height = upload.image_height
|
||||
self.image_width = upload.image_width
|
||||
self.md5 = upload.md5
|
||||
|
||||
post.md5 = upload.md5
|
||||
post.file_ext = upload.file_ext
|
||||
post.image_width = upload.image_width
|
||||
@@ -51,6 +63,7 @@ class PostReplacement < ApplicationRecord
|
||||
post.file_size = upload.file_size
|
||||
post.source = final_source.presence || upload.source
|
||||
post.tag_string = upload.tag_string
|
||||
|
||||
rescale_notes
|
||||
update_ugoira_frame_data(upload)
|
||||
|
||||
@@ -60,6 +73,7 @@ class PostReplacement < ApplicationRecord
|
||||
post.queue_backup
|
||||
end
|
||||
|
||||
save!
|
||||
post.save!
|
||||
end
|
||||
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
<tr>
|
||||
<th width="1%">Post</th>
|
||||
<th>Source</th>
|
||||
<th>MD5</th>
|
||||
<th>Size</th>
|
||||
<th>Replacer</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -36,6 +38,37 @@
|
||||
</dd>
|
||||
</dl>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<% if post_replacement.md5_was.present? && post_replacement.md5.present? %>
|
||||
<dl>
|
||||
<dt>Original MD5</dt>
|
||||
<dd><%= post_replacement.md5_was %></dd>
|
||||
|
||||
<dt>Replacement MD5</dt>
|
||||
<dd><%= post_replacement.md5 %></dd>
|
||||
</dl>
|
||||
<% end %>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<% if %i[image_width_was image_height_was file_size_was file_ext_was image_width image_height file_size file_ext].all? { |k| post_replacement[k].present? } %>
|
||||
<dl>
|
||||
<dt>Original Size</dt>
|
||||
<dd>
|
||||
<%= post_replacement.image_width_was %>x<%= post_replacement.image_height_was %>
|
||||
(<%= post_replacement.file_size_was.to_s(:human_size, precision: 4) %>, <%= post_replacement.file_ext_was %>)
|
||||
</dd>
|
||||
|
||||
<dt>Replacement Size</dt>
|
||||
<dd>
|
||||
<%= post_replacement.image_width %>x<%= post_replacement.image_height %>
|
||||
(<%= post_replacement.file_size.to_s(:human_size, precision: 4) %>, <%= post_replacement.file_ext %>)
|
||||
</dd>
|
||||
</dl>
|
||||
<% end %>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<%= compact_time post_replacement.created_at %>
|
||||
<br> by <%= link_to_user post_replacement.creator %>
|
||||
|
||||
Reference in New Issue
Block a user