added model Comment.
comments can now be added on news. git-svn-id: http://redmine.rubyforge.org/svn/trunk@81 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -27,7 +27,23 @@ class NewsController < ApplicationController
|
||||
flash[:notice] = l(:notice_successful_update)
|
||||
redirect_to :action => 'show', :id => @news
|
||||
end
|
||||
end
|
||||
|
||||
def add_comment
|
||||
@comment = Comment.new(params[:comment])
|
||||
@comment.author = logged_in_user
|
||||
if @news.comments << @comment
|
||||
flash[:notice] = l(:label_comment_added)
|
||||
redirect_to :action => 'show', :id => @news
|
||||
else
|
||||
render :action => 'show'
|
||||
end
|
||||
end
|
||||
|
||||
def destroy_comment
|
||||
@news.comments.find(params[:comment_id]).destroy
|
||||
redirect_to :action => 'show', :id => @news
|
||||
end
|
||||
|
||||
def destroy
|
||||
@news.destroy
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
class Comment < ActiveRecord::Base
|
||||
belongs_to :commented, :polymorphic => true, :counter_cache => true
|
||||
belongs_to :author, :class_name => 'User', :foreign_key => 'author_id'
|
||||
|
||||
validates_presence_of :commented, :author, :comment
|
||||
end
|
||||
@@ -18,6 +18,7 @@
|
||||
class News < ActiveRecord::Base
|
||||
belongs_to :project
|
||||
belongs_to :author, :class_name => 'User', :foreign_key => 'author_id'
|
||||
has_many :comments, :as => :commented, :dependent => true, :order => "created_on"
|
||||
|
||||
validates_presence_of :title, :description
|
||||
|
||||
|
||||
@@ -13,4 +13,26 @@
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<%= link_to_if_authorized l(:button_edit), :controller => 'news', :action => 'edit', :id => @news %>
|
||||
<p><%= link_to_if_authorized l(:button_edit), :controller => 'news', :action => 'edit', :id => @news %></p>
|
||||
|
||||
<div id="comments" style="margin-bottom:16px;">
|
||||
<h3><%= l(:label_comment_plural) %></h3>
|
||||
<% @news.comments.each do |comment| %>
|
||||
<% next if comment.new_record? %>
|
||||
<h4><%= format_time(comment.created_on) %> - <%= comment.author.name %></h4>
|
||||
<div style="float:right;">
|
||||
<small><%= link_to_if_authorized l(:button_delete), {:controller => 'news', :action => 'destroy_comment', :id => @news, :comment_id => comment}, :confirm => l(:text_are_you_sure), :post => true %></small>
|
||||
</div>
|
||||
<%= simple_format(auto_link(h comment.comment))%>
|
||||
<% end if @news.comments_count > 0 %>
|
||||
</div>
|
||||
|
||||
<% if authorize_for 'news', 'add_comment' %>
|
||||
<h3><%= l(:label_comment_add) %></h3>
|
||||
<%= start_form_tag :action => 'add_comment', :id => @news %>
|
||||
<%= error_messages_for 'comment' %>
|
||||
<p><label for="comment_comment"><%= l(:field_comment) %></label><br />
|
||||
<%= text_area 'comment', 'comment', :cols => 60, :rows => 6 %></p>
|
||||
<%= submit_tag l(:button_add) %>
|
||||
<%= end_form_tag %>
|
||||
<% end %>
|
||||
@@ -6,7 +6,8 @@
|
||||
<% for news in @news %>
|
||||
<li><%= link_to news.title, :controller => 'news', :action => 'show', :id => news %><br />
|
||||
<% unless news.summary.empty? %><%= news.summary %><br /><% end %>
|
||||
<em><%= news.author.name %>, <%= format_time(news.created_on) %></em><br />
|
||||
<em><%= news.author.name %>, <%= format_time(news.created_on) %></em><br />
|
||||
<%= news.comments_count %> <%= lwr(:label_comment, news.comments_count).downcase %><br />
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
|
||||
Reference in New Issue
Block a user