opensteam 0.9.1 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +12 -1
- data/generators/opensteam/opensteam_generator.rb +5 -0
- data/generators/opensteam/templates/app/controllers/admin/invoices_controller.rb +31 -25
- data/generators/opensteam/templates/app/controllers/admin/orders_controller.rb +22 -69
- data/generators/opensteam/templates/app/controllers/admin/shipments_controller.rb +29 -26
- data/generators/opensteam/templates/app/controllers/admin/users_controller.rb +28 -13
- data/generators/opensteam/templates/app/controllers/admin_controller.rb +39 -1
- data/generators/opensteam/templates/app/controllers/profile/orders_controller.rb +20 -59
- data/generators/opensteam/templates/app/helpers/webshop_helper.rb +3 -0
- data/generators/opensteam/templates/app/models/filter_entry.rb +17 -0
- data/generators/opensteam/templates/app/views/admin/filters/_filter.html.erb +14 -0
- data/generators/opensteam/templates/app/views/admin/filters/_filter_entry.html.erb +6 -0
- data/generators/opensteam/templates/app/views/admin/filters/_filter_fields.html.erb +8 -0
- data/generators/opensteam/templates/app/views/admin/invoices/_invoices.html.erb +9 -9
- data/generators/opensteam/templates/app/views/admin/invoices/index.html.erb +5 -1
- data/generators/opensteam/templates/app/views/admin/orders/_orders.html.erb +15 -16
- data/generators/opensteam/templates/app/views/admin/orders/show.html.erb +9 -8
- data/generators/opensteam/templates/app/views/admin/shipments/_shipments.html.erb +11 -11
- data/generators/opensteam/templates/app/views/admin/shipments/index.html.erb +3 -0
- data/generators/opensteam/templates/app/views/admin/users/edit.html.erb +3 -1
- data/generators/opensteam/templates/app/views/admin/users/index.html.erb +18 -6
- data/generators/opensteam/templates/app/views/admin/users/new.html.erb +2 -0
- data/generators/opensteam/templates/app/views/layouts/admin.html.erb +4 -0
- data/generators/opensteam/templates/app/views/profile/orders/_orders.html.erb +9 -19
- data/generators/opensteam/templates/config/initializers/opensteam_model_tables.rb +80 -41
- data/generators/opensteam/templates/db/migrate/20080609095728_create_order_items.rb +1 -0
- data/generators/opensteam/templates/db/migrate/20080609095729_create_orders.rb +2 -2
- data/generators/opensteam/templates/db/migrate/20080804152615_create_filter_entries.rb +16 -0
- data/generators/opensteam/templates/public/stylesheets/opensteam_white.css +25 -25
- data/generators/opensteam_product/templates/controllers/product_controller.rb +1 -1
- data/lib/opensteam/extension_base.rb +1 -0
- data/lib/opensteam/helpers/config_table_helper.rb +139 -0
- data/lib/opensteam/initializer.rb +3 -3
- data/lib/opensteam/invoice_base.rb +4 -0
- data/lib/opensteam/order_base.rb +5 -3
- data/lib/opensteam/shipment_base.rb +6 -0
- data/lib/opensteam/user_base.rb +1 -0
- data/lib/opensteam/version.rb +1 -1
- metadata +8 -3
- data/lib/opensteam/helper/configurable_table.rb +0 -228
    
        data/CHANGELOG
    CHANGED
    
    | @@ -1,4 +1,15 @@ | |
| 1 | 
            -
            * | 
| 1 | 
            +
            *0.9.2*
         | 
| 2 | 
            +
             | 
| 3 | 
            +
             | 
| 4 | 
            +
            * fixed bug in product-controller (generators): missing "::" between "Admin" namespace and ProductController
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            * implemented filter methods for configurable tables in admin-backend (Opensteam::Helpers::ConfigTableHelper)
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            * added partials for "filters"
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            * updated views + controller in admin-backend for filter + sortable table (TODO: check if the POST to index for filter is neccessary, REST )
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            * removed uuid for Order-ids due to association problems (e.g. no order_items for an order after checkout ) (TODO: implement!)
         | 
| 2 13 |  | 
| 3 14 | 
             
            * deleted unnecessary controllers + views (administration namespace)
         | 
| 4 15 |  | 
| @@ -89,6 +89,11 @@ class OpensteamGenerator < Rails::Generator::NamedBase | |
| 89 89 | 
             
                admin.users_admins "users/type/admin", :controller => 'users', :action => 'index', :type => 'admin'
         | 
