opensteam 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|