Changeset 1242

Show
Ignore:
Timestamp:
11/12/06 16:31:02 (2 years ago)
Author:
james
Message:

sortable order screen

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • peasantonline/app/controllers/admin_controller.rb

    r1231 r1242  
    22class AdminController < ApplicationController 
    33  before_filter :authorize   
     4  include AjaxScaffold::Controller 
     5   
     6  after_filter :clear_flashes 
     7  before_filter :update_params_filter 
    48 
    59  def index 
    610  end 
     11   
     12  def update_params_filter 
     13    update_params :default_scaffold_id => "order", :default_sort => nil, :default_sort_direction => "asc" 
     14  end 
     15   
    716 
    817################ 
     
    1625    @designers = Designer.find(:all, :order => "name") 
    1726    @categories = Category.find(:all, :order => "name") 
     27  end 
     28   
     29  def component_order   
     30    @show_wrapper = true if @show_wrapper.nil? 
     31    @sort_sql = Order.scaffold_columns_hash[current_sort(params)].sort_sql rescue nil 
     32    @sort_by = @sort_sql.nil? ? "#{Order.table_name}.#{Order.primary_key} asc" : @sort_sql  + " " + current_sort_direction(params) 
     33    @paginator, @orders = paginate(:orders, :order => @sort_by, :per_page => default_per_page) 
     34     
     35    render :action => "component_order", :layout => false 
     36  end 
     37  def component_update_order 
     38    @show_wrapper = false # don't show the outer wrapper elements if we are just updating an existing scaffold  
     39    if request.xhr? 
     40      # If this is an AJAX request then we just want to delegate to the component to rerender itself 
     41      component_order 
     42    else 
     43      # If this is from a client without javascript we want to update the session parameters and then delegate 
     44      # back to whatever page is displaying the scaffold, which will then rerender all scaffolds with these update parameters 
     45      return_to_main 
     46    end 
    1847  end 
    1948 
  • peasantonline/app/helpers/admin_helper.rb

    r1233 r1242  
    11module AdminHelper 
     2 
     3include AjaxScaffold::Helper 
     4   
     5  def order_num_columns 
     6    order_scaffold_columns.length + 1  
     7  end 
     8   
     9  def order_scaffold_columns 
     10    Order.scaffold_columns 
     11  end 
    212 
    313  def getSizeClassValues(size_class)  
  • peasantonline/app/models/order.rb

    r1133 r1242  
    99                end  
    1010        end  
     11         
     12         @scaffold_columns = [  
     13        AjaxScaffold::ScaffoldColumn.new(self, { :name => "last_name", :label => "Name"}), 
     14        AjaxScaffold::ScaffoldColumn.new(self, { :name => "email", :label => "Email"}), 
     15        AjaxScaffold::ScaffoldColumn.new(self, { :name => "status", :label => "Status"}), 
     16        AjaxScaffold::ScaffoldColumn.new(self, { :name => "items", :label => "# of Items", :sortable => false}), 
     17        AjaxScaffold::ScaffoldColumn.new(self, { :name => "total", :label => "Order Total", :sortable =>  false}) 
     18 
     19      ] 
    1120end  
    1221 
  • peasantonline/app/views/admin/list_orders.rhtml

    r1233 r1242  
    1 <h1>Listing orders</h1> 
    2  
    3 <table> 
    4   <tr> 
    5     <th>Customer Name</th> 
    6         <th>Address</th> 
    7         <th>City, State Zip</th> 
    8         <th>Country</th> 
    9         <th>Order Total</th> 
    10         <th>Order Status</th> 
    11         <th>Comments</th> 
    12         <th colspan="3"></th> 
    13   </tr> 
    14    
    15 <% for order in @orders %> 
    16   <tr> 
    17     <td><%= order.first_name %> <%= order.last_name %></td> 
    18         <td><%= order.address %></td> 
    19         <td><%= order.city %>, <%= order.state %> <%= order.zip %></td> 
    20         <td><%= order.country %></td> 
    21         <td><%=  
    22         sum = 0  
    23         order.line_items.each {|li| sum += li.total_price} 
    24         format_price(sum) 
    25         %></td> 
    26         <td><%= order.status %></td> 
    27         <td><%= order.comments %></td> 
    28     <td><%= link_to 'Show', :action => 'show_orders', :id => order %></td> 
    29     <td><%= link_to 'Edit', :action => 'edit_orders', :id => order %></td> 
    30     <td><%= link_to 'Destroy', { :action => 'destroy_orders', :id => order }, :confirm => 'Are you sure?', :post => true %></td> 
    31   </tr> 
    32 <% end %> 
    33 </table> 
    34  
    35 <%= link_to 'Previous page', { :page => @order_pages.current.previous } if @order_pages.current.previous %> 
    36 <%= link_to 'Next page', { :page => @order_pages.current.next } if @order_pages.current.next %>  
    37  
    38 <br /> 
    39  
    40 <%= link_to 'New order', :action => 'new_orders' %> 
     1<%= render_component :controller => 'admin', :action => 'component_order', :params => params %>