| 90 90 | 
             
                admin.users_customers "users/type/customer", :controller => 'users', :action => 'index', :type => 'customer'
         | 
| 91 91 |  | 
| 92 | 
            +
                admin.connect "users", :controller => 'users', :action => 'index' 
         | 
| 93 | 
            +
                admin.connect "orders", :controller => 'orders', :action => 'index' 
         | 
| 94 | 
            +
                admin.connect "invoices", :controller => 'invoices', :action => 'index' 
         | 
| 95 | 
            +
                admin.connect "shipments", :controller => 'shipments', :action => 'index'
         | 
| 96 | 
            +
                
         | 
| 92 97 | 
             
                admin.resources :inventories
         | 
| 93 98 | 
             
                admin.resources :users, :has_many => [ :orders ]
         | 
| 94 99 | 
             
                admin.resources :orders, :has_many => [ :shipments, :invoices ]
         | 
| @@ -1,37 +1,34 @@ | |
| 1 1 | 
             
            class Admin::InvoicesController < AdminController
         | 
| 2 | 
            +
             | 
| 2 3 |  | 
| 3 4 |  | 
| 4 | 
            -
               | 
| 5 | 
            -
              
         | 
| 6 | 
            -
              def sort
         | 
| 7 | 
            -
                if params[:sort]
         | 
| 8 | 
            -
                  if params[:order_id]
         | 
| 9 | 
            -
                    @order = Order.find( params[:order_id] )
         | 
| 10 | 
            -
                    conditions = { :order_id =>  params[:order_id] }
         | 
| 11 | 
            -
                  end
         | 
| 12 | 
            -
                  @results = sort_model( Invoice, @sort_column, conditions )
         | 
| 13 | 
            -
                  @invoices = @results
         | 
| 14 | 
            -
                end
         | 
| 5 | 
            +
              before_filter :set_sort_column
         | 
| 15 6 |  | 
| 16 | 
            -
                respond_to do |respond|
         | 
| 17 | 
            -
                  respond.html { render :action => :sort }
         | 
| 18 | 
            -
                  respond.js { render :partial => "invoice", :collection => @results, :layout => false }
         | 
| 19 | 
            -
                end
         | 
| 20 | 
            -
                      
         | 
| 21 | 
            -
              end
         | 
| 22 | 
            -
              
         | 
| 23 | 
            -
              
         | 
| 24 7 | 
             
              def index
         | 
| 25 | 
            -
                 | 
| 26 | 
            -
                @ | 
| 27 | 
            -
             | 
| 8 | 
            +
                save_filter("Invoice") if request.post?
         | 
| 9 | 
            +
                @invoices = apply_filter( "Invoice" )
         | 
| 10 | 
            +
                
         | 
| 11 | 
            +
                if params[:order_id]
         | 
| 12 | 
            +
                  @order = Opensteam::OrderBase::Order.find( params[:order_id] )
         | 
| 13 | 
            +
                  @invoices = ( @invoices || Opensteam::InvoiceBase::Invoice ).by_order( params[:order_id ] )
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
                  
         | 
| 16 | 
            +
                @invoices = ( @invoices || Opensteam::InvoiceBase::Invoice ).order_by( @sort_column.order )
         | 
| 17 | 
            +
                  
         | 
| 18 | 
            +
                if params[:sort]
         | 
| 19 | 
            +
                  @invoices.reverse! if session[:invoices]
         | 
| 20 | 
            +
                  session[:invoices] = session[:invoices] ? false : true
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
                  
         | 
| 28 23 | 
             
                respond_to do |format|
         | 
| 29 | 
            -
                  format.html | 
| 30 | 
            -
                  format.xml | 
| 31 | 
            -
                  format.js { render :partial => "invoices", :layout => false }
         | 
| 24 | 
            +
                  format.html
         | 
| 25 | 
            +
                  format.xml { render :xml => @invoices.to_xml( :root => "invoices" ) }
         | 
| 26 | 
            +
                  format.js { render :partial => "admin/invoices/invoice", :collection => @invoices, :layout => false }
         | 
| 32 27 | 
             
                end
         | 
| 28 | 
            +
                  
         | 
| 33 29 | 
             
              end
         | 
| 34 30 |  | 
| 31 | 
            +
             | 
| 35 32 |  | 
| 36 33 | 
             
              def show
         | 
| 37 34 | 
             
                @order = Opensteam::OrderBase::Order.find( params[:order_id] )
         | 
