Merge branch 'master' of github.com:r888888888/danbooru

This commit is contained in:
r888888888
2013-06-10 16:33:34 -07:00
7 changed files with 44 additions and 4 deletions

View File

@@ -243,7 +243,7 @@ div#c-posts {
margin-top: 0.5em;
}
#pool-nav, #search-seq-nav, #nav-help {
#pool-nav, #search-seq-nav {
li {
position: relative;
text-align: center;

View File

@@ -13,4 +13,12 @@ class PostVersionsController < ApplicationController
def search
end
def undo
@post_version = PostVersion.find(params[:id])
@post_version.undo!
respond_with(@post_version) do |format|
format.js
end
end
end

View File

@@ -14,9 +14,7 @@ class PostsController < ApplicationController
respond_with(@posts) do |format|
format.atom
format.xml do
render :xml => @posts.to_xml(:root => "posts") {|builder|
builder.tag!("total-count", @posts.total_count)
}
render :xml => @posts.to_xml(:root => "posts")
end
end
end

View File

@@ -112,4 +112,31 @@ class PostVersion < ActiveRecord::Base
def truncated_source
source.gsub(/^http:\/\//, "").sub(/\/.+/, "")
end
def undo
changes = diff(previous)
added = changes[:added_tags] - changes[:obsolete_added_tags]
removed = changes[:removed_tags] - changes[:obsolete_removed_tags]
added.each do |tag|
if tag =~ /^source:/
post.source = ""
else
escaped_tag = Regexp.escape(tag)
post.tag_string = post.tag_string.sub(/(?:\A| )#{escaped_tag}(?:\Z| )/, " ").strip
end
end
removed.each do |tag|
if tag =~ /^source:(.+)$/
post.source = $1
else
post.tag_string = "#{post.tag_string} #{tag}".strip
end
end
end
def undo!
undo
post.save!
end
end

View File

@@ -36,6 +36,9 @@
<td><%= post_version_diff(post_version) %></td>
<% if CurrentUser.is_member? %>
<td>
<% if post_version.id != post_version.post.versions.first.id %>
<%= link_to "Undo", undo_post_version_path(post_version), :method => :put, :remote => true %> |
<% end %>
<%= link_to "Revert to", revert_post_path(post_version.post_id, :version_id => post_version.id), :method => :put, :remote => true %>
</td>
<% end %>

View File

@@ -0,0 +1 @@
location.reload();

View File

@@ -159,6 +159,9 @@ Danbooru::Application.routes.draw do
resources :post_appeals
resources :post_flags
resources :post_versions, :only => [:index, :search] do
member do
put :undo
end
collection do
get :search
end