| Class | Admin::CommentsController |
| In: |
app/controllers/admin/comments_controller.rb
|
| Parent: | Sadmin::BaseController |
Controlador para la administración de comentarios
Muestra los comentarios de un contenido concreto
# File app/controllers/admin/comments_controller.rb, line 112
112: def comments_on_item
113: @item = params[:type].constantize.find(params[:id])
114: if @department_tag_id && !@item.tag_ids.include?(@department_tag_id)
115: flash[:notice] = t('no_tienes_permiso')
116: redirect_to admin_comments_path
117: end
118:
119: @additional_conditions = nil if @additional_conditions[0].blank?
120:
121: if @department_tag_id.nil?
122: @comments = @item.comments.paginate :per_page => 20, :page => params[:page],
123: :conditions => @additional_conditions ,
124: :joins => "INNER JOIN users ON (users.id = comments.user_id) ",
125: :order => "created_at DESC"
126: else
127: @additional_conditions[0] << " AND commentable_id=#{@item.id}"
128: @comments = @item.comments.paginate_by_sql(query_for_department(@department_tag_id, @additional_conditions),
129: :page => params[:page], :per_page => 20, :order => "created_at DESC")
130: end
131:
132: @title = "Comentarios en #{@item.class.human_name} \"#{@item.title_es}\""
133: rewrite_current_tab
134: end
Eliminación de un comentario
# File app/controllers/admin/comments_controller.rb, line 82
82: def destroy
83: if @comment.destroy
84: respond_to do |format|
85: format.html {
86: flash[:notice] = 'El comentario ha sido eliminado'
87: redirect_to admin_comments_path
88: }
89: format.js {
90: render :update do |page|
91: page.visual_effect :fade, "comment_#{@comment.id}"
92: end
93: }
94: end
95: else
96: respond_to do |format|
97: format.html {
98: flash[:error] = 'El comentario no ha podido ser eliminado'
99: redirect_to admin_comments_path
100: }
101: format.js {
102: render :update do |page|
103: page.alert "El comentario no se ha borrado"
104: end
105: }
106: end
107:
108: end
109: end
Rechacar un comentario
# File app/controllers/admin/comments_controller.rb, line 34
34: def do_reject
35: if @comment.update_attributes(:status => "rechazado")
36: if params[:reject_and_mail]
37: email = Notifier.create_rejected_comment(@comment)
38:
39: begin
40: logger.info("Mandando email sobre comentario rechazado a #{@comment.user.email}")
41: Notifier.deliver(email)
42: flash[:notice] = "El email ha sido enviado"
43: rescue Net::SMTPServerBusy, Net::SMTPSyntaxError => err_type
44: logger.info("Error al mandar el email: " + err_type)
45: flash[:error] = t('session.Error_servidor_correo')
46: end
47: end
48: redirect_to(params[:return_to].present? ? params[:return_to] : admin_comments_path)
49: else
50: render :action => :reject
51: end
52: end
Modificación de comentarios
# File app/controllers/admin/comments_controller.rb, line 26
26: def edit
27: end
Listado de comentarios
# File app/controllers/admin/comments_controller.rb, line 11
11: def index
12: @title ||= 'Todos los comentarios'
13:
14: if @department_tag_id.nil?
15: @comments = Comment.paginate :per_page => 20,
16: :conditions => @additional_conditions,
17: :joins => "INNER JOIN users ON (users.id = comments.user_id) ",
18: :page => params[:page], :order => "created_at DESC"
19: else
20: @comments = Comment.paginate_by_sql(query_for_department(@department_tag_id, @additional_conditions),
21: :page => params[:page], :per_page => 20, :order => "created_at DESC")
22: end
23: end
Marcar un comentario como no-spam
# File app/controllers/admin/comments_controller.rb, line 76
76: def mark_as_ham
77: @comment.mark_as_ham!
78: render_updated_comment
79: end
Marcar un comentario como spam
# File app/controllers/admin/comments_controller.rb, line 70
70: def mark_as_spam
71: @comment.mark_as_spam!
72: render_updated_comment
73: end
Pantalla de confirmación de rechazo un comentario
# File app/controllers/admin/comments_controller.rb, line 30
30: def reject
31: end
Actualización de un comentario
# File app/controllers/admin/comments_controller.rb, line 55
55: def update
56: if @comment.update_attributes(params[:comment])
57: redirect_to(params[:return_to].present? ? params[:return_to] : admin_comments_path)
58: else
59: render :action => :edit
60: end
61: end
Actualiza el campo de si un contenido admite comentarios o no
# File app/controllers/admin/comments_controller.rb, line 137
137: def update_comments_status
138: @item = params[:type].constantize.find(params[:item_id], :readonly => false)
139: if @department_tag_id && !@item.tag_ids.include?(@department_tag_id)
140: render :update do |page|
141: flash[:notice] = t('no_tienes_permiso')
142: page.redirect_to comments_on_item_admin_comment_path(@item, :type => params[:type])
143: end
144: else
145: if @item.update_attribute(:comments_closed, params[:comments_closed])
146: render :update do |page|
147: page.replace :comments_status, :partial => 'comments_status'
148: end
149: end
150: end
151: end