| @@ -102,5 +99,14 @@ class Admin::InvoicesController < AdminController | |
| 102 99 |  | 
| 103 100 | 
             
              end
         | 
| 104 101 |  | 
| 102 | 
            +
              private
         | 
| 103 | 
            +
              def set_sort_column
         | 
| 104 | 
            +
                id = params[:sort] || "id"
         | 
| 105 | 
            +
                @sort_column = Opensteam::InvoiceBase::Invoice.osteam_configtable.columns.find { |s| s.id.to_s == id }
         | 
| 106 | 
            +
              end
         | 
| 107 | 
            +
              
         | 
| 108 | 
            +
              
         | 
| 109 | 
            +
              
         | 
| 110 | 
            +
              
         | 
| 105 111 |  | 
| 106 112 | 
             
            end
         | 
| @@ -1,67 +1,32 @@ | |
| 1 1 | 
             
            class Admin::OrdersController < AdminController
         | 
| 2 | 
            -
              
         | 
| 3 | 
            -
                
         | 
| 4 | 
            -
              
         | 
| 5 | 
            -
              include Opensteam::Helper::ConfigurableTableController
         | 
| 6 | 
            -
              
         | 
| 7 | 
            -
              helper :all
         | 
| 8 | 
            -
              
         | 
| 9 | 
            -
              
         | 
| 10 | 
            -
              
         | 
| 11 | 
            -
              def livesearch
         | 
| 12 | 
            -
                if params[:livesearch]
         | 
| 13 | 
            -
                  
         | 
| 14 | 
            -
                  @result = Order.find(:all, :include => [:customer, :shipping_address, :payment_address ] )
         | 
| 15 | 
            -
             | 
| 16 | 
            -
                  @result = @result.select { |s| 
         | 
| 17 | 
            -
                    Order.configured_table.columns.collect { |c|
         | 
| 18 | 
            -
                      seek = s.__send__( c.id )
         | 
| 19 | 
            -
                      seek = seek.__send__( c.method ) if c.method
         | 
| 20 | 
            -
                      seek.to_s.include?( params[:livesearch] )
         | 
| 21 | 
            -
                    }.any?
         | 
| 22 | 
            -
                  }
         | 
| 23 | 
            -
                  render :partial => 'order', :collection => @result, :layout => false
         | 
| 24 | 
            -
                end
         | 
| 25 | 
            -
             | 
| 26 | 
            -
              end
         | 
| 27 | 
            -
              
         | 
| 28 | 
            -
              
         | 
| 29 2 |  | 
| 3 | 
            +
              helper :all
         | 
| 4 | 
            +
              before_filter :set_sort_column
         | 
| 30 5 |  | 
| 31 | 
            -
              def sort
         | 
| 32 | 
            -
                
         | 
| 33 | 
            -
                if params[:sort]
         | 
| 34 | 
            -
                  if params[:user_id]
         | 
| 35 | 
            -
                    @customer = Opensteam::UserBase::User.find( params[:user_id] )
         | 
| 36 | 
            -
                    conditions = { :customer_id => params[:customer_id] }
         | 
| 37 | 
            -
                  end
         | 
| 38 | 
            -
                  @results = sort_model( Order, @sort_column, conditions, [:customer, :payment_address, :shipping_address ] )
         | 
| 39 | 
            -
                  @orders = @results
         | 
| 40 | 
            -
                end
         | 
| 41 | 
            -
                
         | 
| 42 | 
            -
                respond_to do |respond|
         | 
| 43 | 
            -
                  respond.html { render :action => :sort }
         | 
| 44 | 
            -
                  respond.js { render :partial => "order", :collection => @results, :layout => false }
         | 
| 45 | 
            -
                end
         | 
| 46 | 
            -
                      
         | 
| 47 | 
            -
              end
         | 
| 48 | 
            -
              
         | 
| 49 | 
            -
              
         | 
| 50 6 | 
             
              def index
         | 
| 7 | 
            +
                save_filter("Order") if request.post?
         | 
| 8 | 
            +
                @orders = apply_filter( "Order" )
         | 
| 9 | 
            +
                  
         | 
| 51 10 | 
             
                if params[:user_id]
         | 
| 52 11 | 
             
                  @customer = Opensteam::UserBase::User.find( params[:user_id] )
         | 
| 53 | 
            -
                  @orders = @ | 
| 54 | 
            -
                else
         | 
| 55 | 
            -
                  @orders ||= find_orders
         | 
| 12 | 
            +
                  @orders = ( @orders || Opensteam::OrderBase.Order ).by_user( params[:user_id ] )
         | 
