Revision: 70805 http://trac.macports.org/changeset/70805 Author: jrozner@macports.org Date: 2010-08-21 15:40:47 -0700 (Sat, 21 Aug 2010) Log Message: ----------- Fixed redirect for comments and cache expiring Modified Paths: -------------- branches/gsoc10-mpwa/mpwa/app/controllers/categories_controller.rb branches/gsoc10-mpwa/mpwa/app/controllers/comments_controller.rb branches/gsoc10-mpwa/mpwa/app/controllers/ports_controller.rb branches/gsoc10-mpwa/mpwa/app/sweepers/category_sweeper.rb branches/gsoc10-mpwa/mpwa/app/sweepers/port_sweeper.rb branches/gsoc10-mpwa/mpwa/app/sweepers/ticket_sweeper.rb branches/gsoc10-mpwa/mpwa/app/views/ports/show.html.erb branches/gsoc10-mpwa/mpwa/config/routes.rb Added Paths: ----------- branches/gsoc10-mpwa/mpwa/app/sweepers/comment_sweeper.rb Modified: branches/gsoc10-mpwa/mpwa/app/controllers/categories_controller.rb =================================================================== --- branches/gsoc10-mpwa/mpwa/app/controllers/categories_controller.rb 2010-08-21 22:32:44 UTC (rev 70804) +++ branches/gsoc10-mpwa/mpwa/app/controllers/categories_controller.rb 2010-08-21 22:40:47 UTC (rev 70805) @@ -1,5 +1,6 @@ class CategoriesController < ApplicationController caches_page :index + cache_sweeper :category_sweeper, :only => [:create, :update, :destroy] def index @categories = Category.all(:order => 'name ASC') Modified: branches/gsoc10-mpwa/mpwa/app/controllers/comments_controller.rb =================================================================== --- branches/gsoc10-mpwa/mpwa/app/controllers/comments_controller.rb 2010-08-21 22:32:44 UTC (rev 70804) +++ branches/gsoc10-mpwa/mpwa/app/controllers/comments_controller.rb 2010-08-21 22:40:47 UTC (rev 70805) @@ -1,7 +1,5 @@ class CommentsController < ApplicationController - def edit - @comment = Port.find(params[:port_id]).comments.find(params[:id]) - end + cache_sweeper :comment_sweeper, :only => [:create] def create @comment = Port.find(params[:port_id]).comments.build(params[:comment]) @@ -9,27 +7,15 @@ respond_to do |format| if verify_recaptcha if @comment.save - format.html { redirect_to @comment.port } + format.html { redirect_to category_port_path(@comment.port.category, @comment.port) } end else flash[:error] = "There was an error with the recaptcha code below. Please re-enter the code and click submit." - format.html { redirect_to @comment.port } + format.html { redirect_to category_port_path(@comment.port.category, @comment.port) } end end end - def update - @comment = Port.find(params[:port_id]).comments.find(params[:id]) - - respond_to do |format| - if @comment.update_attributes(params[:comment]) - format.html { redirect_to(@comment.port, :notice => 'Comment was successfully updated.') } - else - format.html { render :action => "edit" } - end - end - end - def destroy @comment = Port.find(params[:port_id]).comments.find(params[:id]) @comment.destroy Modified: branches/gsoc10-mpwa/mpwa/app/controllers/ports_controller.rb =================================================================== --- branches/gsoc10-mpwa/mpwa/app/controllers/ports_controller.rb 2010-08-21 22:32:44 UTC (rev 70804) +++ branches/gsoc10-mpwa/mpwa/app/controllers/ports_controller.rb 2010-08-21 22:40:47 UTC (rev 70805) @@ -1,5 +1,6 @@ class PortsController < ApplicationController caches_page :index, :show + cache_sweeper :port_sweeper, :only => [:create, :update, :destroy] def index unless params[:category_id].nil? Modified: branches/gsoc10-mpwa/mpwa/app/sweepers/category_sweeper.rb =================================================================== --- branches/gsoc10-mpwa/mpwa/app/sweepers/category_sweeper.rb 2010-08-21 22:32:44 UTC (rev 70804) +++ branches/gsoc10-mpwa/mpwa/app/sweepers/category_sweeper.rb 2010-08-21 22:40:47 UTC (rev 70805) @@ -15,6 +15,7 @@ private def expire_cache_for(category) - expire_page :action => :index + expire_page categories_path + expire_page category_path(category) end end \ No newline at end of file Added: branches/gsoc10-mpwa/mpwa/app/sweepers/comment_sweeper.rb =================================================================== --- branches/gsoc10-mpwa/mpwa/app/sweepers/comment_sweeper.rb (rev 0) +++ branches/gsoc10-mpwa/mpwa/app/sweepers/comment_sweeper.rb 2010-08-21 22:40:47 UTC (rev 70805) @@ -0,0 +1,12 @@ +class CommentSweeper < ActionController::Caching::Sweeper + observe Comment + + def after_create(comment) + expire_cache_for comment + end + +private + def expire_cache_for(comment) + expire_page category_port_path(comment.port.category, comment.port) + end +end \ No newline at end of file Modified: branches/gsoc10-mpwa/mpwa/app/sweepers/port_sweeper.rb =================================================================== --- branches/gsoc10-mpwa/mpwa/app/sweepers/port_sweeper.rb 2010-08-21 22:32:44 UTC (rev 70804) +++ branches/gsoc10-mpwa/mpwa/app/sweepers/port_sweeper.rb 2010-08-21 22:40:47 UTC (rev 70805) @@ -15,7 +15,7 @@ private def expire_cache_for(port) - expire_page :action => :index - expire_page :action => :show + expire_page category_ports_path(port.category) + expire_page category_port_path(port.category, port) end end \ No newline at end of file Modified: branches/gsoc10-mpwa/mpwa/app/sweepers/ticket_sweeper.rb =================================================================== --- branches/gsoc10-mpwa/mpwa/app/sweepers/ticket_sweeper.rb 2010-08-21 22:32:44 UTC (rev 70804) +++ branches/gsoc10-mpwa/mpwa/app/sweepers/ticket_sweeper.rb 2010-08-21 22:40:47 UTC (rev 70805) @@ -2,20 +2,19 @@ observe Ticket def after_create(ticket) - expire_cache_for ticket.port + expire_cache_for ticket end def after_update(ticket) - expire_cache_for ticket.port + expire_cache_for ticket end def after_destroy(ticket) - expire_cache_for ticket.port + expire_cache_for ticket end private def expire_cache_for(ticket) - expire_page :controller => :port, :action => :index - expire_page :controller => :port, :action => :show + expire_page category_port_path(ticket.port.category, ticket.port) end end \ No newline at end of file Modified: branches/gsoc10-mpwa/mpwa/app/views/ports/show.html.erb =================================================================== --- branches/gsoc10-mpwa/mpwa/app/views/ports/show.html.erb 2010-08-21 22:32:44 UTC (rev 70804) +++ branches/gsoc10-mpwa/mpwa/app/views/ports/show.html.erb 2010-08-21 22:40:47 UTC (rev 70805) @@ -43,21 +43,6 @@ <strong>Portfile:</strong> <%= link_to "#{@port.path}/Portfile", "#{$svn_url}/trunk/dports/#{@port.path}/Portfile" %> </p> - <% form_for([@port.category, @port, @comment]) do |f| %> - <%= f.error_messages %> - - <p> - <%= f.label :body, "<strong>Comment</strong>" %><br /> - <%= f.text_area :body, {:rows => 5, :cols => 80} %> - </p> - <p> - <%= recaptcha_tags :display => {:theme => 'clean'} %> - </p> - <p> - <%= f.submit 'Create' %> - </p> - <% end %> - <div> <h3>Open Tickets</h3> <ul> @@ -67,8 +52,26 @@ </ul> </div> - <% @port.comments.each do |comment| %> - <div><%= h comment.body %></div> - <% end %> + <div> + <h3>Comments</h3> + <% form_for([@port.category, @port, @comment]) do |f| %> + <%= f.error_messages %> -</div> + <p> + <%= f.label :body, "<strong>Comment</strong>" %><br /> + <%= f.text_area :body, {:rows => 5, :cols => 80} %> + </p> + <p> + <%= recaptcha_tags :display => {:theme => 'clean'} %> + </p> + <p> + <%= f.submit 'Create' %> + </p> + <% end %> + + <% @port.comments.each do |comment| %> + <div><%= h comment.body %></div> + <% end %> + </div> + +</div> \ No newline at end of file Modified: branches/gsoc10-mpwa/mpwa/config/routes.rb =================================================================== --- branches/gsoc10-mpwa/mpwa/config/routes.rb 2010-08-21 22:32:44 UTC (rev 70804) +++ branches/gsoc10-mpwa/mpwa/config/routes.rb 2010-08-21 22:40:47 UTC (rev 70805) @@ -1,7 +1,7 @@ ActionController::Routing::Routes.draw do |map| map.resources :categories, :only => [:index] do |category| category.resources :ports, :only => [:index, :show] do |port| - port.resources :comments, :except => [:index, :show, :new] + port.resources :comments, :only => [:new, :create] end category.connect '/ports/page/:page', :controller => :ports, :action => :index, :page => :page end
participants (1)
-
jrozner@macports.org