This commit is contained in:
r888888888
2014-03-18 11:21:10 -07:00
parent 97dcfa3d2a
commit de34d21f76
6 changed files with 56 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
class ForumTopicsController < ApplicationController
respond_to :html, :xml, :json
before_filter :member_only, :except => [:index, :show]
before_filter :janitor_only, :only => [:new_merge, :create_merge]
before_filter :normalize_search, :only => :index
def new
@@ -68,6 +69,17 @@ class ForumTopicsController < ApplicationController
redirect_to forum_topics_path, :notice => "All topics marked as read"
end
def new_merge
@forum_topic = ForumTopic.find(params[:id])
end
def create_merge
@forum_topic = ForumTopic.find(params[:id])
@merged_topic = ForumTopic.find(params[:merged_id])
@forum_topic.merge(@merged_topic)
redirect_to forum_topic_path(@forum_topic)
end
private
def normalize_search
if params[:title_matches]

View File

@@ -130,4 +130,9 @@ class ForumTopic < ActiveRecord::Base
end
result
end
def merge(topic)
ForumPost.update_all({:topic_id => id}, :id => topic.posts.map(&:id))
update_attribute(:is_deleted, true)
end
end

View File

@@ -31,6 +31,7 @@
<% else %>
<li><%= link_to "Sticky", forum_topic_path(@forum_topic, :forum_topic => {:is_sticky => true}), :method => :put, :confirm => "Are you sure you want to sticky this forum topic?" %></li>
<% end %>
<li><%= link_to "Merge", new_merge_forum_topic_path(@forum_topic) %></li>
<% end %>
<% end %>
<% end %>

View File

@@ -0,0 +1,23 @@
<div id="c-forum-topics">
<div id="a-merge">
<h1>Merge Forum Topic</h1>
<p>Merge <strong><%= @forum_topic.title %></strong> into:</p>
<%= form_tag(create_merge_forum_topic_path(@forum_topic)) do %>
<div>
<label>
Forum Topic ID:
<%= text_field_tag :merged_id %>
</label>
</div>
<%= submit_tag "Merge" %>
<% end %>
</div>
</div>
<%= render "secondary_links" %>
<% content_for(:page_title) do %>
Merge Forum Topic - <%= Danbooru.config.app_name %>
<% end %>