| 56 13 | 
             
                end
         | 
| 57 | 
            -
             | 
| 14 | 
            +
                  
         | 
| 15 | 
            +
                @orders = ( @orders || Opensteam::OrderBase::Order ).order_by( @sort_column.order )
         | 
| 16 | 
            +
                  
         | 
| 17 | 
            +
                if params[:sort]
         | 
| 18 | 
            +
                  @orders.reverse! if session[:orders]
         | 
| 19 | 
            +
                  session[:orders] = session[:orders] ? false : true
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
                  
         | 
| 58 22 | 
             
                respond_to do |format|
         | 
| 59 | 
            -
                  format.html | 
| 60 | 
            -
                  format.xml | 
| 61 | 
            -
                  format.js { render :partial => "orders", :layout => false }
         | 
| 23 | 
            +
                  format.html
         | 
| 24 | 
            +
                  format.xml { render :xml => @orders.to_xml( :root => "orders" ) }
         | 
| 25 | 
            +
                  format.js { render :partial => "admin/orders/order", :collection => @orders, :layout => false }
         | 
| 62 26 | 
             
                end
         | 
| 27 | 
            +
                  
         | 
| 63 28 | 
             
              end
         | 
| 64 | 
            -
             | 
| 29 | 
            +
             | 
| 65 30 |  | 
| 66 31 | 
             
              def show
         | 
| 67 32 | 
             
                @order ||= Opensteam::OrderBase::Order.find( params[:id] )
         | 
| @@ -93,21 +58,9 @@ class Admin::OrdersController < AdminController | |
| 93 58 |  | 
| 94 59 | 
             
              private
         | 
| 95 60 |  | 
| 96 | 
            -
              def  | 
| 97 | 
            -
                 | 
| 98 | 
            -
             | 
| 99 | 
            -
                  params[:last] = params[:filter][:last] unless params[:filter][:last].blank?
         | 
| 100 | 
            -
                end
         | 
| 101 | 
            -
                
         | 
| 102 | 
            -
                scope = Opensteam::OrderBase::Order.scoped({})
         | 
| 103 | 
            -
                
         | 
| 104 | 
            -
                scope = scope.scoped :include => :state, :conditions => ["state_bases.name in (?)", params[:state] ] if params[:state]
         | 
| 105 | 
            -
                
         | 
| 106 | 
            -
                scope = scope.scoped :order => :state_id if params[:state]
         | 
| 107 | 
            -
                scope = scope.scoped :conditions => { :customer_id => params[:customer_id] } if params[:customer_id]
         | 
| 108 | 
            -
                scope = scope.scoped :conditions => ["orders.created_at >= ?", 1.send(params[:last]).ago ] if params[:last]
         | 
| 109 | 
            -
                #  scope = scope.scoped :conditions => [ "orders.created_at < ?", params[:before]] if params[:before]
         | 
| 110 | 
            -
                scope = scope.scoped :include => :customer
         | 
| 61 | 
            +
              def set_sort_column
         | 
| 62 | 
            +
                id = params[:sort] || "id"
         | 
| 63 | 
            +
                @sort_column = Opensteam::OrderBase::Order.osteam_configtable[ id ]
         | 
| 111 64 | 
             
              end
         | 
| 112 65 |  | 
| 113 66 | 
             
            end
         | 
| @@ -1,35 +1,31 @@ | |
| 1 1 | 
             
            class Admin::ShipmentsController < AdminController
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 4 | 
            -
               | 
| 5 | 
            -
              
         | 
| 6 | 
            -
              def sort
         | 
| 7 | 
            -
                if params[:sort]
         | 
| 8 | 
            -
                  if params[:order_id]
         | 
| 9 | 
            -
                    @customer = Order.find( params[:order_id] )
         | 
| 10 | 
            -
                    conditions = { :order_id =>  params[:order_id] }
         | 
| 11 | 
            -
                  end
         | 
| 12 | 
            -
                  @results = sort_model( Shipment, @sort_column, conditions )
         | 
| 13 | 
            -
                  @shipments = @results
         | 
| 14 | 
            -
                end
         | 
| 3 | 
            +
             | 
| 4 | 
            +
              before_filter :set_sort_column
         | 
| 15 5 |  | 
| 16 | 
            -
                respond_to do |respond|
         | 
| 17 | 
            -
                  respond.html { render :action => :sort }
         | 
| 18 | 
            -
                  respond.js { render :partial => "shipment", :collection => @results, :layout => false }
         | 
| 19 | 
            -
                end
         | 
| 20 | 
            -
                      
         | 
| 21 | 
            -
              end
         | 
| 22 | 
            -
              
         | 
| 23 | 
            -
              
         | 
| 24 6 | 
             
              def index
         | 
| 25 | 
            -
                 | 
| 26 | 
            -
                @ | 
| 27 | 
            -
             | 
| 7 | 
            +
                save_filter("Shipment") if request.post?
         | 
| 8 | 
            +
                @shipments = apply_filter( "Shipment" )
         | 
| 9 | 
            +
                  
         | 
| 10 | 
            +
                @filter_entries = []
         | 
| 11 | 
            +
                if params[:order_id]
         | 
| 12 | 
            +
                  @order = Opensteam::OrderBase::Order.find( params[:order_id] )
         | 
| 13 | 
            +
                  @shipments = ( @shipments || Opensteam::ShipmentBase::Shipment ).by_order( params[:order_id ] )
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
                  
         | 
| 16 | 
            +
                @shipments = ( @shipments || Opensteam::ShipmentBase::Shipment ).order_by( @sort_column.order )
         | 
| 17 | 
            +
                  
         | 
| 18 | 
            +
                if params[:sort]
         | 
| 19 | 
            +
                  @shipments.reverse! if session[:shipments]
         | 
| 20 | 
            +
                  session[:shipments] = session[:shipments] ? false : true
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
                  
         | 
| 28 23 | 
             
                respond_to do |format|
         | 
| 29 | 
            -
                  format.html | 
| 30 | 
            -
                  format.xml | 
| 31 | 
            -
                  format.js { render :partial => "shipments", :layout => false }
         | 
| 24 | 
            +
                  format.html
         | 
| 25 | 
            +
                  format.xml { render :xml => @shipments.to_xml( :root => "shipments" ) }
         | 
| 26 | 
            +
                  format.js { render :partial => "admin/shipments/shipment", :collection => @shipments, :layout => false }
         | 
| 32 27 | 
             
                end
         | 
| 28 | 
            +
                  
         | 
| 33 29 | 
             
              end
         | 
| 34 30 |  | 
| 35 31 |  | 
| @@ -102,5 +98,12 @@ class Admin::ShipmentsController < AdminController | |
| 102 98 |  | 
| 103 99 | 
             
              end
         | 
| 104 100 |  | 
| 101 | 
            +
              private
         | 
| 102 | 
            +
              def set_sort_column
         | 
| 103 | 
            +
                id = params[:sort] || "id"
         | 
| 104 | 
            +
                @sort_column = Opensteam::ShipmentBase::Shipment.osteam_configtable.columns.find { |s| s.id.to_s == id }
         | 
| 105 | 
            +
              end
         | 
| 106 | 
            +
              
         | 
| 107 | 
            +
              
         | 
| 105 108 |  | 
| 106 109 | 
             
            end
         | 
| @@ -1,19 +1,31 @@ | |
| 1 1 | 
             
            class Admin::UsersController < AdminController
         | 
| 2 2 |  | 
| 3 | 
            +
              before_filter :set_sort_column
         | 
| 4 | 
            +
              
         | 
| 3 5 |  | 
| 4 6 | 
             
              def index
         | 
| 7 | 
            +
                save_filter( "User" ) if request.post?
         | 
| 8 | 
            +
                @users = apply_filter( "User" )
         | 
| 9 | 
            +
                
         | 
| 5 10 | 
             
                if params[:type]
         | 
| 6 | 
            -
                  @users = Opensteam::UserBase::User.by_profile( params[:type] )
         | 
| 7 | 
            -
                 | 
| 8 | 
            -
             | 
| 11 | 
            +
                  @users = ( @users || Opensteam::UserBase::User ).by_profile( params[:type] )
         | 
| 12 | 
            +
                end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                @users = ( @users || Opensteam::UserBase::User ).order_by( @sort_column.order )
         | 
| 15 | 
            +
                if params[:sort]
         | 
| 16 | 
            +
                  @users.reverse! if session[:users]
         | 
| 17 | 
            +
                  session[:users] = session[:users] ? false : true
         | 
| 9 18 | 
             
                end
         | 
| 10 19 |  | 
| 11 20 | 
             
                respond_to do |format|
         | 
| 12 21 | 
             
                  format.html
         | 
| 13 22 | 
             
                  format.xml { render :xml => @users.to_xml( :root => params[:type] || "users" ) }
         | 
| 23 | 
            +
                  format.js { render :partial => "admin/users/#{ params[:type] ? params[:type] + 's' : 'users' }", :collection => @users, :layout => false }
         | 
| 14 24 | 
             
                end
         | 
| 15 25 | 
             
              end
         | 
| 16 | 
            -
             | 
| 26 | 
            +
              
         | 
| 27 | 
            +
              
         | 
| 28 | 
            +
              
         | 
| 17 29 | 
             
              def show
         | 
| 18 30 | 
             
                @user = Opensteam::UserBase::User.find( params[:id] )
         | 
| 19 31 |  | 
| @@ -25,25 +37,18 @@ class Admin::UsersController < AdminController | |
| 25 37 | 
             
              end
         | 
| 26 38 |  | 
| 27 39 |  | 
| 28 | 
            -
              
         | 
| 29 | 
            -
              
         | 
| 30 40 | 
             
              def edit
         | 
| 31 41 | 
             
                @user = Opensteam::UserBase::User.find( params[:id] )
         | 
| 32 42 | 
             
                @profiles = Opensteam::UserBase::Profile.all
         | 
| 33 | 
            -
                
         | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 43 | 
             
              end
         | 
| 37 44 |  | 
| 38 45 |  | 
| 39 46 |  | 
| 40 | 
            -
              
         | 
| 41 | 
            -
              
         | 
| 42 47 | 
             
              def update
         | 
| 43 48 | 
             
                @user = Opensteam::UserBase::User.find( params[:id] )
         | 
| 44 49 |  | 
| 45 50 | 
             
                if params[:type]
         | 
| 46 | 
            -
                  @profile = Opensteam::UserBase::Profile. | 
| 51 | 
            +
                  @profile = Opensteam::UserBase::Profile.find( params[:type] )
         | 
| 47 52 | 
             
                end
         | 
| 48 53 |  | 
| 49 54 |  | 
| @@ -68,6 +73,7 @@ class Admin::UsersController < AdminController | |
| 68 73 | 
             
              def new
         | 
| 69 74 | 
             
                @user = Opensteam::UserBase::User.new
         | 
| 70 75 | 
             
                @profiles = Opensteam::UserBase::Profile.all
         | 
| 76 | 
            +
                @user.profile_id = Opensteam::UserBase::Profile.find_by_name( params[:type].classify ).id if params[:type]
         | 
| 71 77 | 
             
              end
         | 
| 72 78 |  | 
| 73 79 |  | 
| @@ -75,7 +81,7 @@ class Admin::UsersController < AdminController | |
| 75 81 | 
             
                @user = Opensteam::UserBase::User.new( params[:user] )
         | 
| 76 82 |  | 
| 77 83 | 
             
                if params[:type]
         | 
| 78 | 
            -
                  @profile = Opensteam::UserBase::Profile. | 
| 84 | 
            +
                  @profile = Opensteam::UserBase::Profile.find( params[:type] )
         | 
| 79 85 | 
             
                end
         | 
| 80 86 |  | 
| 81 87 | 
             
                respond_to do |format|
         | 
| @@ -96,4 +102,13 @@ class Admin::UsersController < AdminController | |
| 96 102 |  | 
| 97 103 | 
             
              end
         | 
| 98 104 |  | 
| 105 | 
            +
              
         | 
| 106 | 
            +
              private
         | 
| 107 | 
            +
              def set_sort_column
         | 
| 108 | 
            +
                id = params[:sort] || "id"
         | 
| 109 | 
            +
                @sort_column = Opensteam::UserBase::User.osteam_configtable.columns.find { |s| s.id.to_s == id }
         | 
| 110 | 
            +
              end
         | 
| 111 | 
            +
              
         | 
| 112 | 
            +
                
         | 
| 113 | 
            +
              
         | 
| 99 114 | 
             
            end
         | 
| @@ -11,7 +11,7 @@ class AdminController < ApplicationController | |
| 11 11 |  | 
| 12 12 | 
             
              def index
         | 
| 13 13 | 
             
                @extensions = []
         | 
| 14 | 
            -
             | 
| 14 | 
            +
                #   @extensions = Opensteam::ExtensionBase::Extension.active
         | 
| 15 15 | 
             
              end
         | 
| 16 16 |  | 
| 17 17 | 
             
              # show product classes
         | 
| @@ -25,10 +25,17 @@ class AdminController < ApplicationController | |
| 25 25 | 
             
              end				
         | 
| 26 26 |  | 
| 27 27 |  | 
| 28 | 
            +
              def delete_filter
         | 
| 29 | 
            +
                #  FilterEntry.find( params[:id] ).destroy
         | 
| 30 | 
            +
                session[:filter][ params[:model] ].delete( params[:id].to_i )
         | 
| 31 | 
            +
                redirect_to :action => :index
         | 
| 32 | 
            +
              end
         | 
| 33 | 
            +
              
         | 
| 28 34 |  | 
| 29 35 | 
             
              private
         | 
| 30 36 | 
             
              def authorized?
         | 
| 31 37 | 
             
                unless logged_in? && is_admin?
         | 
| 38 | 
            +
                  store_location
         | 
| 32 39 | 
             
                  redirect_to login_path
         | 
| 33 40 | 
             
                  return false
         | 
| 34 41 | 
             
                end
         | 
| @@ -36,5 +43,36 @@ class AdminController < ApplicationController | |
| 36 43 | 
             
              end
         | 
| 37 44 |  | 
| 38 45 |  | 
| 46 | 
            +
              def save_filter( model )
         | 
| 47 | 
            +
                return nil unless params[:filter]
         | 
| 48 | 
            +
                session[:filter] ||= {}
         | 
| 49 | 
            +
                ( session[:filter][ model ] ||= [] ).push( *params[:filter].collect { |f| FilterEntry.create( f ).id } )
         | 
| 50 | 
            +
              end
         | 
| 51 | 
            +
              
         | 
| 52 | 
            +
                
         | 
| 53 | 
            +
              
         | 
| 54 | 
            +
              def apply_filter( model )
         | 
| 55 | 
            +
                
         | 
| 56 | 
            +
                session[:filter] ||= {}
         | 
| 57 | 
            +
                session[:filter][ model ] ||= []
         | 
| 58 | 
            +
                if session[:filter][ model ].empty?
         | 
| 59 | 
            +
                  @filter_entries = []
         | 
| 60 | 
            +
                  return nil
         | 
| 61 | 
            +
                end
         | 
| 62 | 
            +
                
         | 
| 63 | 
            +
                @filter_entries = FilterEntry.find( :all, :conditions => { :id => session[:filter][ model ] } )
         | 
| 64 | 
            +
                return nil if @filter_entries.empty?
         | 
| 65 | 
            +
                
         | 
| 66 | 
            +
                model.classify.constantize.scoped(
         | 
| 67 | 
            +
                  { :conditions => [ @filter_entries.collect(&:to_sql).join(" AND "), 
         | 
| 68 | 
            +
                      @filter_entries.collect(&:to_val).inject({}) { |r,v| r.merge(v) } ]
         | 
| 69 | 
            +
                  } 
         | 
| 70 | 
            +
                )
         | 
| 71 | 
            +
              end
         | 
| 72 | 
            +
              
         | 
| 73 | 
            +
              
         | 
| 74 | 
            +
              
         | 
| 75 | 
            +
              
         | 
| 76 | 
            +
              
         | 
| 39 77 | 
             
            end
         | 
| 40 78 |  | 
| @@ -1,75 +1,29 @@ | |
| 1 1 | 
             
            class Profile::OrdersController < ProfileController
         | 
| 2 | 
            -
              
         | 
| 3 | 
            -
              include Opensteam::Helper::ConfigurableTableController
         | 
| 4 | 
            -
              include AuthenticatedSystem
         | 
| 5 | 
            -
              
         | 
| 6 | 
            -
              def livesearch
         | 
| 7 | 
            -
                if params[:livesearch]
         | 
| 8 | 
            -
                  
         | 
| 9 | 
            -
                  @result = @customer.orders
         | 
| 10 | 
            -
                  @result = @result.select { |s| 
         | 
| 11 | 
            -
                    
         | 
| 12 | 
            -
                    Order.configured_table.columns.collect { |c|
         | 
| 13 | 
            -
                      seek = s.__send__( c.id )
         | 
| 14 | 
            -
                      seek = seek.__send__( c.method ) if c.method
         | 
| 15 | 
            -
                      seek.to_s.include?( params[:livesearch] )
         | 
| 16 | 
            -
                    }.any?
         | 
| 17 | 
            -
                  }
         | 
| 18 | 
            -
                  render :partial => 'order', :collection => @result, :layout => false
         | 
| 19 | 
            -
                end
         | 
| 20 2 |  | 
| 21 | 
            -
               | 
| 22 | 
            -
             | 
| 23 | 
            -
              
         | 
| 24 | 
            -
              
         | 
| 25 | 
            -
              def sort
         | 
| 26 | 
            -
                if params[:sort]
         | 
| 27 | 
            -
                  @results = sort_model( @customer.orders, @sort_column )
         | 
| 28 | 
            -
                  @orders = @results
         | 
| 29 | 
            -
                end
         | 
| 30 | 
            -
                
         | 
| 31 | 
            -
                respond_to do |respond|
         | 
| 32 | 
            -
                  respond.html { render :action => :sort }
         | 
| 33 | 
            -
                  respond.js { render :partial => "order", :collection => @results, :layout => false }
         | 
| 34 | 
            -
                end
         | 
| 35 | 
            -
                      
         | 
| 36 | 
            -
              end
         | 
| 37 | 
            -
              
         | 
| 38 | 
            -
              
         | 
| 39 | 
            -
              def sort_model( collection, column, conditions = nil )
         | 
| 40 | 
            -
                finder_args = {}
         | 
| 41 | 
            -
                finder_args[:conditions] = conditions if conditions
         | 
| 42 | 
            -
                      
         | 
| 43 | 
            -
                if column.order_ruby?
         | 
| 44 | 
            -
                  result = collection.find( :all, finder_args )
         | 
| 45 | 
            -
                  result.sort!(&column.order)
         | 
| 46 | 
            -
                else
         | 
| 47 | 
            -
                  finder_args[:order] = column.order
         | 
| 48 | 
            -
                  result = collection.find(:all, finder_args )
         | 
| 49 | 
            -
                end
         | 
| 50 | 
            -
                toggle_sorted("Orders" )
         | 
| 51 | 
            -
                result.reverse! if sorted?( "Orders" )
         | 
| 52 | 
            -
                result
         | 
| 53 | 
            -
              end
         | 
| 54 | 
            -
                    
         | 
| 55 | 
            -
                      
         | 
| 3 | 
            +
              include AuthenticatedSystem
         | 
| 56 4 |  | 
| 5 | 
            +
              before_filter :set_sort_column
         | 
| 57 6 |  | 
| 58 7 | 
             
              def index
         | 
| 8 | 
            +
                @orders = Opensteam::OrderBase::Order.by_user( @customer.id )
         | 
| 9 | 
            +
                
         | 
| 59 10 | 
             
                if params[:state]
         | 
| 60 11 | 
             
                  if ( params[:state].collect(&:to_sym) - Order.available_states.collect(&:name).collect(&:to_sym) ).empty?
         | 
| 61 | 
            -
                    @orders =  | 
| 62 | 
            -
                  else
         | 
| 63 | 
            -
                    @orders = []
         | 
| 12 | 
            +
                    @orders = @orders.scoped :conditions => { :state => params[:state] }
         | 
| 64 13 | 
             
                  end
         | 
| 65 | 
            -
                 | 
| 66 | 
            -
             | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
                
         | 
| 16 | 
            +
                @orders = ( @orders || Opensteam::OrderBase::Order ).order_by( @sort_column.order )
         | 
| 17 | 
            +
                
         | 
| 18 | 
            +
                if params[:sort]
         | 
| 19 | 
            +
                  @orders.reverse! if session[:orders]
         | 
| 20 | 
            +
                  session[:orders] = session[:orders] ? false : true
         | 
| 67 21 | 
             
                end
         | 
| 68 22 |  | 
| 69 23 | 
             
                respond_to do |format|
         | 
| 70 24 | 
             
                  format.html # index.html.erb
         | 
| 71 25 | 
             
                  format.xml  { render :xml => @orders.to_xml( :root => 'orders' ) }
         | 
| 72 | 
            -
                  format.js { render :partial => " | 
| 26 | 
            +
                  format.js { render :partial => "order", :collection => @orders, :layout => false }
         | 
| 73 27 | 
             
                end
         | 
| 74 28 | 
             
              end
         | 
| 75 29 |  | 
| @@ -101,5 +55,12 @@ class Profile::OrdersController < ProfileController | |
| 101 55 |  | 
| 102 56 | 
             
              end
         | 
| 103 57 |  | 
| 58 | 
            +
              private
         | 
| 59 | 
            +
              
         | 
| 60 | 
            +
              def set_sort_column
         | 
| 61 | 
            +
                id = params[:sort] || "id"
         | 
| 62 | 
            +
                @sort_column = Opensteam::OrderBase::Order.osteam_configtable[ id ]
         | 
| 63 | 
            +
              end
         | 
| 64 | 
            +
                
         | 
| 104 65 |  | 
| 105 66 | 
             
            end
         |